Ceph Luminous(Ceph 12.2)增加了很多新功能,例如新的后端存储BlueStore已经稳定,主推的新的管理进程ceph-mgr,并提供了用于监控的Prometheus插件和Dashboard插件,终于不用再折腾calamari了。本文尝试在测试环境中使用ceph-deploy将Ceph集群从Kraken到Luminous。
1.准备
ceph -s确认Kraken集群上设置了sortbitwise标志,可使用下面的命令设置:
ceph osd set sortbitwise设置noout标志,避免每次停止节点时,Ceph通过复制数据导其他节点以重新平衡集群。
ceph osd set noout2.升级ceph-deploy工具
将ceph-deploy工具更新到最新版,在ceph-deploy节点上配置Ceph yum源 /etc/yum.repos.d/ceph.repo:
[ceph-noarch]
name=Ceph noarch packages
baseurl=https://download.ceph.com/rpm-luminous/el7/noarch
enabled=1
priority=2
gpgcheck=1
gpgkey=https://download.ceph.com/keys/release.ascyum install ceph-deploy python-pushy3.更新各节点Ceph软件包
使用ceph-deploy升级各节点的ceph软件包:
ceph-deploy install --release luminous vm1 vm2 vm3在每个节点上执行ceph --version确认版本:
ceph --version
ceph version 12.2.1 (3e7492b9ada8bdc9a5cd0feafd42fbca27f9c38e) luminous (stable)4.升级MON节点
在每个MON节点上执行:
systemctl restart ceph-mon.target确认MON节点的状态:
ceph mon stat
e4: 3 mons at {vm1=192.168.61.21:6789/0,vm2=192.168.61.22:6789/0,vm3=192.168.61.23:6789/0}, election epoch 38, leader 0 vm1, quorum 0,1,2 vm1,vm2,vm35.升级ceph-mgr
在每个MON节点上执行:
systemctl restart ceph-mgr.target6.升级ceph-osd
在每个OSD节点上执行:
systemctl restart ceph-osd.target7.最后
此时确认所有组件的版本都是Luminous的12.2.1:
ceph versions
{
"mon": {
"ceph version 12.2.1 (3e7492b9ada8bdc9a5cd0feafd42fbca27f9c38e) luminous (stable)": 3
},
"mgr": {
"ceph version 12.2.1 (3e7492b9ada8bdc9a5cd0feafd42fbca27f9c38e) luminous (stable)": 3
},
"osd": {
"ceph version 12.2.1 (3e7492b9ada8bdc9a5cd0feafd42fbca27f9c38e) luminous (stable)": 3
},
"mds": {},
"overall": {
"ceph version 12.2.1 (3e7492b9ada8bdc9a5cd0feafd42fbca27f9c38e) luminous (stable)": 9
}
}接下来禁止Luminous版本之前的OSD:
ceph osd require-osd-release luminous禁止noot,使集群可以在以后自己需要时自己重新平衡集群:
ceph osd unset noout确保集群处于健康状态:
ceph health
HEALTH_OK现在我们的Ceph集群以及是Luminous 12.2.1了,接下来体验一下ceph-mgr提供的Dashboard插件。
启用dashboard插件:
ceph mgr module enable dashboard执行完上面命令后Dashboard的http端口将会在当前active的mgr节点上被监听,使用ceph mgr dump可以确认当前激活的mgr节点。
Dashboard默认监听7000端口,使用http://ip:7000打开即可。
当前版本的ceph mgr dashboard插件只会在active的mgr节点上启动

问题处理
升级完成后ceph health查看有下面的警告:
ceph health
HEALTH_WARN application not enabled on 1 pool(s)使用ceph health detail得到下面的提示:
ceph health detail
HEALTH_WARN application not enabled on 1 pool(s)
POOL_APP_NOT_ENABLED application not enabled on 1 pool(s)
application not enabled on pool 'kube'
use 'ceph osd pool application enable <pool-name> <app-name>', where <app-name> is 'cephfs', 'rbd', 'rgw', or freeform for custom applications.根据提示操作如下:
ceph osd pool application enable kube kubernetes
enabled application 'kubernetes' on pool 'kube'ceph health
HEALTH_OK