2013-07-15 33 views
1

我想在ESXi主机上使用Libvirt Java绑定定义新的持久域。我为它创建了一个xml描述,我在其中设置了虚拟机及其源文件的设备。但是,除非手动为服务器上的设备创建源文件,以便在以编程方式定义VM时已经存在,否则将失败。下面是我用的XML代码:Libvirt Java绑定定义域

<disk type='file' device='disk'> 
    <source file='[datastore1] TestVM/TestVM.vmdk'/> 
    <target dev='sda' bus='scsi'/> 
    <address type='drive' controller='0' bus='0' unit='0'/> 
</disk> 

所以TestVM.vmdk需要进行调用定义域之前存在,但我需要以某种编程方式创建此。有没有人有任何想法如何使用Libvirt Java绑定来做到这一点?

回答

1

好的,所以我找到了一个解决方案,以防别人正在寻找这个。 Libvirt根据xml描述提供Java API以在存储池中创建存储卷。您需要在描述中指定vmdk文件的路径,并在创建新vm时使用该路径。通过连接对象中的storagePoolLookupByName方法获取存储池,并通过storageVolCreateXML向该池添加卷。