首页 > 代码库 > 如何升级Ceph版本及注意事项

如何升级Ceph版本及注意事项

升级软件版本在日常运维中是一个常见操作。 本文分享一下Ceph版本升级的一些经验。

一般升级流程和注意如下:

 

1.  关注社区Release notes 和 ceph-user邮件订阅列表,获取社区发布的最新版本

http://docs.ceph.com/docs/master/release-notes/

2.  根据经验一般刚出的版本问题比较多;出于稳定性的考虑,线上正式环境的版本一般会落后社区1个版本; 并在这段时间密切关注社区此版本的bug消息

3. 如果没有重大问题,则在测试环境升级测试,跑1周的稳定性测试,看是否出现问题

4. 如果测试环境无问题,正式环境升级

 

Ceph升级脚本

 

在其中一个MON执行如下命令: 

cat <<‘EOF‘>update_ceph.sh

#1. 改为国内源

export CEPH_DEPLOY_REPO_URL=http://mirrors.163.com/ceph/debian-jewel
export CEPH_DEPLOY_GPG_URL=http://mirrors.163.com/ceph/keys/release.asc

#2. 配置 MON、OSD IP地址

MON="10.25.195.4 10.25.195.6 10.25.195.8"
OSD="10.25.194.2 10.25.194.3 10.25.194.4 10.25.194.5 10.25.194.6 10.25.194.7 10.25.194.8 10.25.194.9 10.25.194.10 10.25.194.11 10.25.194.12 10.25.194.13 10.25.194.14 10.25.194.15 10.25.194.16 10.25.194.17 10.25.194.18 10.25.194.19 10.25.194.20 10.25.194.21 10.25.194.22"

#3. 升级MON和OSD上的Ceph

#ceph-deploy install --release {release-name} ceph-node1[ ceph-node2]
ceph-deploy install $MON $OSD

#4. 设置OSD noout避免产生rebalance

ceph osd set noout

# 5. 重启 MON/ OSD 进程

for i in $MON; do
    ssh $i sudo systemctl restart ceph-mon@*
    sleep 3s
done

for i in $OSD; do
    ssh $i sudo systemctl restart ceph-osd@*
    sleep 3s

done

#6. 去掉设置OSD noout

ceph osd unset noout

#7. check mon/osd version 

ceph tell mon.* version
ceph tell osd.* version

EOF

如何升级Ceph版本及注意事项