Quantcast
Channel: Royal Windows
Viewing all articles
Browse latest Browse all 288

LinuxソフトウェアRAIDを組んでるサーバのP2V

$
0
0

Software RAID を使用しているUbuntu 10.04 サーバを VMware ESXi にコンバートした。
VMware vCenter Converter はLinux Software RAIDをサポートしていないが,オープンソースのmondo rescueでP2Vが成功した。

手順は,サーバに直接mondo rescueをインストールしてオンラインバックアップを行う。OS,サーバソフト,データファイルが丸ごと入ったブート可能なisoファイルが生成される。
仮想マシンを作り,仮想マシンの仮想DVDにiso ファイルを指定して,仮想DVDからブートすると/etc/fstabの更新,grubの再インストール等,ウィザード形式でリストアできる。

1)サーバに mondo, mindi, mindi-busybox をインストールする。

ここでの注意点は,上記3ソフトのバージョンの組み合わせを厳密に合わせておく必要がある。合ってない場合,生成されたisoファイルからブートしてもkernel panicとなり,起動できない。

/bin/sh: expert: No such file or directory
Kernel panic - not syncing: Attempted to kill init!

組み合わせは以下のページに書かれている。
http://trac.mondorescue.org/wiki/FAQ#Q38Whichversionsofmindiandmondoarecompatible

Mondo rescueの関連パッケージのインストール

apt-get install afio binutils buffer gawk genisoimage liblzo2-2 lzop mtools syslinux wodim
wget http://www.mondorescue.org/ftp/ubuntu/10.04/mindi-busybox_1.18.5-3_i386.deb
wget http://www.mondorescue.org/ftp/ubuntu/10.04/mindi_2.1.4-1_i386.deb
wget http://www.mondorescue.org/ftp/ubuntu/10.04/mondo_3.0.3-1_i386.deb
dpkg -i m*.deb

(http://www.mondorescue.org/docs/p2v.pdf)
サーバ内のデータは圧縮されるが,最終的にDVDに収まるサイズのisoファイルを作るので,ラージデータは,外付けHDD等に退避して無くしておく。

2)サーバのバックアップ

サーバでmondoarchive を実行する。

mondoarchive -O -i -N -g -d /storage -E '/storage' -s 4480m

mondo rescue archive

3)仮想マシンにリストアする。

scpでバックアップiso ファイルをvmwareサーバに転送する。

scp /storage/mondorescue-1.iso user@virtualhost:/scratch/

vmwareで仮想マシンを作成して,仮想マシンのDVDにisoファイルを指定する。
仮想マシンをDVDからブートする。

boot: でexpert と入力してenterを押す。

シェルプロンプトで,vi /tmp/mountlist.txt

/dev/md0 / ext4 8386560 980b8216-042f-4abe-b6fb-626645d200b0
/dev/sda1 raid raid 8386560
/dev/sdb1 raid raid 8386560
/dev/sdc1 raid raid 8386560

/dev/md0→/dev/sda1,サイズの後のUUIDは削除する。またraid の行は削除する。

/dev/sda1 / ext4 8386560

ウィザードでもmountlistの編集画面があるが,行削除等ができなかった。

シェルプロンプトで,mondorestoreコマンドを実行する。
ウィザードでInteractively→DVD disksを選択して,リストアを実行する。
initrd の再作成はスキップした。
ウィザードでnano が自動起動して,/etc/fstab,/etc/mtabが表示される。

fstab:
ubuntuの場合,UUID=XXX….XXX を /dev/sdaX にする。

UUID=980b8216-042f-4abe-b6fb-626645d200b0 / ext4 errors=remount-ro 0 1

/dev/sda1 / ext4 errors=remount-ro 0 1

mtab:

/dev/md0 / ext4 rw,errors=remount-ro 0 0

/dev/sda1 / ext4 rw,errors=remount-ro 0 0

ウィザードが終了して,シェルプロンプトになった後,grubを再インストールする。

mount /dev/sda1 /mnt
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
chroot
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

注)このサーバはrootパーティションだけなので,bootパーティション等複数のパーティションがある場合は,fstab やmtabで追加の編集やmount /dev/sdaX /mnt/boot が必要。
ubuntuのP2Vでは,起動したあとに/etc/udev/rules.d/70-persistentnet.rulesを直して,vmwareのネットワークアダプタがeth0になるようにしなければならない。

最後の grub のインストールは,ubuntu & softwareRAIDの場合の特別な作業で,他のケースは不要だと思う。
また,バックアップのmondoarchiveで,–s 4480m (DVDサイズ)を指定しないと複数のCDサイズのisoファイルに分割される。分割した場合の対処は不明。
P2Vしたサーバは,wordpressとmailmanが主となるソフトで,bind も動作しているが,コンバート後,特に問題はなさそうだった。バックアップ前に,サービスの停止は,できる限り行った方がいいと思う。


Viewing all articles
Browse latest Browse all 288

Trending Articles