Linux下的trim支持叫discard,現在ext4和xfs都支持(btrfs應該也支持),內核需要>=2.6.37,xfs的支持在3.0才比較完善。具體需要設置這2個方面:
1.文件系統表
修改fstab文件,在掛載參數中加上discard;最好也同時加上noatime,如下
/dev/sda3 / ext4 noatime,nodiratime,discard,errors=remount-ro 0 1
mount -t ext4 -o discard,defaults /dev/sdc /home ssd trim
2. 調整文件系統參數
ext4的話最好禁用日志功能,能防止寫入額外的數據而減少ssd壽命。
關閉ext4日志:tune2fs -O^has_journal /dev/sdXX
配置固態硬盤(SSD)的ext4
接 着需要關注的就是文件系統。想要優化文件系統刪除字節區塊的效率,就必須確保小於512K的文件分布在不同的刪除字節區塊上。要做到這一點,必須確保在創 建可擴展文件系統時指定了需要使用的條帶的寬度和幅度。這些值在頁面中指定,默認大小為4KB。要創建一個最佳的可擴展文件系統,應該使用如下命令:
mkfs.ext4 -E stride=128,stripe-width=128 /dev/sda1
如果要修改現有的文件系統的參數,可以使用tune2fs實用程序:
tune2fs -E stride=128,stripe-width=128 /dev/sda1
配置固態硬盤(SSD)的I/O調度程序,修改默認的cfq為deadline
通過輸入echo cfq >/sys/block/sda/queue/scheduler 修改
優化的第三個部分涉及到I/O調度程序。該模塊是一個決定如何處理I/O請求的核心組件。默認情況下就是非常公平的排隊,對於普通的磁盤驅動器來說,這是很好的方案,但對於以期限調度為優勢的固態硬盤來說,這並不是最好的。
關於IO調度,請參考http://blog.opvps.com/%E8%87%AA%E5%AE%9A%E4%B9%89redhat-linux%E7%9A%84io%E8%B0%83%E5%BA%A6%E6%9C%BA%E5%88%B6/