增加/删除OSD

  • 利用ceph-deploy为现有集群增加OSD;
  • 分为2种情况讨论:
    • 现有集群的节点上增加OSD(增加硬盘);
    • 新增OSD节点;
  • 集群检测到新OSD加入后会自动开始均衡;

1.1 option1-新增OSD节点

    • 安装xfsprogs
    • 下载ceph-163源
    • 修改hostname,复制hosts到各节点
    • 创建用于部署的admin用户,配置sudo免密
    • 配置ceph-deploy到新节点ssh免密
    • 利用ceph-deploy为新节点安装ceph软件
    • ceph-deploy新增OSD节点
    • push ceph.conf + admin_key: ceph-deploy admin ceph-4

1.2 option2-现有节点增加OSD

登录ceph-deploy节点,进入集群配置的目录(my-cluster为例):

ceph-deploy osd prepare \
    ceph-4:sdc:/dev/sdb
 
# 完成后用lsblk命令查看sdb是否分成两个区
lsblk -f
 
# 激活此osd,再观察是否成功
# 因为prepare已将data盘分为了单独的一个区,所以这里activate一定要加分区号,不然会报错不能识别文件系统.
ceph-deploy osd activate \
    ceph-4:sdc1:/dev/sdb1
 
# push admin_key 给ceph-4 节点
ceph-deploy admin ceph-4

好像不用操作就生效了….仅供参考吧

ceph osd crush add-bucket ceph-4 host
ceph osd move ceph-4 root=default
# $i就是新加的OSD编号
ceph osd crush add osd.$i 1.0 host=ceph-4

ceph osd tree


osd正常运行是up 且 in状态.

#out之后,ceph开始重新平衡,拷贝此osd上数据到其它osd,此osd状态变为up且out
ceph osd out 10
#stop osd进程之后,状态变为down 且 out
systemctl stop ceph-osd@10
#删除 CRUSH 图的对应 OSD 条目,它就不再接收数据了
ceph osd crush remove osd.10
#移除osd认证key
ceph auth del osd.10
#从osd中删除osd 10,ceph osd tree中移除
ceph osd rm 10
# 移除相关主机
ceph osd crush remove ceph-4

提供一个脚本,批量移除osd:

rm_osd.sh
#!/bin/bash
osd="0 1 2 3"
for i in $osd;do
{
ceph osd out $i
systemctl stop ceph-osd@$i
ceph osd crush remove osd.$i
ceph auth del osd.$i
ceph osd rm $i
}
done
ceph osd tree
sleep 3
echo "去卸载相关的挂载点"
echo "ceph osd crush remove 相关主机"
ceph -s

  • storage/ceph/增加_删除osd.txt
  • 最后更改: 2019/04/16 18:31
  • (外部编辑)