您是否点击过虚拟机上面的Power Off或Reset图标,仅仅是就像从物理服务器上拔出插件一样关闭虚拟机,而没有考虑过使用配置VMware虚拟机电源的方式来关闭电源?如果这样做的话,可能会造成数据破坏。
VMware基础架构客户端(VI Client:VMware Infrastructure Client)和Web Access接口都提供了可配置的电源管理选项图标,您可以配置VMware虚拟机电源,改变虚拟机关机、重新启动或者挂起的方法,在本文中将会介绍这些方法。
在虚拟机的远程控制窗口中可以看到这些配置VMware虚拟机电源选项;同样,如果选择一台虚拟机的话,在命令行部分也可以看到,如下所示。
VI Client电源管理选项:
Web Access电源管理选项:
这些电源管理选项是可以配置的,并且配合使用VMware工具可以控制在虚拟机上执行的各种各样电源管理选项的操作(关机、启动、挂起和重置)。默认情况下的电源管理选项是“硬”的,也就是说从来不考虑使用合适的方式关闭操作系统,而是直接强制移除虚拟机。“硬”关机就像是直接拔掉物理服务器上面的电源线,“硬”重置就像是拔掉物理服务器的电源线后再重新插上。
这些选项都是可以更改的,可以通过配置VMware虚拟机电源把管理和重置操作改为“软”的。这就是说通过一种更合适的方式关闭操作系统完成关机操作,或者重启操作系统执行重置操作。这正是要改变默认电源管理配置的原因。简单地讲,配置VMware虚拟机电源可以防止强行关闭虚拟机可能带来的数据毁损问题。传统的电源管理选项是VMware工具的一部分,因此如果希望使用“软”选项的话,就必须在虚拟机上安装VMware工具。如果没有安装VMware工具的话,仍然可以把这些选项设置为“软”操作,但是这些选项的执行依旧是“硬”操作。
也可以把挂起设置为“软”操作,默认状态或者“硬”挂起操作并没有挂起虚拟机的操作系统,只是保存虚拟机内存中的数据然后关闭虚拟机。当虚拟机再次启动的时候就可以回到挂起前的相同状态。由于操作系统并不能感知到挂起操作,所以“硬”挂起操作有可能带来数据毁损。另一方方面,“软”挂起可以保持虚拟机的开机状态而通过客体操作系统启动挂起操作。
默认状态下所有新虚拟机的电源管理选项都设置为“硬”操作,虽然不能够修改这些默认设置,但可以在创建虚拟机之后修改这些选项。有一重要事项需要注意:如果在远程控制台和命令行窗口中可用的电源管理选项图标和命令是可以配置的,VI客户端的右键点击菜单和主菜单以及网络接入客户端的虚拟机菜单都不受这项个性化设置的影响。以如下方式访问电源管理选项时,“硬”选项(如关闭电源)和“软”选项(如关闭客体操作系统)都是可用的:
如果使用VI客户端改变虚拟机的电源管理选项,就必须首先关闭虚拟机,再编辑虚拟机的设置。然后在“选项”标签页上选择“虚拟机工具设置”,如下所示:
在电源控制部分可以把关闭电源操作修改为关闭客体操作系统,也可以把重置操作改为重启客体操作系统。这些选项可以以一个“软”的、更合适的方式关闭操作系统,而不是“硬”关机。这些选项的设置保存在每台虚拟机的.vmx配置文件中。当然也可以通过直接编辑.vmx文件修改这些选项,但是必须关闭虚拟机,才可以重写这些修改。
使用VI客户端不能把挂起设置为“软”操作,修改挂起设置的***方式就是通过编辑.vmx文件或者使用VI工具包(PowerShell)。修改之后返回到VI客户端重置编辑设置,就可以看到一个名字为“保持客体机备用(Put Guest on Standby)”的挂起选项,可以通过客体操作系统启动挂起操作。如下是.vmx文件中电源控制四个设置:
powerType.powerOff = "soft"
powerType.powerOn = "default"
powerType.suspend = "default"
powerType.reset = "soft"
如果工作环境中有大量虚拟机,逐个做修改就比较麻烦并且也比较耗时。幸运的是可以使用简单的PowerShell函数一次性修改多个虚拟机的配置,在at peetersonline.nl上可以找到Hugo Peeters写的这个功能。该函数只修改了电源关闭操作,并不涉及重置和挂起操作,因此我又对此增加了单独的函数。所有的函数都要检查这些操作是否已经设置为“软”操作,如果是的话,就没有必要修改。这种方法的一个优点就是可以在虚拟机运行时完成,而使用VI客户端方法必须要关闭虚拟机。
按照以下步骤使用这些函数:
输入如上代码,以.ps1为扩展名保存文件;
启动VMware工具箱;
输入一个点和一个空格,然后输入所保存的psl文件名(如c:\powershell\powersoft.ps1),点或空格保证在脚本运行后可以使用该函数;
为要修改电源管理选项的虚拟机名字设置一个变量。PowerShell中的变量以点开始,后面是变量的名字。这个变量可以指向单个、多个或者所有虚拟机:指向单个或者一个虚拟机,使用如下形式:$variable name=GetVM "VM name1", "VM name2"等 (如 $MyVMs=GetVM "Orange", "Green");指向所有虚拟机,使用如下形式:$variable name=GetVM。设置变量之后,在PowerShell命令行通过变量名字可以检查其设置;
定义目标虚拟机之后,输入函数名和变量名(如Set-SoftReset $MyVMs)运行对虚拟机默认设置的修改。
如下所示是一个简单的PowerShell会话:
下图显示的是修改虚拟机默认设置的函数运行之后,虚拟机在电源管理选项的设置情况:
点击电源管理选项图标就可以通过显示的确认信息了解其将是一个“软”操作还是一个“硬”操作。例如,如果把重置设置为“软”操作,则就会看到如下消息:
如果是一个“硬”操作的话,将会看到如下消息:
如上所示,使用PowerShell可以轻松地一次性修改很多虚拟机的电源管理选项设置。需要注意的是修改这些设置仅仅影响到远程控制台图标和命令行窗口;仍然可以通过菜单强制执行关机和重置操作。把这些选项修改为“软”操作可以很好地排除意外的“硬”关机带来的虚拟机客体操作系统内部的数据信息毁损。这种配置VMware虚拟机电源得方法很有效,大家可以照着这些步骤试着来配置VMware虚拟机电源,看一看能否达到良好的效果。
【编辑推荐】