前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[pve][ceph]升级pve6的ceph版本Luminous到Nautilus

[pve][ceph]升级pve6的ceph版本Luminous到Nautilus

作者头像
用户9314062
发布2022-05-20 14:18:59
发布2022-05-20 14:18:59
1.2K00
代码可运行
举报
文章被收录于专栏:LINUX开源玩家LINUX开源玩家
运行总次数:0
代码可运行

上次把集群节点的pve版本从v5升级到v6,这次把分布式存储ceph的版本从Luminous(v12)升级到Nautilus(v14)。

本来不想升级存储的,但是扩容新加入的节点安装的是v6,会强制安装Nautilus,如果你也有pve v5集群要扩容节点,如果你不想升级ceph,记得新的节点安装v5而不是v6。

参考:

https://pve.proxmox.com/wiki/Ceph_Luminous_to_Nautilus

状态ceph检测

必须包含下面标志(recovery_deletes,purged_snapdirs)才可以升级,如果没有就等一天再来。

代码语言:javascript
代码运行次数:0
运行
复制
# ceph osd dump | grep ^flags
flags sortbitwise,recovery_deletes,purged_snapdirs

调整配置文件

# cp /etc/pve/ceph.conf ceph.conf.bak

从Nautilus开始,所有守护进程的keyring使用'keyring'项,最简单的办法是移动全局'keyring'项到'client'段(如果没有client段就创建),删除其他段的'keyring'

代码语言:javascript
代码运行次数:0
运行
复制
[global]
     ...
     keyring = /etc/pve/priv/$cluster.$name.keyring
[osd]
      keyring = /var/lib/ceph/osd/ceph-$id/keyring

修改为:

代码语言:javascript
代码运行次数:0
运行
复制
[global]
    ...   
[client]
     keyring = /etc/pve/priv/$cluster.$name.keyring

更新源

用nautilus替换luminous

代码语言:javascript
代码运行次数:0
运行
复制
# cat /etc/apt/sources.list.d/ceph.list
deb http://download.proxmox.com/debian/ceph-luminous buster main
# sed -i 's/luminous/nautilus/' /etc/apt/sources.list.d/ceph.list
# cat /etc/apt/sources.list.d/ceph.list
deb http://download.proxmox.com/debian/ceph-nautilus buster main

暂停osd检测

一个节点执行即可

代码语言:javascript
代码运行次数:0
运行
复制
# ceph osd set noout

或者在web界面的osd管理执行

所有节点升级ceph

这里说明一下,因为下载速度很慢,所以建议在一个节点下载所有升级需要的deb包,然后拷贝到其他节点

在一个节点执行

代码语言:javascript
代码运行次数:0
运行
复制
apt update
apt upgrade -d
下面命令的node$i代表其他节点名
rsync -avz /var/cache/apt/archives/ node$i:/var/cache/apt/archives/

然后所有节点执行

代码语言:javascript
代码运行次数:0
运行
复制
apt update
apt upgrade -y

升级后运行的依然是Luminous

在所有节点重启monitor守护进程

代码语言:javascript
代码运行次数:0
运行
复制
# systemctl restart ceph-mon.target

在所有节点重启manager守护进程

代码语言:javascript
代码运行次数:0
运行
复制
# systemctl restart ceph-mgr.target

在所有节点重启OSD守护进程

重启前后对比osd版本

代码语言:javascript
代码运行次数:0
运行
复制
# ceph osd versions
{
    "ceph version 12.2.13 (8308e379909er32mr89adfd1c3d48ds3d2sb7d) luminous (stable)": 29
}
# systemctl restart ceph-osd.target

在所有节点通知ceph-volume调整用ceph-disk创建的OSDs

代码语言:javascript
代码运行次数:0
运行
复制
# ceph-volume simple scan
# ceph-volume simple activate --all

再查看osd版本

代码语言:javascript
代码运行次数:0
运行
复制
# ceph osd versions
{
    "ceph version 14.2.16 (5d5ae8873ewr8ce40d46b337485dfe35b7efe04) nautilus (stable)": 29
}

升级所有CephFS MDS守护进程

如果使用cephfs参考官网执行,注意首先把max_mds设置为1(默认是3),停止其他备用的MDS守护进程,主MDS升级完成后再恢复max_mds

强制使用Nautilus

代码语言:javascript
代码运行次数:0
运行
复制
ceph osd require-osd-release nautilus

恢复osd检测

代码语言:javascript
代码运行次数:0
运行
复制
ceph osd unset noout

问题

升级完成后执行ceph -s可能有些报错信息

1. insufficient standby MDS daemons available

设置冗余预期

代码语言:javascript
代码运行次数:0
运行
复制
ceph fs set cephfs1 standby_count_wanted 0

2. monitors have not enabled msgr2

开启msgr2

代码语言:javascript
代码运行次数:0
运行
复制
ceph mon enable-msgr2
ceph mon dump

3. crush map has legacy tunables (require firefly, min is hammer)

这种情况一般出自多次升级,比如我从更老的v10升级上来就遇到了。

查看版本配置,可见要求是luminous:

代码语言:javascript
代码运行次数:0
运行
复制
# ceph features
{
    "mon": [
        {
            ...,
            "release": "luminous",
            ...
        }
    ],
    "osd": [
        {
            ...,
            "release": "luminous",
            ...
        }
    ],
    "client": [
        {
            ...,
            "release": "luminous",
            ...
        },
        {
            ...,
            "release": "luminous",
            ...
        }
    ],
    "mgr": [
        {
            ...,
            "release": "luminous",
            ...
        }
    ]
}

修改配置(需要几个钟头再平衡数据)

代码语言:javascript
代码运行次数:0
运行
复制
ceph osd set-require-min-compat-client luminous
ceph osd crush tunables optimal
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 LINUX开源玩家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档