VMware vSphere Web Services SDK编程指南(十二 虚拟机配置)- 12.4 添加设备至虚拟机

来源:互联网 发布:w10怎么安装软件 编辑:程序博客网 时间:2024/06/05 03:54

12.4 添加设备至虚拟机


使用 VirtualMachineConfigSpec.deviceChange 属性(一个 VirtualDeviceSpec)创建虚拟机时,你可以添加设备至虚拟机,通过使用一个支持对象(backing object),你可以指定虚拟设备应该映射到的主机设备,一个 backing 对象表示与虚拟设备相关联的主机设备。

■   Backing option objects – 可以通过提取相关的 backing 选项对象来查找主机支持哪些设备。

■   Backing information object – backing 信息对象允许你为虚拟设备配置提供数据,访问一个 VirtualDeviceBackinInfo 对象如下所示:

VirtualMachineConfigSpec.deviceChange[].device.backing

要添加一个设备至虚拟机,必须首先查明在相应的 ESX/ESXi 主机上哪些设备是其所支持的,然后指定一个 VirtualDevice 对象,执行下面的这些任务添加设备至虚拟机:

1   通过调用 QueryConfigOption 方法查明你的 ESXi 系统支持哪些设备,通过 VirtualMachine.environmentBrowser 属性查明哪些设备你可以访问。该方法返回一个指明 ESXi/ESXi 支持什么设备的VirtualMachineConfigOption 数据对象。例如,VirtualMachineConfigOption.hardwareOptions 包括有关所支持的 CPU 和内存及一组 VirtualDeviceOption 数据对象的信息。


注意:不能使用 QueryConfigOption 方法来创建另外一个默认设备的实例,如果试着添加一个默认设备,如一个 IDE 控制器,服务器会忽略该操作。


2   为设备指定 backing 信息,不同对象的对象定义的实际过程不同。如,对于一个 CD-ROM 透传设备,使用 VirtualCdromPassthroughBackingInfo 设备,VirtualDevice.backing 属性是一个由该设备扩展的 VirtualDeviceBackingInfo 对象。

下面的代码片段添加了一个 CD-ROM 透传设备:

VirtualCdromPassthroughBackingInfo vcpbi = new VirtualCdromPassthroughBackingInfo();// Does the virtual device have exclusive access to the CD-ROM device?vcpbi.setExclusive(false);// Specifies the device name.vcpbi.setDeviceName('cdrom0');

3   为设备指定连接信息

      VirtualDevice.connectable 属性是一个 VirtualDeviceConnectInfo 数据对象,当虚拟机在运行时,该对象提供有关限制删除设备的信息。如果设备不可移动,则该属性为 null。

VirtualDeviceConnectInfo vdci = new VirtualDeviceConnectInfo();// Allow the guest to control whether the virtual device is connected?vdci.setAllowGuestControl(false);// Is the device currently connected?vdci.setConnected(true);// Connect the device when the virtual machine starts?vdci.setStartConnected(true);

4   定义 controller key,虚拟设备 key,及单元号

      使用整数属性定义这些项: controllerKey、key 和 unitNumber。可在 API 参考文档中查看 VirtualDevice 数据对象。

5   指定设备信息

      deviceInfo 属性是一个 Description 数据对象,该对象有一个 name 属性和一个 summary 属性,可以为每个属性提供一个字符值以描述设备。

Description vddesc = new Description();vddesc.setLabel('CD-ROM Device cdrom0');vddesc.setSummary('The CD-ROM device for this virtual machine.');

6   将虚拟设备指定为 VirtualDeviceConfigSpec 的 device 属性。

7   将 VirtualDeviceConfigSpec 作为 deviceChange 属性指定到 VirtualMachineConfigSpec 对象,该对象是传入 Folder.CreateVM_Task 或 VirtualMachine.ReconfigVM_Task 方法的参数。

      下面是一个 CD-ROM 透传设备的完整代码片段:

VirtualDevice vd = new VirtualDevice();vd.setBacking(vcpbi);vd.setConnectable(vdci);vd.setControllerKey(257);vd.setDeviceInfo(vddesc);vd.setKey(2);vd.setUnitNumber(25);



原文:
VMware vSphere 6.5 Documentation Center:Adding Devices to Virtual Machines

阅读全文
0 0
原创粉丝点击