OCP NVME SSD规范解读-14.Firmware固件升级要求

4.11节 Firmware Update Requirements 描述了数据中心NVMe SSD固件更新的具体要求,确保固件升级过程既安全又可靠,同时充分考虑了设备在升级过程中的可用性和功能性。

图片

  1. FWUP-1: 设备必须记录每一次固件激活过程。这意味着固件升级过程中,设备会记录固件何时被下载并激活,以便后续追踪和审计。

  2. FWUP-2: 除非是介质使用寿命耗尽,否则设备不得对支持下载的固件次数施加任何限制。这意味着设备应支持多次固件更新,无需担心更新次数受限的问题。

  3. FWUP-3: 设备需要支持四种不同的固件提交操作模式,分别是只下载(Download only)、下载后重置时激活(Download and activate upon reset)、立即激活无须重置(Activate immediately without reset)以及未在此处列出的其他可能的操作模式。

图片

  1. FWUP-4: 固件镜像下载命令执行时,应确保不会影响设备性能。这意味着固件下载过程中,SSD应继续保持对主机I/O请求的响应,不影响正常的读写操作。

  2. FWUP-6: 设备至少支持2个读写槽用于固件更新操作,并可扩展至最多7个。这意味着设备能够同时准备和处理多个固件版本,以备在主固件有问题时快速切换至备份固件。

  3. FWUP-7: 当固件激活不需要重置设备(即FWUP-3中提到的激活方式之一)时,设备必须在接收到固件提交命令后1秒内完成固件激活过程,并准备好接收主机I/O和NVMe管理命令。同时,最大固件激活时间(Max Time for Firmware Activation, MTFA)不得超过Ah(即特定时间值,具体数值取决于文档中的定义)。

在运行中的系统上进行无重启固件激活时,要求设备能够无缝过渡,确保以下几点:

  • 设备当前状态保持不变:在固件激活过程中,不论设备目前处于何种状态,如Opal锁定状态(一种加密锁定机制),每个特性(Features)的当前值,时间戳,I/O提交/完成队列设置等核心运行状态都应该得到保留,不受固件升级过程的影响。这意味着,例如,如果有任何数据加密锁定设置,这些设置在固件更新后应保持原样;已配置的各项特性参数应保持不变;正在进行的I/O操作提交和完成队列的设置不应中断或丢失。

  • NVMe-MI状态保持一致:与NVMe管理接口(NVMe-MI)相关的状态也必须得到妥善维护,如MCTP(Management Component Transport Protocol)传输单元大小、SMBus/I2C通信频率等微控制器间通信参数应保持原有设置。此外,MCTP状态,如MCTP端点ID、逻辑区块地址(LBA)格式等底层硬件和通信协议相关的状态也需要在固件激活过程中保持不变。

  • PCIe链路状态不受影响:固件激活过程中,PCIe(Peripheral Component Interconnect Express)链路状态应保持稳定,即固件更新不会导致PCIe链路断开或重新协商,确保数据传输速率、链路宽度和带宽等连接特性不发生变化,以维持系统不间断运行的高性能要求。

  1. 自动故障转移机制:如果当前活跃固件镜像受损,设备将自动切换到另一个备份固件镜像,直至所有备份镜像用尽为止。

  2. 安全性方面,固件更新过程应遵守严格的验证和授权流程,例如确保固件来源可信,且只有经过认证的固件才能被激活。此外,固件更新过程中应保护用户数据不受损失,即使在更新失败的情况下,也要确保设备能够恢复到之前的稳定状态或工厂默认设置。

  3. 对于固件更新过程中可能出现的错误处理,设备应具备错误注入功能(Error Injection),以及端到端生命周期/永久损耗模式(EOL/PLP Failure Mode)的设置和获取功能,用于模拟和测试固件在各种极端条件下的表现。

  4. 在固件更新前后,设备应支持清除PCIe纠正错误计数器的功能,以及启用IEEE1667隔离功能(如适用),以确保固件更新前后系统的状态一致性。

  5. 固件更新后,设备应能够保存和恢复特定的DSSD特性设置,如功率状态、错误注入设置、以及延迟监控等特性,以保持设备在更新前后行为的一致性。

  6. 固件更新后,设备应当有能力恢复并继续执行延迟监控功能,即使在电源开关过程中,也应确保相关监控数据的连贯性,并在两分钟内重新开始采集延迟数据。

  7. 针对固件激活的通知事件,设备应支持Namespace Attribute Notices事件和Fiirmware Activation Notices事件,确保主机可以及时了解和响应固件更新状态的变化。

综上所述,4.11节着重规定了固件更新的各个环节,从固件下载、激活、错误处理、安全性保障,到与其它功能如延迟监控的协同配合,以及与主机通信的事件通知机制等方面,均制定了详细而严谨的要求,确保数据中心NVMe SSD固件更新过程的安全、高效和可控。

小编每日撰文不易,如果您看完有所受益,欢迎点击文章底部左下角“关注”并点击“分享”、“在看”,非常感谢!

精彩推荐:

图片

如果您也想针对存储行业分享自己的想法和经验,诚挚欢迎您的大作。
投稿邮箱:Memory_logger@163.com (投稿就有惊喜哦~)

《存储随笔》自媒体矩阵

图片

更多存储随笔科普视频讲解,请移步B站账号

图片

如您有任何的建议与指正,敬请在文章底部留言,感谢您不吝指教!如有相关合作意向,请后台私信,小编会尽快给您取得联系,谢谢!

相关推荐

  1. ubuntu 升级23.10 wifi固件缺失

    2024-03-23 08:38:06       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-23 08:38:06       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-23 08:38:06       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-23 08:38:06       87 阅读
  4. Python语言-面向对象

    2024-03-23 08:38:06       96 阅读

热门阅读

  1. Spring-ioc-纯xml配置

    2024-03-23 08:38:06       46 阅读
  2. Python 10个面试题实例

    2024-03-23 08:38:06       39 阅读
  3. Spring 框架中都用到了哪些设计模式?

    2024-03-23 08:38:06       39 阅读
  4. uni app 空挡接龙

    2024-03-23 08:38:06       35 阅读
  5. createjs实现贪吃蛇,包含成长及游戏条件重置

    2024-03-23 08:38:06       44 阅读
  6. 软件测试简介

    2024-03-23 08:38:06       42 阅读
  7. Redis是如何避免“数组+链表”的过长问题

    2024-03-23 08:38:06       40 阅读
  8. 32、计算e

    2024-03-23 08:38:06       37 阅读
  9. Python中的函数参数传递方式是怎样的?

    2024-03-23 08:38:06       51 阅读