虚拟机与物理服务器的差别突出了解决虚拟机问题的特殊挑战。在物理服务器重新启动之前,你可以切断电源作为最后的手段解决问题。不过这个策略不适合虚拟机,因为它只有虚拟电源开关。有一些工具包可以帮助预防问题或使检修过程更容易。
在这篇文章中,TechTarget中国的特约虚拟化专家Eric Siebert将讨论这些工具包,并逐步解释怎么样修理各种常见的问题。 VMware工具 你自己所熟悉的第一套工具是VMware的工具。VMware工具是一套增强型驱动和应用程序,安装在虚拟机操作系统上。最好的做法是要养成一个习惯——随时安装VMware工具以确保虚拟机的最佳性能和稳定性。
并且安装任何升级补丁到……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
虚拟机与物理服务器的差别突出了解决虚拟机问题的特殊挑战。在物理服务器重新启动之前,你可以切断电源作为最后的手段解决问题。不过这个策略不适合虚拟机,因为它只有虚拟电源开关。有一些工具包可以帮助预防问题或使检修过程更容易。在这篇文章中,TechTarget中国的特约虚拟化专家Eric Siebert将讨论这些工具包,并逐步解释怎么样修理各种常见的问题。
VMware工具
你自己所熟悉的第一套工具是VMware的工具。VMware工具是一套增强型驱动和应用程序,安装在虚拟机操作系统上。最好的做法是要养成一个习惯——随时安装VMware工具以确保虚拟机的最佳性能和稳定性。并且安装任何升级补丁到ESX后(一些ESX补丁偶尔也需要更新到VMware工具),要反复查看以确信你运行的是最新版本的VMware工具。在VMware Infrastructure客户端的虚拟机窗口上有一栏,这一栏显示了每台虚拟机VMware工具的状况——是否运行正常、是否过期或未安装。
虚拟机文件类型
作为检修过程的一部分,你需要了解所有不同的文件类型。我们来看看这些与虚拟机相关的文件:
- .nvram file——这个文件包含了虚拟机的CMOS/BIOS。
- .vmdk files——这些是磁盘文件,为虚拟机里的每个虚拟硬驱动创建的。使用vmdk扩展名的文件有以下三种类型:
- *–flat.vmdk file——这是为每个虚拟硬驱动创建的真实的原始文件。
- *.vmdk file——这是磁盘描述文件,描述了虚拟磁盘文件的大小和形状。
- *–delta.vmdk file——这是一个特定的文件,当你对虚拟机进行快照时创建的(也是REDO重做日志)。
- .vmx file——这个文件是虚拟机最初配置文件。当你创建一台虚拟机并进行硬件配置时,这些信息存储在这个文件里。
- .vswp file——这是虚拟机swap交换文件(早期的ESX版本在每台主机上都有SWAP文件),这个文件允许ESX服务器增加新的虚拟swap空间。
- .vmss file——这个文件创建于虚拟机暂停模式下,用于保存暂停时的状态。
- .log file——这是记录虚拟机活动日志的文件,用于检修虚拟机故障。
- .vmxf file——这是文本格式的附加配置文件,为同一组虚拟机创建。
- .vmsd file——这个文件用于存储关于快照的元数据和信息。
- .vmsn file——这个是快照状态文件,存储了使用快照时虚拟机当时运行状态的信息。
日志文件
了解了虚拟机文件类型,我们来看看日志文件。日志文件是解决虚拟机问题的最好途径。当问题发生时,这是你首先需要检查的。
最重要的文件是Vmware.log file。这是ESX服务器上的虚拟机主要的日志文件,位于工作目录。Vmware.log通常是目前的工作日志,旧的日志文件以数字上的增加来表示,例如,vmware-1.log。
在ESX主机上,你也需要检查/var/log/vmkernel和 /var/log/vmware/hostd日志,以查看是否与虚拟机故障有关。有时,重新启动ESX主机上的主机服务将解决棘手的虚拟机问题。对于更多的常见问题,有很多技术可以解决。下面讲到一些这样的问题。
问题一:不能关闭虚拟机
其实是不能用虚拟电源控制器关闭虚拟机。你可以采用命令行的方法试着手动地注销虚拟机。下面列举了好几种方法。在决定采用重新启动ESX主机之前,试试这些方法。
1.通常尝试的第一种方法是使用vmware-cmd命令行。
登陆服务控制台
键入“vmware-cmd –l”得到所有虚拟机及其路径的列表
键入“vmware-cmd //.vmx getstate”查看虚拟机状态
强制关闭“vmware-cmd //.vmx stop hard”
再次检查虚拟机状态,现在应该是关闭着的
键入“vmware-cmd //.vmx start”启动虚拟机
2.第二种选择是手动注销虚拟机,通过找到虚拟机进程标识符(pid)并使用注销命令终止它。
登陆服务控制台
键入“vmware-cmd –l”得到所有虚拟机及其路径的列表
键入“vmware-cmd //.vmx getstate”查看虚拟机状态
键入“ps -ef | grep”
第二栏显示虚拟机vmkload_app的进程标识符pid,你也可以输入“ps –eaf”查看所有的运行进程
键入“kill -9”
重新查看虚拟机状态,现在应该是关着的
键入“vmware-cmd //.vmx start”启动虚拟机
3.最后一种方法是使用vm-support命令强制关闭虚拟机
登陆服务器控制台
键入“vm-support –x”或“cat /proc/vmware/vm/*/names”,选择你要关闭的虚拟机标识符
键入“vm-support –X”注销虚拟机及生成内核转储(core dumps)
提示你是否保存虚拟机屏幕截图,发送NMI到虚拟机并发送终止命令。你需要点击确定按纽来注销虚拟机。整个过程需要5到10分钟运行。这将在目录里创建一个报告存档(tar archive)。
问题二:不能启动虚拟机
另一个常见问题可能是不能启动虚拟机。这种情况发生在主机服务器没有虚拟机要使用的足够资源。例如,如果虚拟机有一个内存预留设置(memory reservation),ESX主机没有足够的物理内存来满足要求,虚拟机就不能启动。如果发生这样的情况,你可以选择删除虚拟机的内存预留,把虚拟机迁移到另一台有更多剩余物理内存的主机上,或者选择把现有主机上的物理内存空出来。
同样,当虚拟机启动时,需要在ESX主机上的虚拟机工作目录里创建一个vswp文件,这个文件与分配给虚拟机的RAM(减去任何内存预留)大小一样。如果你的ESX主机没有足够硬盘空间的话,也不能启动虚拟机。工作区设置的内存预留大小与分配给RAM大小一样,所以vswp文件尺寸将是0字节。不过,你要注意在VMFS(虚拟机文件系统)卷上预留额外的磁盘空间给日志、swap交换文件和快照等,这一点很重要。
问题三:虚拟机由于操作系统损坏遇到启动错误
如果虚拟机由于操作系统损坏或错误配置在启动时出现问题,解决这个问题的方法是添加它的虚拟磁盘到另一个运行着的虚拟机,因此,你能访问驱动并作出必要的修理。为了修理有问题的虚拟机,你要确保这台虚拟机是关闭着的。下一步是添加额外的驱动到工作着的其他虚拟机并浏览有问题的虚拟机的磁盘文件。启动工作着的虚拟机。现在,你能访问有问题的虚拟机的驱动以作出任何改变和改正。从工作着的虚拟机移除驱动,添加到有问题的虚拟机,然后试着重新启动。
问题四:普遍的虚拟机操作系统问题
为了检修虚拟机操作系统的问题,我创建了一个ISO文件工具包,包含有用的检修应用程序,它能很快地启动虚拟机的CD-ROM并能用来修理(或启动)虚拟机。我使用的一些ISO文件包括下面几种:
Sysinternals工具——检修Windows服务器问题的好工具。
Gparted——基于Linux的磁盘分区编辑器。
Knoppix——基于Linux的CD盘,包罗许多工具很应用程序。
Ultimate Boot CD——包含许多系统修理和测试工具的CD盘。
UBCD4Win——基于Windows的CD盘,包罗许多系统修理和测试工具。
总结
检修虚拟机问题时,上面列出了一些问题和需要使用的技术。当你下次遇到虚拟机故障时,文章里的这些信息应该能够帮助你。
关于作者:Eric Siebert在规划、网络、电信、系统管理方面有25年IT经验。他是VMware社区VMTN讨论区的高级版主,他还维护着一个VI3信息站点的VMware-land网站。
作者
翻译
相关推荐
-
VMware快照工作原理以及如何运用
当你更新或修复应用程序和服务器时,VMware快照无疑是你的救星。而如果你负责监管虚拟环境,你更是应该知道什么 […]
-
通过VMware DRS规则管理Windows Server 2016授权成本
对于想要缓解Windows Server 2016授权成本负担的IT管理员,可以考虑VMware的分布式资源调 […]
-
VMware VVOLs应用案例逐步增加
有时技术具有一定的超前性,VMware VVOL就是一个例证,它承诺满足人们对hypervisor技术的所有预 […]
-
配置ESXi Autostart,自动打补丁
顾名思义,VMware ESXi Autostart能够实现自动开启、关闭ESXi服务器上的虚拟机,让虚拟机管理变得更轻松。如果运行了多个虚拟机并且给主机打补丁后需要重启主机,那么ESXi Autostart的作用就更大了,没有Autostart的话,你需要在给主机打补丁后,手动重启每个虚拟机。