Xenserver中导出vhd

来源:互联网 发布:阿达帕林对黑头知乎 编辑:程序博客网 时间:2024/04/28 06:58

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/[sr-id(一串随机数)]/目录

2、执行ls命令 //发现这个目录下很多vhd文件(开启了很多虚拟机的情况下),很开心有木有?其中一个vhd文件就是你要导出虚拟机!

3、这时候通过xencenter的界面或者xe vm-list找到特定虚拟机的uuid

4、然后使用xe vbd-list uuid=[id] 找到[vdi],拷贝/var/run/sr-mount/[sr-id(一串随机数)]/目录下的[vdi].vhd文件,该文件即可作为模板导入cloudstack中。

5、如果上述方法不方便定位(至少我的测试环境中有些问题,xe vbd-list uuid=[id]返回空,无法通过这种方式定位,而是直接通过文件大小判断的),可以考虑先通过xencenter将vm转换为模板,通过xencenter将模板导出xva格式,然后将xva导入到一个比较干净的xenserver,利用模板启动一个虚拟机,确定虚拟机可正常运行后,删除模板,再到/var/run/sr-mount/[sr-id(一串随机数)]/目录下拷贝.vhd文件,这时候该目录下,应该只有两个vhd文件,一个是dom0,另一个就是我们的虚拟机。


参考:

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




0 0
原创粉丝点击