关于Ceph OSD添加操作步骤如下:
1、创建一个OSD,即:#ceph osd create [uuid] #若没有uuid参数,则该命令自动生成一个uuid。该命令产生一个新的osd-number。
2、为新的OSD创建默认的工作目录,即:#mkdir -p /var/lib/ceph/osd/ceph-{osd-number}
3、为新的OSD准备一块磁盘。
#mkfs.xfs -f /dev/vde
#mount /dev/vde /var/lib/ceph/osd/ceph-{osd-number}
4、初始化新的OSD工作目录。
#ceph-osd -i {osd-number} --mkfs --mkkey
注意:在执行上述命令前要求新的OSD工作目录必须为空;
5、注册新的OSD认证密钥。
#ceph auth add osd.{osd-number} osd 'allow *' mon 'allow rwx' -i /var/lib/ceph/osd/ceph-{osd-number}/keyring
6、将新的OSD添加到Crush Map中。
#ceph osd crush add osd.{osd-number} {weight} [{bucketype}={bucket-name}......}
此步骤也可以添加buckets后再添加osd,即:
#ceph osd crush add-bucket node5 host #创建一个名字为node5的bucket
#ceph osd crush move node5 root=default #将创建出来的bucket放到root下
#ceph osd crush create-or-move osd.{osd-number} 1.0 root=default host=node5 #将新的OSD添加到node5下
7、将新的OSD信息填写到ceph.conf中,即:
[osd.{osd-number}]
host = {hostname}
devs = /dev/vde
8、启动新的OSD。即:
#/etc/init.d/ceph start osd.{osd-number}
此时通过集群状态查看命令#ceph -s可以看到OSD数量以及up和in的数量都发生了变化,此时再通过命令#ceph -w可以看到ceph经过peering状态后,最终达到active+clean状态;
关于Ceph OSD删除操作步骤如下:
1、将需要删除的OSD在集群中的状态修改为out状态(之前在集群中是up+in的状态):#ceph osd out osd.3。此时待删除的OSD仍然在集群中运行着,通过集群状态查看命令#ceph -s可以看到当前集群的in的数量比up的数量少一个,少的这一个就是刚才out出去的那个OSD,即:osd.3。
2、停止刚刚out出去的OSD进程:#/etc/init.d/ceph stop osd.3。此时通过集群状态查看命令#ceph -s可以看到当前集群的in和up的数量是一样的,比之前减少了一个。通过ps ax | grep "ceph"也可以在系统中查看到运行的ceph-osd少了一个。
3、将删除的OSD从crush map中删除:
#ceph osd crush remove osd.3 #删除指定的OSD
#ceph osd crush remove node6 #删除OSD所在的bucket(此步骤可以不做)
4、清除到OSD的认证密钥。
#ceph auth del osd.3
5、在OSD Map中清除OSD。
#ceph osd rm 3
此时通过ceph集群状态查看命令#ceph -s可以看到此时的osd总数已经是正确的了;
6、从ceph.conf中清除OSD
[osd.3]
host = {hostname}