k8s中使用rook-ceph的扩缩容问题

ceph中osd迁移

  • ceph集群中通过osd数据迁移实现集群存储扩缩容及故障排除

1.1 先关闭osd服务

# 编辑osd的deploy,副本数变为0
kubectl -n rook-ceph edit deploy rook-ceph-osd-2

# 此时ceph中对应osd的状态变为down

ceph中osd的状态讲解

  • 集群内(in)
  • 集群外(out)
  • 活着且在运行(up)
  • 挂了且不再运行(down)

状态流转过程

  • 正常情况下OSD的状态是up in状态,如果down掉OSD,它的状态会变为down in,等待数据均衡完成后osd变为down out状态
  • Ceph 会把其归置组迁移到其他OSD, CRUSH 就不会再分配归置组给它。

2.2 在ceph中清除对应的osd

  • 当osd的状态变为down时,会自动触发数据迁移!此时需要关注osd的状态是否变为down out,可以通过ceph osd stat查看
[root@data1 ~]# ceph osd stat
4 osds: 3 up (since 23m), 3 in (since 13m); epoch: e345
  • 变为down out状态,开始清除osd
## 清除osd
ceph osd rm osd.2

## 从crush map中删除OSD
ceph osd crush rm osd.2

## 删除残留的权限数据,否则影响新的osd启动
ceph auth del osd.2

ceph中osd的扩容

  • 通过通过增加盘的方式进行扩容,只需要重启rook-ceph-operator服务即可
  • 如果需要纵向扩容,即增加磁盘容量!可以先通过数据迁移,执行操作1osd迁移后,在增加新的磁盘

你可能感兴趣的:(k8s,kubernetes,ceph,容器)