今回は 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ファイルを取り除くのを忘れないように。
おそらくこれで問題なく起動するはずです。
遭遇したエラーたち
を書きたいんですが、思いの外記事を書くのに時間がかかってしまったので、近いうちに更新するか、別の記事にまとめたいと思います。
はい、本当にすいません。