2案例2:部署ceph集群
2.1问题
沿用案例1,部署ceph集群服务器,实现以下目标:
- 安装部署工具ceph-deploy
- 创建ceph集群
- 准备日志磁盘分区
- 创建OSD存储空间
- 查看ceph状态,验证
2.2步骤
实现此案例需要按照如下步骤进行。
步骤一:部署软件
1)在node1安装部署工具,学习工具的语法格式
[root@node1 ~]# yum -y install ceph-deploy
[root@node1 ~]# ceph-deploy --help
2)创建目录
[root@node1 ~]# mkdir ceph-cluster
[root@node1 ~]# cd ceph-cluster/
步骤二:部署ceph集群
1)创建ceph集群配置
[root@node1 ceph-cluster]# ceph-deploy new node1 node2 node3
2)给所有节点安装软件包
[root@node1 ceph-cluster]# ceph-deploy install node1 node2 node3
3)初始化所有节点的mon服务(主机名解析必须正确)
[root@node1 ceph-cluster]# ceph-deploy mon create-initial
常见错误及解决方法(非必要操作,有错误可以参考):
如果提示以下错误信息:
[node1][ERROR ] admin_socket: exception getting command descriptions: [Error 2] No such file or directory
解决方案如下(在node1操作):
先检查自己的命令是否是在ceph-cluster目录下执行的!!!!如果确认是在该目录下执行的creat-initial命令,依然保存,可以使用如下方式修复
[root@node1 ceph-cluster]# vim ceph.conf #文件最后追加以下内容
public_network = 192.168.4.0/24
修改后重新推送配置文件:
[root@node1 ceph-cluster]# ceph-deploy --overwrite-conf config push node1 node2 node3
步骤三:创建OSD
1)准备磁盘分区(node1、node2、node3都做相同操作)
[root@node1 ceph-cluster]# parted /dev/vdb mklabel gpt
[root@node1 ceph-cluster]# parted /dev/vdb mkpart primary 1M 50%
[root@node1 ceph-cluster]# parted /dev/vdb mkpart primary 50% 100%
[root@node1 ceph-cluster]# chown ceph.ceph /dev/vdb1
[root@node1 ceph-cluster]# chown ceph.ceph /dev/vdb2
//这两个分区用来做存储服务器的日志journal盘
[root@node1 ceph-cluster]# vim /etc/udev/rules.d/70-vdb.rules
ENV{DEVNAME}=="/dev/vdb1",OWNER="ceph",GROUP="ceph"
ENV{DEVNAME}=="/dev/vdb2",OWNER="ceph",GROUP="ceph"
2)初始化清空磁盘数据(仅node1操作即可)
[root@node1 ceph-cluster]# ceph-deploy disk zap node1:vdc node1:vdd
[root@node1 ceph-cluster]# ceph-deploy disk zap node2:vdc node2:vdd
[root@node1 ceph-cluster]# ceph-deploy disk zap node3:vdc node3:vdd
3)创建OSD存储空间(仅node1操作即可)
[root@node1 ceph-cluster]# ceph-deploy osd create \
node1:vdc:/dev/vdb1 node1:vdd:/dev/vdb2
//创建osd存储设备,vdc为集群提供存储空间,vdb1提供JOURNAL缓存,
//一个存储设备对应一个缓存设备,缓存需要SSD,不需要很大
[root@node1 ceph-cluster]# ceph-deploy osd create \
node2:vdc:/dev/vdb1 node2:vdd:/dev/vdb2
[root@node1 ceph-cluster]# ceph-deploy osd create \
node3:vdc:/dev/vdb1 node3:vdd:/dev/vdb2
4)常见错误(非必须操作)
使用osd create创建OSD存储空间时,如提示run 'gatherkeys',可以使用如下命令修复:
[root@node1 ceph-cluster]# ceph-deploy gatherkeys node1 node2 node3
步骤四:验证测试
1)查看集群状态
[root@node1 ~]# ceph -s
2)常见错误(非必须操作)
如果查看状态包含如下信息:
health: HEALTH_WARN
clock skew detected on node2, node3…
clock skew表示时间不同步,解决办法:请先将所有主机的时间都使用NTP时间同步!!!
ceph要求所有主机时差不能超过0.05s,否则就会提示WRAN,如果使用NTP还不能精确同步时间,可以手动修改所有主机的ceph.conf,在[MON]下面添加如下一行:
mon clock drift allowed = 1
如果状态还是失败,可以尝试执行如下命令,重启ceph服务:
[root@node1 ~]# systemctl restart ceph\*.service ceph\*.target