最初发布于 StackExchange,由于偏离主题而关闭。
假设我有一个 SSD,其中有一个使用率很高的 2GB 交换分区,每天都会进行修剪。磨损会限制在 2GB 以内,还是会分散到整个 SSD 上?
Anthony Schuijlenburg 的这个回答被否决了;为什么?它不准确吗?
固态硬盘控制器看到的事物与操作系统完全不同。因此,如果您经常使用 2GB 分区,固态硬盘控制器将尝试平衡整个固态硬盘的磨损。所以答案是否定的,它不受限制。
答案1
SSD磨损只限于某个分区吗?
简短的回答是:
不,因为 SSD 不知道分区是什么。
答案很简单:
存储驱动器的分区是一种软件构造。
驱动器使用的分区方案存储在驱动器本身上(作为数据),通常存储在第一个扇区中,因为传统上这是无错误的扇区。
操作系统应该识别并遵守为每个存储驱动器实施的分区方案。
硬件不支持对存储驱动器进行分区。
硬件级别的存储驱动器(HDD 或 SSD)不知道分区是什么。
驱动器接口(ATA/ATAPI 或 SCSI)没有引用或尊重分区边界的命令。
尊重分区边界完全取决于操作系统及其文件系统(即软件)。
有些存储设备支持硬件级别的分区,例如 eMMC 模块有启动分区。但是 SSD 没有。
技术答案是:
SSD 使用闪存转换层来实现磨损均衡,这样当逻辑块地址 (LBA 又称扇区) 被(重新)写入时,不同的物理块将映射到 LBA,并写入新数据。
原始物理块被标记为未使用,并进入可用块列表的末尾。
(实际上它有点复杂,因为在写入块之前需要执行擦除操作,并且擦除块比部门块。保持已擦除扇区的供应以供重新映射和写入对于 SSD 性能至关重要。
由于 SSD 没有分区概念,并且存在将 LBA 映射到物理扇区的闪存转换层,因此分区使用的物理扇区列表可能分布在整个驱动器上(加上未报告为驱动器容量一部分的隐藏/备用块)。随着
LBA 被(重)写,分区使用的物理扇区列表将发生变化。
例如,在 NAND 芯片上使用 JFFS2 的嵌入式 Linux 系统中,磨损均衡可以限制在一个分区内。在这种情况下,磨损均衡是该特定文件系统的一部分。PC
不使用原始 NAND 芯片进行大容量存储。
带有集成控制器的 SSD 使用闪存转换层来模拟 HDD,以便操作系统可以使用几乎不受 NAND 问题影响的文件系统。
因此,NTL 位于分区方案的较低层。
因此,SSD 的控制器和 FTL 没有分区概念,因此无法将驱动器操作(例如磨损均衡)限制在分区内。