数据结构 - 深入分析 Sanitize Status Log Page(Log Identifier 81h) (第247页)
NVME2.0协议解读 1 min read

数据结构 - 深入分析 Sanitize Status Log Page(Log Identifier 81h) (第247页)

Blog Author

深入分析 Sanitize Status Log Page(Log Identifier 81h)

Sanitize Status Log Page 是 NVM Express 规范中用于报告擦除操作状态和进度的日志页面。它提供了有关擦除操作的详细信息,如进度、状态、时间估算等,并在擦除过程完成后更新数据。

字段解析:

  • Sanitize Progress (SPROG)
  • 功能:指示擦除操作的完成进度。该字段以分数形式表示,分子为当前进度,分母固定为 65,536 (0x10000)。
  • 说明:如果擦除操作开始时使用了 "No-Deallocate After Sanitize" 标志,且 NODMMAS 字段为 10b(表示包含附加的媒体修改时间),则进度值会包括额外的媒体修改时间。

  • Sanitize Status (SSTAT)

  • 功能:指示与最新擦除操作相关的状态。
  • 值说明

    • Bit 8 (Global Data Erased):如果设为 1,表示所有用户数据已被擦除,并且没有写入任何命名空间用户数据或启用持久内存区域。如果为 0,表示自上次成功擦除后,已经有数据写入或持久内存区域已启用。
    • Bits 7:3:如果最近一次擦除操作是覆盖(Overwrite),该字段表示已完成的擦除遍数。若不是覆盖操作,该字段清零。
    • Bits 2:0:表示最近一次擦除操作的状态:
    • 000b:NVM 子系统从未进行过擦除。
    • 001b:最近一次擦除操作成功完成(包括附加的媒体修改)。
    • 010b:擦除操作正在进行中。
    • 011b:最近一次擦除操作失败。
    • 100b:最近一次擦除操作成功完成,且已进行所有用户数据的去分配。
    • 101b 到 111b:保留。
  • Sanitize Command Dword 10 Information (SCDW10)

  • 功能:包含启动此次擦除操作的 Sanitize 命令的 Dword 10 信息。
  • 说明:该字段提供与启动擦除操作相关的命令参数,用于追踪和诊断擦除命令的执行。

  • Estimated Time For Overwrite (预计覆盖时间)

  • 功能:表示在后台完成 16 次覆盖擦除操作所需的时间(单位:秒)。
  • 说明:该值为 0h 时,表示擦除操作将在 Sanitize 命令完成时在后台完成;为 FFFFFFFFh 时,表示没有时间估算数据。

  • Estimated Time For Block Erase (预计块擦除时间)

  • 功能:表示在后台完成块擦除操作所需的时间(单位:秒)。
  • 说明:与 Estimated Time For Overwrite 类似,0h 表示擦除将在命令完成时完成,FFFFFFFFh 表示没有时间估算。

Sanitize Status Log Page 的作用:

  1. 进度跟踪:通过 Sanitize Progress (SPROG) 字段,可以实时跟踪擦除操作的完成程度,帮助用户了解擦除的进度。

  2. 操作状态Sanitize Status (SSTAT) 字段提供擦除操作的详细状态,包括是否成功完成、是否正在进行、是否失败等。

  3. 时间估算Estimated Time For OverwriteEstimated Time For Block Erase 字段为用户提供预计完成时间,帮助管理擦除过程。

  4. 错误诊断:如果擦除操作失败,Sanitize Status Log Page 可以记录相关的错误信息,有助于后续的故障排查。

总结:

Sanitize Status Log Page 通过提供擦除进度、状态、时间估算等信息,帮助用户实时监控 NVM 子系统中的擦除操作。这对于确保数据擦除的完整性和跟踪擦除进度至关重要。