Linux(CentOS) P2V KVM化


概要

物理サーバ(普通のLinuxサーバ)をkvmのゲストサーバ化する。
変換元サーバのOSイメージを
稼働先KVMホストにネットワーク経由で転送する。
※当然出力先を変更すれば、ローカル内やDASに保存も可能

前提条件

稼働先KVMホストで既にkvmを動かせる環境であること。

対象

変換元サーバ :Linuxサーバ(RedHat系/centOS 4/centOS 5)
稼働先KVMホスト:Linuxサーバ(centOS 6系)

前準備

kvm化した後、コンソール接続できるように
予め変換するサーバで設定ファイルを追記する。
以下の3箇所を追記することにより virsh console が可能になる。

追記
vi /etc/inittab
+ co:2345:respawn:/sbin/agetty ttyS0 9600 vt100-nav
追記
vi /etc/securetty
+ ttyS0
追記
vi /etc/grub.conf
(hiddenmenuの下に追加)
 + serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
 + terminal --timeout=5 serial console

OSシャットダウン

command
shutdown -h now

イメージ吸い出し・転送

シングルユーザモードで起動する。
(レスキューCDを入れてブートが可能であればそれがベスト)

command
/etc/init.d/network start
/sbin/ifconfig
command
df -k

で表示されるファイルシステムを転送する

command
dd if=/dev/sda | ssh root@稼働先KVMホスト " dd of=/転送先ディレクトリ/server.sda.img"
dd if=/dev/sdb | ssh root@稼働先KVMホスト " dd of=/転送先ディレクトリ/server.sdb.img"

DISKを全て読み込むので長時間かかる。

バックグラウンドへ移す

長時間かかるため、万が一回線が切れた事を考慮してバックグラウンドに移すとよい。

command
ctrl + z
jobs
bg 1

設定ファイル作成

http://think-t.hatenablog.com/entry/20130224/p2
が参考になる。

KVMイメージ起動

稼働先KVMホストにログインする。

command
virsh define 設定ファイル
virsh start 定義した仮想サーバ名 --console

注意事項

KVM化した後、稀に物理サーバの時のmacアドレスを保持し続けて
ネットワークに接続できなくなることがある。
その際は以下のファイルを削除する。

centOS 4,5,6系の場合
以下のファイルを念のためバックアップ取得して削除する。

cp -p /etc/udev/rules.d/70-persistent-net.rules /tmp/.
:>/etc/udev/rules.d/70-persistent-net.rules

余談

今回、イメージの吸い上げはddコマンドで行っているが、このddコマンドは何かと便利である。
ddコマンドの他の便利な使い方について、以下参照。
https://tsukada.sumito.jp/2018/09/14/linux-mac%E3%81%A7%E5%A5%BD%E3%81%8D%E3%81%AA%E5%AE%B9%E9%87%8F%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B/