特性配置 - 1. Sanitize Capabilities (SANICAP) (第265页)
NVME2.0协议解读 1 min read

特性配置 - 1. Sanitize Capabilities (SANICAP) (第265页)

Blog Author

在《NVM Express® Base Specification, revision 2.0b》文档中,Identify Controller数据结构中的Sanitize Capabilities (SANICAP)字段描述了控制器支持的清除(Sanitize)操作的能力。清除操作用于确保存储设备上敏感数据的彻底销毁。以下是该字段及其各个子字段的深入分析:

1. Sanitize Capabilities (SANICAP)

该字段指示控制器对Sanitize命令的支持以及相关的功能特性。Sanitize命令用于安全地清除存储介质上的数据,通常用于设备的弃用或回收过程,确保原数据无法恢复。

字段定义

  • Bits 31:30 - No-Deallocate Modifies Media After Sanitize (NODMMAS)
  • 描述:该字段指示在Sanitize操作成功完成后,控制器是否会对介质进行额外修改。这个操作是在Sanitize命令的No-Deallocate After Sanitize位设置为‘1’时开始的。
  • 字段值定义

    • 00b:在Sanitize操作完成后,不会对介质进行额外修改。这个值只允许返回给符合NVM Express Base Specification 1.3及之前版本的控制器,或者SANICAP字段的位2:0为0h的控制器。
    • 01b:Sanitize操作成功完成后,介质不会被进一步修改。
    • 10b:Sanitize操作成功完成后,介质会被进一步修改。直到这一额外的介质修改完成,Sanitize操作完成事件才会触发。
    • 11b:保留,不使用。
  • Bit 29 - No-Deallocate Inhibited (NDI)

  • 描述:如果设置为‘1’,且Sanitize命令中的No-Deallocate After Sanitize位设置为‘1’,则控制器在Sanitize操作后会执行去分配操作,即使No-Deallocate After Sanitize位被设置为‘1’。
  • 操作规则

    • 如果NDI位设置为‘1’,且Sanitize命令的No-Deallocate After Sanitize位为‘1’,且No-Deallocate Response Mode位设置为‘0’,或者Sanitize Config Feature(参见5.27.1.19节)不被支持,则控制器会中止Sanitize命令,并返回“Invalid Field in Command”状态码。
    • 如果No-Deallocate After Sanitize位被设置为‘0’,则该位对Sanitize命令的处理没有影响。
    • 如果NDI位设置为‘0’,则表示控制器支持No-Deallocate After Sanitize位。
  • Bits 28:03 - Reserved:保留位,不参与实际功能。

2. 作用与总结

Sanitize Capabilities

  • NODMMAS字段提供了对清除操作后的额外介质修改的支持。如果控制器在执行Sanitize操作后修改存储介质,则可以提供额外的安全性,确保数据完全被销毁。特别是10b设置使得控制器在执行Sanitize操作后进行额外的修改,直到这些修改完成后,Sanitize操作才被认为完成,这有助于增加清除过程的彻底性和可靠性。

  • NDI字段在某些特定条件下控制是否执行去分配操作。如果主机在发送Sanitize命令时希望控制是否去分配,控制器将根据该字段的设置来执行相应的操作。如果NDI位被设置为‘1’,表示即使Sanitize命令要求保留数据,控制器也会进行去分配操作,适用于有特定要求的清除流程。

实际应用

这些字段非常关键,尤其是在涉及敏感数据的存储设备的管理中。Sanitize操作是防止数据泄露和确保设备回收时数据不可恢复的标准手段。通过Sanitize Capabilities字段,主机可以知道控制器是否支持额外的数据保护措施,如在清除过程中对存储介质进行额外的修改,确保数据彻底销毁。

总结:

  • Sanitize Capabilities (SANICAP)字段定义了控制器如何处理Sanitize命令,特别是关于去分配、额外数据修改、Sanitize操作完成事件等方面的行为。
  • NODMMAS字段允许控制器在Sanitize操作完成后执行额外的操作(如数据覆盖或修改),增强了数据销毁的彻底性。
  • NDI字段则影响Sanitize命令的去分配操作,控制器根据此字段来决定是否执行去分配。

这些功能确保了存储设备能够安全地清除数据,满足数据保护和隐私需求,特别是在设备回收或弃用时,防止数据泄露。