ちょっと設定とは話が違うが。
既にあるメインサーバのmdraidのmd0をmd10にリネームする作業で手間取ったので覚書。
なんで名称変更したかというと、今後のため。
現在、以下のような構成になっている。
(名称は一部変更してます)
IDE 80G*2 RAID1(ITE8212によるハードウェアRAID)
/dev/hda1:基本PT:ext3:8.0GB:root(/)
/dev/hda2:基本PT:ext3:2.0GB:var(/var)
/dev/hda3:基本PT:ext3:2.0GB:temp(/temp)
/dev/hda5:拡張PT:swap:1.0GB:スワップ領域
/dev/hda6:拡張PT:LVM:67.0GB:拡張ボリューム
LVG00:67GB
LV00:ext3:20GB:home(/home)
LV01:ext3:20GB:database(/home/database)
(
PC Linux Samba サーバ構築(Debian amd64インストール16))
SATA 1.5TB*4 RAID5(ICH7R AHCI接続、mdraid)
/dev/sda1:基本PT:LVM:1.5TB拡張ボリューム
/dev/sdb1:基本PT:LVM:1.5TB拡張ボリューム
/dev/sdc1:基本PT:LVM:1.5TB拡張ボリューム
/dev/sdd1:基本PT:LVM:1.5TB拡張ボリューム
/dev/md0 /dev/sda1:/dev/sdb1:/dev/sdc1:/dev/sdd1
/dev/md0:LVM:4.5TB拡張ボリューム
LVG01:4.5TB
LV02:ext3:4.0TB:ファイルサーバ(/home/share/)
※:実は、パーティションの設定でLVMにしたのは失敗。RAID領域(Linux raid autodetect)にする必要があったのだが、普通に使えてしまってるので、あえてこのまま。一個外して修正、再接続で直るが、4.0TBもあると再構築に10時間ではすまない。CPUパワー依存なので、ハードウェア交換後に設定予定。
次のハードウェアでは、IDEがポート一つしかなく、IDE RAID使う必然性も無いため、SATAのmdraidへ変更を余儀なくされた。
(IDE接続のDVD-Rドライブ使ってるので、IDEはもう全てふさがってるのです。)
そのため、IDEのハードウェアRAIDからSATARAIDに変えると、sda等の振り分けが変わる事、RAID構成作成時に/(root)がmd1になり、順番にならないのが(個人的に)美しくないと感じた事により、md0->md10へ名称を変更しようと。
というわけで色々調べた結果、
・mdadm.confの内容変更
・/bootにあるinitrd.imgを再作成
・再起動
でいいらしい、とやったのですが、それではダメだったので、きちんと成功した手順を書こうと。
正常な手順は以下のとおりでした。(理由も含めて書きます。)
なお、実行前にはきちんとバックアップを取っておくこと!
ちなみに、うちでは、バックアップに計3日かかりました。
こういうとき、貧弱なCPUだと大変ですね・・・
1.Sambaの停止
md0はLVMを使用して/home/shareにマウントされてるが、ここはファイルサーバ領域となっているため、アンマウントして変更するためには、Sambaの停止が必要。
コマンドでもSwatでもいいので、停止する。
# /etc/init.d/samba stop
など。
2.umountの発行
Samba停止後に
# umount /home/share
で、マウントを外し、外部からアクセスされないようにする。
3.LVMの停止
最終的に/dev/md0を停止しなければならないのだが、その前に、/dev/md0にあるLVMがアクセスしているために停止できないので、LVMを停止する。
これにより、/dev/sd6にも影響があるが、そもそも誰もアクセスして無い状況を1で作ったので問題は無い(Telnet接続が他に無いことを確認した後で実行すること。)
# /etc/init.d/lvm2 stop
4./dev/md0を停止
/dev/md0->/dev/md10にするためには、いったん/dev/md0の動作を停止する必要がある。
# mdadm --misc --stop /dev/md0
これで/dev/md0は停止する。
一応、
# cat /proc/mdstat
で、/dev/md0が止まっている(表示されない)事を確認する。
5./dev/md0->/dev/md10に名称変更する
具体的には、mdadm.confを編集するだけ。
# vi /etc/mdadm/mdadm.conf
これで、
ARRAY /dev/md0 level=raid5 num-devices=4~
となっている行の、/dev/md0を/dev/md10に変更
6./dev/md10を起動
5で、作成されているRAIDの名称変更が終わったので、起動をかける。HDDのフォーマットや、構成変更が無いので、そのまま起動できる
はず。
# mdadm --assemble --scan /dev/md10
これで/dev/md10がそのまま動作。
一応、
# cat /proc/mdstat
で確認。
7.LVM再稼動
たぶん、昔なら、md10へ名称変更したことにより、LVM設定を書き換えるとか必要だったんだろうけど、現在ではスクリプトで検索かけてるようなので、普通に起動かければよさそう。
# /etc/init.d/lvm2 start
で、再稼動。
8.mountする
ほとんどの人は/etc/fstabにマウントポジションを書いてるはずなので、それを元にmountを発行すればいいはず。
# mount /dev/mapper/LVG01-LV02 /home/share
lsなどでアクセスできることを確認。
9.Samba起動
外部からもアクセスできることを確認。
Swatなどで起動する。
# /etc/init.d/samba start
など。
10.Windowsから確認
Windowsから確認する。
簡単な方法は、テキストファイルや画像ファイルが開けること、新規作成(ファイル、ディレクトリ)が出来ること、変更が出来ることを確認すればいい。
11.起動イメージの再作成
起動イメージを再作成する。
Debianの起動イメージは、/bootにおいてあるが、 大抵、読み込み元は
/initrd.img
となっている。これは、/bootにあるイメージへのシンボリックリンクとなっているので、結果的に、/initrd.imgがどれを見ているか確認する。
※:2010/07/28時点では、/boot/initrd.img-2.6.26-amd-2にリンクされていた。
# cd /boot
# cp -p initrd.img-2.6.26-amd-2 initrd.img-2.6.26-amd-2.old
# uname -r
# mkinitramfs -o initrd.img-2.6.26-amd-2 2.6.26-amd-2
※:mkinitramfsの最後の引数は、uname -r で取得した値を設定
12.PC再起動
その後、PCを再起動すればいい。
# shutdown -r 0
で一応、再起動できるが、再起動する前に他の人達がアクセスしていないことを確認してから実行しましょう。
問題なければ、再起動後にも/dev/md10という名称のまま使えるはずです。
以上、ちょっと大変だったけど、なんとか変更できました。
今回はどこもファイルがおかしくなってなかったので、バックアップから戻すことはありませんでしたが、失敗していたら、たぶん、バックアップから戻す作業で何日かかかってまともに使えない状況だったかもしれない。
以上、mdraidの名称変更のエントリでした。
参考:
Yet Another Diary: mdadmで/dev/md2を/dev/md0にリネームしてみた
◇mdadmによるRAIDの解除◇初心者のためのLinuxサーバー構築講座☆お便利.com☆