« Xen MySQLサーバが起動しない | メイン | Xen DomainへのCPU割り当てはどうする? »

Xen Domain-U環境の複製

Xenでは、ゲストOS Domain-Uの仮想ディスクイメージファイルとConfigファイルをコピーして少し編集するだけで、簡単にゲストOSの複製を作ることができます。
同じような環境を複数用意するときはとても便利ですね。

LinuxゲストOSの複製手順をまとめます。

複製元のドメイン名:domain1 - OSはCentOS4.5
複製後のドメイン名:domain2
とします。以下、とくに指定がない限り、管理用OS Domain-0にてrootユーザでコマンドを実行するものとします。

・複製元Domain-Uの設定
複製後の設定変更が最小限になるよう、パッケージのインストール、設定などを行っておきます。
また、複製元、複製後のサーバでIPアドレスが重複しないよう、DHCPで取得するよう設定しておきます。

・複製元Domain-Uを停止


# xm shutdown <ドメイン名>
# xm list

・複製元Domain-Uの仮想ディスクイメージファイルをコピー


# cd /var/lib/xen/images/
# cp -p domain1.img domain2.img

・新しいConfigファイルを作成
domain1 のConfigファイルを基に domain2 を作成します。

# cd /etc/xen/
# cp -p domain1 domain2

viなどのエディタでConfigファイルを開き、ドメイン名、仮想ディスクイメージファイル名、MACアドレス、uuidを変更します。

MACアドレスは、前半の'00:16:3e'は、Xenで共通で使用するものです。
後半の3つを同じセグメントで重複しないよう適当に変更します。
ここでは、末尾よりひとつ前を+1しています。
uuidも、末尾のひとつ前を+1しています。
以下、Configファイルの変更箇所のみ記述します。

-- 変更前
...
name = "domain1"
disk = [ 'tap:aio:/var/lib/xen/images/domain1.img,xvda,w', ]
vif = [ 'mac=00:16:3e:63:94:e3, bridge=xenbr0', ]
uuid = "079e8369-f9ad-0e06-0b95-9b360be8ee0a"
...
--

-- 変更後
...
name = "domain2"
disk = [ 'tap:aio:/var/lib/xen/images/domain2.img,xvda,w', ]
vif = [ 'mac=00:16:3e:63:95:e3, bridge=xenbr0', ]
uuid = "079e8369-f9ad-0e06-0b95-9b360be8ee1a"
...
--

・コピー元のDomain-Uを起動


# xm create domain1

・新しいDomain-Uを起動


# xm create domain2

・ドメインが2つ見えることを確認


# xm list

Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 254 1 r----- 3225.5
domain1 1 255 1 -b---- 3160.1
domain2 2 255 1 -b---- 3076.9

・新しいDomain-U環境の設定変更を行う
ホスト名、IPアドレス、MACアドレスを変更します。
Domain-0から複製後のDomain-U domain2にコンソールログインします。

# xm console domain2

ホスト名を変更します。

-- /etc/sysconfig/network
HOSTNAME=domain2
--

IPアドレス、MACアドレスを変更します。

-- /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:16:3E:63:95:E3 →Xenコンフィグファイルのvifで指定したアドレス
IPADDR=192.168.10.3 →IPアドレスを指定します
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
GATEWAY=192.168.10.1
--

複製元OS rootユーザのbash履歴ファイルを削除します。

# rm /root/.bash_history

複製元OS SSHサーバのホスト鍵を削除します。


# rm /etc/ssh/ssh_host*

sshdを再起動し、ホスト鍵を再作成します。

# /etc/init.d/sshd restart

いったんコンソールからログアウトして、Domain-Uを再起動します。

# xm reboot domain2

これで、複製後のDomain-Uは、ホスト名やネットワークも問題なく、1つの新しいサーバとして見えるようになります。

・Domain-0が起動する際に、自動的にDomain-Uも起動するよう設定


# ln -s /etc/xen/domain2 /etc/xen/auto/domain2

・必要に応じて、CPUの割り当てを変更


# xm vcpu-pin <ドメインID> <ドメインの仮想CPU ID> <実CPU ID>
# xm vcpu-list

大まかにはこれで完了です。とっても簡単ですね。


(参考)
ゲストOSを複製する方法
http://tomo.ac/goodstream/xen/tips/imgcopy.html

ThinkIT 実践!仮想化技術「Xen」の活用方法
第1回:仮想化、その使い道
http://www.thinkit.co.jp/free/article/0606/4/1/

トラックバック

このエントリーのトラックバックURL:
http://antas.jp/mtsys/mt-tb.cgi/218

この一覧は、次のエントリーを参照しています: Xen Domain-U環境の複製:

» Xen?????????????????????????????? from ???IT?????????????????§??????
?????????????????????IT?????????????????§???????????????????????????????????§... [詳しくはこちら]

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

ANTAS(アンタス)