VMware vSphere Web Services SDK编程指南(十二 虚拟机配置)- 12.3 配置虚拟机

时间:2024-03-14 17:44:36

12.3 配置虚拟机


可以在创建(Folder.CreateVM_Task) 或 克隆(VirtualMachine.CloneVM_Task)虚拟机期间配置虚拟机,也可以使用 VirtualMachine.ReconfigVM_Task 对虚拟机进行重新配置,但是,不要使用 VirtualMachine.ReconfigVM_Task 方法创建或添加磁盘。

在 vSphere 5.5 及之后版本,当试着更改确定的虚拟机属性时而且该虚拟机是启动的,ReconfigVM_Task 方法会抛出一个 error。在以前的发布版本中,服务器将修改配置规范中的属性,而更改将在虚拟机重新设置、重新启动或执行快速挂起和恢复之后生效。

vSphere 5.5 之后,一个重新配置操作将实时修改虚拟机,因此当方法将控制权返回给客户端时,虚拟机属性已经被更改。

当调用 ReconfigVM_Task 方法时,如果在 virtualmachine econfigspec 中指定了下面列表中所列的以下属性,那就不能成功地重新配置虚拟机。

VMware vSphere Web Services SDK编程指南(十二 虚拟机配置)- 12.3 配置虚拟机

13.3.1 Name and Location

通过设置 VirtualMachineConfigSpec.name 属性可以指定虚拟机名称。在这个name 参数中使用的任何”%”字符必须被转义,除非它被用于启动一个转义序列。客户机还可以在这个名称参数中转义其他字符。

使用 annotation 字段提供对虚拟机的描述,要移除一个现有的描述,指定空字符串作为 annotation 的值。

因为调用 Folder.CreateVM_Task 任务方法,虚拟机的位置在创建期间就隐式地确定了,并且指定了资源池和可选的虚拟机应该所属的目标主机,查看 资源管理对象 所讨论的资源池和虚拟机位置。

13.3.2 硬件版本

虚拟机的硬件版本表示虚拟机支持的底层虚拟硬件特性,比如 BIOS、虚拟插槽数量、CPU 的最大数量、最大内存配置和其他硬件特性。

对于一个新建的虚拟机,默认的硬件版本是虚拟机所创建的在主机上可用的最新版本。为了提高兼容性,你可能想要创建一个具有比最高支持版本较老的硬件版本的虚拟机。在创建虚拟机时,可以通过指定 VirtualMachineConfigSpec.version 属性来实现这一功能,对于现有的虚拟机,,调用 VirtualMachine.UpgradeVM_Task 方法。

虚拟机的硬件版本可以比 ESX/ESXi 主机所支持的最高版本低,它在以下条件下运行:

■   迁移一个在 ESX/ESXi 3.x 或更早期的主机上所创建的虚拟机到 ESX/ESXi 4.x 主机上。

■   在 ESX/ESXi 4.x 主机上创建虚拟机,使用现有的在 ESX/ESXi 3.x 或更早期的主机上所创建的虚拟磁盘 。

■   添加在 ESX/ESXi 3.x 或更早期的主机上所创建的虚拟磁盘到 在 ESX/ESXi 4.x 主机上创建的虚拟机。

虚拟机硬件版本低于 4 的可以运行在 ESX/ESXi 4.x 主机上,但是降低了其性能及兼容性。特别地,你不能在虚拟机上添加或删除虚拟设备,当驻留在ESX/ESXi 4.x 主机上时虚拟机的硬件版本低于4。

13.3.3 启动项

通过设置 VirtualMachineConfigSpec.bootOptions 属性,你可以控制虚拟机的启动行为。该属性中的 VirtualMachineBootOptions 数据对象可以让你指定如下属性:

■   bootDelay – 在启动引导序列之前,进行延迟(毫秒为单位)

■   bootRetryDelay – 在启动引导重试前延迟,以毫秒为间隔。只有在 bootRetryEnabled 属性设置为 true 时才考虑该属性

■   bootRetryEnabled – 如果设置为 true,在 bootRetryDelay 时延时间段之后,一个无法引导的虚拟机再次启动。

■   enterBIOSSetup – 如果设置为 true,下次虚拟机启动时进入 BIOS 设置,虚拟机将此标志重新设置为 false,因此后续的引导将正常进行。

13.3.4 操作系统

指定的来宾操作系统会影响所支持的设备和可用的虚拟 CPU 数量。可以在以下两个属性中指定来宾操作系统:

■   guestosid – 指定 VirtualMachineGuestOsIdentifier 中的其中一个常量作为字符串。

■   alternateGuestName – 来宾操作系统的全名,如果 guestosid 是以 other* 开始的 VirtualMachineGuestOsIdentifier 中的其中一个值时,使用该属性。

13.3.5 CPU 和内存信息

VirtualMachineConfigSpec 数据对象允许你指定 CPU 和内存配置。

CPU 和内存分配

要分别资源,使用 VirtualMachineConfigSpec 的 cpuAllocation 和 memoryAllocation 属性,两个属性都包含具有下列属性的 ResourceAllocationInfo 对象。

■   reservation – 保证虚拟机可用的资源数量。如果资源利用率低于预定,其他正在运行的虚拟机可以使用该资源。

■   limit – 分配给这个虚拟机的CPU或内存资源的上限,即使有可用的资源,虚拟机也不会超过这个限制。

      该属性一般用于确保一致性能,如果终端用户习惯于使用额外资源的虚拟机,并且将额外的虚拟机添加到主机或资源池中,那么虚拟机可能会慢下来。如果设置为 -1 ,在资源使用上没有固定的上限。

■   shares – 用于在多个虚拟机中分配内存或处理能力的度量标准,SharesInfo 数据对象有两个属性:level 和 shares。

       level – 选择 high、low、或 normal 值来映射为 shares 的一组预先确定的数值。设置该属性为 custom 来指定一个明确的 shares 数量。

       shares – 允许你指定你想分配给资源池的 shares 数量,即使在具有相同级别的资源池之间,分配也是分离的。

资源分配这节在资源池层次结构的上下文中对资源分配进行了讨论。

对运行的虚拟机进行 CPU 和内存修改

设置 CpuHotAddEnabled 和 CpuHotRemoveEnabled 指定虚拟处理器是否可从一正运行的虚拟机上添加或删除,设置 MemoryHotAddEnabled 以指定在虚拟机运行时是否可以添加内存。

CUP 数量

你可以使用 VirtualMachineConfigSpec.numCPUs 属性为虚拟机设置虚拟处理器的数目,该属性的合法值改变取决于指定的 guestosid 值。

CUP 处理器和内存关系

如果你的虚拟机是在 ESX/ESXi 系统上,并且你有一个支持对称多处理器 (Symmetric Multiprocessors,SMP) 的许可证,你就可以通过设置 cpuAffinity 和 memoryAffinity 来配置该虚拟机有多个虚拟 CPU。
定义一组表示处理器(用于 CPU )和 NUMA 节点(用于内存)的整数,如果你正在重新配置关联设置,并将数组空出,那么任何现有的关联都将被删除。

CPU 特性

你可以使用 VirtualMachineConfigSpec.cpuFeatureMask[].info 属性来表示虚拟机或客户操作系统的 CPU 特性需求。可查阅 API 参考文档中讨论的 HostCpuIdInfo 数据对象

13.3.6 网络

配置好网络设置,这样虚拟机就可以与主机、与其他虚拟机进行通信了。

虚拟网络接口

可以使用 VirtualEthernetCard 的子类为虚拟机添加虚拟网络接口,设置 addressType 为 Manual、Generated 或 Assigned,如果选择了 Assigned,你可以明确指定一个 MAC 地址。

虚拟网络接口的数量取决于为虚拟机指定的硬件版本,硬件版本 7 的虚拟机支持多达10个虚拟网卡(NIC),硬件版本 4 的虚拟机支持最多 4 个虚拟网卡。

虚拟机 MAC 地址

在创建虚拟机时,ESX/ESXi 或 vCenter 服务器系统为每个虚拟机接口分配唯一的 MAC 地址,MAC 地址的前三字节,是为每个虚拟网络适配器生成的,由一个特定于制造商的组织惟一标识符(OUI)组成的,MAC 地址生成算法生成另外三个字节。vSphere 生成用于检查冲突的 MAC 地址。当 MAC 地址生成之后,除非将虚拟机迁移到另一个位置,否则它不会改变。

在给定的物理机器上,所有被分配到运行及挂起的虚拟网络接口的 MAC 地址都被跟踪。一台关机的虚拟机的 MAC 地址不用像运行或挂起的虚拟机的 MAC 地址一样被检查。虚拟机在移动之后可能获得一个不同的 MAC 地址。

ESXi 配置指南(ESXi Configuration Guide)详细讨论了虚拟机 MAC 地址。

13.3.7 光纤通道 NPIV 设置

N-port ID 虚拟化 (N-port ID virtualization,NPIV) 支持在多个虚拟端口之间共享一个物理 FC HBA 端口,每个都有独特的标识符,这个功能可让你在每个虚拟机基础上控制虚拟机对 LUN 的访问。

每个虚拟端口都由一对全球名称标识 (WWNs):一个全球的端口名称(WWPN)和一个全球的节点名(WWNN)。这些 WWNS 由 vCenter 服务器分配。有关如何为虚拟机配置 NPIV 的详细信息,可查阅 Fibre Channel SAN Configuration Guide

NPIV 支持受以下限制:

■   NPIV 必须在 SAN 交换机上启用。联系交换机供应商提供关于在他们的设备上启用 NPIV 的信息

■   NPIV 只支持具有 RDM 磁盘的虚拟机,具有常规虚拟磁盘的虚拟机继续使用主机物理 HBA 的 WWNs

■   如果在 ESX/ESXi 主机上的物理 HBA 可以使用它的 WWN 访问 LUN,那么主机上的虚拟机可以使用它们的 NPIV WWN 访问LUN。确保对主机和虚拟机都提供访问

可以使用和 NPIV 一起启动的 VirtualMachineConfigSpec 属性来设置 NPIV。

13.3.8 文件位置

虚拟机的文件位置在以下属性中指定:

■   VirtualMachineConfigSpec.files 是一个 VirtualMachineFileInfo 数据对象,该对象允许你指定日志目录、快照目录、挂起目录及配置文件位置,大多数位置都有默认值,可以根据需要更改。

■   VirtualMachineConfigSpec.locationID 是一个128位的散列(哈希值),它基于虚拟机的配置文件位置和虚拟机所分配主机的 UUID。该属性通常不是由开发人员设置的,但是,如果你移动虚拟机,则建议通过将其设置为空字符串来清除该属性。

如果虚拟机的 VirtualMachineCapability.swapPlacementSupported 属性为 true,你可以为 VirtualMachineConfigSpec.swapPlacement 属性指定一个值,该值必须是 VirtualMachineConfigInfoSwapPlacementType 枚举值中的一个,是一个字符串。



原文:
VMware vSphere 6.5 Documentation Center:Configuring a Virtual Machine