もしあなたがVPSまたは専用サーバーを使用している場合、ディスクの安定性はオプションではなく、ミッションクリティカルです。1つの故障したドライブはデータ損失、ダウンタイム、そして高額な回復を引き起こす可能性があります。だからこそ、Linuxシステム管理者はsmartctlに依存しています。これは、S.M.A.R.Tを介してドライブ診断に直接アクセスできる強力なコマンドラインツールです。

このガイドでは、Linuxでのsmartctlの使用方法、実用的なコマンド、実世界の例、およびスマートな自動化について説明します。

smartctlとは何ですか?

smartctlはSmartmontoolsパッケージの一部です。これは、ほとんどの最新のHDDおよびSSDに組み込まれているS.M.A.R.T.(自己監視、分析、報告技術)へのアクセスを提供します。

smartctlを使用すると、以下のことができます:

  • ドライブの健康状態を確認する
  • 短いまたは拡張された自己テストを実行する
  • 温度とパフォーマンスメトリックを表示する
  • ハードウェア故障の初期兆候をキャッチする

サポートされているハードウェアには以下が含まれます:

  • SATA / IDE / SCSI / NVMeドライブ
  • SSDとHDDの両方
  • ほとんどのLinuxサーバー配布とホスティングプラットフォーム

なぜsmartctlを使用するのですか?

利点利益
早期故障検出データ損失を未然に防ぐ
リアルタイム診断再起動せずにドライブを監視する
簡単な自動化cron、スクリプト、およびアラートと良好に連携する
ハードウェアレベルの可視性推測なし — ドライブから生データを取得する
DevOpsおよびsysadminフレンドリーデータセンターやクラウドサーバー全体で広く使用されている

Smartmontoolsのインストール方法

インストールは、Linuxディストリビューションによって異なります:

OSインストールコマンド
Ubuntu/Debiansudo apt update && sudo apt install smartmontools
CentOS/RHELsudo yum install smartmontools
Fedorasudo dnf install smartmontools
Arch Linuxsudo pacman -S smartmontools

インストールが完了すると、smartctlコマンドはターミナルから利用可能です。

基本的なsmartctlコマンド

コマンド機能
smartctl -i /dev/sdaドライブ情報を表示する
smartctl -H /dev/sda全体的な健康状態を確認する
smartctl -A /dev/sda詳細なS.M.A.R.T.属性をリストする
smartctl -t short /dev/sda短い(2分)自己テストを開始する
smartctl -t long /dev/sda完全な拡張自己テスト(10〜60分)を開始する
smartctl -l selftest /dev/sdaテスト履歴を表示する
smartctl -l error /dev/sdaエラーログを表示する

📌 /dev/sdaを実際のドライブ(例:NVMe SSDの場合は/dev/nvme0n1)に置き換えてください。

例:ドライブの健康状態を確認する

sudo smartctl -H /dev/sda

期待される出力:

SMART overall-health self-assessment test result: PASSED

結果がPASSEDの場合、ドライブは現在健康です。
FAILEDと表示された場合は、すぐにバックアップを取り、交換の計画を立ててください。

監視すべき主要なSMART属性

ID属性意味
5再割り当てセクター数不良セクターが予備スペースに再マッピングされる
197現在の保留セクター数再読み込みを待っているセクター
198オフライン修正不能数読み取り/書き込みエラーのあるセクター
194温度(摂氏)最適なパフォーマンスのために50 °C未満に保つ

これらのフィールドの値が増加することは、ドライブの劣化が進行中であることを意味します。

推奨される監視スケジュール

タスク頻度
-H健康チェック毎週
短いテスト(-t short)毎週
長いテスト(-t long)毎月
エラーログレビュークラッシュやI/Oの問題の後
温度監視常時(スクリプトを介して)

Cronで自動化する

例:ディスクの健康に関する週次メールレポート

0 3 * * 1 smartctl -H /dev/sda | mail -s "SMART Health Report" you@example.com

📌 mailutilsまたはsendmailがインストールされていることを確認してください。

結論

smartctlは軽量でありながら強力なツールで、どのsysadminも見逃すべきではありません。これを使用することで、サーバーを健康に保ち、データを安全にし、インフラをプロアクティブに保つことができます。