2010年3月9日火曜日

ESX 4 サービスコンソール(COS)のバックアップ、リストア その2

ESX 4 サービスコンソール(COS)のバックアップ、リストア その1 で、「COSの設定をミスしたため、ミス以前の時点に戻りたい。」場合のリストア方法を書きました。
今回は、「COSがインストールされているHDDが破壊されたため、破壊以前の時点に戻りたい。」場合を書きます。
(もし作業実施する場合は、自己責任のもとお願いします。)


※ 画面は以前の方法とかぶる場合は省略しています。

①バックアップ
1.ESXのインストールCDで起動して、Network Configurationまで行います。

2.Network Configurationの次の画面の、Advanced Settingsで、
Ctrl+Alt+F2キーを押します。

3.scpコマンドで外部のlinuxサーバにesxconsole-xxxxフォルダごとコピーします。
以下例:
scp -r /vmfs/volumes/Storage1/esxconsole-* root@バックアップサーバ名:/バックアップ用フォルダ

4./etc/fstabの設定の結果を取得します。
※これは後で重要になります。







以上で、バックアップは終了です。


②リストア
1.今回はHDDが壊れてデータがない想定なので、ESXを一度再インストールを行います。

2.ESXのインストール終了後、再度インストールCDで起動して、Network Configurationまで行います。

3.Network Configurationの次の画面の、Advanced Settingsで、Ctrl+Alt+F2キーを押します。














4.一度Enterキーを押します。

5.rm -r /vmfs/volumes/Storage1/esxconsole*コマンドで、既存のesxconsoleフォルダを消去します。

6.scpコマンドで、バックアップしてあるesxconsole-xxxをフォルダリストアします。
以下例:
scp -r root@バックアップサーバ名:/バックアップ用フォルダ/esxconsole-* /vmfs/volumes/Storage1/

7.cdコマンドで/vmfs/volumes/esxconsole-xxxのフォルダに移動してpwdコマンドでesxconsole.vmdkのフルパスを確認します。

8.CDを取り出してrebootして、GRUBのブートローダーの画面でaキーを押します。

9.grub append>の行に「/boot/cosvmdk=7でメモしたesxconsole.vmdkのフルパス」を書き加えます。
↓こんな感じです。

編集前:
grub append> ro root=UUID=d01bc3a8-1e83-47ea-8250-a77cd15fc54 mem=300M quiet

編集後:
grub append> /boot/cosvmdk=/vmfs/volumes/4a79e784-066e4fef-9d4b-005056ab7e20/esxconsole-4a785116-c442-9826-6f60-005056ab7e20/esxconsole.vmdk ro root=UUID=d01bc3a8-1e83-47ea-8250-a77cd15fc54 mem=300M quiet

また、バックアップ時にメモした、/etc/fstabの情報の中の「/」のuuidを、
「ro root=UUID=」以下に書き換えます。
 下の赤字の部分です。
grub append> /boot/cosvmdk=/vmfs/volumes/4a79e784-066e4fef-9d4b-005056ab7e20/esxconsole-4a785116-c442-9826-6f60-005056ab7e20/esxconsole.vmdk ro root=UUID=d01bc3a8-1e83-47ea-8250-a77cd15fc54 mem=300M quiet
ちなみに、「/boot/cosvmdk=」行を加えない場合は、以下のように、vsd-mountのエラーが出ます。











また、「ro root=」行を書き換えないと以下のように、mount-rootでエラーが出ます。
 










10.(/boot)のuuidに不整合が起きて、エラーが発生します。rootのパスワードを入れます。











11.書き込み可能にする為に、「mount -n -o remount /」でマウントし直します。











12.「blkid」コマンドを実行して、/dev/sda1(/boot)のuuidをメモします。





13./etc/fstabの/bootのuuidを、12でメモした/dev/sda1(/boot)のuuidに変更します。







14.rebootします。

15.手順8と9の作業を繰り返します。
GRUBのブートローダーの画面でaキーを押し、
grub append>の行に「/boot/cosvmdk=7でメモしたesxconsole.vmdkのフルパス」を書き加えます。また、バックアップ時にメモした、/etc/fstabの情報の中の「/」のuuidを、ro root=UUID=」以下に書き換えます。

16.キタ━━━(゚∀゚)━━━!!!! 起動しました。











17.今後の再起動時にきちんと、COSが起動するよう、/etc/vmware/esx.confを編集します。
/etc/vmware/esx.confを開き「/boot/cosvmdk=・・・」で始まる行を検索し、
7でメモしたCOSのパスに書き直して保存します。

18./boot/grub/grub.confのroo-UUID行のuuidを、バックアップ時にメモした、/etc/fstabの情報の中の「/」のuuidに書き換えます。










19.最後に、「esxcfg-boot -b」を実行してbootの設定とinitial RAM disk imageをアップデートします。

以上ですが、やっぱりCOSのバックアップ/リストアは時間がかかりますね。
ホストプロファイル(Enterprise plusが必要)か、設定を保存しておく等の対策の方が早いです。

あと、気になることが1点。
リストアした後ですが、起動中に毎回「Updating summary log: hostname: host name lookup failure」と出てしまいます。
これは何かわかりませんでした。/var/logの下のvmksummary.txtやvmksummary.htmlは更新されているのですが。。。












以上です。

0 件のコメント:

コメントを投稿