2014年12月14日 星期日

實用 SSD 總整理(一)

隨著 SSD 日漸普及許多應用上逐漸替換掉原先硬碟,然而 SSD 諸多特性上與硬存在差異,此外不同的 SSD 控制晶片之間亦存在差異性。因此在系統設定以及管理上當然會與硬碟有所不同,以下為筆者整理 Linux 系統下使用 SSD 的經驗加上從各方蒐集的資料,將常用的 SSD 設定與遇到的問題做整理。

相信許多人都有對於 SSD 都有以下問題:
1. 什麼是 Trim,如何設定 Trim?
2. 我的 SSD 支援哪些功能?
3. 該如何檢視 SSD 的健康狀態?
4. 我的 SSD 速度不如以往,該怎辦?
5. 什麼是 4K 對齊,如何確認 4K 對齊呢?

首先我們先比較 SSD 與硬碟特性上的差異:

SSDHDD
效能
功耗
耐振動特性耐振動不耐振動
單位容量成本
資料儲存方式NAND Flash磁盤/讀寫頭
抹寫次數限制

從以上比較表中可以理解 SSD 是個快、省電、不怕振動的資料儲存方案,這些特性剛好符合行動應用的需求也因此 SSD 在行動裝置上有迅速的成長。然而 SSD 同樣存在一些缺陷,例如抹除寫入次數受限於 NAND Flash 顆粒(怕寫),因此我們可以透過微調系統設使 SSD 能發揮長處與避免缺點,讓我們開始吧!

修改 mount 設定開啟 Trim 以及 noatime。Trim 指令是針對 SSD 新增的指令,以往磁盤式的儲存設備對資料的操作僅有寫入與讀取,然而 NAND Flash 除了寫入、讀取之外還需要抹除的操作,假設需對一個已經存放舊資料的 Flash 區塊寫入新資料,並不能直接將資料寫入該區塊,而是需先將該區塊抹除才能在寫入資料:以往作業系統刪除檔案時,只會覆寫檔案的連結/配置資訊抹除檔案的完整資訊(刪除才會快),因次新增 Trim 指令使系統可在空閒時透過 Trim 指令告知 SSD 哪些資料不須再使用,因此 SSD 可將對應的 Flash 區塊進行抹除,一般而言 Trim 對於 SSD 長時間使用下的效能表現以及壽命有正面幫助,mount 對應的參數設定為 discard。由於 SSD 對於寫入次數有所限制,一般 Linux 系統掛載設定預設開啟 access time,當系統開啟檔案時就會更新(寫入)該檔案的 access time 資訊,如果應用上不需要紀錄 access time 即可關閉 atime 設定以減少寫入的資料,說了那多該如何修改 mount 參數套用以上設定呢?

編輯 /etc/fstab:
# 原始設定:
# <file system>    <mount point> <type>   <options>                    <dump>    <pass>
UUID=XXXX       /                        ext4       errors=remount-ro       0              1

# 加入 Trim  與關閉 access time 設定:
# <file system>    <mount point> <type>   <options>                                             <dump>    <pass>
UUID=XXXX       /                        ext4       errors=remount-ro,noatime,discard      0              1


修改完 /etc/fstab 之後重新開機即可生效。

此外還可以透過 fstrim 指令對特定檔案系統執行 Trim 指令,例如我們可以對根目錄未使用位址進行 Trim 操作:
fstrim -v /

沒有留言:

張貼留言