【发布时间】:2016-08-23 16:58:05
【问题描述】:
我正在尝试克隆 VM,并且我想更改磁盘容量。
int virtualDisksCount = 0;
VirtualDisk virtualDisk = null;
for (VirtualDevice virtualDevice : virtualHardware.getDevice()) {
if (virtualDevice instanceof VirtualDisk) {
virtualDisksCount++;
virtualDisk = (VirtualDisk) virtualDevice;
}
}
if (virtualDisksCount == 1) {
VirtualDeviceConfigSpec discSpec = new VirtualDeviceConfigSpec();
discSpec.setOperation(VirtualDeviceConfigSpecOperation.EDIT);
virtualDisk.setCapacityInBytes(155500000000l);
virtualDisk.setCapacityInKB(155500000000000000l);
discSpec.setDevice(virtualDisk);
return discSpec;
}
代码抛出异常:设备“0”的操作无效。 我在 CloneVm_Task 和 ReconfigureVM_Task 中传递了这些参数,发生同样的错误
如何更改虚拟磁盘容量?使用 Vsphere 5.5
【问题讨论】:
-
遇到类似问题
-
我找到了解决办法。您可以使用最少需要的 HDD 创建映像,例如 10 GB,然后您应该使用 DiskManager 来扩展大小。所以我们只扩展硬盘而不收缩
-
你指的是使用 virtualDiskManager 数据对象吗?你能帮忙详细说明如何做到这一点,我们甚至没有从 VirtualDevice 捕获 DiskObjectId - 它返回 NULL
标签: api virtual-machine vmware vsphere