我想在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做到这一点?
答案 0 :(得分:1)
好的,所以我找到了一个解决方案,万一其他人正在寻找这个。
Libvirt提供Java API,以基于xml描述在存储池中创建存储卷。您需要在描述中指定vmdk文件的路径,并在创建新vm时使用该路径。通过Connect对象中的storagePoolLookupByName
方法获取存储池,并通过storageVolCreateXML
向该池添加卷。