Open1

SMART機能とsmartctlコマンド

ひでひで
  1. SMART機能とは:
  • Self-Monitoring, Analysis and Reporting Technology
  • ハードディスクの健康状態を監視する機能
  • 故障の予兆を検出できる
  • 多くの現代のハードディスクに搭載
  1. 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  # 詳細情報の表示
  1. よく使うオプション:
-i : デバイス情報の表示
-H : 健康状態の確認
-a : すべての情報を表示
-t : セルフテストの実行
-l : ログ情報の表示
-s : SMART機能の有効/無効の設定
  1. 実践的な使用例:

A. 基本的な健康診断:

# ディスクの健康状態チェック
sudo smartctl -H /dev/sda

# 出力例:
SMART overall-health self-assessment test result: PASSED

B. 詳細情報の確認:

# すべてのSMART属性を表示
sudo smartctl -a /dev/sda
  1. セルフテストの実行:

A. テストの種類:

# 短時間テスト(数分)
sudo smartctl -t short /dev/sda

# 長時間テスト(数時間)
sudo smartctl -t long /dev/sda

# テスト結果の確認
sudo smartctl -l selftest /dev/sda
  1. 重要な属性の説明:

主なSMART属性:

5  : リアロケートセクタ数(不良セクタの数)
187: 報告された未修復エラー数
197: 現在の保留セクタ数
198: オフラインの未修復セクタ数
  1. 監視の自動化:

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
  1. トラブルシューティング:

A. よくあるエラーと対処:

# SMART機能が無効の場合
sudo smartctl -s on /dev/sda

# デバイスが見つからない場合
sudo smartctl -i /dev/sd[a-z]
  1. 監視スクリプトの例:
#!/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
  1. LPIC試験でよく出題されるポイント:
  • SMARTの基本概念
  • smartctlの基本オプション
  • 重要な属性値の意味
  • セルフテストの種類と実行方法
  1. 実際の運用でのベストプラクティス:

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
  1. 重要な注意点:
  • RAIDコントローラ経由の場合は特別な設定が必要
  • SSDの場合は異なる属性値を監視
  • テスト実行中はディスクパフォーマンスが低下する可能性
  1. データの解釈:

正常値の例:

- リアロケートセクタ数: 0
- 未修復エラー: 0
- 保留セクタ: 0

要注意の値:

- リアロケートセクタ数が増加
- エラー数の増加
- 温度の上昇