ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

CentOSコミュのICH9R なRAID(mirror)にCentOS5を入れた体験

  • mixiチェック
  • このエントリーをはてなブックマークに追加
はじめまして。

ここ最近、Intel ICH9RのIntel印RAIDにCentOSいれようとしてはまっていました。
ネットで検索すると、そこそこ「なぜだかトラぶった→放置、お手上げ」事例が見つかる一方、解決策が見あたりません。
が、なんとかなったようなので、要点を書き残しておきます。

■対象
・たぶん、ICH9Rなどの、Intel印のRAID上にCentOSの5.1とか5.2をいれる場合全般
・具体的なターゲット:Shuttle XPC SX48P2 E にWindows XpとDual bootでいれる
 (Dual boot自体はなんら問題なし)

■現象
・WindowsはF6→FDでインストールできる(それはそれでちょっとはまりましたが)
・CentOS5.1のDVDイメージを落として焼いたものからのインストールで、インストール時は
 問題なくRAIDのVolumeを見つけてきて(生ディスクは見えず)、インストールできる。
・が、再起動すると、途中で
  No RAID sets and with names: "isw_......_Volume0"
 なメッセージが見えたと思ったら、起動はする。が、じつはRAIDでなくなっている。
 (起動時に、LVMがそんなVolumeしらんから、とりあえず/dev/sdb6つかうね、とか言っている)
・動いてはいるけど、結果的に片肺状態。なにかの拍子にRAIDがdegradeしたのを、
 Windows側から修復したら、いじったところが全部リセットされた。
 (たまたま、インストールしたままのほう(sda)からいじった方(sdb)にmirror再構築の模様)
■最終的に推定された原因
・mkinitrdで作られる、initrd-2.6.18...PAE.img の中に含まれる、最初のinitスクリプトに問題がある。
・具体個所: 
 > echo Scanning and configuring dmraid supported devices
 > dmraid -ay -i -p "isw_cfgaijfacg_Volume0"
 > kpartx -a -p p "/dev/mapper/isw_cfgaijfacg_Volume0"
・このdmraidが "dmraid -ay -i -p" のみ、 もしくは "dmraid ... aijfacg"(_Volume0なし)なら、
 問題なく動作する。(kpartx の Volume0は必要)
・これを
 > dmraid -ay -i -p "isw_cfgaijfacg"
 にしたら起動時にRAIDを認識して、(RAIDは)問題なく動作。

■対策
・mkinitrd を修正
 /sbin/mkinitrdをコピーして以下を修正。
 1342c1342,1343
 < emit "dmraid -ay -i -p \"$dmname\""
 ---
 > dmnamecore=$(echo $dmname | sed -e 's/_Volume[0-9]\+//;')
 > emit "dmraid -ay -i -p \"$dmnamecore\""
 (実際の行番号はmkinitrdのupdateで変わったので、dmraidをキーに検索)
 これで、dmraid の行から _Volume0 が抜けた。
 ※どの環境でも動くかは不明
・mkinitrd /boot/initrdなんたらPAE_raid.img `uname -r' でinitrd作り直し。
・/boot/grub/grub.conf にこのinitrdをつかうメニューを追加。→起動

■その他:
・yum updateして最新にしてみたものの(ロゴは5.2相当?)、mkinitrdは直らず。ので、この対策を再度。
・実際には、CentOSのインストーラが
  swap
  /boot
 をラベル指定にしていて、それが /dev/mapper/よりも /dev/sdaを優先してしまってトラブル。
 (dmraid不発のときは逆に動いていた。dmraid成功したら、raidに使っていてbusyになって
  fsckすらひっかかる→起動せず)
 ので、/etc/fstab も /dev/mapper/なんたらVolume0p?を参照するように書き換え。
・ここにたどり着くまで、mirrorされていないパーティション上でさんざんいじったので不整合が発生。
 それが原因でlibcみつからないとか、致命的にぐちゃぐちゃ。
 → dd で、それまでLVMが使っていたsdb?をsda? にコピー→うまくいった
・おそらく、最短コース:
 ディスクからインストール→すかさずディスクからlinux rescue→chroot
 →mkinitrd改造(or USBメモリとかから)→mkinitrdしてイメージ製作→grub.conf書き換え
・yum update してカーネルが新しくなるたび、mkinitrdが勝手に動くので、
 1:もう、/sbin/mkinitrdをいじる<それもupdateされる可能性
 2:yum updateしたら、必ず対策する
 3:ちらっとでも、No RAID sets and with names みたら速攻でリブートして1個前の環境に
  (RAIDくずれで運用すると壊滅的、ミラーでも)

以上、ネットで不幸な事例が散見されることと、備忘録代わりに(謝)、記録いたしておきます。
(今年のお盆の半分はこれで潰れた。あとの半分は仕事してた(汗 )

蛇足:
私自身がなにか大勘違いしているのかもしれないのですが....ただ、「updateしたらRAID見えなくなった」とかいう記録が1年くらい前にいくつかありました。でも、RHELでこんなトラブル残しておくとも思えないんですよねぇ。

コメント(0)

mixiユーザー
ログインしてコメントしよう!

CentOS 更新情報

CentOSのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング