Manager)でやろうと思って調べていたが、どうもLinuxのこの手の半ソフトウェアRAIDのサポートはいまいち良くないようであったので、昔からあって世間的に実績も多い、OSのソフトウェアRAIDを採用することにした。運用していて、昨年アレイを構成しているディスクが1本死んだので、交換を行った。[UU]こんな感じで、sdaとsdbでミラーを組んでいる。/dev/sdb2こんな感じでアレイにパーティションを追加すれば、リビルドしてくれ、完了すれば元通りである。ところが、今回は、sdaの方が死んだのである。device.こんな感じで、そもそもデバイスの応答がない状態になっている。loaderがロードされ、カーネル、initrdのロードと展開といったプロセスの間は、最初の起動ドライブ(つまりはsda)から読み出されるため、sdaが死ぬと起動できなくなるのである。ここで、ドライブがホットスワップ可能なサーバハードウェアであれば比較的話は早く、障害の起きたドライブを新しいものに交換し、パーティションを設定してmdアレイにパーティションを追加すれば、リビルドできるし、GRUBを再インストールすればブートも可能となり、ダウンタイムゼロで交換作業は完了する。今回、ホットスワップできない筐体であったので、どうしようかと思ったが、sdaが完全に機能しない状態になっていたとすると、このまま再起動してしまうと二度と起動できなくなってしまうので、サーバの再起動はせず、故障したドライブの電源コネクタを抜き差しすることで電源を再投入し、とりあえずディスクが生きているか確認を行った。活線挿抜に対応したハードウェアではないので、本来このような作業はリスクを伴うが、今回はやむを得ずこのような対応を執った。/sys/class/scsi_host/host0/scanバスの再スキャンを行ってみたところ、sdaではなくsdcでデバイスが認識されてしまった。先にデバイスの削除をしておくべきだったかな。(以下では、話がわかりにくくなるので、sdcではなくsdaとして話を進めている)ひとまず中身を確認してみると、とりあえずディスクは読めているようだ。そこで、sdaのMBRをそのままsdbにコピーした。count=1なお、これは下記のように、sdaとsdbのパーティション構成が完全に同じであることが大前提である。違う場合はそのままコピるとパーティションが壊れるので、絶対にやってはいけない。0につなぎかえ、こいつからブートすることにする。1には、新しいドライブをつないでおく。再起動すると、今までsdbだったドライブがsdaとして見え、普通にブートしてくる。sdbは新しいドライブになっているので、sdbのパーティションをsdaと全く同じになるように切って、mdadmでパーティションをmdアレイに追加してやればOK。0につなぎかえるだけでブートできるようにしておく。まとめ:LinuxでソフトウェアRAID(md)を使っているmdパーティションからブートしているホットスワップできない筐体を使っている上記条件で運用している時は、非常時に備えてあらかじめsdaのMBRをsdbにコピーしておく。21:22に投稿されたエントリーのページです。ツーマンLIVE~伝説の二人の伝説~」です。次の投稿は「まいたソングはよいビミョウソング」です。他にも多くのエントリーがあります。メインページやアーカイブページも見てください。