自宅でコンピューターのコレクションを入手し始め、それらをサポートするために、「サーバー」LinuxボックスでRAIDアレイを実行しています。
現在はmdadm
RAID-1
であり、ドライブを追加するとRAID-5
に移動します(それからRAID-6
に期待しています)。ただし、1つのドライブでデータが破損するさまざまな話を聞いたことがあります。最初のドライブが故障し、2番目のドライブもねじ込まれている(そして3番目、4番目) 、5番目のドライブ)。
明らかにバックアップは重要であり、私もそれを処理していますが、この問題を解決し、実行中にRAIDを確認できると主張するスクリプトを以前に見たことがあります。しかし、これらのスクリプトをもう一度探すと、以前に実行したものに似ているものを見つけるのが難しくなり、古くなっていて、変更点を理解できないと感じています。
すべてのディスクが正常に実行されていることを確認するために、実行中のRAIDをどのようにチェックしますか?
私はすべてのドライブでSMART=を監視し、mdadm
を設定してエラーが発生した場合にメールで通知するようにしていますが、ドライブも時々「自分でチェック」することを知りたいです。
冗長性を備えたRAIDのポイントは、可能な限り継続することですが、ディスクの故障など、劣化モードに移行するエラーを検出することは明らかです。 mdadm -D
を使用して、アレイの現在のステータスを表示できます。
# mdadm -D /dev/md0
<snip>
0 8 5 0 active sync /dev/sda5
1 8 23 1 active sync /dev/sdb7
さらに、コンポーネントの障害などの問題がある場合、mdadm -D
の戻りステータスはゼロ以外です(1はRAIDモードが補償するエラーを示し、2は完全な障害を示します)。
また、/proc/mdstat
を見ると、すべてのRAIDデバイスステータスの簡単な概要を取得できます。 RAIDデバイスに関する情報は/sys/class/block/md*/md/*
でも取得できます。カーネルのドキュメントの Documentation/md.txt
を参照してください。一部の/sys
エントリも書き込み可能です。たとえば、md0
でecho check >/sys/class/block/md0/md/sync_action
のフルチェックをトリガーできます。
これらのスポットチェックに加えて、mdadmは問題が発生するとすぐに通知します。 MAILADDR root
に/etc/mdadm.conf
があることを確認してください(一部のディストリビューション(Debianなど)ではこれを自動的に設定しています)。次に、エラー(劣化したアレイ)が発生するとすぐに電子メール通知を受け取ります。
ローカルマシンのrootに送信されたメールを受信することを確認してください(最近の一部のディストリビューションでは、すべてのメールが外部プロバイダーを経由すると見なされているため、これを省略していますが、ローカルメールの受信が必要です深刻なシステム管理者向け)。 rootにメールを送信してこれをテストします:echo hello | mail -s test root@localhost
。通常、電子メールを適切に設定するには、次の2つが必要です。
システムアカウント(少なくともroot
)宛てのメールを、定期的に読むアドレスにリダイレクトします。これは、ローカルマシン上のアカウント、または外部の電子メールアドレスです。ほとんどのMTAでは、アドレスは/etc/aliases
で構成できます。次のような行があるはずです
root: djsmiley2k
現地配送の場合、または
root: [email protected]
リモート配信用。リモート配信を選択する場合は、MTAがそのように構成されていることを確認してください。 MTAによっては、/etc/aliases
の編集後にnewaliases
コマンドを実行する必要がある場合があります。
オンライン中にアレイ全体を強制的にチェックできます。たとえば、/dev/md0
の配列を確認するには、rootとして実行します。
echo check > /sys/block/md0/md/sync_action
また、月に1回次のコマンドを実行するcronジョブもあります。
tar c /dir/of/raid/filesystem > /dev/null
これはドライブ自体の完全なチェックではありませんが、(ほとんど)すべてのファイルがディスクから正常に読み取れることをシステムに定期的に確認させます。はい、一部のファイルはディスクではなくメモリキャッシュから読み取られます。しかし、ファイルがメモリキャッシュにある場合は、最近ディスクから正常に読み取られたか、ディスクに書き込まれる直前であり、これらの操作のいずれかによってドライブエラーも明らかになります。とにかく、このジョブを実行すると、RAIDアレイの最も重要な基準がテストされ(「データを正常に読み取ることができますか?」)、3年間、アレイを実行していたときに、ドライブが故障したことがありました。それを発見したこのコマンド。
小さな警告の1つは、ファイルシステムが大きい場合、このコマンドには長い時間がかかることです。私のシステムは約6時間/ TiBかかります。 ionice
を使用して実行し、ドライブチェック中にシステムの残りの部分が停止しないようにします。
ionice -c3 tar c /dir/of/raid/filesystem > /dev/null
debianおよびUbuntuの「mdadm」パッケージには、ファイルが含まれています
/etc/cron.d/mdadm
次に、毎月の最初の日曜日にコマンドを実行します
/usr/share/mdadm/checkarray --cron --all --idle --quiet
これは、すべてのアレイの整合性をチェックします(/ etc/default/mdadmでAUTOCHECKをfalseに設定しない限り)。レポートが「root」ユーザーに送信されます(そのようなメールを必ず受信してください)。
私はこの単純な関数を使用して/proc/mdstat
:
#Health of RAID array
raid() { awk '/^md/ {printf "%s: ", $1}; /blocks/ {print $NF}' /proc/mdstat; }