私は家に複数のコンピュータを集め始め、それをサポートするためにRAIDアレイを実行する「サーバー」Linuxボックスを持っていました。
現在mdadm
RAID-1
、RAID-5
ドライブが増えたら(RAID-6
それを願っています)。しかし、あるドライブでデータが破損しているというさまざまな話を聞きましたが、最初のドライブが故障し、2番目のドライブが破損していることがわかるまで、別のドライブが使用されていたため、まったく気づかなかった。と5番目のドライブ)。
明らかにバックアップは重要であり、この問題にも対処していますが、この問題を解決するのに役立ち、実行中にRAIDを確認できるようにするいくつかのスクリプトを見たことがあります。しかし、今、これらのスクリプトをもう一度検索してみると、以前に実行したものと似たものを見つけるのが難しく、古くなったような気がし、何が変更されたのかわかりません。
すべてのディスクがまだ正常に動作していることを確認するために、実行中のRAIDをどのように確認しますか?
すべてのドライブでSMARTを監視し、エラーが発生した場合に電子メールを送信するように設定しましたが、ドライブmdadm
が時々自分自身で「確認」するかどうかを知りたいです。
答え1
冗長性を備えたRAIDの重要な点は、できるだけ長く実行されますが、ディスク障害などのパフォーマンス低下モードに移行するエラーを検出することです。次のコマンドを使用して、アレイの現在の状態mdadm --detail
(略語で表示)を表示できます。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
また、問題(コンポーネントエラーなど)がある場合、戻り状態は0ではありません(1はRAIDモードでエラーが補償されたことを示し、2は完全なエラーを示します)。
また、すべてのRAIDデバイスのステータスを表示してクイックサマリーを取得することもできます/proc/mdstat
。/sys/class/block/md*/md/*
RAIDデバイスに関する情報も入手できます。admin-guide/md.html
カーネル文書から。一部の項目は書き込み可能です。たとえば、を使用してフルスキャンを/sys
実行できます。md0
echo check >/sys/class/block/md0/md/sync_action
これらのインスタントチェックに加えて、mdadmは問題が発生した場合にすぐに通知することができます。一部のディストリビューション(Debianなど)MAILADDR root
では、この設定が自動的に設定されていることを確認してください。/etc/mdadm.conf
それからあなたはそうでしょうエラーが発生した場合(アレイのパフォーマンスが低下した場合)、Eメール通知が届きます。。
ローカルコンピュータのルートに送信された電子メールを実際に受信したことを確認してください。(一部の最新のディストリビューションでは、すべての電子メールが外部プロバイダを介して配信されると考えているため、これを無視しますが、深刻なシステム管理者にはローカルメールを受信する必要があります。)ルートにメールを送信してテストしますecho hello | mail -s test root@localhost
。通常、適切なメール設定には次の2つが必要です。
実行するMTAローカルコンピュータから。 MTAは、少なくともローカルメール配信を許可するように設定する必要があります。すべてのディストリビューションには適切なMTAが付属しているため、何でも選択できます(電子メールをローカルに送信するにはnullmailerを選択しないでください)。
システムアカウント(最小
root
)に送信されたメールをよく読むアドレスにリダイレクトします。これはローカルコンピュータのアカウントでも外部メールアドレスでもかまいません。ほとんどのMTAでは、アドレスは/etc/aliases
次のように設定できます。root: djsmiley2k
ローカル配送または
root: [email protected]
遠隔配達のため。瞬間移動を選択する場合は、MTAがそれに合わせて設定されていることを確認してください。
newaliases
MTAに従って/etc/aliases
。
答え2
アレイ全体がオンラインの間、アレイ全体を強制的に検査できます。たとえば、の配列を調べるには、/dev/md0
rootとして実行します。
echo check > /sys/block/md0/md/sync_action
また、月に一度、次のコマンドを実行するcronジョブもあります。
tar c /dir/of/raid/filesystem > /dev/null
ドライブ自体を徹底的にチェックするわけではありませんが、システムはディスク上の(ほぼ)すべてのファイルを正常に読み取ることができるかどうかを定期的に確認するよう強制します。はい、一部のファイルはディスクの代わりにメモリキャッシュから読み込まれます。ただし、ファイルがメモリキャッシュにある場合、最近ディスクから正常に読み込まれた場合、またはディスクに書き込もうとした場合は、これらの操作のいずれでもドライブエラーが検出されると仮定します。それにもかかわらず、これを実行すると、RAIDアレイの最も重要な基準(「データを正常に読み取ることができますか?」)がテストされます。そして3年間アレイを走らせると、一度はドライブが故障したことがありました。このコマンドで見つけました。
小さな警告は、ファイルシステムが大きい場合、このコマンドは私のシステムではTiBあたり約6時間かかります。ionice
ドライブの検査中に残りのシステムが停止しないように、次のコマンドを使用して実行します。
ionice -c3 tar c /dir/of/raid/filesystem > /dev/null
答え3
Debian および Ubuntu 'mdadm' パッケージにはこのファイルが含まれています。
/etc/cron.d/mdadm
このコマンドは、毎月最初の日曜日に順次実行されます。
/usr/share/mdadm/checkarray --cron --all --idle --quiet
AUTOCHECK を false に設定しない限り、すべての配列の一貫性を確認します。 /etc/default/mdadm)。レポートは「root」ユーザーに送信されます(該当する電子メールを受信したことを確認してください)。
答え4
/etc/profile.d/raid_status.sh を生成してプロンプトに追加しました。
raid_prompt() { awk '/^md/ {printf "%s: ", $1}; /blocks/ {print $NF}' /proc/mdstat | awk '/\[U+\]/ {print "\033[32m" $0 "\033[0m"}; /\[.*_.*\]/ {print "\033[31m" $0 "\033[0m"}'; }
その後、PS1を次のように設定します。
PS1='$(raid_prompt)\n[\u@\h \W]\$ '
すべてのメンバーの電源がオンの場合、アレイ名とメンバーの状態は緑色で印刷されます。メンバーが失敗した場合は赤で印刷されます。