Permalink |
Post to Twitter |
Comments (0) |
Views (1040) |
07 Apr 2009 09:20 AM EDT
posted by Kimihiko Kitase
XenServerでの仮想マシンのコピーを行う時どのようにしていますでしょうか?通常はXenCenterから仮想マシンのエキスポート、インポートを使っている人が多いかとおもいます。もし仮想マシンのディスクをVHDというファイル形式で作成されている場合、VHDのファイルをコピーすることも可能です。その際に注意するべき点を踏まえて、手順を書いてみましたので参考になればと思います。VHD形式で仮想ディスクを作成する場合はSRをNFSにするか、Local SRをextで作成しなおす必要があります。
xvaファイルでの操作
- エキスポート
シャットダウンしている仮想マシンを右クリックして、Export as Backupを選択して、エキスポートを指定します - インポート
XenCenterで、XenServerを選択して、右クリックして、Import VMを選択して、インポートしたい仮想マシンを選択します
VHDファイルのコピー(XenServer -> XenServer)
|
仮想マシンのディスクをVHDファイルで持たせるにはSRをあらかじめNFSで設定しておく必要があります |
- コピー元の仮想マシンのStorageタブの仮想ディスクのプロパティでNameとDescriptioinを設定し
ておきます - コピー元のVHDファイルを探します
[root@xs503 ~]# xe vm-disk-list vm=ddc21 <--ddc21という名前の仮想マシンの仮想ディスク(VDI)をリストします Disk 0 VBD: uuid ( RO) : b65be04e-e7cc-f71d-aa67-a5db057adaf8 vm-name-label ( RO): ddc21 userdevice ( RW): 0 Disk 0 VDI: uuid ( RO) : ef707d10-2da7-4149-b5ad-c5d12e23fe9c <-- このUUIDが仮想ディスク名になります。 name-label ( RW): ddc sr-name-label ( RO): Local File SR virtual-size ( RO): 8589934592 [root@xs503 ~]# xe sr-list type=ext <-- ext形式のストレージをリストします。 uuid ( RO) : d8e9523d-23be-6203-0550-76d6df40f029 <-- このUUIDがext形式のストレージとなります。 name-label ( RW): Local File SR name-description ( RW): host ( RO): xs503 type ( RO): ext content-type ( RO): local SR [root@xs503 ~]# ls -lah /var/run/sr-mount/d8e9523d-23be-6203-0550-76d6df40f029/ef707d10-2da7-4149-b5ad-c5d12e23fe9c.vhd <-- 仮想ディスクのファイルサイズや更新日を確認します。 -rw-r--r-- 1 root root 4.1G Apr 7 20:24 /var/run/sr-mount/d8e9523d-23be-6203-0550-76d6df40f029/ef707d10-2da7-4149-b5ad-c5d12e23fe9c.vhd - コピー先のXenServerのSRにリンクを設定します。あとでコマンドを打ちやすいように。
[root@xs501 ~]# xe sr-list type=ext <-- ext形式のストレージをリストします。 uuid ( RO) : b3cbfe22-c84f-1bc9-68a5-711eb93f14a6 <-- このUUIDがext形式のストレージとなります。 name-label ( RW): Local File SR name-description ( RW): host ( RO): xs501 type ( RO): ext content-type ( RO): Local SR [root@xs501 ~]# cd /var/run/sr-mount/ [root@xs501 sr-mount]# ln -s b3cbfe22-c84f-1bc9-68a5-711eb93f14a6/ link <-- リンクを設定します。 [root@xs501 sr-mount]# ls link/ 830e58d1-709c-42bb-b9fd-310400d2b4a0.vhd c9ead5de-ff80-4f24-a938-ec06db78597a.vhd ca3ffca6-3513-4d2f-a2ae-4e1478af5014.vhd - コピー元のXenServerから、VHDファイルをコピー先のXenServer(192.168.1.241)にコピーします
[root@xs503 d8e9523d-23be-6203-0550-76d6df40f029]# scp ef707d10-2da7-4149-b5ad-c5d12e23fe9c.vhd 192.168.1.241:/var/run/sr-mount/link/ <--scpでXenServerからXenServerにコピーします。 root@192.168.1.241's password: ef707d10-2da7-4149-b5ad-c5d12e23fe9c.vhd 100% 4126MB 21.3MB/s 03:14 [root@xs503 d8e9523d-23be-6203-0550-76d6df40f029]# - コピー先のXenServerで、コピーしたVHDファイルをSRに認識させます。
[root@xs501 ~]# xe sr-scan uuid=b3cbfe22-c84f-1bc9-68a5-711eb93f14a6 <-- コピー先のXenServerのSRでは新しくコピーしてきた仮想ディスクの認識していないので、認識させます。 [root@xs501 ~]# xe sr-param-list uuid=b3cbfe22-c84f-1bc9-68a5-711eb93f14a6 <-- 認識されたか確認します。VDIsにコピーしてきた仮想ディスクのUUIDがあればOK uuid ( RO) : b3cbfe22-c84f-1bc9-68a5-711eb93f14a6 name-label ( RW): Local File SR name-description ( RW): host ( RO): xs501 allowed-operations (SRO): forget; VDI.create; VDI.snapshot; plug; destroy; VDI.destroy; scan; VDI.clone; unplug current-operations (SRO): VDIs (SRO): ef707d10-2da7-4149-b5ad-c5d12e23fe9c PBDs (SRO): 60e3a493-2da2-9fbb-77ff-9d68a7cede2f virtual-allocation ( RO): 8606732288 physical-utilisation ( RO): 29132607488 physical-size ( RO): 484164509696 type ( RO): ext content-type ( RO): Local SR shared ( RW): false other-config (MRW): sm-config (MRO): devserial: scsi-SATA_ST3500630NS_5QG2VTXB blobs ( RO): - コピー先のXenServerで、XenCenterで新規に仮想マシンを作成します(Start VM automaticallyはチェックオフしておきます)
- コピー先のXenServerのStorageタブで、先ほど作成した仮想マシンからディスクを削除します
- コピー先のXenServerで、先ほどコピーしたVHDをアタッチします。アタッチするときに、Noneと出てきますのでファイルサイズで判断してアタッチします。複数のVHDファイルを同時にコピーすると、どのVHDファイルがどの仮想ディスクか分からなくなる場合があるので1つづつコピーしてアタッチしていったほうがいいかと思います。
- 仮想マシンのStorageタブの仮想ディスクのプロパティで、後で分かりやすいようにNameとDescriptioinを設定しておきます
VHDファイルのコピー(Windowsマシン -> XenServer)
- WinSCPで、scpか/sftpモードで転送します
scpでログインすると、4G以上のファイルをリストできないようです
sftpコマンドでログインして、ファイルを転送すると、scpで転送するより遅いようです
但し、WinCSP 4.2.1で若干ましになっているようです。4.1.xはかなり遅いです
- CygWinでscpコマンド/sftpコマンドを使用する
まだ試してないですが、XenServer -> XenServerと同じくらいのスピードはでると思われます。
|
VHDをコピー後、仮想マシンを作成して、コピーしたVHDファイルをアタッチする必要があります。詳細はVHDファイルのコピー(XenServer -> XenServer)を参照してください |
VHD形式で仮想ディスクのバックアップを持つと、xvaのエキスポート、インポートよりはるかにコピーにかかる時間がすくないですし、仮想ディスクを作成するときに割り当てたサイズのファイルを作らず、動的にサイズを増やしていきますので、仮想マシンの移動が楽になります。ただ、仮想マシンからディスクI/Oパーフォーマンスとしては、ボリューム単位で仮想ディスクを割り当てるほうがよいといわれています。
Add Comment