问题描述
驱动器填满后,SSD驱动器需要为”cleared/reset”才能保持性能。这是通过新SSD驱动器的TRIM命令完成的。 Ubuntu是否支持TRIM命令(通过hdparm等)来清除/重置这些驱动器?
最佳解决办法
看起来在10.10及更新版本中支持TRIM功能:
此外,TRIM内容会自动发生 – 如果磁盘报告它支持TRIM,则在不再需要空块时会自动释放它们(例如,删除文件)。您无需手动发出hdparm命令即可使用。
次佳解决办法
Jeremy的回答并不完全准确AFAIK。我已经在Lucid上运行了最新的稳定内核已经有一段时间了,因为我有一个OCZ Agility作为我的主盘,所以我一直非常敏锐地关注TRIM的状态。
这就是我认识的(我认为):
-
从2.6.33开始,内核具有TRIM支持(Maverick为2.6.35)。
-
EXT4具有TRIM支持,但仅在journaling关闭时才有。
-
TRIM在内核中的工作方式非常基础且非常慢。遵循规范的磁盘可以接受多个范围,但内核目前一次只能执行一个范围。这来自我一个月前读过的东西。我希望我有源,因为这可能不是真的或可能不再适用。
Journalling是为我杀死它的原因。数据损坏是PITA。
然而,较新版本的hdparm(v9.25 – Maverick在v9.27)附带了一个名为wiper.sh
的脚本,它可以对驱动器进行快速分析,然后修剪所有空白区域。而不是失去功能,我发现cron wiper.sh
每周运行一次(或每天一次/每月一次)更容易。除非你经常撕毁,否则操作系统驱动器的SSD降级不会那么快。您不需要实时TRIMming。
还有一个名为DiskTRIM的GUI前端,它似乎不在回购中。经验不足的用户可能会发现这比设置cron作业更容易使用。
有hdparm和disktrim的PPA,所有这些都可以在Lucid上运行(并且可以在后面运行),而不需要2.6.33+内核。
第三种解决办法
自内核2.6.33以来,Linux支持使用ETX4文件系统的自动TRIM。
第一个支持自动TRIM的Ubuntu版本是10.10(Maveric),但它必须在fstab中激活(如描述的here)。
第四种办法
一般来说,是的,因为有很多方法可以获得更新的内核。如果我们澄清您的问题,请阅读“10.04 LTS是否支持开箱即用?”然后答案是否定的。但是,Maverick和Natty的内核(-generic,-generic-pae,-server和-virtual flavors)都被反向移植到10.04 LTS,并且可以从Ubuntu存储库中的$ release-updates获得,例如,linux-image-generic-lts-backport-maverick
是Maverick’s backport to Lucid。
第五种办法
我正在运行11.04并且它看起来不像TRIM开箱即用。
我试图启用TRIM using the instructions here,但没有骰子
我跑了wiper.sh,我明白了
/sbin/wiper.sh --verbose --commit /dev/sda1
wiper.sh: Linux SATA SSD TRIM utility, version 3.3, by Mark Lord.
rootdev=/dev/sda1
fsmode2: fsmode=read-write
/: fstype=ext4
freesize = 13785252 KB, reserved = 137852 KB
Preparing for online TRIM of free space on /dev/sda1 (ext4 mounted read-write at /).
This operation could silently destroy your data. Are you sure (y/N)? y
Creating temporary file (13647400 KB)..
Syncing disks..
Beginning TRIM operations..
get_trimlist=/sbin/hdparm --fibmap WIPER_TMPFILE.9689
/dev/sda:
trimming 27294800 sectors from 462 ranges
succeeded
Removing temporary file..
Syncing disks..
Done.
但是,如果我再次运行它,它会显示需要修剪的相同数量的扇区/范围,并再次报告成功。我每次都得到完全相同的东西。它看起来不像是被删除/释放的扇区。阅读它们仍然显示相同的数据。
好奇,如果有其他人让它工作。
参考资料