GNU/Linux >> Linux の 問題 >  >> Linux

fstrimでSSDドライブの寿命を延ばす

過去10年間で、ソリッドステートドライブ(SSD)はストレージを管理する新しい方法をもたらしました。 SSDには、古い回転する祖先と比較して、サイレントでクールな動作や高速なインターフェイス仕様などの利点があります。もちろん、新しいテクノロジーは、新しい保守と管理の方法をもたらします。 SSDにはTRIMと呼ばれる機能があります。これは基本的に、デバイス上の未使用のブロックを再利用するための方法です。これは、以前に書き込まれた可能性がありますが、有効なデータが含まれていないため、再利用のために一般的なストレージプールに戻すことができます。 Opensource.comのDonWatkinsは、2017年の記事「Linuxのソリッドステートドライブ:SSDのTRIMの有効化」でTRIMについて最初に書いています。

その他のLinuxリソース

  • Linuxコマンドのチートシート
  • 高度なLinuxコマンドのチートシート
  • 無料のオンラインコース:RHELの技術概要
  • Linuxネットワーキングのチートシート
  • SELinuxチートシート
  • Linuxの一般的なコマンドのチートシート
  • Linuxコンテナとは何ですか?
  • 最新のLinux記事

Linuxシステムでこの機能を使用している場合は、以下で説明する2つの方法に精通している可能性があります。

古い方法

破棄

私は最初、mountコマンドのdiscardオプションを使用してこれを有効にしました。構成は/etc / fstabに配置されます 各ファイルシステムのファイル。

# cat /etc/fstab
UUID=3453g54-6628-2346-8123435f  /home  xfs  defaults,discard   0 0

破棄オプションは、自動オンラインTRIMを有効にします。最近、パフォーマンスに悪影響を与える可能性があるため、これが最良の方法であるかどうかについての議論があります。このオプションを使用すると、新しいデータがドライブに書き込まれるたびにTRIMが開始されます。これにより、ストレージのパフォーマンスを妨げる追加のアクティビティが発生する可能性があります。

Cron

fstabから破棄オプションを削除しました ファイル。次に、スケジュールに基づいてコマンドを呼び出すcronジョブを作成しました。

# crontab -l
@midnight /usr/bin/trim

これは、別の方法を学ぶまで、UbuntuLinuxシステムで最近使用した方法です。

新しいTRIMサービス

最近、TRIMのsystemdサービスが存在することを発見しました。 Fedoraはこれをバージョン30でディストリビューションに導入しました。バージョン30と31ではデフォルトで有効になっていませんが、バージョン32で使用する予定です。FedoraWorkstation31で作業していて、これを使い始めたい場合機能、あなたはそれを非常に簡単に有効にすることができます。また、以下でテストする方法も示します。このサービスはFedoraに固有のものではありません。存在とステータスは、個々の配布ベースによって異なります。

テスト

舞台裏で何が起こっているのかをよりよく理解するために、最初にテストするのが好きです。これを行うには、ターミナルを開き、サービスが呼び出すように構成されているコマンドを発行します。

/usr/sbin/fstrim --fstab --verbose --quiet

–ヘルプ fstrimへの引数 これらおよびその他の議論について説明します。

$ sudo /usr/sbin/fstrim --help

Usage:
 fstrim [options] <mount point>

Discard unused blocks on a mounted filesystem.

Options:
 -a, --all           trim all supported mounted filesystems
 -A, --fstab         trim all supported mounted filesystems from /etc/fstab
 -o, --offset <num>  the offset in bytes to start discarding from
 -l, --length <num>  the number of bytes to discard
 -m, --minimum <num> the minimum extent length to discard
 -v, --verbose       print number of discarded bytes
     --quiet         suppress error messages
 -n, --dry-run       does everything, but trim

 -h, --help          display this help
 -V, --version       display version

これで、systemdサービスが、 / etc / fstabでサポートされているすべてのマウントされたファイルシステムでトリムを実行するように構成されていることがわかります。 ファイル–fstab 破棄されたバイト数を出力します–verbose ただし、発生する可能性のあるエラーメッセージはすべて抑制してください –静か 。これらのオプションを知っていると、テストに役立ちます。たとえば、最も安全なドライランから始めることができます。また、ドライブのセットアップでエラーが発生するかどうかを判断できるように、静かな議論は省略します。

$ sudo /usr/sbin/fstrim --fstab --verbose --dry-run

これは、 fstrimが何であるかを示すだけです。 コマンドは、 / etc / fstabで構成されていることがわかったファイルシステムに基づいて実行されます ファイル。

$ sudo /usr/sbin/fstrim --fstab --verbose

これにより、TRIM操作がドライブに送信され、各ファイルシステムから破棄されたバイト数が報告されます。以下は、新しいNVMESSDにFedoraを最近新しくインストールした後の例です。

/home: 291.5 GiB (313011310592 bytes) trimmed on /dev/mapper/wkst-home
/boot/efi: 579.2 MiB (607301632 bytes) trimmed on /dev/nvme0n1p1
/boot: 787.5 MiB (825778176 bytes) trimmed on /dev/nvme0n1p2
/: 60.7 GiB (65154805760 bytes) trimmed on /dev/mapper/wkst-root

有効

Fedora Linuxは、毎週実行されるようにスケジュールされたsystemdタイマーサービスを実装しています。存在と現在のステータスを確認するには、 systemctl statusを実行します 。

$ sudo systemctl status fstrim.timer

次に、サービスを有効にします。

$ sudo systemctl enable fstrim.timer

確認

次に、すべてのタイマーを一覧表示して、タイマーが有効になっていることを確認できます。

$ sudo systemctl list-timers --all

fstrim.timerを参照する次の行 現れる。タイマーが実際にfstrim.serviceをアクティブにすることに注意してください 。これは、実際の fstrim と呼ばれます。時間関連のフィールドには、 n / aが表示されます サービスが有効にされたばかりで、まだ実行されていないためです。

NEXT   LEFT    LAST   PASSED   UNIT           ACTIVATES
n/a    n/a     n/a    n/a      fstrim.timer   fstrim.service

結論

このサービスは、ドライブでTRIMを実行するための最良の方法のようです。 fstrimを呼び出すために独自のcrontabエントリを作成するよりもはるかに簡単です。 指図。 fstabを編集する必要がない方が安全です。 ファイル。ソリッドステートストレージテクノロジーの進化を見るのは興味深いことであり、Linuxがそれを実装するための標準的で安全な方法に向かっているように見えることを知ってうれしいです。


Linux
  1. SELinuxでコンテナを保護する

  2. PlexyDeskを使用してLinuxデスクトップの機能を拡張する方法

  3. tcpdumpを使用してネットワークのトラブルシューティングを行う

  1. konsolekalendarコマンドを使用してLinuxターミナルからカレンダーを管理します

  2. GeditテキストエディタでGNOMEエクスペリエンスを最適化する

  3. 独自のプログラミング言語で VDSO オブジェクトを利用するにはどうすればよいですか?

  1. LinuxターミナルのNewsboatでRSSフィードを復活させる

  2. Trinityデスクトップ環境でLinuxデスクトップをカスタマイズする

  3. RaspberryPiでLinuxを学ぶ