Ceph Luminous(Ceph 12.2)增加了很多新功能,例如新的后端存储BlueStore已经稳定,主推的新的管理进程ceph-mgr,并提供了用于监控的Prometheus插件和Dashboard插件,终于不用再折腾calamari了。本文尝试在测试环境中使用ceph-deploy将Ceph集群从Kraken到Luminous。

1.准备

ceph -s确认Kraken集群上设置了sortbitwise标志,可使用下面的命令设置:

1ceph osd set sortbitwise

设置noout标志,避免每次停止节点时,Ceph通过复制数据导其他节点以重新平衡集群。

1ceph osd set noout

2.升级ceph-deploy工具

ceph-deploy工具更新到最新版,在ceph-deploy节点上配置Ceph yum源 /etc/yum.repos.d/ceph.repo:

1[ceph-noarch]
2name=Ceph noarch packages
3baseurl=https://download.ceph.com/rpm-luminous/el7/noarch
4enabled=1
5priority=2
6gpgcheck=1
7gpgkey=https://download.ceph.com/keys/release.asc
1yum install ceph-deploy python-pushy

3.更新各节点Ceph软件包

使用ceph-deploy升级各节点的ceph软件包:

1ceph-deploy install --release luminous vm1 vm2 vm3

在每个节点上执行ceph --version确认版本:

1ceph --version
2ceph version 12.2.1 (3e7492b9ada8bdc9a5cd0feafd42fbca27f9c38e) luminous (stable)

4.升级MON节点

在每个MON节点上执行:

1systemctl restart ceph-mon.target

确认MON节点的状态:

1ceph mon stat
2e4: 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,vm3

5.升级ceph-mgr

在每个MON节点上执行:

1systemctl restart ceph-mgr.target

6.升级ceph-osd

在每个OSD节点上执行:

1systemctl restart ceph-osd.target

7.最后

此时确认所有组件的版本都是Luminous的12.2.1:

 1ceph versions
 2{
 3    "mon": {
 4        "ceph version 12.2.1 (3e7492b9ada8bdc9a5cd0feafd42fbca27f9c38e) luminous (stable)": 3
 5    },
 6    "mgr": {
 7        "ceph version 12.2.1 (3e7492b9ada8bdc9a5cd0feafd42fbca27f9c38e) luminous (stable)": 3
 8    },
 9    "osd": {
10        "ceph version 12.2.1 (3e7492b9ada8bdc9a5cd0feafd42fbca27f9c38e) luminous (stable)": 3
11    },
12    "mds": {},
13    "overall": {
14        "ceph version 12.2.1 (3e7492b9ada8bdc9a5cd0feafd42fbca27f9c38e) luminous (stable)": 9
15    }
16}

接下来禁止Luminous版本之前的OSD:

1ceph osd require-osd-release luminous

禁止noot,使集群可以在以后自己需要时自己重新平衡集群:

1ceph osd unset noout

确保集群处于健康状态:

1ceph health
2HEALTH_OK

现在我们的Ceph集群以及是Luminous 12.2.1了,接下来体验一下ceph-mgr提供的Dashboard插件。

启用dashboard插件:

1ceph mgr module enable dashboard

执行完上面命令后Dashboard的http端口将会在当前active的mgr节点上被监听,使用ceph mgr dump可以确认当前激活的mgr节点。 Dashboard默认监听7000端口,使用http://ip:7000打开即可。

当前版本的ceph mgr dashboard插件只会在active的mgr节点上启动

ceph-dashboard

问题处理

升级完成后ceph health查看有下面的警告:

1ceph health
2HEALTH_WARN application not enabled on 1 pool(s)

使用ceph health detail得到下面的提示:

1ceph health detail
2HEALTH_WARN application not enabled on 1 pool(s)
3POOL_APP_NOT_ENABLED application not enabled on 1 pool(s)
4    application not enabled on pool 'kube'
5    use 'ceph osd pool application enable <pool-name> <app-name>', where <app-name> is 'cephfs', 'rbd', 'rgw', or freeform for custom applications.

根据提示操作如下:

1ceph osd pool application enable kube kubernetes
2enabled application 'kubernetes' on pool 'kube'
1ceph health
2HEALTH_OK

参考