Help us understand the problem. What is going on with this article?

MondoRescueを使ってCentOS6をP2V

More than 3 years have 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ファイルを取り除くのを忘れないように。

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

遭遇したエラーたち

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

yaa
初級インフラエンジニアです. ネットワークやサーバ辺りを触ってます.
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away