Libvirt Java绑定定义域

时间:2013-07-15 08:09:59

标签: java virtual-machine disk libvirt

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

<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 Bindings做到这一点?

1 个答案:

答案 0 :(得分:1)

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