作者:SmartX 研发工程师 周依然

在 SMTXOS 4.0 版本中,运维管理新增了一键升级功能,用户可以通过在界面上传必要升级文件(目前为正式版本 ISO 及对应校验文件)后,对集群进行软件升级操作。在整个升级过程中,减少了维护人员的手动操作,提升了使用体验。


一键升级功能在对集群升级时,采用滚动升级方式,在同一时间内,保证集群内有且只有一台服务器处于升级状态,SMTXOS 保证软件向后兼容性,在升级过程中保证节点间版本不一致不会影响集群整体运行,保证业务可用。

超融合软件升级挑战

对于 IT 运维人员来说,安全、便利的软件升级功能是非常重要的,尤其涉及数据存储的软件升级。一般来说在生产系统进行升级前,往往要求运维人员编写一份完整的升级流程报告,将可能发生的问题和场景都进行模拟或预演,以避免升级过程中引起业务中断或是产生其他不良的影响。


尤其对于基于分布式架构,由多个节点构成的超融合系统来说,软件升级功能的设计和实现在可靠性和便利性等方面都需要进行诸多考虑:

  1. 传统架构存储控制器升级必须停机升级,业务影响时间长,超融合系统由于支撑更多业务,涉及更多节点,停机升级对业务的影响更大,所以超融合软件升级需要支持在线升级功能,将业务影响时间尽量缩短;
  2. 为了保证升级顺利完成,需要对当前环境自动进行检查和判定,避免升级过程中发现部分节点不符合要求引起升级失败,并需要减少人员检查带来的潜在失误;
  3. 由于 超融合集群一般包含多个节点,很难统一所有节点在同一个时间点全部完成升级,因此需要节点间支持滚动升级功能。滚动升级意味着升级过程中集群内部会出现节点软件版本不一致,系统需要保证向后兼容性;
  4. 集群节点数量多,手工操作容易出现误操作,需要通过自动化升级降低升级的复杂度;
  5. 超融合软件升级可能需要涉及到相关节点重启,并可能造成一定的数据回复,避免升级影响时间过长,需要降低数据恢复量。

SMTX OS 4.0 一键升级

针对以上需求,SMTX OS 4.0 一键升级功能重点实现了以下特性:

自动化升级,无需人工干预

在准备工作完成后,整个升级过程可在线进行,并且环境检查,逐个软件升级、重启等全部都自动完成,减少人工操作带来的差错。

节点间滚动升级,业务无中断

在进行必要的准备工作后,进入到滚动升级阶段,通过升级控制组件对节点升级进行控制,保证滚动升级正确性且业务无中断。

升级期间版本兼容性保障

SMTX OS 各个版本中保证了软件的向后兼容,在升级过程中允许节点间版本不一致,并保证不会对集群已有业务产生影响。

升级期间数据恢复最小化

SMTX OS 的分布式块存储模块( ZBS ) 是通过多副本机制保证系统在单节点宕机时,数据不会丢失。多副本采用强一致性写,保证数据一致性。在滚动升级过程中,会依次重启节点存储服务,此时发往该节点的 IO 请求会出现失败。如果是写副本请求,则会造成副本剔除,进而引发数据恢复。在用户 IO 比较繁忙时,数据恢复量可能会较大,导致升级过程需要耗费较长时间等待数据恢复,增加了升级中出现意外情况的风险。

在 4.0 版本中, ZBS 新增“升级模式”,目标是尽可能的降低这个过程产生的数据恢复需求。调整的原则是不改变当前遵循的数据安全性保证:

  • 所有有效副本的数据是强一致的,不允许部分副本数据暂时落后的情况发生;
  • 不允许在一个 IO 请求中进行个别副本的请求重试,避免时序和 Generation 不匹配的问题。

通过尽量减少剔除的频率来降低数据恢复量。在集群处于升级模式下,可能会产生短时的 IO 延迟升高现象。升级模式默认关闭,仅在一键升级功能中开启,避免集群出现大量数据恢复,造成升级时间过长。

如何使用

升级操作前,集群必须首先进行如下准备工作:
(注意:在升级过程中,需要确保用户在集群上不执行 Web 控制台写操作,否则升级会有失败风险。)

上传升级文件

升级之前,如果对应的升级文件尚未上传,需要上传。升级文件包括一个 ISO 文件和一个元数据 JSON 文件,两个都要上传,缺一不可。


1.打开“设置”页面,找到“软件升级”区域,点击“管理”按钮。“软件升级”区域会展开进入编辑状态。根据集群内各个节点的所安装的软件的版本以及是否有可用升级,所看到的页面会有所不同。当集群内各个节点所安装的软件版本一致,且有可用升级时,“可用升级”标签页如下:

poneOne-click upgrade-.png

2.点击“上传升级文件”(尚无上传任何升级文件时)或是“上传新升级文件”按钮(当已上传过升级文件,但并不是目标版本的升级文件时):

ptwoOne-click upgrade-.png

把下载的用于升级 ISO 文件和元数据 JSON 拖拽或通过“选择文件”按钮添加到上述窗口内。如果这两个文件通过合法性检查,则“上传”按钮变为可用,点击它进行上传。

3.如果上传过程中出现问题,会有提示;当上传成功后,可以看到对应的升级文件后显示一个“升级”按钮。

升级

点击目标升级文件后的“升级”按钮进行升级。

1.首先会进行升级前的与检查。

pthree-click upgrade-pthree.png

如果无法通过此检查,会显示具体出错原因。需要先解决掉所有的问题后,再进行尝试。如果通过此检查,会弹出以下窗口:

pfourOne-click upgrade-.png

2.点击“升级”进行下一步。

-pfiveOne-click upgrade.png

点击“查看日志”可以查看升级实时进展。点击“关闭”按钮可以在等待升级完成的过程中,在 Web 控制台中继续进行信息浏览等操作(不能对控制台进行写入数据的操作)。

psixOne-click upgrade-.png

如果想再次了解升级进度,点击“查看升级进度”或位于整个页面右上角的升级进度按钮即可。

3.如果所有节点上软件都已成功升级,则会显示如下窗口:

psevenOne-click upgrade-.png

升级失败时,则显示如下:


upgrade-unsuccessful

此时需要通过查看日志,找到原因,排除原因后再次尝试升级。再次尝试时,不论某个节点是否在上一次升级过程中是否成功升级,集群每个节点都会再次经历升级过程。若仍升级失败,请联系售后人员。

4.升级成功后,“软件升级”部分会展示如下:

pnineOne-click upgrade-.png

移除过时升级文件

如果存在以前已上传的升级文件,但并没有真正进行过升级,且其版本已经低于或等于目前运行的 SMTX OS 实际版本,可以选择将其移除。

 

点击对应升级文件后的“移除”按钮,弹出以下窗口:

pten-One-click upgrade-.png

查看升级历史记录

点击“历史记录”标签页查看以往的升级的记录,包括升级是否成功、升级时间、耗时等。

pelevenOne-click upgrade-.png