ceph版本升级

当前版本 目标版本
15.2.17(octopus) 16.2.11(pacific)

1. 准备工作

1.1 备份配置信息及文件

备份ceph目录下的文件

mkdir ~/ceph_back && cp -r /etc/ceph ~/ceph_back/ 

备份monmap

 ceph mon getmap -o ./ceph_back/monmap 

1.2 更新ceph源

更新源文件ceph版本名称

sudo sed -i 's/octopus/pacific/' /etc/apt/sources.list && sudo apt update

确认可更新版本是否是目标版本

sudo apt-get update
sudo apt list ceph --upgradable

1.3. 检查集群健康状态

检查集群健康状态,推荐升级时集群没有任何osd和pg异常集群: health_ok

2. 升级步骤

2.1 集群设置

1. 集群设置noout

ceph osd set noout

2. 修改配置

  • 升级16.2.6版本bug(当前版本可不配置)
ceph config get osd bluestore_fsck_quick_fix_on_mount 
ceph config set osd bluestore_fsck_quick_fix_on_mount false
  • 关闭mds健康检查
ceph config set mon mon_mds_skip_sanity true

Note: ceph config get mon mon_mds_skip_sanity 获取值

  • 禁用standby_replay
ceph fs set <fs_name> allow_standby_replay false

重要信息: 每个fs都要设置一下

ceph fs get myfs |grep replay如果没有输出即是false,有输出则修改失败

如果已经存在replay的mds,需要执行命令ceph mds fail cargo-cluster-xx: cargo-cluster-xx 即对应的replay的mds服务

  • 修改fs的max_mds为1
ceph fs set <fs_name> max_mds 1 

重要信息: 每个fs都要设置

ceph fs status 检查每个fs是否只有一个rank0的mds是active状态
将rank0之外的MDS服务停止:systemctl stop ceph-mds@$HOSTNAME.service
等待集群的定期健康检查停用队列里非0的mds服务ceph status

2.2 升级ceph包

  • 升级当前节点全部ceph包
sudo apt --only-upgrade install ceph

升级ceph任何一个包当前节点的其他ceph包也会一起被作为依赖升级,所以直接写ceph

  • 重启当前节点ceph各服务
sudo systemctl restart ceph.target
  • 恢复配置
ceph fs set <fs_name> max_mds <original_max_mds> 
ceph config rm mon mon_mds_skip_sanity
  • 恢复配置bluestore_fsck_quick_fix_on_mount
ceph config set osd bluestore_fsck_quick_fix_on_mount true
  • 取消osd设置
ceph osd unset noout

Note: 等待集群恢复健康ceph status

2.3 完成升级

升级步骤完成之后, 任意集群节点内执行命令ceph versions查看版本确认版本都升级到16.2.11
执行命令如下,不再兼容旧版本osd服务

ceph osd require-osd-release pacific

2.4 新功能

  • cephfs-top
  1. 安装包
sudo apt-get install cephfs-top
  1. mgr加载stats模块
ceph mgr module enable stats
  1. 通过命令查看stats的监控信息
ceph fs perf stats | python3 -m json.tool

json格式的输出,使用命令格式化打印

  1. 创建fstop用户
ceph auth get-or-create client.fstop mon 'allow r' mds 'allow r' osd 'allow r' mgr 'allow r'
  1. 创建钥匙环文件
ceph auth get client.fstop -o /etc/ceph/ceph.client.fstop.keyring
  1. 执行命令查看fs top
cephfs-top
posted @ 2023-02-06 14:24  ishmaelwanglin  阅读(360)  评论(0编辑  收藏  举报