1

我想在 ESXi 主机上使用 Libvirt Java 绑定定义一个新的持久域。我为它创建了一个 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 绑定来做到这一点?

4

1 回答 1

1

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

于 2013-07-15T12:29:12.397 回答