我正在运行安装了Xen 4.1的Ubuntu服务器。 所有虚拟机都在该服务器上运行,并以qcow2格式存储一个或多个虚拟磁盘。 这些虚拟机由'xl'工具堆栈pipe理。 一个VM是HVM模式下的Windows,另一个是PV虚拟机。 qcow2文件只包含根文件系统,没有分区结构。
现在我安装了一台带有XCP 1.6的新服务器。 有没有办法将这些虚拟机迁移到XCP? 先谢谢了。
只是为了closures这个循环:Lingfeng的问题的答案是在xen-api邮件列表的一个线程中提供的。 这是James Bulpin的回答:
一种方式是,对于每个虚拟机:
使用qcow2raw将每个qcow2文件转换为一个原始文件'把这些文件放在某个地方(例如一个NFS导出),你可以从XCP的domain0临时到达它们
使用XCP使用最合适的模板“安装”虚拟机,但不实际启动虚拟机或进行安装。 请确保select的虚拟磁盘大小至less与原始的qcow2虚拟磁盘大小一样大。 设置虚拟NIC MAC地址以匹配您的xl虚拟机。 对于PV,你需要诱使XCP认为你已经完成了安装
一个。 将PV-bootloader更改为pygrub(xe vm-param-set uuid = PV-bootloader = pygrub)
湾 使得第一个VBD可引导(xe vbd-param-set uuid = $(xe vbd-list vm -uuid = userdevice = 0 – minimal)bootable = true)
C。 使虚拟CD驱动器(如果存在)不可引导:(xe vbd-param-set uuid = $(xe vbd-list vm -uuid = type = CD –minimal)bootable = false)
一个接一个地把虚拟机的虚拟磁盘连接到dom0,我的首选方法是:
一个。 通过使用'xe vm-disk-list uuid =''查找VDI的UUID查找例如'Disk 0 VDI'
湾 运行'/ opt / xensource / debug / with-vdi'',这将VDI作为/ dev / $ DEVICE连接到dom0,并将你放入一个shell'退出此shell将分离VDI
使用/ opt / xensource / libexec / sparse_dd将原始文件(从步骤1)的内容添加到VDI中。
一个。 例如/ opt / xensource / libexec / sparse_dd -src /mnt/MyVM.img -dest / dev / $ DEVICE -size 8589934592 -prezeroed
退出'with-vdi'shell
我已经尝试了这一个xl PV虚拟机我有,它的工作(我从原始图像,而不是qcow2所以跳过了第1步)。 我的testing也有所不同,因为根是在xvda1但是你的情况应该罚款'IIRC pygrub是原始设备上的根。