当磁盘接近满的时候,SSD 如何实现磨损均衡?

当磁盘接近满的时候,SSD 如何实现磨损均衡?

我正在尝试理解这一点。假设我有一个 256GB 的 SSD,其中 180GB 已被永久文件(操作系统、已安装的程序等)占用。剩余的 70GB 左右用于创建和删除新文件。这是否意味着该部分的 NAND 芯片会比文件未修改的区域更早磨损?或者 SSD 也会随着时间的推移移动未更改的文件?

答案1

SSD 会随着时间的推移移动不变的文件。

首先,您拥有向操作系统公开的虚拟扇区(不要与文件系统群集混淆),然后您拥有闪存芯片中的物理单元。当闪存控制器分配/取消分配单元时,它会相应地重新映射虚拟扇区,以便对操作系统透明(相同的虚拟扇区可能在不同时间出现在闪存单元中的不同位置)。

其次,SSD 实际上有备用单元,这些单元不能用作可用空间。它们专门用于损耗均衡、减轻写入放大和重新映射死单元。这样,即使您的 SSD 上没有可用空间,闪存控制器仍然有空间执行损耗均衡。

假设您有一个 500 GB 的 SSD,并且已 100% 满载。现在假设其中 499 GB 的数据是一个永远不会改变的文件,但您有一个 1GB 的文件一直在改变。如果您删除该 1GB 文件,然后复制另一个 1GB 文件,则闪存控制器将在此时执行以下两项操作之一:

  • 所有或部分新数据将被分配给备用单元,而旧单元则仍处于修剪状态。
  • 499 GB 数据中永远不会改变的 1 GB 单元将被复制到其他可用单元。然后,旧单元将被擦除并用新数据重写。

在这两种情况下,呈现给操作系统的虚拟扇区都不会改变,因此操作系统不知道实际发生了什么。闪存控制器保存着内存单元到虚拟扇区的映射表。

磨损均衡算法的目标是尽量均衡地使用所有单元,即使这需要移动数据才能实现。这个过程确实会减慢驱动器的速度,而且(讽刺的是)它确实会给闪存单元带来额外的磨损。它被称为写入放大这是 SSD 的一个重大问题。SSD 实际采用的磨损均衡算法及其缓解写入放大的方式是 SSD 制造商的专有商业机密,因此这只是该过程的一般描述。

相关内容