Linux
OSS
P2V
MondoRescue

MondoRescueを使ってCentOS6をP2V

More than 1 year has passed since last update.

今回は MondoRescue というP2Vツールを用いて、[物理]→[仮想]といった移行をしました。
物理サーバが邪魔だし、仮想に移したい場合などに使えるのではないでしょうか。

バックアップ

環境

  • 物理側:CentOS 6.9 、 物理パーティション
  • 仮想側:VirtualBox

インストール

物理側にMondoRescueをインストールします。 レポジトリを追加し、yumでインストール。

レポジトリの取得
# wget ftp://ftp.mondorescue.org/rhel/6/x86_64/mondorescue.repo

レポジトリの追加
# mv ./mondorescue.repo /etc/yum.repos.d/

yumでのインストール
# yum install mondo

これでインストールが完了。
最後の方に記載するが、CentOSでもftp://ftp.mondorescue.org/centosのレポジトリを追加しないのがコツです。
(でもCent 7ならcentosから取得する記述を見た… 暇があったら検証してみます)

バックアップ

バックアップ前にSELinuxを無効にしたほうがうまくいく。

SELinuxの一時無効化
# setenforce 0

バックアップを行っていきます。

バックアップ用ディレクトリ作成
# mkdir /backup

いざ、バックアップ
# mondoarchive -Oi -g -L -N -s 4200m -d /backup -E /backup

オプションはこちらの方が詳しく書かれているのでそちらを参照
http://qiita.com/mozo/items/55574d7039bacfa8d8c8

バックアップには時間がかかりますので、コーヒーでも飲んで待ちましょう。終わると/backup以下にmondorescue-1.isoができているはずです。
ここまで終了したら、物理サーバをいじることはもう殆ど無いでしょう。
ここでエラーが発生してバックアップ処理が止まってしまった場合には、後述するエラーの項目を参照してください。

リストア

先ほど作成したisoファイルをscpなどで仮想環境があるPCへ送ります。
VirtualBoxを起動し、GUIでポチポチ仮想マシンを作ります。
物理マシンと全く同じ構成にする必要はありませんが、バックアップしたOSの要求する最低スペックぐらいはしてください。

仮想マシンの作成

今回は RAM:8192MB , HDD:500GB
RAMだけ元のマシンに同じにしました。
仮想マシンを作り終えたら、マシンの設定画面を開いて光学ドライブに先ほどscpで送ってきたisoファイルをセットしましょう。

マシンの設定画面を終了し、マシンの起動。

リストア準備

リストア作業はこちらのサイトを参照しながら行いました。
http://d.hatena.ne.jp/nayutaya/20090204/1233735588

仮想マシン起動後、ブートプロンプトでexpertを入力。
※ここでkernel panicが発生する場合は、正しくバックアップが取れていないと思います。
fdiskコマンドでパーティション作成。

参照サイトはhdaだったが、自分はsdaだった
# fdisk /dev/sda

以下の構成でパーティションを組んだ。

デバイス名 システムID システム名 サイズ 備考
/dev/sda1 83 Linux 500 MB /boot用
/dev/sda2 8e Linux LVM 残りすべて LVM用

LVMのパーティションを組む。

物理ボリュームの作成
# lvm pvcreate /dev/sda2
# lvm pvscan
正しくできているか確認
# lvm pvdisplay /dev/sda2

ボリュームグループの作成
# lvm vgcreate Vol00 -s 32m /dev/sda2
# lvm vgscan
正しくできているか確認
# lvm vgdisplay

論理ボリュームの作成
ルート用
# lvm lvcreate -L 491000m -n LV00 Vol00
スワップ領域の作成
# lvm lvcreate -L 8000m -n LV01 Vol00
# lvm lvscan
# lvm lvdisplay

lvm lvdisplayをした時に気づいたが、普通に8000mより8192mのほうがよかったかなあって

パーティションをフォーマットする。

# mkfs.ext3 -j /dev/sda1
# mkfs.ext3 -j /dev/Vol00/LV00
# mkswap /dev/Vol00/LV01

リストア作業

ここで失敗して何度かやり直すことがあった。
以下のコマンドでリストアの開始。

# mondorestore

ここから画面が変わり、選択肢を選んでいく。

  • モードはInteractively
  • 読み込みデバイスはDVD disks
  • Editing mountlistは下の表のにあるように記述した
  • Are you sure you want to save your mountlist and continue? → Yes
  • Do you want to erase and partition your hard drives? →No
  • Do you want to format your hard drives? →No
  • Do you want me to restore all of your data? →Yes
  • Initialize the boot loader? →Yes
  • You will now be able to regenerate your initrd. →No
  • Did you change the mountlist or cloned the system? →Yes
  • Please confirm/enter the boot device. →/dev/sda
  • fstabは変更点を下にまとめます。
  • mtabは変更点を下にまとめます。
  • grub.confは変更点をまとめます。
  • device.mapはそのまま
  • Label/Identify your ext2/ext3/ext4 partitions if necessary? →Yes

Editing mountlistの例

Device Mountpoint Format Size
/dev/sda2 lvm lvm 0
/dev/Vol00/LV00 / ext3 0
/dev/sda1 /boot ext3 0
/dev/Vol00/LV01 swap swap 0

fstab、mtabの変更点

1./dev/mapper/xxxx_yyyy となっているところを直接参照させる (rootなら /dev/Vol00/LV00に変更する )
2./homeの記述がある行を消す ( 環境に応じて消したり消さなかったりしてください )
3.ext4 と記述されているところを ext3に変更

grab.confの変更点

kernel の行を変更
kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=/dev/Vol00/LV00 rhgb quite selinux=0 enforcing=0

すべて問題なく終わったら、マシンを再起動する。isoファイルを取り除くのを忘れないように。

おそらくこれで問題なく起動するはずです。

遭遇したエラーたち

を書きたいんですが、思いの外記事を書くのに時間がかかってしまったので、近いうちに更新するか、別の記事にまとめたいと思います。
はい、本当にすいません。