![Linux 何时进行 SSD 垃圾收集?](https://linux22.com/image/1214058/Linux%20%E4%BD%95%E6%97%B6%E8%BF%9B%E8%A1%8C%20SSD%20%E5%9E%83%E5%9C%BE%E6%94%B6%E9%9B%86%EF%BC%9F.png)
我试图了解我的计算机何时进行垃圾收集并释放 SSD 上以前使用的块。
这是由操作系统还是 SSD 控制器处理的任务?
当我删除文件(永久删除垃圾文件)时会发生这种情况,还是等到我尝试覆盖该块时才会发生这种情况?
日志文件系统如何影响此驱动器的性能和维护?
当我的计算机处于空闲状态且屏幕锁定时,系统会执行任何特殊操作吗?
如何判断我的固件和/或内核是否支持 TRIM 命令?
值得一提的是,我使用的是 Ubuntu 9.04,64 位(内核版本 2.6.28-15-generic)和使用 LUKS 的全盘加密。SSD 是戴尔 256GB,配有三星控制器,根文件系统为 ext3,启动文件系统为 ext2。没有其他硬盘,没有其他操作系统。
我已经读完了AnandTech 文章讨论了 TRIM、英特尔、OCZ 以及页面和块,这也是我提出这个问题的初衷——我不知道自己的设置在这个分析中处于什么位置。虽然我对上述问题的答案很感兴趣,但我更感兴趣的是学习如何回答这些问题,如果这有意义的话。
答案1
有一个Anand 的新文章更多关于 SSD magic 的信息 :) 我建议你也读一下。TRIM 的解释在更多的 细节 那里。总体来说,trim 不错,但是:
...不幸的是,目前还没有驱动器正确支持 TRIM...
目前该支持仅在测试版固件中提供。因此,如果您的操作系统和控制器固件都支持 TRIM,那么它将大致以这种方式工作:一旦某个文件被永久删除,您的操作系统就会将该命令发送到 SSD 控制器。它是否会在那一刻或其他时间真正被修剪完全取决于您的驱动器固件实现。
如果你的操作系统不支持 TRIM,那么你可以从驱动器制造商处获得擦除工具。你可以阅读它的工作原理这里。
如果您的驱动控制器不支持 TRIM,那么您可能可以获取更新或其固件的某些测试版本。
希望有所帮助。
答案2
不管怎样,我正在使用 Ubuntu 9.04、64 位(内核版本 2.6.28-15-generic)和使用 LUKS 的全盘加密。
事实上你可以不是想要使用 TRIM 进行全驱动器加密,因为它会通过 TRIM 指示您未使用的磁盘部分!如果磁盘未使用的区域完全清空,这可能会使暴力破解密钥变得更简单。