12.5 执行虚拟机电源操作
就像物理机器一样,虚拟机也有电源状态。
■ Powered on – 虚拟机正在运行。如果没有安装操作系统,你可以像物理机器那样执行系统安装操作。
■ Powered off – 虚拟机断电。你仍然可以在虚拟机的物理磁盘上更新软件,这对于物理机器来说是不可能的。
■ Suspended – 虚拟机暂停,但可以恢复;就像处于待机状态或休眠状态的物理机器一样。
注意:在启动虚拟机之前,你必须确保主机有足够的资源。必须对虚拟机有足够的内存,以及一些内存开销。详细可查看
虚拟机内存开销查询。
VirtualMachine 电源操作允许你改变电源状态,每个操作对当前虚拟机的电源状态是敏感的,例如,开机(power on)一台已关机的虚拟机得到预期的结果,而开机一台已开机的虚拟机会导致一个 error。所以运行下列任务之前,必须检查虚拟机的当前电源状态。
■ PowerOnVM_Task – 开机虚拟机。如果虚拟机被挂起,该方法将从挂起处执行恢复。
■ PowerOffVM_Task – 虚拟机关机。
■ ResetVM_Task – 重新设置这个虚拟机的电源。如果当前状态为 poweredOn,该方法首先执行硬关机操作,当电源状态为 poweredOff,该方法执行一个 powerOn 操作。
尽管该方法在 powerOn 后起着 powerOff 的作用,但这两个操作相对于其他客户机上是原子的,这意味着在重置方法完成之前,其他的电源操作不能执行。
■ SuspendVM_Task – 挂起虚拟机。之后你可以开启挂起的虚拟机至相同状态。
虚拟机经常被配置为启动来宾操作系统,当他们启动时,并且当自身被关机时,试着关掉来宾操作系统。然而,开启和关掉虚拟机不同于启动和关掉来宾操作系统(查阅
12.7 定制来宾操作系统)
注意:电源操作可能会影响到参与 DRS 集群或 VMware HA 的其他虚拟机,可查阅
资源管理对象关于 DRS 集群或 VMware HA 的信息 。
可以使用 Datacenter.PowerOnMultiVM_Task 开启 datacenter 中的多个虚拟机,传入一个 VirtualMachine 托管对象引用数组及一组选项值至该方法。如果列表中的任何虚拟机都是由 VMware DRS 手动管理的,那么系统会生成一个用户需要手动应用 DRS 的建议。独立或 DRS 禁用的虚拟机为由前主机启动。由 DRS 所管理的虚拟机由 DRS 放置,由推荐的主机启动。
12.6 注册和注销虚拟机
当你创建了一个虚拟机后,该虚拟机就变成清单(在默认的文件夹中,在默认情况下调用了创建方法)的一部分,并且虚拟机被注册了。如果复制虚拟机文件来重新定位虚拟机,或者使用 vSphere client 从清单中删除文件,该虚拟机变成了未注册和不可用的。不能再对该虚拟机开机,因为它已不是清单的一部分。
要恢复虚拟机至清单,并使其能够再次可用,可以使用 RegisterVM_Task 方法,该方法定义于 Folder 托管对象中。你可以注册虚拟机至主机或资源池内,如果你想使用虚拟机去克隆其他虚拟机,你可以注册该虚拟机作为一个模板。
ColdMigration.java 示例演示了虚拟机的注册和重新配置,该示例的核心是下面的调用,它注册了虚拟机。参数包括虚拟机的当前 folder、datastore 路径、名称、是否注册为模板、主机或资源池来注册该虚拟机。
ManagedObjectReference taskmor = cb.getConnection().getService().registerVM_Task(
vmFolderMor,vmxPath,getVmName(),false,resourcePool,host)
注册后,虚拟机从其注册的资源池或主机上获取资源(CPU、内存等)。
RemoveManagedObject.java 示例演示了虚拟机注销。
12.7 定制来宾操作系统(Guest OS)
在虚拟机上安装来宾操作系统就和在物理机上安装一样,之后,如果在来宾操作系统上安装了 VMware Tools ,就可以使用 vSphere API 来检索信息并执行一些定制。
VirtualMachine 包含下列方法用于管理来宾操作系统:
■ ShutdownGuest 和 RebootGuest 关掉、重启来宾操作系统,StandbyGuest 将来宾置为休眠模式。在每种情况下,都要在来宾操作系统上执行操作。例如,你可能关闭了 Windows,但是虚拟机仍在运行。
■ ResetGuestInformation 清除缓存的来宾信息,来宾信息只在虚拟机关机状态下才可以被清除。如果缓存了过时的信息,就可以使用该方法,防止对IP地址或MAC地址的重用。
■ SetScreenResolution 设置来宾操作系统控制台屏幕大小,当调用该方法,该更改立即反映在 vSphere Client 可以访问的虚拟机控制台。
可以使用 CustomizationSpec 数据对象来定制来宾操作系统的特性和网络设置,该对象是 VirtualMachine.CustomizeVM_Task 的一个参数。当克隆虚拟机时,CustomizationSpec 也是入参 VirtualMachineCloneSpec 的一个属性。
使用此方法来定制的设置主要是虚拟机设置,但由于虚拟机和来宾操作系统共享信息,因此也使用该方法对来宾操作系统进行了定制。
CustomizationSpec 允许设置下列属性:
■ encryptionKey – 字节数组,可以被用于对管理员密码进行加密的公钥(public key)。
■ globalIPSettings – 包含CustomizationGlobalIPSettings 数据对象,指定了一个 DNS 服务器列表,以及虚拟网络适配器的名称解析后缀列表
■ identity – 允许指定网络标识和设置,类似于微软系统准备工具(Microsoft Sysprep 工具)。
■ nicSettingMap - 特定于特殊虚拟网络适配器的自定义 IP 设置。
■ options – 可选操作(LinuxOptions 或 WinOptions )。
原文:
VMware vSphere 6.5 Documentation Center:Performing Virtual Machine Power Operations
VMware vSphere 6.5 Documentation Center:Registering and Unregistering Virtual Machines
VMware vSphere 6.5 Documentation Center:Customizing the Guest Operating System