Ceph集群部署-mgr-osd-mds配置
一、添加manager
通常每一个运行monitor的机器上同时运行一个manager,以获取同样的可用性,但是manager不涉及到选举,运行于primary/standby模式。
1、创建mgr认证keyring
1 | $ sudo ceph auth get-or-create mgr.node6 mon 'allow profile mgr' osd 'allow *' mds 'allow *' |
这里mgr的名字仍然选用主机名,也就是mgr.$(hostname -s)
2、创建mgr实例的目录
1 | sudo -u ceph mkdir /var/lib/ceph/mgr/ceph-node6/ |
3、导出mgr keyring到ngr实例目录
1 | $ sudo ceph auth get mgr.node6 -o /var/lib/ceph/mgr/ceph-node6/keyring |
4、运行mgr实例
1 | $ sudo systemctl enable ceph-mgr@node6.service |
可以看到mgr活动实例启动了,重复以上步骤添加其他mgr实例。
二、添加OSD
OSD(Object Storage Device)是真正存储数据的组件,一般生产环境至少要部署3个OSD,参数文件/etc/ceph/ceph.conf中osd pool default size = 3
设定为3,至少需要3个osd进程,集群才能达到active + clean状态。
OSD有几种后端存储,建议使用bluestore提高系统稳定性和效率,bluestore只能使用逻辑卷、磁盘或分区,注意初始化OSD时指定的逻辑卷、磁盘或者分区上的数据会全部被抹掉。一般建议OSD使用单独的机器部署,并且与OS分别使用不同的驱动器。
1、导出client.bootstrap-osd keyring
如果本地机器上没有此keyring,则需要先从集群导出到本地
1 | $ sudo ceph auth get client.bootstrap-osd -o /var/lib/ceph/bootstrap-osd/ceph.keyring |
2、创建OSD
1 | $ sudo ceph-volume lvm create --data /dev/sdb |
注意要使用正确的底层设备,lsblk可以查看系统块存储设备。
如果提示错误:
1 | ceph-volume lvm create: error: GPT headers found, they must be removed on: /dev/sdb |
需要先清除掉分区表:
1 | $ sudo partprobe -s /dev/sdb |
注意:这些操作是破坏性的,一定要确认是在正确的块设备上进行操作。
3、运行OSD
1 | $ sudo ceph-volume lvm list |
先查找osd实例的名称,然后启用相应的实例服务,ceph-volume会自动创建相应的服务并启动它们。
1 | $ sudo ceph -s |
可以看到运行了一个osd实例,重复以上步骤添加其他OSD实例。
三、添加mds
如果要使用CephFS文件系统才需要设置mds实例,对象存储和块设备存储无需mds实例。
1、创建mds实例目录
1 | $ sudo -u ceph mkdir -p /var/lib/ceph/mds/ceph-node6 |
目录格式为{cluster-name}-{id},按照惯例这里id仍然取主机名$(hostname -s)
2、创建mds实例keyring
1 | $ sudo -u ceph ceph-authtool --create-keyring /var/lib/ceph/mds/ceph-node6/keyring --gen-key -n mds.node6 |
3、将mds实例keyring导入集群并设置caps权限
1 | $ sudo ceph auth add mds.node6 osd "allow rwx" mds "allow" mon "allow profile mds" -i /var/lib/ceph/mds/ceph-node6/keyring |
或者2,3步合并为一步:
1 | $ sudo ceph auth get-or-create mds.node6 mon 'allow profile mds' mgr 'allow profile mds' mds 'allow *' osd 'allow *' sudo -u ceph tee /var/lib/ceph/mds/ceph-node6/keyring |
4、编辑/etc/ceph/ceph.conf添加mds实例
1 | \[mds.node6\] |
5、启动mds实例
1 | $ sudo systemctl enable ceph-mds@node6 |
References:
[1]CEPH-MGR ADMINISTRATOR’S GUIDE
[2]DEPLOYING METADATA SERVERS