Linux
CentOS
KVM
P2V

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/