在线固件升级的市场需求
传统需要冷重启服务器才能升级固件的操作,需要用户停止业务,umount文件系统,冷重启完成SSD固件升级,然后mount文件系统,重新启动业务系统的各个模块。对用户来说,操作复杂,容易出错。所以用户更希望有一种不需要重启即可完成硬件固件升级的方法。
另一方面,对于可靠性要求很高的存储系统而言,更会要求SSD必须支持固件在线升级功能,才能保证存储系统服务的连续性。存储系统通常有多种方式完成SSD的固件升级,如对目标升级SSD停止IO操作,瞬间完成固件升级后,通过缓存或者RAID机制在目标SSD重建增量数据。
固件升级步骤和**方式
SSD固件升级主要分为下载和**两个步骤,**成功,固件升级成功。通过开源命令行工具nvmecli即可执行。
在NVMe协议标准中(截图Figure 76取自《NVM Express 1.3b》),对Commit指令所跟参数有详细定义。其中Commit Action(CA)指明升级固件下载和**不同执行方式的组合。如:
固件升级需要Reset
一般SSD固件升级需要Reset,也就是需要对服务器进行冷重启
才能完成升级。步骤如下:
固件下载后会通过CRC校验有效性。
需要Reset操作的固件升级举例如下:
标准定义SSD支持7个slot,slot 1 是只读权限,用于存放出厂固件,slot 2和3 可用于固件下载。示例选择slot 2(-s 2)进行固件下载。
需要对服务器冷重启才能升级成功。
PBlaze5 920支持固件在线升级
新一代PBlaze5 920系列支持固件在线升级功能,固件升级可以在业务有IO的情况下进行,无需重启服务器。升级步骤如下:
在线固件升级举例如下:
根据测试,执行在线升级指令后,业务IO仅暂停1s后恢复。
由于SSD在数据中心大量部署,如果批量进行在线固件升级,对业务还是有较大影响,所以仍然需要大量用户环境的实际验证。虽然PBlaze5 920支持有IO的情况下进行固件在线升级,Memblaze强烈建议:
本文作者:王瑜 | Memblaze 产品工程师
更多原创技术内容,请关注 Memblaze 微信公众号。