eecdc 发表于 2015-10-14 09:24:00

Xenserver中导出vhd

  Citrix提供了Xencenter这个管理工具,可以很方便的管理Xenserver
  某些特殊需求下,我们需要以vhd文件格式导出Xenserver中的虚拟机,例如cloudstack中使用的模板。
  很不幸的是,虽然Xencenter提供了export vm的功能,但是却经常导出失败:failed to export
  例如:http://www.riverlite.co.uk/2014/01/citrix-xenserver-unable-to-export-to-ovf/
  在日志文件中有提示信息:System.exception failed to export system.xml.xmlexception root element is missing
  即使执行了脚本/opt/xensource/packages/files/transfer-vm/install-transfer-vm.sh 问题依旧
  

  xencenter失败后,会想到dom0中的xe vm-export命令
  只可惜这样导出的vhd文件上传到cloudstack中,是个无效的文件
  

  饶了两个圈圈,回到原点!
  出现以上问题后,是不是就不能导出vhd文件了?这当然是不可能的!
  

  1、直接在dom0中,进入/var/run/sr-mount//目录
  2、执行ls命令 //发现这个目录下很多vhd文件(开启了很多虚拟机的情况下),很开心有木有?其中一个vhd文件就是你要导出虚拟机!
  3、这时候通过xencenter的界面或者xe vm-list找到特定虚拟机的uuid
  4、然后使用xe vbd-list uuid= 找到,拷贝/var/run/sr-mount//目录下的.vhd文件,该文件即可作为模板导入cloudstack中。
  5、如果上述方法不方便定位(至少我的测试环境中有些问题,xe vbd-list uuid=返回空,无法通过这种方式定位,而是直接通过文件大小判断的),可以考虑先通过xencenter将vm转换为模板,通过xencenter将模板导出xva格式,然后将xva导入到一个比较干净的xenserver,利用模板启动一个虚拟机,确定虚拟机可正常运行后,删除模板,再到/var/run/sr-mount//目录下拷贝.vhd文件,这时候该目录下,应该只有两个vhd文件,一个是dom0,另一个就是我们的虚拟机。
  

  参考:
  http://support.citrix.com/article/CTX132014
  

  

  

         版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: Xenserver中导出vhd