SSDが故障していませんか?LinuxでSSDの状態を確認する方法を学びましょう

SSDが故障していませんか?LinuxでSSDの状態を確認する方法を学びましょう

データセンターでLinuxマシンを使用している場合、管理タスクの一つとして、それらのマシンで使用されているSSDドライブの健全性を定期的にチェックする必要があります。なぜでしょうか?ソリッドステートドライブは回転プラッタードライブよりも大幅に長寿命ですが、寿命には限りがあるからです。その寿命の終わりに、最悪の事態に陥るのは避けたいものです。

これらのドライブの健全性はどうやって確認するのでしょうか? Linuxのあらゆる機能と同様に、いくつかのオプションがあります。GUIソリューション(GNOME Disks)も存在しますが、この作業にはコマンドラインツールの使用を強くお勧めします。なぜでしょうか?多くの場合、LinuxサーバーにはGUIが搭載されていません。コマンドラインを使えば、リモートLinuxサーバーに安全にシェルでログインし、ターミナルからテストを実行することで、GUIを簡単に活用できます。

問題のツールはsmartctlです。このコマンドを使えば、SSDの状態を素早く確認できます。もちろん、このコマンドで得られる効果は、使用しているSSDのメーカーやモデルによって異なります。残念ながら、SMART(Self-Monitoring, Analysis, and Reporting Technology)ツールは、すべてのSSDドライブで常に最新の状態であるとは限りません。

そのため、SSDチップへの書き込み回数を正確に把握することはできません。ただし、その点を考慮しても、ドライブの摩耗程度は概算できます。

smartctlをインストールして使用してみましょう。

参照: Linux、macOS、Windows で SSH キーを表示する方法 (TechRepublic)

インストール

Ubuntuプラットフォームでデモを行います。必要なパッケージはすべての標準リポジトリに揃っていますので、お使いのディストリビューションに合わせてインストールコマンドを調整してください。

smartctlユーティリティはsmartmontoolsパッケージの一部です。これは以下のコマンド1つでインストールできます。

sudo apt install smartmontools

上記のコマンドは、libgsasl7、libkyotocabinet16v5、libmailutils5、libntlm0、mailutils、mailutils-common、および postfix もインストールすることに注意してください。

パッケージがインストールされると、準備完了です。

参照: Linux のセキュリティ保護ポリシー (TechRepublic Premium)

使用法

smartctl ツールを使用するには、まずドライブに関する情報を収集する必要があります。これは次のコマンドで実行します。

sudo smartctl -i /dev/sdX

ここで、sdX はテストするドライブの名前です。

上記のコマンドは、ドライブに関連付けられた詳細を出力します。

ドライブに関連付けられた詳細が表示されます。
ドライブに関連付けられた詳細が表示されます。画像: Jack Wallen

ご覧のとおり、問題のドライブは smartctl データベース内にあるため、情報は最新のものになっているはずです。

ドライブの簡単なテストを実行してみましょう。これらのテストは、ドライブに関する最も正確なデータを提供します(そのため、付属のツールを使用することが重要です)。以下のコマンドを実行します。

sudo smartctl -t short -a /dev/sdX

これにより、いくつかの情報がすぐに報告されます。

ドライブで短いテストを実行しています。
ドライブの簡単なテストを実行中。画像: Jack Wallen

ドライブに対して、短いテストと長いテストを毎週または毎月実行することをお勧めします。長いテストを実行するには、次のコマンドを使用します。

sudo smartctl -t long -a /dev/sdX

最初に目に留まるのは、SMART 全体的健全性自己評価テストの結果です。「PASSED(合格)」と表示されているはずです。もしそうでない場合は、SSD に何らかの問題があることがすぐに分かります。

短いテストでは次の点を検査します。

  • 電気特性: コントローラーは独自の電子機器をテストしますが、これはメーカーごとに異なります。
  • 機械的特性: サーボと位置決め機構がテストされます (これもメーカーごとに異なります)。
  • 読み取り/検証: 特定のディスク領域が読み取られ、特定のデータが検証されます (読み取られる領域のサイズと位置は、メーカーごとに固有です)。

長いテストでは、短いテストに含まれるすべての内容に加えて、次の内容も実行されます。

  • 時間制限はなく、読み取り/検証セグメント内です。
  • ディスク全体がチェックされます (セクションのみではなく)。

短いテストは約2分で完了しますが、長いテストは20~60分かかります(ハードウェアによって異なります)。テスト結果を表示するには、コマンド sudo smartctl -a /dev/sdX を実行してください(sdX はテスト対象のドライブ名です)。

このコマンドは、テスト結果と、SSD の健全性を確認するために必要なすべての情報を出力します。

これにより、テスト結果と SSD の健全性を確認するために必要な情報が出力されます。
これにより、テスト結果とSSDの健全性を確認するために必要な情報が出力されます。画像: Jack Wallen

セルフテスト ログ以外に、検査する必要がある出力には 2 つの値があります。

  • Power_On_Hours — ドライブの電源投入時間。ドライブのメーカー/モデルごとに、推奨される「使用期限」と呼ばれる使用可能時間が設定されています。最近のSSDのほとんどは寿命がかなり長いため、寿命を迎える可能性は低いでしょう。ただし、古いドライブを使用している場合は、これが問題になることがあります。
  • Wear_Leveling_Count — ドライブの残りの耐久性をパーセンテージで表します (100 から始まり、ドライブへの書き込みに応じて直線的に減少します)。

値と最悪値の列を確認することが重要です。ご覧のとおり、私のSamsung SSDのWear_Leveling_Countは現在99で、非常に良好な状態です。

覚えておくべき点として、メーカーによってsmartctlで報告されるデータが異なることがあります。例えば、同じマシンに古いIntel製とKingston製のSSDドライブを接続しています。どちらのドライブも似たような(そしてより包括的な)データを報告します。しかし、どちらもWear_Leveling_Countを報告しません。なぜでしょうか?どちらも古いドライブであり、ID 177(Wear_Leveling_Count)を報告しません。代わりに、短いテストと長いテストの両方を実行し、それらのレポートでドライブの健全性を確認するのが最善策です。

参照: Windows から Linux Samba 共有に接続する方法 (TechRepublic)

明らかな注意点

smartctl には 2 つの注意点があります。

まず、報告されたデータは誤解しやすいです。そのため、テスト対象のドライブのメーカーとモデルを把握しておく必要があります。これらの情報を入手すれば、報告されたデータから異常な点を調査できます。

次に、テストツールを活用することが重要です。smartctl -A /dev/sdX のようなコマンドを実行することもできますが、テスト結果の追加のメリットは得られません。SSDドライブに関する最新情報を可能な限り入手するために、短いテストと長いテストを定期的に実行してください。

この記事はもともと2017年10月に公開されました。2024年12月にAntony Peytonによって更新され、新しいリンクと画像が追加されました。

Tagged: