Vmware vSphere常见问题及解决办法
1. 虚拟机文件被锁,无法正常 power on
故障状态:
启动虚拟机时95%,停顿并且进程中断,提示:ubable to access files since it is locked。
祸根:HA
解决方法:
(1)首先将cluster中的HA功能关闭。如果该功能不关闭,容易造成死锁,,VM不断跳动,,不断再不同的ESX内循环被锁,徒劳而无功。
(2)磁盘文件被锁,要解决,必须要知道到底是哪台ESX把他给锁住了,这是关键。
方法:看/var/log/vmkernel但是,在做这些前, 再准备些别的工作。
(3)在VC中,把被锁的VM从Inventory中remove掉。原因很简单,这是一个 unregister的过程。
(4)根据/var/log/vmkernel,搜索owner,可以找到类似以下的语句:
Oct 19 04:23:33 esx-hostname vmkernel: 3:06:29:47.992 cpu6:1656)FS3: 1975: Checking if lock holders are live for lock [type 10c00001 offset 52008960 v 380, hb offset 3554304 Oct 19 04:23:33 esx-hostname vmkernel: gen 17, mode 1, owner 48f5f637-462688bc-fd28-0e1a6434b6f8 mtime 38112]
OK,owner后面的48f5f637-462688bc-fd28-0e1a6434b6f8就是你的target了。 因为他就是锁住VM 的宿主.。
(5)根据以下命令,,找出到底哪台ESX的UUID是 48f5f637-462688bc-fd28-0e1a6434b6f8
[root@esxhostname root]# esxcfg-info |grep -i 'system uuid'
(6)找到目标主机后,当然是杀死他锁住VM的进程。之所以会被锁,原因就是HA 把VM从别的HOST迁移过来,但是又没有unregister和register的过程,所以在第3步的时候,你查看VM的Summary的时候,host ip还是属于出问题的 host。 但是VM又被新的host霸王硬上功的power on,注册都没注册, 又怎么启动呢。找到 PID 用下面的命令:
ps -efwww|grep virtualmachine.vmx
找到 PID 后, kill -9 PID
(7)这时候,还要确定一件事情, .vswp文件的事情。这个是给台客处理问题时吸取的经验。就因为忽略了这个,所以在杀掉迚程后,重新注册VM,还说没有 SWAP文件,启动还是失败。
在 VM 启动时会自动生成SWAP,没有SWAP文件,其实就是因为 SWAP 存在了, 因为重名而导致无法正常生成。
进入到/vmfs/volumes/lunid/vm_path/下,vmkfs -d virtual_machine.vswp 或者进入Datastore Browser,在里面把SWAP文件删除也可。
(8)完全之策,你还可以进入到VM的SETTINGS--OPTIONS--SWAPFILE LOCATION, 对该保存的位置做下设置。
(9)重新注册VM。进入Datastore Browser,找到VM.vmx,add to inventory。
(10)启动 VM. Good Luck。
2. 忽视掉ESXi/vCenter Server提示SSH事件的方法
(1) vSphere Client连接到VC或者ESXi服务器;
(2) 在Home -> Inventory -> Hosts and Clusters里展开选中你的ESX服务器;
(3) 右边选择Configuration,然后点击Software栏目里的Advanced Settings;
(4) 在Advanced Settings里选择左边列表中的UserVars;
(5) 选中左边列表中的UserVars后,在右边拖到最下面,将UserVars.SuppressShellWarning的值改为1即可,不需要重启。
3. 尝试迁移一台带USB设备的VM失败
故障状态:
在执行虚拟机迁移向导时,如果系统检测到不兼容的USB设备存在,则系统会提示如下错误信息:
Currently connecteddevice 'USB 1' uses backing 'path:1/7/1',which is not accessible.
故障分析:
这种问题通常发生在为主机开启了VMDirectPath I/O支持下的USB Passthrough Devices功能,然后为特定的VMs分配了USB设备,比如:加密狗;
解决方案:
(1)确认USB设备能够被虚拟机识别和支持,并确保在添加USB设备到VMs时,勾选了with vMotion选项;
(2)在执行vMotion动作之前,重新尝试将USB设备添加到VMs;
(3)确认ESXi主机没被重启过,因为,ESXi主机重启之后,原本支持的vMotion WithvMotion功能将会失效。
4. Convert Linux系统的Troublshooting过程
(1)确认源转换Linux机器的OS在官方的支持列表中;
(2)拥有root权限;
(3)确认DNS的设定有没有问题,注意:应该同时在Linux和Windows都加上;
(4) 确认源Linux能够ping同ESX或vCenter的IP。如果在2%时失败,最大的可能就是权限问题或防火墙阻隔问题;
(5) 确认Linux允许SSH登陆进去。这个,可以帮助我们在converting的时候登录到Linux系统;
(6)确认是给helper virtual machine设定的静待IP,而不是DHCP获取的(如果网内没有DHCP服务器);
(7)确认源和目标都在同一子网。如果通过路由链接的不同子网可能会出错;
(8) 注意,converter不支持做了软阵列的Linux系统。可以用冷克隆光盘来做,它会把软阵列的设定为/dev/md0。
(9) VMware Converter Standalone的日志目录:C:\Documents and Settings\All Users\Application Data\VMware\VMware vCenter Converter Standalone,用于排错时用。
5. vCenter Service Status页面故障:Unable to retrieve health status
故障状态:
vCenter Server Status页面提示如下错误信息:
Unable to retrieve health status for vCenter inventory service
Unable to retrieve health status for VMware vSphere Profile-Driven storage service
执行vCenter Server的搜索动作时,提示如下错误提示:
Unable to connect to webservices to perform query.
Verify that the "VMware VirtualCenter Management WebServices" service running onhttps://<vcenter-host-name>:10443
故障分析:
这个问题一般都由于当vCenter Server服务发生了变更或全新安装了一台vCenter Server,但是数据库依然是原来的数据库导致;
解决方案:
替换掉vws.jar、jointool.jar和ds.jar文件即可,步骤如下:
下载本文附件中的vws.zip文件然后解压缩vws.jar、jointool.jar和ds.jar文件;
停止掉VirtualCenter Server服务以及VirtualCenter Management Webservices服务;拷贝vws.jar和jointool.jar到C:\ProgramFiles\VMware\Infrastructure\tomcat\webapps\WEB-INF\lib覆盖掉原来的文件;拷贝ds.jar文件到C:\Program Files\VMware\Infrastructure\Inventory Service\lib覆盖掉原来的文件;重新启动相关服务或vCenter Server服务器即可。
6. VMRC 控制台的连接已断开…正在尝试重新连接
故障状态:
用vSphere Client连接到ESXi 5.0的主机,启动其中的虚拟机后,无法连接控制台,打开控制台之后,窗口上方提示一行“VMRC 控制台的连接已断开...正在尝试重新连接。”
故障分析:
从情况看,类似于Windows系统的DEP策略处于开启状态导致的问题一样。但这个情况是所有虚拟机都提示这个错误,排错DEP的问题,用本地vSphere Client登录一个VC平台,问题仍旧一样。为了排除问题,换了一台笔记本登录VC,突然发现问题不见了。原来是本地的vSphere Client出了问题,再三思索,发现出现问题前我对本地WIN7用360安全卫士升级了补丁,是否是补丁破坏了vSphere Client某个文件呢
解决方案:
重现安装vSphere Client,问题解决。
7. 端口 80 的 vCenter Server 和 IIS 之间的冲突
故障状态:
vCenter Server 和 Microsoft Internet Information Service (IIS) 都将端口 80 用作直接 HTTP 连接的默认端口。该冲突会导致安装 vSphere Authentication Proxy 后 vCenter Server 无法重新启动。 在 vSphere Authentication Proxy 安装完成后, vCenter Server 无法重新启动。
故障分析:
如果安装 vSphere Authentication Proxy 时未安装 IIS ,则安装程序会提示您安装 IIS 。因为 IIS 使用端口 80 ,这是用于 vCenter Server 直接 HTTP 连接的默认端口, 所以 vCenter Server 在 vSphere Authentication Proxy。安装完成后无法重新启动。请参见第 32 页,“ vCenter Server 所需的端口” 。
解决方案:
要为端口 80 解决 IIS 和 vCenter Server 之间的冲突,请执行以下操作之一。
如果在安装 vCenter Server 之前已安装 IIS 将 vCenter Server 直接 HTTP 连接的端口由 80 更改为其他值。 如果在安装 IIS 之前已安装 vCenter Server 重新启动 vCenter Server 之前, 将 IIS 默认网站的绑定端口由 80 更改为其他。
8. 在 UEFI 模式下安装 ESXi 后主机无法引导
故障状态:
在 UEFI 模式下, 在主机上安装 ESXi 后重新引导时, 重新引导可能失败。 出现此问题的同时, 还显示一条类似于以下内容的错误消息: 发生异常网络错误。无可用的引导设备 (Unexpected network error. No boot device available)。
故障分析:
主机系统无法识别作为引导磁盘在其上安装 ESXi 的磁盘。
解决方案:
(1)屏幕上显示错误消息时,按 F11 显示引导选项。
(2)选择一个类似于添加引导选项的选项。该选项的文字可能有所不同,具体取决于您的系统。
(3)在安装 ESXi 的磁盘上选择文件 \EFI\BOOT\BOOTx64.EFI 。
(4)更改引导顺序,以便主机从添加的选项引导。
9. 将 Microsoft SQL 数据库设置为不受支持的兼容模式会导致 vCenter Server 安装或升级失败。当数据库设置为不支持的版本的兼容性模式时,使用 Microsoft SQL 数据库的 vCenter Server 安装会失败。
故障状态:
将显示以下错误消息: 输入的数据库用户没有使用选定数据库安装和配置 vCenter Server 所需的必要权限。 请更正以下错误 : %s
故障分析:
数据库版本必须是 vCenter Server 支持的版本。 对于 SQL , 即使数据库是受支持的版本, 但如果将其设置为以不支持的版本的兼容性模式运行, 仍会发生此错误。 例如, 如果将 SQL 2008 设置为以 SQL 2000 兼容性模式运行,就会发生此错误。
解决方案:
请确保 vCenter Server 数据库是受支持的版本, 并且没有设置为以不支持的版本的兼容性模式运行。
10. 误删运行中的虚拟机,通过xx-flat.vmdk恢复方法
故障状态:误删了运行中的虚拟机,进入目录查看,只剩下xx-flat.vmdk文件,从文件的类型看,只是File格式,不是Virtual Disk格式,新建虚拟,选择添加已存在磁盘,提示不存在
解决方案:
(1)新建一虚拟机,不要创建硬盘
(2)用ssh的方式登录host,查找xx-flat.vmdk文件所在位置及目录,
(3)在上面这个文件相同目录下创建新xxx.vmdk文件,大小要和xx-flat.vmdk文件一样大,
用ls -la查看xx-flat.vmdk文件大小,
用vmkfstools -c 文件大小 -a lsilogic xxx.vmdk 来创建新磁盘文件
(4)将这个磁盘文件添加到新建的虚拟机中;
(5)用原文件xx-flat.vmdk覆盖新建的xxx-flat.vmdk(注意一定是-flat.vmdk),使用mv命令
(6)完成后开启虚拟机就可以了。