前提:在配置文件中添加相应的设置,复制到各个节点,当某个osd或者mon出现问题时可以通过删除后重新添加来解决。
OSD删除
1、 将osd从集群中移除。
Ceph osd out{osd-num}
2、 停止osd服务。
/etc/init.d/ceph stop osd.{osd-num}
3、 移除osd。
Ceph osd crush remove osd.{osd-num}
Ceph auth del osd.{osd-num}
Ceph osd rm {osd-num}
4、 删除ceph.conf中的相应信息。
OSD添加
在添加OSD之前,同样需要在配置文件中加入新的osd,以及修改主节点的/etc/hosts文件,配置无密码访问,拷贝ceph.conf文件到每个节点,下面的uuid即为当前集群的uuid。
1、 ceph osd create {uuid}
生成的数字即为osd-num
2、 ceph-osd -i {osd-num} --mkfs --mkkey
生成osd的keyring,需要清空作为osd的目录下的所有数据,否则会出错。
3、ceph auth add osd.{osd-num} osd 'allow *' mon 'allow rwx' -i /path-to/keyring
将生成的keyring添加给osd。
将生成的keyring添加给osd。
4、 ceph osd crush add-bucket {hostname} host
5、 ceph osd crush move {hostname} root=default
6、 ceph osd crush add {id-or-name} {weight} {bucket-type=bucket-name}
7、 /etc/init.d/ceph start osd.{osd-num}
Mon添加
1、 ceph auth get mon. –o {monkeyring}
2、 ceph mon getmap –o {monmap}
3、 ceph-mon -i {mon-id} --mkfs --monmap {monmap} --keyring {monkeyring}
4、 ceph mon add {mon.id} {IP}:{port}
5、 /etc/init.d/ceph start mon.3
Mon删除
从健康的集群中删除
1、 service ceph –a stop mon.{mon-id}
2、 ceph mon remove {mon-id}
3、 从ceph.conf中删除
从不健康的集群中删除
1、 ceph mon dump
2、 service ceph stop mon
3、 ceph-mon –i {mon-id} --extract-monmap {mappath}
4、 monmaptool {mappath} -rm {mon-id}
5、 ceph-mon –I {mon-id} –inject-monmap {monpath}