在这个系列里,我提供了通常由VMware ESX主机服务器、VirtualCenter、和虚拟机中出现的许多常见问题的解决方法。我们先开始处理在VMware ESX服务器常见问题诊断和解决。
Windows服务器的管理员早已熟悉了可怕的蓝屏死机(BSOD),这就意味着服务器完全地终止。VMware ESX也有类似的状况,叫做紫屏死机(PSOD),典型的是由于硬件问题和VMware 代码中的bug造成的。
VMware ESX服务器常见问题之解决紫屏死机问题
当一个PSOD出现时,你需要做的***件事情就是记录下屏幕上显示的信息,我建议用数码相机或者手机拍一个快照。PSOD信息包括ESX的版本和构建、异常类型、寄存器转储、在崩溃时每一个CPU在运行什么、跟踪信息、服务器正常运行时间、错误信息和内存核心转储信息。这些信息对你没用,但是VMware 技术支持人员可以解码上述信息,帮助测定崩溃的原因。
不幸的是,当遭遇到PSOD,除了记录屏幕上的信息,你唯一的选择是关闭服务器重启。一旦服务器重启起来,你将在服务器的/root目录下发现mkernel-zdump-*文件,这个文件对定位问题很有价值。你可以用vmkdump工具从该文件中提取vmkernel日志文件(vmkdump –l),然后定位引起PSOD的原因。VMware支持一般也需要这个文件。出现PSOD常见的原因是服务器内存不足,那个转储文件将有助于识别导致问题的内存模块并替换这个模块。
VMware ESX服务器常见问题之检查你的RAM
如果你怀疑你系统的RAM可能有问题,可以用一个内置的工具在后台检查你的RAM而不影响你正在运行的虚拟机。该RAM检查工具运行在VMkernel里,通过登录到服务器控制台,输入Service Ramcheck Start开启。
当正在运行RAM检测时,它把所有的活动和任何错误信息记录到/var/log/vmware目录下的文件ramcheck.log和ramcheck-err.log中。然而,它的一个缺陷是如果你有虚拟机正在运行,用这个工具不能检测所有的RAM,只能检测在ESX系统中未用的RAM。一个比较彻底的检测你的服务器中RAM的方法是关闭ESX,从CD引导,然后运行Memtest86+程序。
VMware ESX服务器常见问题之使用vm-support工具
如果你联系VMware技术支持人员,他们一般会要求你运行vm-support工具,它将把所有的ESX server的日志和配置文件打包成一个文件。通过root权限登录到服务控制台,然后不需要设置任何选项,输入“vm-support” 就可以运行这个工具。这个工具将创建一个Tar文件,以"esx---..tgz"格式命名。你可以通过FTP把它发送给VMware技术支持人员。确保把该Tar文件从ESX服务器上删除,这样做可以节省磁盘空间,或者,你可以通过VI client生成同样的文件。选择Administration,然后选择Export Diagnostic Data,选择你的主机(VirtualCenter 数据选项)和一个本地PC目录来存储将要创建的文件。
VMware ESX服务器常见问题之用日志文件排除故障
日志文件一般是排除各种类型问题的***工具。ESX有许多的日志文件,你需要检查哪个日志文件取决于你所遇到的问题。以下是ESX日志文件的列表,你通常可以用来定位ESX服务器的问题。VMkernel和主机日志文件一般都是你需要首先检查的。
VMkernel - /var/log/vmkernel——与虚拟机和ESX服务器相关的活动的记录。带扩展名以数字循环,当前的日志没有扩展,最近的日志带有“.1”扩展。
VMkernel Warnings -/var/log/vmkwarning——记录虚拟机的活动,VMkernel日志的子集,用同样的循环模式。
VMkernel Summary - /var/log/vmksummary——用于确定ESX服务器正常运行的时间和可用性统计,可读性的总结在/var/log/vmksummary.txt中。
ESX Server host agent log - /var/log/vmware/hostd.log——包含管理和配置ESX服务器主机和它的虚拟机代理信息。(查找文件的date/time戳来找到最近输出的日志文件,或者打开hostd.log,该文件连接到当前的日志文件)。
ESX Firewall log - /var/log/vmware/esxcfg-firewall.log——记录所有的防火墙规则事件。
ESX Update log - /var/log/vmware/esxupdate.log——记录所有的通过esxupdate统计所在的更新。
Service Console - /var/log/messages——包括所有的用于排除虚拟机和ESX服务器故障的一般日志信息。
Web Access - /var/log/vmware/webAccess——记录通过基于web访问ESX服务器的信息。
Authentication log - /var/log/secure——包含所有的需要认证的连接信息,例如VMware守护进程和由xinetd守护进程发起的动作。
Vpxa log - /var/log/vmware/vpx——记录和VirtualCenter通讯的代理的信息,通过查找文件的date/time戳来找到最近输出的文件或者打开hostd.log,该文件连接到当前的日志文件。
做为解决故障过程的一部分,你经常需要找出各种ESX组件的版本和使用的补丁,下面是一些命令,你可以从服务台运行来完成:
输入vmware -v来检查ESX服务器的版本,例如VMware ESX Server 3.0.1 build-32039
输入esxupdate –l query来查看安装的补丁
输入vpxa –v来检查ESX服务器的管理版本,例如VMware VirtualCenter Agent Daemon 2.0.1 build-40644
输入rpm –qa | grep VMware-esx-tools来检查ESX服务器VMware Tools安装的版本,例如VMware-esx-tools-3.0.1-32039
如果所有可能失败,重启Vmwate主机代理服务
许多的ESX问题可以通过重启VMware主机代理服务(vmware-hostd)解决,该服务负责管理大部分ESX主机的操作,通过登陆服务控制台,输入service mgmt-vmware restart来实现。
注意:ESX 3.0.1有一个bug,如果你的ESX服务器为你的VM配置了auto-startups选项,它将重启你所有的VM。这个bug在3.0.1 和 3.0.2中用一个补丁修复,但是在ESX 3.5中用另一个发布的补丁修复。在运行此命令时***临时禁止auto-startups选项。
在某些情况下,当你重启主机代理服务,重启vmware-vpxa服务可以定位发生在ESX和VI Client之间以及ESX和VirtualCenter之间的问题。该服务是管理代理,处理ESX和它的客户端的所有通讯。通过登陆ESX主机,输入service vmware-vpxa restart就可以完成。需要注意的是重启哪种服务都不会影响你的虚拟机操作(除了上述提到的bug)。
VMware ESX服务器常见问题之修复冻结的服务控制台
另一个会发生的问题是你的服务控制台挂起,不允许你本地登入。硬件锁定或者一个死锁状态都会导致这样。当发生这种状况时,你的VM可以继续正常运行,但是重启ESX是通常恢复的唯一的方法。在你重启之前,试着关闭你的客户VM,或者用VMotion把它们迁移到另一个ESX主机上。通过SSH远程连接的VI Client或者alternate/emergency控制台的其中之一来完成,可以先按Alt-F6,然后按Alt-F2键。你也可以按Alt-F12在控制台的屏幕上显示内核信息。如果你可以关闭或者迁移你的VM,你就可以通过VI Client或者alternate控制台发出重新引导的命令来试图重启服务器。如果不行,冷启动服务器就是你唯一的选择了。
VMware ESX服务器常见问题之网络配置丢失
可能出现的问题是你也许丢失了部分或所有的网络配置。如果发生这种情况,由于你不能通过VI Client连接,你必须用ESX本地服务控制台来重新构建网络。VMware已经发布了相关知识的文章:如何使用esxcfg-*服务控制台命令来重建你的网络和如何验证你的网络配置。
结论
在这篇文章里,我已经叙述了一些发生在VMware ESX服务器常见问题,在这个系列文章的下一部分,我将描述在VirtualCenter的故障排除问题。
【编辑推荐】