缓存SSD关机数据丢失

缓存SSD关机数据丢失

大多数 SSD 都有缓存,可提供快速写入速度。但是当我关闭缓存已满的计算机时会发生什么?缓存是否易失?缓存处理和保存的速度有多快?在传输大量数据后,我是否需要等待几秒钟才能关闭计算机?我是否需要断电保护以避免数据丢失?

答案1

在受控关机期间,操作系统/文件系统会将所有待处理的写入刷新到稳定存储中,并发出最终写入屏障(即:ATA FLUSH),以确保易失性写入缓存中没有剩余数据。这可能需要一些时间,但您无需执行任何操作:只需等待操作完成(然后系统关闭)。

但是,在意外关机,例如断电后?在消费级 SSD 上,由于缺少断电保护写入缓存,您将丢失任何未同步的缓存内容。为了避免丢失缓存数据,用户/操作系统需要通过同步+屏障原语(即 Linux 上的 sync 和 fsync())明确同步和刷新重要但待处理的数据(例如:数据库写入或文件系统日志更新)。

在提供基于电容器的断电保护写回缓存的企业级 SSD 上,突然断电不会导致任何数据丢失。根据驱动器类型/固件,此受保护的缓存可以导出为写回或写通:

  • 在第一种情况下(写回),操作系统将继续发送写入屏障和缓存刷新,但驱动器将忽略它们,除非板载控制器检测到断电保护电路存在一些问题。这种操作模式的开销稍高(因为屏障是由操作系统生成的),但允许驱动器根据内部健康计数器在实际写回/写回+刷新/写通模式之间动态切换;

  • 在第二种情况下(直写),操作系统避免发送任何写入屏障。这可以提高性能(因为操作系统开销更少),但如果驱动器电子设备检测到任何问题,它只能切换到“完整”直写,任何写入被视为重要并被立即刷新到物理介质。

答案2

是的,文件系统会延迟关机,直到其自身的“惰性写入器”将所有写入刷新到持久存储为止。但是,如果您点击“关机”,缓存中的所有数据都将丢失。显然。

相关内容