ceph-维护操作

对ceph集群集群进行维护操作:

MON

1
2
3
4
5
# mon-host 是 MON 主机的 hostname
systemctl start ceph-mon@mon-host
systemctl stop ceph-mon@mon-host
systemctl restart ceph-mon@mon-host
systemctl status ceph-mon@mon-host

OSD

1
2
3
4
5
6
* 表示会对 该节点上的所有osd进程操作,如果只对单个osd进行操作,可以把*替换成具体的osd-number号
ssh {osd-node}
systemctl start ceph-osd@*
systemctl stop ceph-osd@*
systemctl restart ceph-osd@*
systemctl status ceph-osd@*

节点关机维护

  1. 设置noout 避免在异常情况下触发集群数据重新平衡

    1
    ceph osd set noout
  2. 关闭节点上的osd进程

    1
    2
    ceph osd down {osd-number} ##分别把该节点上的osd设置为down状态
    systemctl stop ceph-osd@* ##stop该节点上的所有osd进程
  3. 关机节点

    1
    shutdown -h now

维护完成,启动节点

  1. 恢复noout设置
    1
    ceph osd unset noout

扩容条件

  1. PB级的集群的容量超过50%,就要考虑扩容了。 假如OSD主机的磁盘容量为48TB(12 4TB),则需要backfill的数据为24TB(48TB 50%) ,假设网卡为10Gb,则新加一个OSD时,集群大约需要19200s(24TB/(10Gb/8)) 约3小时完成backfill,而backfill后台数据填充将会涉及大量的IO读和网络传输,必将影响生产业务运行。 如果集群容量到80%再扩容会导致更长的backfill时间,近8个小时。
  2. OSD对应的磁盘利用率如果超过50%,也需要尽快扩容。
  3. 在业务闲时扩容

升级ceph软件版本

  1. 在MON和OSD机器上升级安装指定的ceph版本的软件包
  2. 逐个重启MON进程
  3. 设置noout 避免在异常情况下触发集群数据重新平衡

    1
    ceph osd set noout
  4. 逐个重启OSD进程

    1
    2
    ceph osd down {osd-number} #提前mark down, 减少slow request
    systemctl restart ceph-osd@{osd-number} #用systemctl重启OSD进程
  5. 恢复noout 设置

    1
    ceph osd unset noout