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 中指定了下面列表中所列的以下属性,那就不能成功地重新配置虚拟机。
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