(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202211255336.3
(22)申请日 2022.10.13
(71)申请人 中电云数智科技有限公司
地址 430058 湖北省武汉市蔡甸区经济技
术开发区人工智能科技园N栋研发楼3
层N3013号
(72)发明人 张得旭
(74)专利代理 机构 北京尚钺知识产权代理事务
所(普通合伙) 11723
专利代理师 王海荣
(51)Int.Cl.
G06F 8/65(2018.01)
G06F 9/455(2006.01)
G06F 16/27(2019.01)
(54)发明名称
一种基于operator的分布式存 储升级方法
(57)摘要
本发明涉及分布式存储升级技术领域, 提供
一种基于operator的分布式存储升级方法, 包
括: 升级存储业务组件, 包括: 对不同节点的不同
组件进行升级以及对不同节点上的相同组件进
行升级, 其中, 当对不同节点上的相同组件进行
升级时, 如果所述组件不影响业务, 对所述组件
进行并行升级; 如果所述组件影响业务, 通过批
次升级策略对 所述组件进行升级; 通过升级配置
文件和升级rpm包升级机器配置。 根据本发明示
例性实施例的基于operator的分布式存储升级
方法, 可以提升升级效率, 提高组件新老版本业
务切换的速度, 提升rpm包的升级效率, 保证组件
生命周期的环境 一致性, 降低升级失败的概 率。
权利要求书1页 说明书7页 附图2页
CN 115543383 A
2022.12.30
CN 115543383 A
1.一种基于operator的分布式存 储升级方法, 其特 征在于, 所述方法, 包括:
升级存储业务组件, 包括: 对不同节点的不同组件进行升级以及对不同节点上的相同
组件进行升级, 其中, 当对不同节点上 的相同组件进行升级时, 如果所述组件不影响业务,
对所述组件进行并行升级; 如果所述组件影响业务, 通过批次升级策略对所述组件进行升
级; 通过升级配置文件和升级rpm包升级机器 配置。
2.根据权利 要求1所述的基于operator的分布式存储升级方法, 其特征在于, 当对不同
节点的不同组件进行升级时, 如果所述组件之间相互不存在依赖关系, 对所述组件进行并
行升级;
如果所述组件之间存在依赖关系, 根据依赖顺序对所述组件进行串行升级, 包括: 先对
所有节点上被依赖的组件进行升级。
3.根据权利 要求1所述的基于operator的分布式存储升级方法, 其特征在于, 通过批次
升级策略对所述组件进行升级, 包括: 获取存储集群中保护域、 集群控制节点、 硬盘池服务
节点以及Kubernetes master节点的批次信息, 根据获取的批次信息生 成批次升级策略, 并
根据生成的批次升级策略确定 升级批次, 按升级批次对各批次内节点上的组件进行升级。
4.根据权利 要求3所述的基于operator的分布式存储升级方法, 其特征在于, 按升级批
次对各批次内节点上的组件进 行升级, 包括: 当一个批次内某个节点上的组件正在升级时,
批次内的互斥节点上的组件不允许升级, 将其余节点上的组件与该节点上的组件进行并行
升级。
5.根据权利 要求1所述的基于operator的分布式存储升级方法, 其特征在于, 通过批次
升级策略对所述组件进 行升级, 包括: 不绑定用于升级组件的工作 协程与升级批次, 通过每
个工作协程动态获取待升级的节点信息, 对所述节点上的组件进行升级。
6.根据权利 要求1所述的基于operator的分布式存储升级方法, 其特征在于, 通过批次
升级策略对所述组件进行升级, 包括: 根据服务器性能设置goroutine的数量, 通过相应数
量的gorouti ne对集群中的存 储组件进行升级。
7.根据权利 要求1所述的基于operator的分布式存储升级方法, 其特征在于, 通过批次
升级策略对所述组件进行升级, 包括: 当归属某个保护域的全部节点上 的组件都升级完成
后, 升级控制流 程回调通知所述保护域启动新版本组件的处 理逻辑。
8.根据权利 要求1所述的基于operator的分布式存储升级方法, 其特征在于, 通过升级
配置文件和升级rpm包升级机器 配置, 包括:
升级配置文件, 根据存储集群中保护域、 集群控制节点、 硬盘池服务节点以及
Kubernetes master节点的批 次信息生成mcp, 将生成的多个mcp划分后与集群中对应的节
点绑定;
采用mcp对rpm包进行升级编排控制, 并采用ansible对rpm包进行本地升级。
9.根据权利要求8所述的基于operator的分布式存储升级方法, 其特征在于, 采用
ansible对rpm包进行本地升级, 包括: 编写an sible playbook, 安装并启动systemd服务, 通
过拉取rpm镜像并提取rpm包 对rpm包进行升级。
10.根据权利要求1所述的基于operator的分布式存储升级方法, 其特征在于, 所述方
法中, 存储业务组件以pod形式存在。权 利 要 求 书 1/1 页
2
CN 115543383 A
2一种基于oper ator的分布式存 储升级方 法
技术领域
[0001]本发明涉及分布式存储升级技术领域, 尤其涉及一种基于operator的分布式存储
升级方法。
背景技术
[0002]当前分布式存储领域, 都采用传统的部署方式, 即直接将存储集群部署到物理机
上。 因此, 对于存储集群的升级, 往往需要开发一个控制程序, 对集群中涉及到的各种组件
进行升级控制, 比如控制组件间的升级顺序、 触发组件版本更新等。 与此同时, 还需要考虑
升级失败的场景, 并提供重试机制, 保障升级成功。 由于采用的是物理机部署形态, 所有组
件是直接暴露在宿主机上并共享资源, 相互之间也没有隔离, 因此在升级的时候会存在以
下问题:
[0003]1.共享库依赖问题
[0004]对于物理机部署形态, 一个物理节点上的各种lib库为共享资源, 即多个组件依赖
相同的lib库, 因此, 升级组件和lib库时, 会存在一些问题(假设组件A、 组件B都依赖某个
lib库):
[0005]a)如果采用串行升级的方式, 即先更新lib库, 然后再更新组件A、 组件B, 那么, 当
更新lib库后, 此时lib库为新版本, 组件A、 组件B均为老版本, 对于组件A、 组件B都会存在程
序跑飞的风险; 如果先更新组件A、 组件B, 则可能出现老版本的lib库无法兼容新版本组件,
最终也会导 致组件程序崩溃;
[0006]b)考虑到a)的问题, 在其基础上进一步做优化, 即: 更新lib库之前, 将老版本lib
库备份, lib库更新完成后, 组件A、 组件B依旧使用老版本lib库; 接着更新组件A、 组件B, 更
新完组件后将其lib库切换到新版本lib库即可, 最后删除旧版本lib库, 最终完成lib库版
本整体切换以及组件版本更新操作; 该方法能解决正常流程共享库依赖的问题, 但在节点
异常的情况下(比如节点掉电), lib库可能处于新老版本损坏的中间态, 因此依然存在程序
跑飞、 崩溃的风险, 只是概 率相对较低;
[0007]c)鉴于a)、 b)的问题, 可以考虑采用并行升级的方式, 即并行触 发lib库、 组件A、 组
件B的更新流程, 这样就不存在新老版本兼容的问题; 但从代码执行 的角度来看, 即使并行
触发也无法保证lib库与组件是100%的同步更新, 集群规模越大不同步现象越明显; 与此
同时, 如果组件A、 组件B之间有依赖要求, 则不能采用并行升级方式;
[0008]总之, 对于组件、 lib库 而言, 无论采用串行升级还是采用并行升级, 都会存在程序
跑飞、 崩溃的风险。
[0009]2.升级效率低
[0010]对于一个存储系统而言, 往往包括许多组件, 这样才能支撑其复杂的存储功能, 这
些组件大致可分为三类: 基础设施组件、 管理面组件、 业务面组件; 这些组件之间采用串行
升级, 组件内采用串行或并行升级; 一个组件在节点上的更新过程, 可以简单看作:
[0011]a)切走组件业 务, 并停止组件服 务;说 明 书 1/7 页
3
CN 115543383 A
3
专利 一种基于operator的分布式存储升级方法
文档预览
中文文档
11 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共11页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 00:48:35上传分享