设为首页 收藏本站
查看: 1194|回复: 0

[经验分享] ceph搭建练习1

[复制链接]

尚未签到

发表于 2019-2-2 08:09:35 | 显示全部楼层 |阅读模式
  块存储:比如iscsi
文件存储:NFS/SAMBA
对象存储:都是C/S结构,客户端需要单独安装软件
ceph组件:
MON:ceph通过一系列的映射表来监控集群状态,一般来说MON是奇数个
OSD:ceph对象存储设备,它是唯一的真正存储数据的设备。OSD也是一个进程,一般来说OSD关联到集群中的每块物理硬盘。所以集群中有多少块硬盘就有多少个OSD进程。
MDS:元数据服务器。元数据是描述数据的数据。MDS为cephFS维护文件系统结构,存储元数据。
client:需要单独安装组件
  环境准备
91 -96 添加的3块盘
90-96 主机网络yum源配置
90-96配置的主机名映射配置
91   能无密码连接本机及其他主机
90主机NTP服务的配置
部署ceph集群
一、准备7台虚拟机(各人喜欢)
1、初始化
node91 192.168.4.91
node92 192.168.4.92
node93 192.168.4.93
node94 192.168.4.94
node95 192.168.4.95
node96 192.168.4.96
client90 192.168.4.90
2、将ceph光盘挂载到物理主机,以便将其作为yum源
  ~]# tail -1 /etc/fstab
/ISO/rhcs2.0-rhosp9-20161113-x86_64.iso /var/ftp/ceph   iso9660 defaults    0 0
yum源需要系统光盘和ceph光盘两个源。注意ceph光盘中rhceph-2.0-rhel-7-x86_64/目录有三个子目录MON/OSD/Tools,这是三个源
[root@node91 ~]# vim /etc/yum.repos.d/server.repo
[rhel7]
name=rhel7
baseurl=ftp://192.168.4.254/rhel7.4
enabled=1
gpgcheck=0
[mon]
name=mon
baseurl=ftp://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/MON
enabled=1
gpgcheck=0
[osd]
name=osd
baseurl=ftp://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/OSD
enabled=1
gpgcheck=0
[Tools]
name=Tools
baseurl=ftp://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/Tools
enabled=1
gpgcheck=0
[root@node1 ~]# yum clean all
[root@node1 ~]# yum repolist
  3、将node91作为管理节点,为其生成ssh密钥,可以免密登陆其他节点
[root@node91 ~]# ssh-keygen -f /root/.ssh/id_rsa -N ''
[root@node91 ~]# for i in {90..96}
  do
ssh-copy-id 192.168.4.$i
done
  4、通过hosts文件配置名称解析
[root@node91 ~]# for i in {1..6}
  do
echo   "192.168.4.9$i   node9$i" >> /etc/hosts
done
[root@node91 ~]# echo "192.168.4.90  client90" >> /etc/hosts
[root@node91 ~]# for i in {90..96}
do
scp /etc/hosts 192.168.4.$i:/etc/
done
  5、配置192.168.4.90为NTP服务器
[root@client 90~]# yum install -y chrony
[root@client 90~]# vim /etc/chrony.conf
server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
allow 192.168.4.0/24
local stratum 10
[root@client 90~]# systemctl restart chronyd
  6、配置node91-node96为ntp客户端
[root@node91 ~]# for i in {91..96}
  do
ssh node$i yum install -y chrony
done
[root@node91 ~]# vim /etc/chrony.conf
server 192.168.4.10 iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
[root@node91 ~]# for i in {92..96}
do
scp /etc/chrony.conf node$i:/etc/
done
[root@node91 ~]# for i in {91..96}
do
ssh node$i systemctl restart chronyd
done
  7、node91-node96为共享存储提供硬盘,每个节点加三块硬盘,每块盘大小为10GB
8、在node1上安装ceph管理软件ceph-deploy
[root@node91 ~]# yum install -y ceph-deploy
  9、创建ceph-deploy的工作目录
[root@node91 ~]# mkdir ceph-cluster
[root@node91 ~]# cd ceph-cluster
生成管理集群的配置文件和密钥文件
[root@node91 ceph-cluster]# ceph-deploy new node{91,92,93,94,95,96}
为所有节点安装ceph软件包
[root@node91 ceph-cluster]# ceph-deploy install node{91,92,93,94,95,96}
  10、初始化mon服务
[root@node91 ceph-cluster]# ceph-deploy mon create-initial
  11、为所有节点准备磁盘分区,用来做存储服务器的日志盘
[root@node91 ceph-cluster]# for i in {91..96}
  do
ssh node$i parted /dev/vdb mklabel gpt
ssh node$i parted /dev/vdb mkpart primary 1M 50%
ssh node$i parted /dev/vdb mkpart primary 50% 100%
done
  [root@node91 ceph-cluster]# for i in {91..96}
  do
ssh node$i lsblk
done
  [root@node91 ceph-cluster]# for i in {91..96}
  do
ssh node$i chown ceph.ceph /dev/vdb1
ssh node$i chown ceph.ceph /dev/vdb2
done
  [root@node91 ceph-cluster]# for i in {91..96}   # 属主属组必须是ceph
  do
ssh node$i ls -lh /dev/vdb?
done
12、配置OSD,初始化磁盘
[root@node91 ceph-cluster]# for i in {91..96}
do
ceph-deploy disk zap node$i:vdc node$i:vdd
done
  13、创建OSD存储空间,与日志盘关联(/dev/vdb1作vdc日志盘,/dev/vdb2作vdd日志盘)
[root@node91 ceph-cluster]# for i in {91..96}
  do
ceph-deploy osd create node$i:vdc:/dev/vdb1 node$i:vdd:/dev/vdb2
done
  14、查看ceph状态
[root@node91 ceph-cluster]# ceph -s
如果正常的话,可以看到 health HEALTH_OK
如果是health HEALTH_ERR,可以重起服务
[root@node91 ceph-cluster]# for i in {91..96}
  do
ssh node$i systemctl restart ceph*.service ceph*.target
done
  使用ceph块设备
  1、块设备存在于存储池中,默认ceph集群已有有一个名为rbd的池了
[root@node91 ceph-cluster]# ceph osd lspools
2、在默认池里创建一个名为demo-image的镜像,镜像可以当成远程主机的硬盘
[root@node91 ceph-cluster]# rbd create demo-image --image-feature layering --size 10G
  3、指定在rbd这个池中创建一个名为image的镜像
[root@node91 ceph-cluster]# rbd create rbd/image --image-feature layering --size 10G
  4、查看镜像信息
[root@node91 ceph-cluster]# rbd ls
[root@node91 ceph-cluster]# rbd info image
  5、缩减/增容镜像
[root@node91 ceph-cluster]# rbd resize --size 7G image --allow-shrink
[root@node91 ceph-cluster]# rbd info image
[root@node91 ceph-cluster]# rbd resize --size 15G image
[root@node91 ceph-cluster]# rbd info image
  6、如果需要使用Ceph的块存储,那么首先要把ceph镜像映射到本地
[root@node91 ceph-cluster]# lsblk   # 此时还没有ceph存储
[root@node91 ceph-cluster]# rbd map demo-image #影射
[root@node91 ceph-cluster]# lsblk   # 此时多了一个10GB的/dev/rbd0
[root@node91 ceph-cluster]# mkfs.xfs /dev/rbd0
[root@node91 ceph-cluster]# mount /dev/rbd0 /mnt/
[root@node91 ceph-cluster]# df -h /mnt/
[root@node91 ceph-cluster]# cp /etc/hosts /mnt/  # 此步骤只是测试共享存储可用
[root@node91 ceph-cluster]# cat /mnt/hosts
  配置ceph客户端
1、安装软件包
[root@client90 ~]# yum install -y ceph-common
2、为了让客户端能够找到集群,需要集群配置文件
[root@node91 ceph-cluster]# scp /etc/ceph/ceph.conf 192.168.4.10:/etc/ceph/
3、客户端访问集群,需要授权,可以为客户端创建用户,也可以使用默认创建的admin帐户
[root@node91 ceph-cluster]# scp /etc/ceph/ceph.client.admin.keyring 192.168.4.90:/etc/ceph/
4、使用ceph块设备
[root@client90 ~]# rbd ls
[root@client 90~]# rbd map image  #影射
[root@client 90~]# mkfs.xfs /dev/rbd0
[root@client 90~]# rbd showmapped   # 查看ceph块设备信息
[root@client 90~]# mount /dev/rbd0 /mnt/
[root@client 90~]# echo 'Hello ceph' > /mnt/mytest.txt  # 只是测试
  查看ceph存储的大小
[root@node91 ceph-cluster]# rados df
  管理快照
快照:某一状态点的镜像,将来有任何误操作,都可以通过还原快照来恢复
1、查看image的快照
[root@client 90~]# rbd snap ls image
2、为image创建名为image-snap1的快照
[root@client90 ~]# rbd snap create image --snap image-snap1
[root@client 90~]# rbd snap ls image
3、模拟误删除操作
  (1)删除文件
[root@client90 ~]# cat /mnt/mytest.txt
Hello ceph
[root@client90 ~]# rm -f /mnt/mytest.txt
(2)卸载存储并还原快照
[root@client90 ~]# umount /mnt/
[root@client90 ~]# rbd snap rollback image --snap image-snap1
(3)挂载存储,检查数据是否恢复
[root@client90 ~]# mount /dev/rbd0 /mnt/
[root@client90 ~]# ll /mnt/
[root@client90 ~]# cat /mnt/mytest.txt
  克隆镜像
1、通过快照进行镜像克隆,首先保护快照
[root@client90 ~]# rbd snap protect image --snap image-snap1
2、创建名为image-clone的克隆镜像
[root@client90 ~]# rbd clone image --snap image-snap1 image-clone --image-feature layering
3、查看克隆镜像与父镜像关系
[root@client90 ~]# rbd  info image-clone
4、合并克隆镜像,使之成为一个整体
[root@client90 ~]# rbd flatten image-clone
[root@client90 ~]# rbd  info image-clone  # 已经没有父镜像了
  删除操作
1、取消RBD映射
[root@client90 ~]# umount /mnt/
[root@client90 ~]# rbd unmap /dev/rbd/rbd/image
[root@client90 ~]# lsblk  # 没有rbd0了
2、删除快照
[root@client90 ~]# rbd snap unprotect image --snap image-snap1
[root@client90 ~]# rbd snap rm image --snap image-snap1
3、删除镜像
[root@client90 ~]# rbd list
[root@client90 ~]# rbd rm image
  常见错误处理
初始化monitor常见错误
  如果出现以下错误
:## ceph-deploy mon create-initial
[node91][ERROR ] admin_socket: exception getting command descriptions: [Errno 2] No such file or directory
  解决方案:
[root@node91 ceph-clu]# vim ceph.conf 最下面加入行:
public_network = 192.168.4.0/24
再执行以下命令:
[root@host1 ceoh-clu]# ceph-deploy --overwrite-conf config push node91 node92 node93   node94 node95 node96
  -#ceph -s 状态不正常
]#ceph -s  
HEALTH_WARN too few PGs per OSD (16 < min 30)
  查看rbd pool的PGS
]ceph osd pool get rbd pg_nu
解决办法:修改默认pool rbd的pgs
]ceph osd pool set rbd pg_num 128
set pool 0 pg_num to 128
注意需要把pgp_num也一并修改,默认两个pg_num和pgp_num一样大小均为64,此处也将两个的值都设为128
]ceph osd pool set rbd pgp_num 128
set pool 0 pgp_num to 128
再次ceph -s
  health HEALTH_OK
  当发现跟时间相关的错误时可以尝试重新同步所有主机的时间




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-670658-1-1.html 上篇帖子: 基于Centos7.4搭建Ceph 下篇帖子: kubernetes Ceph存储详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表