Xen Cloud Platform:新しいホームに奇妙なVMをセットアップする方法

XCP



次のタスクがありました。





身体の動きを最小限に抑えながら、サーバーに新しいVMを配置する必要があります。 この記事は、いくつかのソースからの情報の集まりです。 さらに、私はあなたと私自身が将来、コピーペーストを適用できるように、チームをコームしようとしました。



最初に行う必要があるのは、仮想マシンの生のイメージを取得することです


外部ソースから、 PIII 1000Mhz、512RAM、20Gb IDE 、および次のファイルのシステム要件を受け取りました。

FreeBSD.nvram 8684 FreeBSD.vmdk 7131758592 FreeBSD.vmsd 0 FreeBSD.vmx 2234 FreeBSD.vmxf 262
      
      





必要なファイルはFreeBSD.vmdkディスクイメージです。これは「raw」形式に変換する必要があります。 これを行うには、 app-emulation / qemuパッケージのqemu-imgユーティリティを使用します。 当然、サーバーにインストールする必要はありません。イメージはどのlinux-machineでも変換できます。 最初に、イメージの形式がvmdkであることを確認します。 形式がrawの場合、何も変換する必要はなく、次の手順に進みます。

 $ qemu-img info FreeBSD.vmdk image: FreeBSD.vmdk file format: vmdk virtual size: 20G (21474836480 bytes) disk size: 6.6G
      
      





さらに、実際の変換後、サイズが20ギガバイトのハードディスクのバイナリイメージを取得します。

 $ qemu-img convert FreeBSD.vmdk -O raw FreeBSD.raw FreeBSD.raw 21474836480
      
      







この画像を視覚化サーバーに配信する方法は、ユーザーにとって便利な方法です。この場合、dom0からアクセス可能な外部ストレージにコピーしました。



また、システム要件に従って、適切なVMを作成する必要があります。 ここで説明する特別なものはありません。無料のXenCenterを使用して仮想マシンを管理します。



バイナリイメージから仮想マシンディスクを回復する


視覚化サーバーにアクセスして重要なマシンのUUIDを見つけます。

 $ xe vm-list ... uuid ( RO) : c681c725-xxxx-xxxx-xxxx-5d7cd920bdbf name-label ( RW): FreeBSD power-state ( RO): halted ... $ export VMUUID=c681c725-xxxx-xxxx-xxxx-5d7cd920bdbf
      
      





ブートローダーをインストールします。

 $ xe vm-param-set uuid=$VMUUID PV-bootloader=pygrub
      
      





ハードドライブを起動可能にし、仮想CDドライブを起動不可にします。

 $ xe vbd-param-set uuid=$(xe vbd-list vm-uuid=$VMUUID userdevice=0 --minimal) bootable=true $ xe vbd-param-set uuid=$(xe vbd-list vm-uuid=$VMUUID type=CD --minimal) bootable=false
      
      





新しく作成された仮想マシンのVDIディスクの識別子を見つけます。

 $ xe vm-disk-list uuid=$VMUUID Disk 0 VBD: uuid ( RO) : 50adb0d9-xxxx-xxxx-xxxx-f8f64e5c4f19 vm-name-label ( RO): FreeBSD userdevice ( RW): 0 Disk 0 VDI: uuid ( RO) : af85b950-xxxx-xxxx-xxxx-b5203ba45aae name-label ( RW): FreeBSD sr-name-label ( RO): Local storage virtual-size ( RO): 21474836480 $ export VDIID=af85b950-xxxx-xxxx-xxxx-b5203ba45aae
      
      





仮想マシンのハードディスクが使用可能な環境に移動します。

 $ /opt/xensource/debug/with-vdi $VDIID /bin/bash
      
      





現在、device / dev / $ DEVICEは仮想マシンのハードディスクです。 私たちが最初に得たイメージを彼に転がすことは残っています:

 $ /opt/xensource/libexec/sparse_dd -src /var/run/sr-mount/.../FreeBSD.raw -dest /dev/$DEVICE \ -size 21474836480 -prezeroed $ exit
      
      







それだけです。仮想マシンを起動できます。



UPD:

場合によっては、ハードディスクイメージをコピーするときに、次のエラーが発生することがあります。

 Device /var/run/sr-mount/.../<.img> has an unknown driver
      
      





これは、異なる仮想化システムがギガバイトとは異なる方法で理解する可能性があるために発生します。 例を挙げましょう。 Hyper-VからXCPに2つの6GBおよび2GBドライブを備えたLinux仮想マシンを移植しました。 すべてがこの記事で説明したものとまったく同じです。 変換後、次のバイナリハードドライブファイルを受け取りました。

 -rwxrwx--- 1 1000 1000 6442426368 Sep 10 16:51 sda.raw -rwxrwx--- 1 1000 1000 2147484160 Sep 10 17:00 sdb.raw
      
      





そして、新たに作成されたVMのディスクは次のようになります。

 # xe vm-disk-list uuid=$VMUUID Disk 0 VBD: uuid ( RO) : 6e81420a-xxxx-xxxx-xxxx-98b4fc8a5fd4 vm-name-label ( RO): linux userdevice ( RW): 1 Disk 0 VDI: uuid ( RO) : 3af76842-xxxx-xxxx-xxxx-b78dca108b22 name-label ( RW): linux-sdb sr-name-label ( RO): Local storage virtual-size ( RO): 2147483648 Disk 1 VBD: uuid ( RO) : 28784fa2-xxxx-xxxx-xxxx-6100d97ccc29 vm-name-label ( RO): linux userdevice ( RW): 0 Disk 1 VDI: uuid ( RO) : f858579c-xxxx-xxxx-xxxx-5fc0493269fa name-label ( RW): linux-sda sr-name-label ( RO): Local storage virtual-size ( RO): 6442450944
      
      





ご覧のとおり、sda.rawバイナリは6GBよりわずかに小さく、sdb.rawは2GBよりわずかに大きくなっています。 これが起こる理由は、推測することしかできません。 コピーするとき、2つの値のうち小さい方を使用しました。 私の場合、VMが正常に起動し、問題はありません。



ソース:


  1. www.howtoforge.com/how-to-convert-a-xen-virtual-machine-to-vmware
  2. serverfault.com/questions/471958/how-to-migrate-from-xen-to-xcp



All Articles