数か月前、ESXi 5.5を搭載したDell PowerEdge R720サーバーで実行されている1台の仮想マシンで問題が発生しました。 このVMの再起動にはかなり時間がかかり、ホスト自体のパフォーマンスが大幅に低下しました。
サーバーのライフサイクルログは、次の形式のメッセージでいっぱいになりました。
PDR47
統合RAIDコントローラー1のバックプレーン1のディスク0のブロックは
コントローラーに穴が開いた。
PDR64
バックプレーン1のディスク0で回復不能なディスクメディアエラーが発生しました
統合RAIDコントローラー1。
グーグルは、残念な結論に至りました:レイドアレイは破損しており、復元できません。 つまり、1つのブロック(ストリップ)に関連するデータが複数のディスクで一度に破損しました(二重障害)。
幸いなことに、Dell RAIDコントローラには、アレイの非子音状態にもかかわらず機能し続ける機能があります- パンク ( https://www.dell.com/support/Article/us/en/04/438291/EN#Unique-Hyphenated-Issue- Here-2 )、データの少なくとも破損していない部分を保存できます。 もちろん、これは、ディスクのその後の交換とRAIDアレイの再構築をゼロから再構築する必要性を決して排除しません。
このような状況を防ぐために、デルは少なくとも月に1回アレイの整合性チェックを実行することをお勧めします。 悲しいかな、これについては遅すぎました。
このチェックは、Dell OpenManage Server Administratorウェブインタフェース( http://www.dell.com/support/contents/us/en/19/article/Product-Support/Self-support-Knowledgebase/enterprise-resource- center / Enterprise-Tools / OMSA / )、およびOMSAに含まれるomconfig / omreportユーティリティを使用します。 また、Dellの開発者がOpenManage for ESXiにこれらのユーティリティを含めることを「忘れていない」場合、自動化の問題は発生しません。 各サーバーのアレイの整合性を手動で確認することは、ITのやり方ではないことは明らかです。 言うまでもなく、OMSAインターフェースは非常に低速であり、それを使用するのは楽しいことです。
デルのスタッフは「すばらしい仕事をしました」。簡単な方法で検証を自動化することはできません(たとえば、cURLで準備されたリンクを開くことによって)。 Webインターフェースは動的に生成され、永続的なリンクはありません。
どうする?
少し手を加えて、検証ユーティリティを自分で作成する必要がありました。 会う: iDRACを搭載したDellサーバーの整合性チェックタスク自動化ツール (https://github.com/jazzl0ver/dell_raid_cc)。 このユーティリティはCasperJSフレームワークを使用して記述されているため、このような動的なサイトで作業を自動化できます。
dell_raid_ccを使用するには、 以下を行う必要があります。
1. OMSAがインストールされたサーバー(上記のリンクを参照)
2. phantomjs (http://phantomjs.org/download.html)をダウンロードしてインストールします
3. casperjsをダウンロードしてインストールします (http://docs.casperjs.org/en/latest/installation.html)
4.ユーティリティをgitから引き出します。
git clone https://github.com/jazzl0ver/dell_raid_cc
5.アクセスパラメータを含むファイル(たとえば、creds.txt)を作成します。
export OMSAHOST=192.168.1.191
export OMSAPORT=1311
export USERNAME=root
export PASSWORD=password
export DELLHOST=192.168.1.30
6.それをダウンロードすると、ユーティリティを実行するか、crontabで起動できます。
source creds.txt
casperjs --ignore-ssl-errors=true --cookies-file=/tmp/dell_raid_cc_cookie.jar dell_raid_cc.js
すべてが正常な場合、出力は次のようになります。
検出:仮想ディスク0 [状態:準備完了; レイアウト:RAID-10; サイズ:1,862.00GB]
仮想ディスク0のCCが開始されました
検出:仮想ディスク1 [状態:準備完了; レイアウト:RAID-1; サイズ:931.00GB]
仮想ディスク1のCCが開始されました
再度実行すると、たとえば次のようにスキャンの進行状況を確認できます。
検出:仮想ディスク0 [状態:再同期中; レイアウト:RAID-6; サイズ:5,026.50GB]
仮想ディスク0のCCはまだ実行中、進行状況:19%完了
このユーティリティはマルチコントローラーシステムをサポートしていないことは言うに値します(私は1つだけではなく、それぞれテストするものはありません)。
このユーティリティが私だけでなく役に立つことを願っています。
UPD。 同僚がコメントで示唆したように、megacliユーティリティを使用して、スケジュールに基づいて整合性チェックの起動を設定する方が適切です。 例:
./MegaCli -AdpCcSched -SetStartTime 20140822 04 -aALL
CentOS / RedHatを搭載したサーバーへのインストール手順- ここ
CCスケジュール設定- ここ
ESXiでのインストールも簡単です。 vibを 直接インストールするか、 vibからバンドルを作成し、vCenterを介してアップデートとしてインストールできます。
UPD。 #2 Perc5コントローラーは、MegaCliによるスケジューリングをサポートしていません。
cd / opt / lsi / MegaCLI; ./MegaCli -AdpCcSched -Info -aALL
アダプター0:スケジュールされたChceck整合性はサポートされていません。
終了コード:0x01
彼らにとっては、 dell_raid_ccを使用することがそれを自動化する唯一の方法です。