seraphyの日記

日記というよりは過去を振り返るときのための単なる備忘録

CentOS5.2を使ったサーバのレスキューモードでの手順(訓練メモ)

LinuxソフトウェアRAIDや論理ボリュームを使ったマシンのリカバリ作業なんて経験ないから、なにかあってからでは怖いので、
ためしに同じ構成をVMWareで作ってリカバリ作業を試してみた。

結論的には、いくつか注意事項がわかったので、なにかあったときのためのメモを残す。

RAID構成をフロッピー等に保存しておく。

mdadm.confはレスキューモードで必要である。

mdadm.confがなくても通常の運用は何の問題もなく、何のためにあるのかいまいちわからなかった。
実際、レスキューモードでも両方のRAID1デバイスが生きていれば問題なく、/mnt/sysimageにマウントしてくれる。

ところが、RAIDバイスの片方が死んでいたりすると、レスキューモードではRAIDバイスを認識せず、結果、/mnt/sysimageには何もマウントされない。
RAIDバイスが死んでいるので、/dev/md0 とかも使えない。

これではメンテナンスができない。

RAIDバイスを認識させるには、RAIDの構成情報を納めたconfファイルがあると簡単なようである。
(ない場合は、どうするのかわからない…。地道にデバイスを指定してゆけば認識できるらしいけれど??)

なので、とりあえずmdadm.confファイルだけはバックアップをとっておく必要がありそうだ。

まず現在のRAID情報を保存する。
mdadm -E --scan >> mdadm.conf

で現在のRAID構成の情報を「mdadm.conf」ファイルに保存する。

保存するにはフロッピーとかがよいのではないかと思う。少なくともRAID1化されているHDDに入れても意味がないと思う。


mdadm.confの先頭には

device /dev/hda* /dev/hdb*

のようにスキャンするデバイスを書いておく。

レスキューモードで立ち上げる

レスキューモード等で立ち上げたときに/dev/md?が生きていない場合、

mdadm -A --config=mdadm.conf --scan

RAIDバイスを構成しなおして起動することができるようになる。

cat /proc/mdstat

RAIDバイスが起動していることを確認する。


論理ボリュームマネージャをアクティブにする

レスキューモードで立ち上がったときに/dev/md? が認識されていなければ、その下にある論理ボリュームもアクティブになっていない。

論理ボリュームの構成そのものはデバイスのスーパーブロック上にテキストとして埋め込まれているらしくて、デバイスさえ見える状態になっていれば認識させるのは簡単らしい。

でも、一応、論理ボリュームの構成を保存する方法があるらしいので、これも保存しておいたほうが良さそうだ。

論理ボリュームの構成を保存する。
lvm vgcfgbackup -f lvm.conf

で論理ボリュームの代替パックアップファイルを作成しておく。

これは念のため。たぶん、これを明示的に使うことはないと思う。

論理ボリュームの構成がかわるたびに自動的に実行され、ふだんは気にすることはないらしい。


論理ボリュームマネージャをアクティブにする。


RAIDバイスが見えている状態で、LVMが開始されていないのならば、

lvm pvscan
lvm vgscan
lvm lvscan

を順に実行して論理ボリュームをスキャンすれば、たぶん、認識はできる。

だめなら、lvm vgcfgresroteとかで保存した構成ファイルを使うのかもしれないが、未確認。


認識できたら、

lvm vgchange -a y ...

でLVMを開始できる。

論理ボリュームをマウントする

あとは、いつもどおりにマウントすればよい。

mount -o ro /dev/VolGroup00/LogVol00 /mnt/sysimage