ipssend (serveraid 6i)
サーバがのディスクが不調だったため、raid の調査を行うことになった。サーバでは serveraid 6i を使っているので、コマンドラインからの管理は ipssend というコマンドで行うことになる。このコマンド自体はサーバ付属の CD-ROM 中に含まれていた。
対象サーバはSCSIディスク4台構成で raid5 を組んでいる。
まずは状態確認を。
# ./ipssend getstatus 1 1 個の IBM ServeRAID コントローラーが見つかりました。 コントローラー 1 のバックグランド・コマンドの進行状況... 現在/最後 のオペレーション : なし (0x0) 論理ドライブ : 1 バックグランドで実行中かどうか(Yes/No) : No 状況 : 成功 論理ドライブのサイズ (ストライプ単位) : 0 残りのストライプ数 : 0 コマンドは正常に終了しました。
正常、という結果。IO Error がでてるんだけどなぁ。
# ./ipssend getevent 1 DEVICE
デバイスのイベントログを見ると、あるディスクでイベントが多発していた。このディスクが問題を起こしているのか?でもこのイベントの詳細をどうやってみるのかがわからない。
# ./ipssend DEVINFO 1 1 1
で該当デバイスの情報を確認するが、オンライン(正常)になっている。他のデバイスも全てオンライン。ディスク障害じゃないのか?
もうOSから再インストールする気でいたので、無茶なことをやってみる。
# ./ipssend setstate 1 1 1 DDD
問題が起きていると思われるディスクを一旦 raid からはずしてみた。
が、やはり IO Error はで続ける。なぜ?間違ったディスクをはずしてしまったのか?
故障したディスクが他にあるのならもうデータは確実に失われているはず。再度 raid にディスクを追加してみる。
# ./ipssend rebuild 1 1 1 1 1
まつこと20分ほどで完了。正常に
もう一度ステータスを見ると、不良ストライプ検出、とでている。なんじゃそりゃ?
# ./ipssend getstatus 1 1 個の IBM ServeRAID コントローラーが見つかりました。 コントローラー 1 のバックグランド・コマンドの進行状況... 現在/最後 のオペレーション : 再構築 論理ドライブ : 1 バックグランドで実行中かどうか(Yes/No) : No 状況 : 不良ストライプ検出 論理ドライブのサイズ (ストライプ単位) : 8960768 残りのストライプ数 : 0 完了パーセント : 100.00% コマンドは正常に終了しました。
を見ると、2台以上のディスクで同一ストライプにおいて fail したときに、不良ストライプとしてマークされ、該当箇所が使えなくなるとのこと。fail って具体的に何だろう?
一旦サーバをシャットダウンして診断プログラムを走らせて見るが、ディスクにも raid コントローラにも異常はない。よくわからない。過去にUPSの故障でサーバが突然落ちたことがあったから、そのときにraidが論理的に壊れたのだろうか?
明日、raid の再構築からやり直そう。