UbuntuのSDDをTRIMを使って延命しよう

Enable TRIM On SSD (Solid-State Drives) In Ubuntu For Better Performance ~ Web Upd8: Ubuntu / Linux blog

なんかTRIMを有効化すればSDDのパフォーマンスを維持できるみたい。
で、TRIMって何よ?

まぁ、読んでもなんとなくしかわからない。とにかく、OS上で削除したはずのファイルの残骸が残ってると、そこにはいつまで経っても書き込みできないので、書き込む場所を探すことになるから、その分遅くなるんだと(ええ、大雑把過ぎるし、適切でもありません)、そこで「TRIMコマンド」でそこにあるデータはもうOS上で削除したやつだから、そんなもん削除しちゃってもいいよと通知してくれるというもののようです。

とくにSDDに対策してないから、とりあずやってみよう♪
※バックアップを取り自己責任で行なってください。もちろんバックアップを取らないのも自己責任

やり方といってもWeb Upd8の記事をそのまま順番に行うだけなので、ボクでも出来ます。

まずは「TRIMコマンド」を使うための要件

  • Linux Kernel 2.6.33以上であること(Ubuntu 12.10なら問題ありません)
  • 利用しているSSDがTRIMに対応していること(あとで確認します)
  • ファイルシステムがEXT4かBTRFSであること(まぁBTRFSな方はすでにスキルをお持ちでしょう)

SSDがTRIMに対応しているか確認する

上記のコマンドを実行して”Data Set Management TRIM supported (limit 1 block)”とか表示されれば大丈夫。
ちなみにボクのSSDはコレ。
Intel SSD 330 Series Maple Crest 60GB MLC 2.5inch 9.5mm Reseller Box SSDSC2CT060A3K5Intel SSD 330 Series Maple Crest 60GB MLC 2.5inch 9.5mm Reseller Box

ボクが買った時より随分高くなってる。
TRIMはなんでもIntel主導らしいので、まぁ大丈夫だろうなぁと思ってました。

対応しているならパーティションのリストを確認しておく。

TRIMを有効にする

マウントオプションに「discard」を追加するようだが、どうもこれは非推奨(not recommended)のようなので、それを理解した上で突き進みます。

なんでもいいので管理者権限で”/etc/fstab”を開いて編集します。

ウチの場合は「/boot」も切ってあるので(なんか以前からの癖でつい作ってしまう)、2箇所に「discard」を追加しました。

cronの設定

1日1回、TRIMが実行されるようにします。
“/etc/cron.daily/trim”にスクリプトを記述します。ファイルがない場合には作成します。

このファイルの中に以下を記述。

ウチではSDDに「/boot」と「/」があるので2つ記述しています。
で、参照元がファイルを保存する前に実行して確認しようということなので、fstrimコマンドを実行してみます。

まずはルートパティションで試してみました。コマンド実行後しばらく待つと結果が表示させれます。

こんな感じで結果が表示されれば大丈夫のようですのでスクリプトを記述したファイルを保存しておきます。

最後に一般ユーザーでTRIMを使えるように権限を変更します。

これで無事に終了したはずです。あとは”/var/log/trim.log”にログファイルがあるようなので、数日して確認してみることにします。

時期Ubuntu13.04インストール時には「SecureErase」を使って初期状態に戻してからってのも、ありですかね?SSDの対応を調べないといけませんが・・・。

Ubuntuの年2回のリリースのうち1回は「SecureErase」をしてもいいかもしれませんね。