Citrix XVA文件格式

XVA(Xen Virtual Appliance)的格式其实很简单,就是一个tar文件,我们可以用file命令来检查其文件类型。

# file lochdns-2.0.2-x86_64.xva
lochdns-2.0.2-x86_64.xva: POSIX tar archive

 

这个包中主要包含以下文件,还是以上面的这个文件为例子:

# tar tvf lochdns-2.0.2-x86_64.xva
-rw-r--r-- root/root       527 2009-01-29 10:32:10 ova.xml
-rw-r--r-- root/root 130688573 2009-01-29 10:32:16 xvda/chunk-000000000.gz
-rw-r--r-- root/root  18074944 2009-01-29 10:32:28 xvda/chunk-000000001.gz

 

ova.xml文件是关于虚拟机的元数据,主要包括内存信息,磁盘信息等。上面这个例子中ova.xml的文件内容如下:

 

<?xml version="1.0" ?>
    <appliance version="0.1">
        <vm name="vm">
            <label>lochDNS Appliance</label>
            <shortdesc>Created by rPath rBuilder</shortdesc>
            <config mem_set="134217728" vcpus="1"/>
            <hacks is_hvm="false" kernel_boot_cmdline="root=/dev/xvda1 ro ">
            </hacks>
<vbd device="xvda" function="root" mode="w" vdi="vdi_xvda" />
        </vm>
<vdi name="vdi_xvda" size="1209729024" source="file://xvda" type="dir-gzipped-chunks" variety="system" />
</appliance>

 

xvda目录下面的文件则代表这个虚拟机的磁盘映像。 整个虚拟机磁盘被划分成1000000000大小的块,每个块存到一个文件中,文件名则从000000000开始顺序递增。每个文件都用gzip进行了压缩。另外需要注意的一点是,如果一个文件中没有任何数据(即对应虚拟机磁盘上某个部分有个“空洞”,即全部是0x0),则这个文件不会被创建,其序号也会被跳过。比如,xvda目录下有如下两个文件chunk-000000000.gz, chunk-0000000002.gz则表示磁盘上1000000001至2000000000处全部为0x0,因此这个文件就不需创建。这么做主要是出于节省空间的考虑。

可以用dd将xva中的文件系统复制到物理磁盘上,做法就是将xvda目录下的文件解压缩后顺序dd到目标磁盘上即可,当然要注意磁盘中间有空洞的情况,dd的时候也需要相应的跳过(skip)。

展开阅读全文

没有更多推荐了,返回首页