ssd_fstrim

DebianでSSDを使うならTrimを有効にしよう

2015/03/01[公開] 2016/03/08[最終更新]

  自宅PCサーバーをSSDにしたので、DebianのSSD対応の設定を調べながらやっています。今回はパフォーマンス維持のためのTrim設定についての備忘録です。

 利用バージョン:Debian GNU/Linux Wheezy 7.8 /カーネル3.2.0-4-amd64 /ファイルシステムはext4を利用。

Trimを使おう

 Trimとは、ファイルを削除したときの処理がHDDとSSDでは違うために徐々に起こる「SSDの速度低下」を抑えてくれる機能のひとつです。Windowsでは7以降にTrim機能がOS標準でサポートされ、これがSSDを利用するならwindows7以降が良いと言われている理由のひとつです。スマホやタブレットでもAndoroid4.3以降でサポートされたようです。ウチのDebian でも利用したいですね。

 Trim機能を使うにはハードウェアとOSの両方の対応が必要です。

ハードウェア側のTrim対応

 いまどきのSSDならばTrim機能対応あたりまえと思われます。ファームウェア更新で対応するSSDもあるので最新のファームにしておきましょう。

 あとはマザーボードのBiosでSATAがAHCIモードになっていればハードウェア側の準備は万全です。これも最近なら標準でAHCIモードになっているはずです。

 私は利用していませんが、RAIDを使っている場合はRAIDコントローラーもTrim対応の最新のモノが必要みたいです。

 念のためにハードウェアでTrimがサポートされているか確認します。

 私の場合は、先にhdparmをインストールする必要ありでした。

「Data Set Management TRIM supported」と出たらハードウェア的にはサポートされています。

Debian 側でTrimを利用設定

 OS側でTrimを利用する方法は2通りあるようです。

  1. /etc/fstabのマウントオプションにdiscardを追加する方法。これはファイル消去と同時に都度Trimを実行する方法。
  2. 定期的にfstrimコマンドを実行してTrimを行う方法。手動でコマンドを打つか、cronに登録して定期的に実行させる。

 ネットを見ると1の方法は非推奨と書いてあったり、まずは1の方法を試すべきだという情報もあります。これは意見が分かれるところですね。成長真っ只中のデバイスですので、どれが正解かわかりません。

 悩んでも仕方ないので、私の勝手な推論でどっちにするか選びました。winodwsでは1の方法と同じく都度Trimを行っているのだから理想としては1の方法が最善なのですが、それはPCパーツの世界がWindows中心に動いているから最適化されているのであって、Linuxでそれが上手く動く保証はないワケです。ましてやSSD「も」いけますよ的なファイルシステムext4で利用するわけで、SSD「が」最適ですという次世代ファイルシステムが安定版になるまでは、方法2のfstrimコマンドの安全策で行くことにしました。

cronで定期的にfstrimコマンドを実行する方法

 毎日深夜3時にfstrimコマンドを実行する設定をしました。まずはスクリプトファイルを作ります。

  次の記述をコピペして保存します。

  このファイルに実行権限を与えないと実行されません。

 /etc/crontabファイルに実行時間を指定した記述を追加します。

  リストに一行加えます。追加したのは15行目です。

  念のためcronサービスを再起動します。

確認

  一晩寝ると/var/log/fstrim.logができているはずです。その中身を確認します。

  こんな感じでTrimされた数値がログされていれば成功です。

最後にひとこと

ここまで設定して気づきました。オートマチックなdiscardよりも、マニュアル操作のfstrimのほうがrecommendされるはずです。Linux使いならお察しですね。

参考にさせて頂いたサイト(順不同):

ソリッドステートドライブ

LinuxのSSD設定 – Qiita

Enable TRIM On SSD (Solid-State Drives) In Ubuntu For Better Performance

cronの設定:tech.ckme.co.jp

こちらの記事もどうぞ

「DebianでSSDを使うならTrimを有効にしよう」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です