存储节点服务器下架操作
1、操作系统版本信息
系统:GNU/Linux 7.2
内核版本:3.18.16
Ceph版本:ceph 0.94.6
2、备份crush规则
# ceph osd getcrushmap -o `date +%F`-crushmap
3、查看及调整集群数据同步速度
# ceph --admin-daemon /var/run/ceph/ceph-osd.10.asok config show|grep recover
# ceph --admin-daemon /var/run/ceph/ceph-osd.10.asok config show|grep backfill
# ceph tell osd.* injectargs "--osd_recovery_max_active 3"
# ceph tell osd.* injectargs "--osd_max_backfills 1"
【存储池操作】:清除存储集群backfill、volumes池,如无存储池操作,以下操作不用操作,直接进入第4步
设置不同步不回填
ceph osd set norecover
ceph osd set nobackfill
先从backup池host =cs219-20-2 对应规则中去掉需要去掉的osd:
ceph osd crush remove osd.$i cs219-20-2
移除backup池中host cs219-20-2
ceph osd crush remove cs219-20-2
取消不同步不回填
ceph osd unset norecover
ceph osd unset nobackfill
删除cs219-20池中的osd条目
设置不同步不回填
ceph osd set norecover
ceph osd set nobackfill
同步完之后,从volumes池host=cs219-20对应规则中去掉需要去掉的osd:
ceph osd crush remove osd.$i cs219-20
ceph osd crush remove cs219-20
取消不同步不回填
ceph osd unset norecover {待recover数据同步完成后,在进行回填数据}
ceph osd unset nobackfill
观察集群状态: iops 机器负载 osd状态 注意群里用户问题反馈
4、设置集群数据不同步、不回填
# ceph osd set norecover
# ceph osd set nobackfill
5、清除存储集群crush规则中的osd节点信息:(登录要下架的存储服务器)
清楚crush规则:
# for i in `lsblk | grep "/data/osd.*" |awk -F "/" '{print $3}'`;do ceph osd crush remove $i;done
6、设置同步、回填集群数据
# ceph osd unset norecover
【当集群数据同步完成后,再设置开启集群回填数据】
# ceph osd unset nobackfill
【为什么不直接清除完集群osd节点再进行数据同步呢??】
因为,为防止集群出现意外故障,造成存储集群不可逆的情况,这时可通过之前备份的crush规则进行修复。
7、下架集群osd节点
剔除osd节点 :【操作前,测试下】
#for i in `lsblk | grep "/data/osd.*" |awk -F "/" '{print $3}'`;do ceph osd out $i;done
停止osd节点:
# service ceph stop osd
删除osd认证密钥:
# for i in `lsblk | grep "/data/osd.*" |awk -F "/" '{print $3}'`;do ceph auth del $i;done
删除osd节点
# for i in `lsblk | grep "/data/osd.*" |awk -F "[./]" '{print $NF}'`;do ceph osd rm $i;done
删除配置文件中osd节点信息,并将配置文件同步到ceph集群中
# for i in `cat /etc/hosts |grep "^192.192."|awk -F"[ ]+" '{print $2}'`;do scp /etc/ceph/ceph.conf $i:/etc/ceph/ceph.conf;done
8、数据同步完成后观察集群使用率、集群状态
9、卸载挂载目录、删除osd数据目录、日志文件等相关osd节点信息
#for i in `lsblk | grep "/data/osd.*" |awk '{print $NF}'`;do umount $i;done
# rm -rf /data/osd.*
# rm -rf /var/log/ceph/*
【至此,存储集群osd节点服务器下架操作完成】