最全!最完整!部署ceph集群(二)

生来就可爱ヽ(ⅴ<●) 提交于 2020-11-12 09:06:35

目标
部署Ceph集群服务器,实现以下目标:

安装部署工具ceph-deploy
创建ceph集群
准备日志磁盘分区
创建OSD存储空间
查看ceph状态,验证
步骤




步骤一:安装部署软件ceph-deploy

1)在node1安装部署工具,学习工具的语法格式。

[root@node1 ~]#  yum -y install ceph-deploy
[root@node1 ~]#  ceph-deploy  --help
[root@node1 ~]#  ceph-deploy mon --help

2)创建目录(目录名称可以任意,推荐与案例一致)

[root@node1 ~]#  mkdir ceph-cluster
[root@node1 ~]#  cd ceph-cluster/

步骤二:部署Ceph集群

1)创建Ceph集群配置,在ceph-cluster目录下生成Ceph配置文件(ceph.conf)。

在ceph.conf配置文件中定义monitor主机是谁。

[root@node1 ceph-cluster]# ceph-deploy new node1 node2 node3

2)初始化所有节点的mon服务,也就是启动mon服务。

拷贝当前目录的配置文件到所有节点的/etc/ceph/目录并启动mon服务。

[root@node1 ceph-cluster]# ceph-deploy mon create-initial
#配置文件ceph.conf中有三个mon的IP,ceph-deploy脚本知道自己应该远程谁
  1. 在每个node主机查看自己的服务(注意每台主机服务名称不同)

    [root@node1 ceph-cluster]# systemctl status ceph-mon@node1
    [root@node2 ~]# systemctl status ceph-mon@node2
    [root@node3 ~]# systemctl status ceph-mon@node3
    #备注:管理员可以自己启动(start)、重启(restart)、关闭(stop),查看状态(status).
    #提醒:这些服务在30分钟只能启动3次,超过就报错. 
    #StartLimitInterval=30min
    #StartLimitBurst=3
    #在这个文件中有定义/usr/lib/systemd/system/ceph-mon@.service
    #如果修改该文件,需要执行命令# systemctl  daemon-reload重新加载配置
    

4)查看ceph集群状态(现在状态应该是health HEALTH_ERR)

 [root@node1 ceph-cluster]# ceph -s

常见错误及解决方法(非必要操作,有错误可以参考):

如果提示如下错误信息:(如何无法修复说明环境准备有问题,需要重置所有虚拟机)

[node1][ERROR ] admin_socket: exception getting command descriptions: [Error 2] No such file or directory

解决方案如下(仅在node1操作):

1)先检查自己的命令是否是在ceph-cluster目录下执行的!!!!如果确认是在该目录下执行的create-initial命令,依然报错,可以使用如下方式修复。

 [root@node1 ceph-cluster]# vim ceph.conf      #文件最后追加以下内容
 public_network = 192.168.4.0/24

2)修改后重新推送配置文件:

[root@node1 ceph-cluster]# ceph-deploy --overwrite-conf config push node1 node2 node3
[root@node1 ceph-cluster]# ceph-deploy --overwrite-conf mon  create-initial

3)如果还出错,可能是准备实验环境时配置的域名解析和主机名不一致!!!

步骤三:创建OSD

  1. 初始化清空磁盘数据(仅node1操作即可)。

初始化磁盘,将所有磁盘分区格式设置为GPT格式(根据实际情况填写磁盘名称)。

[root@node1 ceph-cluster]# ceph-deploy disk  zap  node1:sdb   node1:sdc   
[root@node1 ceph-cluster]# ceph-deploy disk  zap  node2:sdb   node2:sdc
[root@node1 ceph-cluster]# ceph-deploy disk  zap  node3:sdb   node3:sdc  
#相当于ssh 远程node1,在node1执行parted /dev/sdb  mktable  gpt
#其他主机都是一样的操作
#ceph-deploy是个脚本,这个脚本会自动ssh远程自动创建gpt分区

2)创建OSD存储空间(仅node1操作即可)

重要:很多同学在这里会出错!将主机名、设备名称输入错误!!!

远程所有node主机,创建分区,格式化磁盘,挂载磁盘,启动osd服务共享磁盘。

[root@node1 ceph-cluster]# ceph-deploy osd create node1:sdb  node1:sdc
#每个磁盘都会被自动分成两个分区;一个固定5G大小;一个为剩余所有容量
#5G分区为Journal日志缓存;剩余所有空间为数据盘。
[root@node1 ceph-cluster]# ceph-deploy osd create node2:sdb  node2:sdc
[root@node1 ceph-cluster]# ceph-deploy osd create node3:sdb  node3:sdc
提醒:ceph-deploy是个脚本,脚本会自动创建分区、格式化、挂载!

怎么验证分区了?怎么验证格式化?怎么验证挂载了?

[root@node1 ~]# df -Th
[root@node2 ~]# df -Th
[root@node3 ~]# df -Th

3)在三台不同的主机查看OSD服务状态,可以开启、关闭、重启服务。

[root@node1 ~]# systemctl status ceph-osd@0
[root@node2 ~]# systemctl status ceph-osd@2
[root@node3 ~]# systemctl status ceph-osd@4
#备注:管理员可以自己启动(start)、重启(restart)、关闭(stop),查看状态(status).
#提醒:这些服务在30分钟只能启动3次,超过就报错.
#StartLimitInterval=30min
#StartLimitBurst=3
#在这个文件中有定义/usr/lib/systemd/system/ceph-osd@.service
#如果修改该文件,需要执行命令# systemctl  daemon-reload重新加载配置

常见错误及解决方法(非必须操作)。

使用osd create创建OSD存储空间时,如提示下面的错误提示:

[ceph_deploy][ERROR ] RuntimeError: bootstrap-osd keyring not found; run 'gatherkeys'

可以使用如下命令修复文件,重新配置ceph的密钥文件:

[root@node1 ceph-cluster]#  ceph-deploy gatherkeys node1 node2 node3 

步骤四:验证测试

  1. 查看集群状态。

    [root@node1 ~]#  ceph  -s
    [root@node1 ~]#  ceph   osd   tree
    

2)常见错误(非必须操作)。

如果查看状态包含如下信息:

health: HEALTH_WARN
    clock skew detected on  node2, node3…  

clock skew表示时间不同步,解决办法:请先将所有主机的时间都使用NTP时间同步!!!

Ceph要求所有主机时差不能超过0.05s,否则就会提示WARN。

如果状态还是失败,可以尝试执行如下命令,重启所有ceph服务:

[root@node1 ~]#  systemctl restart ceph.target
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!