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
- 安装包
sudo apt-get install cephfs-top
- mgr加载stats模块
ceph mgr module enable stats
- 通过命令查看stats的监控信息
ceph fs perf stats | python3 -m json.tool
json格式的输出,使用命令格式化打印
- 创建fstop用户
ceph auth get-or-create client.fstop mon 'allow r' mds 'allow r' osd 'allow r' mgr 'allow r'
- 创建钥匙环文件
ceph auth get client.fstop -o /etc/ceph/ceph.client.fstop.keyring
- 执行命令查看fs top
cephfs-top