Sanitize 和 Secure Erase(Format)的主要区别:
Sanitize 和 Secure Erase 都可以安全地将 SSD 设备上存储的数据删除。对 SSD 进行 Sanitize 或 Secure Erase 操作后,硬盘上的所有数据将被永久删除,且无法恢复。但这两种方法有一些显著区别,二者首先通过不同 nvmecli 命令触发,sanitize 的主要作用就是用来清除用户数据,而 Secure Erase 主要通过 format(格式化)修改 SSD 一些配置参数,修改参数的同时会对数据进行删除。
Secure Erase 通过nvme format命令操作,而 format 主要有如下作用:
1.用来修改 LBA sector size,通过 LBAF(-i 参数)的指定来修改 Sector 大小,如企业级 NVMe SSD 如果支持可变 Sector size 功能,就可以根据支持的 sector 大小,如 512、520、4096、4104 、4160 字节进行格式化
2.用来修改保护信息(Protection Information)类型,Type1/Type2/Type3,PI 信息是放在元数据的前 8 位还是后 8 位
3.Format 可以针对多命名空间或单个命名空间进行操作,sanitize 是对整个命名空间操作;
4.Format 也支持 User Data Erase(用户数据删除)和 Cryptographic Erase(密钥删除),这两种类型的 format 方式也就是 sanitize 的 Block Erase 和 Crypto Erase 的擦除操作。
Sanitize 如何实现数据安全擦除
Sanitize 从字面上理解就是销毁、清除的意思。Sanitize 支持 Block Erase(块擦除)、Overwrite(覆写)、Crypto Erase(密钥删除)三种类型擦除操作。
“Block Erase”:从 block 级别,也就是从物理上彻底擦除 SSD 上的数据
“Overwrite”:用特定的数据格式覆盖用户数据。Overwrite 擦除方式最早在 HDD 上应用,HDD 的数据是存储在带有磁性涂层的金属盘片上,写入新数据可以通过覆写的方式完成。NVMe SSD 时代,协议演进到 NVMe1.3 引入 Sanitize 功能,Overwrite 擦除方式也得以沿用。然而,SSD 的存储介质与 HDD 不同,读取和写入的基本单位不是 HDD 的比特(bit)或字节(byte),而是一个页(Page),新的数据写入需要先擦除(Erase),然后再写入(Program),擦除必须按照块(Block)为单位进行,这无形中会引入额外擦除,从而降低 SSD 寿命。
“Crypto Erase”:对于支持自加密功能的 SSD,通过删除密钥,使加密数据不可识别
和