存储 频道

如何不重启即可完成固件升级?

固件在线升级的市场需求

传统需要冷重启服务器才能升级固件的操作,需要用户停止业务,umount文件系统,冷重启完成SSD固件升级,然后mount文件系统,重新启动业务系统的各个模块。对用户来说,操作复杂,容易出错。所以用户更希望有一种不需要重启即可完成硬件固件升级的方法。

另一方面,对于可靠性要求很高的存储系统而言,更会要求SSD必须支持固件在线升级功能,才能保证存储系统服务的连续性。存储系统通常有多种方式完成SSD的固件升级,如对目标升级SSD停止IO操作,瞬间完成固件升级后,通过缓存或者RAID机制在目标SSD重建增量数据。

固件升级步骤和激活方式

SSD固件升级主要分为下载和激活两个步骤,激活成功,固件升级成功。通过开源命令行工具nvmecli即可执行。

  • nvmecli版本1.5以下,激活操作通过命令fw-activate实现

  • nvmecli版本1.5以上,激活操作通过命令fw-commit实现

NVMe协议标准中(截图Figure 76取自《NVM Express 1.3b》),对Commit指令所跟参数有详细定义。其中Commit ActionCA)指明升级固件下载和激活不同执行方式的组合。如:

  • 001b:向指定slot下载固件,需要reset后完成激活操作

  • 011b:向指定slot下载固件,激活立即生效,固件升级完成

固件升级需要Reset

一般SSD固件升级需要Reset,也就是需要对服务器进行冷重启才能完成升级。步骤如下:

  • 通过Download命令将固件镜像文件下载到SSDDRAM

  • 主机端发送Firmware Commit指令,参数指定-a 1(即Commit Action001b),固件激活需要reset操作。需要关闭服务器后,再重启,固件才算成功被激活。这一步操作也是将固件从DRAM写入NAND

固件下载后会通过CRC校验有效性。

需要Reset操作的固件升级举例如下:

标准定义SSD支持7slotslot 1 是只读权限,用于存放出厂固件,slot 23 可用于固件下载。示例选择slot 2-s 2)进行固件下载。

         需要对服务器冷重启才能升级成功。

PBlaze5 920支持在线固件升级

新一代PBlaze5 920系列支持在线固件升级功能,固件升级可以在业务有IO的情况下进行,无需重启服务器。升级步骤如下:

  • 固件1正常运行时,通过Download命令将固件2镜像文件下载到SSDDRAM

  • 激活:主机端发送Firmware Commit指令,参数指定-a 3(即Commit Action011b,无需reset,即可完成固件激活。

在线固件升级举例如下

根据测试,执行在线升级指令后,业务IO仅暂停1s后恢复。

由于SSD在数据中心大量部署,如果批量进行在线固件升级,对业务还是有较大影响,所以仍然需要大量用户环境的实际验证。虽然PBlaze5 920支持有IO的情况下进行固件在线升级,Memblaze强烈建议:

  • 用户在业务压力较小时进行固件升级操作;

  • 对于业务压力持续很大的业务系统,建议停止业务做SSD固件升级,但是由于不需要umount文件系统、不需要停止应用、更不需要重启服务器,用户所需要付出的代价相比传统升级方式小了很多;

  • 双端口场景下,在线升级的目标一般是要在存储系统业务不停止的情况下完成,所以需要存储系统相关缓存、RAID等机制的保证。

 

 

 


特别提醒:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
3
相关文章