2013年2月1日金曜日

ゲストOS(DomainU)の複製

DomainUの作成時に、パーティションタイプではなくて、
ファイルタイプ形式で仮想領域が作られている場合、簡単に複製が行える。

■手順1)複製するDomainUを停止する
現在の状態の確認
# xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0     2887     2 r-----     70.5
vm001                                      1      512     1 -b----     15.7
vm002                                      2      512     1 -b----     16.1
DomainUを停止する。
書式:xm shutdown DomainUのID番号
※xm listで表示されたID列の番号

ID番号が2のDomainUを停止する
# xm shutdown vm002
停止されたか確認する(暫くすると落ちる。シャットダウンしているのはxm console vm002で確認できる)
#シャットダウン中の処理を確認する
# xm console vm002
Broadcast message from root (Mon Feb  4 03:24:20 2013):

The system is going down for system halt NOW!
INIT: Switching to runlevel: 0
INIT: Sending processes the TERM signal
smartd を停止中: [  OK  ]
yum-updates を停止中: [  OK  ]
atd を停止中: [  OK  ]
Shutting down xfs: [  OK  ]
コンソールマウスサービスを停止中: [  OK  ]
sshd を停止中: [  OK  ]
sm-client を停止中: [  OK  ]
sendmail を停止中: [  OK  ]
crond を停止中: [  OK  ]
autofs を停止中:
:
:
省略
:
:
#暫く経ってから確認する
# xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0     2887     2 r-----     71.9
vm001                                      1      512     1 -b----     15.7
■手順2)設定ファイルと仮想ディスクイメージファイルのコピー
#設定ファイル名は、DomainUの名前になる。
cp -p /etc/xen/vm002 /etc/xen/vm003

#実データのファイル名は、「DomainU名.img」になる。
cp -p /var/lib/xen/images/vm002.img /var/lib/xen/images/vm003.img
■手順3)設定ファイルを編集する
MACアドレスは、前半の'00:16:3e'は、Xenで共通で使用するもの。
後半の3つを同じセグメントで重複しないように変更。
uuidも変更する。uuidgenコマンドで生成する
# uuidgen
057cf742-a679-4e21-8d6a-fee8dda49d6f
/etc/xen/vm003の編集
・name,diskのimgファイルの出力先を変更する。
・MACアドレスは、前半の'00:16:3e'は、Xenで共通で使用するものなので変更しない。
 後半の3つを同じセグメントで重複しないよう適当に変更する。
・uuidには、先程実行した「uuidgen」の出力結果を貼り付ける。
vi /etc/xen/vm003
#
name = "vm003"
#
uuid = "057cf742-a679-4e21-8d6a-fee8dda49d6f"
#
disk = [ "tap:aio:/var/lib/xen/images/vm003.img,xvda,w" ]
#
vif = [ "mac=00:16:3e:69:fb:c9,bridge=xenbr0,script=vif-bridge" ]
変更前と変更後の差分
diff /etc/xen/vm003 /etc/xen/vm003.back
< name = "vm003"
< uuid = "057cf742-a679-4e21-8d6a-fee8dda49d6f"
---
> name = "vm002"
> uuid = "eafd890f-17a1-c1c0-a4cb-e01ebb5a2523"
10,11c10,11
< disk = [ "tap:aio:/var/lib/xen/images/vm003.img,xvda,w" ]
< vif = [ "mac=00:16:3e:69:fb:c9,bridge=xenbr0,script=vif-bridge" ]
---
> disk = [ "tap:aio:/var/lib/xen/images/vm002.img,xvda,w" ]
> vif = [ "mac=00:16:3e:69:fa:c9,bridge=xenbr0,script=vif-bridge" ]
■手順4)新しいDomainUを起動する
複製元が起動している場合には止めておいた良いかも?
複製元(vm002)が固定IPアドレスの設定で作られていた場合に、
コピー先のvm003が起動すると同じIPアドレスが使われてしまい、
接続が出来なくなるかも・・・?:(;゙゚'ω゚'):
# xm create vm003
Using config file "/etc/xen/vm003".
Using  to parse /grub/menu.lst
Started domain vm003
起動しているか確認する
# xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0     2887     2 r-----    244.5
vm001                                      1      512     1 -b----     19.3
vm003                                      3      512     1 -b----      5.2
複製後に、複製元と、複製先の/etc/sysconfig/network-scripts/ifcfg-eth0を確認してみたら、
コピー元とは違う値のDHCPが設定されていたので同じ固定IPアドレスが使われることはないかも( ´∀`)bグッ!
# Xen Virtual Ethernet
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
HWADDR=00:16:3e:69:fb:c9
■手順5)新しいDomainUの環境設定を変更する
ログインする
xm console vm003

#ホスト名の表記が「vm002」となっているが(゚ε゚)キニシナイ!!
#設定ファイルを変更して、再起動すると正しく認識される。
[root@local-dev2-vm002 ~]#
・/etc/hostsファイルの編集
vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost local-dev2-vm003
::1             localhost6.localdomain6 localhost6
192.168.10.233  local-dev2-vm003
・ホスト名の変更
vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=local-dev2-vm003
GATEWAY=192.168.10.168
・ネットワークの設定
今回は固定IPアドレスを利用しています。
その場合には、IPアドレスは被らないようにする。
HWADDRには、/etc/xen/vm003で設定したmacアドレスを指定する。
vi /etc/sysconfig/network-scripts/ifcfg-eth0
# Xen Virtual Ethernet
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.10.255
HWADDR=00:16:3e:69:fb:c9
IPADDR=192.168.10.233
NETMASK=255.255.255.0
NETWORK=192.168.10.0
ONBOOT=yes
■手順6)新しいDomainUを再起動する。
「Ctrl+]」でホストOSに戻って、vm003の再起動を実行する。
#
xm reboot vm003

#起動の確認
# xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0     2887     2 r-----    262.1
vm001                                      1      512     1 -b----     20.8
vm003                                      4      512     1 -b----     15.0

#ログインする
xm console vm003
■手順7)SSHでログインできるか確認する
# ssh 192.168.10.233
root@192.168.10.233's password:
Last login: Fri Feb  1 19:52:59 2013 from 192.168.10.221
#sshで繋いだのでexitコマンドでホストOSに戻る。
[root@local-dev2-vm003 ~]
■手順8)xendomainsで一括に起動できるようにする
設定ファイルをコピーする
ln -s /etc/xen/vm003 /etc/xen/auto/vm003
■手順9)xendomainsで一括起動・停止の確認
一括停止を実行
# /etc/init.d/xendomains stop
Shutting down Xen domains: vm001(save)........
 vm002(save)........
 vm003(save).........
[done]                                                     [  OK  ]
一括起動を実行
# /etc/init.d/xendomains start
Restoring Xen domains: vm001
Domain vm001 restored successfully.
vm002
Domain vm002 restored successfully.
vm003
Domain vm003 restored successfully.
Starting auto Xen domains: vm001(skip) vm002(skip) vm003(sk[  OK  ]]
■手順10)複製元でbash履歴ファイルや、 SSHサーバのホスト鍵を削除
複製元でsuコマンドなどでrootのパスワードを直接入力してしまっていたりする場合に、
情報が残ってしまっているのでセキュリティー的に消しておく。
#bash履歴ファイルを削除。
# rm /root/.bash_history

#sshサーバのホスト鍵を削除。
# rm /etc/ssh/ssh_host*

#sshdの再起動
# /etc/init.d/sshd restart
sshd を停止中:                                             [  OK  ]
sshd を起動中:                                             [  OK  ]
以上(`・ω・´)ゞビシッ!!

参考URL

0 件のコメント:

コメントを投稿