Open1
SMART機能とsmartctlコマンド

- SMART機能とは:
- Self-Monitoring, Analysis and Reporting Technology
- ハードディスクの健康状態を監視する機能
- 故障の予兆を検出できる
- 多くの現代のハードディスクに搭載
- smartctlコマンドの基本:
A. インストール方法:
# Debian/Ubuntu系
sudo apt-get install smartmontools
# RedHat系
sudo yum install smartmontools
B. 基本的な使い方:
# SMART情報の表示
sudo smartctl -i /dev/sda # 基本情報の表示
sudo smartctl -H /dev/sda # 健康状態の確認
sudo smartctl -a /dev/sda # 詳細情報の表示
- よく使うオプション:
-i : デバイス情報の表示
-H : 健康状態の確認
-a : すべての情報を表示
-t : セルフテストの実行
-l : ログ情報の表示
-s : SMART機能の有効/無効の設定
- 実践的な使用例:
A. 基本的な健康診断:
# ディスクの健康状態チェック
sudo smartctl -H /dev/sda
# 出力例:
SMART overall-health self-assessment test result: PASSED
B. 詳細情報の確認:
# すべてのSMART属性を表示
sudo smartctl -a /dev/sda
- セルフテストの実行:
A. テストの種類:
# 短時間テスト(数分)
sudo smartctl -t short /dev/sda
# 長時間テスト(数時間)
sudo smartctl -t long /dev/sda
# テスト結果の確認
sudo smartctl -l selftest /dev/sda
- 重要な属性の説明:
主なSMART属性:
5 : リアロケートセクタ数(不良セクタの数)
187: 報告された未修復エラー数
197: 現在の保留セクタ数
198: オフラインの未修復セクタ数
- 監視の自動化:
A. 定期的なチェック設定:
# smartdデーモンの設定
sudo vi /etc/smartd.conf
# 基本的な設定例
/dev/sda -a -o on -S on -s (S/../.././02|L/../../6/03)
B. サービスの開始:
# smartdサービスの開始
sudo systemctl start smartd
sudo systemctl enable smartd
- トラブルシューティング:
A. よくあるエラーと対処:
# SMART機能が無効の場合
sudo smartctl -s on /dev/sda
# デバイスが見つからない場合
sudo smartctl -i /dev/sd[a-z]
- 監視スクリプトの例:
#!/bin/bash
# ディスク健康状態チェックスクリプト
DISK="/dev/sda"
LOG="/var/log/smart_check.log"
# 健康状態チェック
check_health() {
smartctl -H $DISK | grep -i "health"
}
# 結果をログに記録
echo "$(date): $(check_health)" >> $LOG
# エラーがある場合は管理者にメール
if ! check_health | grep -q "PASSED"; then
echo "SMART Error detected!" | mail -s "Disk Warning" admin@example.com
fi
- LPIC試験でよく出題されるポイント:
- SMARTの基本概念
- smartctlの基本オプション
- 重要な属性値の意味
- セルフテストの種類と実行方法
- 実際の運用でのベストプラクティス:
A. 定期的なチェック:
# 週次の長時間テスト
0 0 * * 0 smartctl -t long /dev/sda
# 毎日の短時間テスト
0 3 * * * smartctl -t short /dev/sda
B. 警告値の設定:
# smartdでの警告設定
/dev/sda -a -o on -S on -W 4,45,55
- 重要な注意点:
- RAIDコントローラ経由の場合は特別な設定が必要
- SSDの場合は異なる属性値を監視
- テスト実行中はディスクパフォーマンスが低下する可能性
- データの解釈:
正常値の例:
- リアロケートセクタ数: 0
- 未修復エラー: 0
- 保留セクタ: 0
要注意の値:
- リアロケートセクタ数が増加
- エラー数の増加
- 温度の上昇