转载于:http://webservices.ctocio.com.cn/wsdev/337/9451837.shtml
掌握VMware基础架构 3(VI3:VMware Infrastructure 3)的复杂性可以减轻系统管理员的管理工作。本文列出一些应对VI3常见问题的解决方案:阻止虚拟机启动的错误快照、未指定网卡的虚拟转化器、指定后如何 重新编号以及忘记ESX服务器根口令的处理方案。
一些情况下快 照可能会与其父磁盘文件隔离,这时虚拟机就不能正常启动。如果发生这种情况,就会看到一个错误提示消息:“不能打开磁盘vmname- 000001.vmdk或者是所依赖的磁盘快照。原因:创建子磁盘快照后父磁盘被修改过。”在把虚拟机和虚拟机快照在虚拟机关机后从一台ESX服务器迁移 到另外一台时,也可能会发生这样的情况。由于快照文件也随着虚拟机迁移,VMDK描述符文件中的CID号也会改变。好在这个问题比较容易处理。
每个虚拟磁盘都有两个附属VMDK文件,较大的文件名称最后有-flat,是虚拟磁盘的实际原始数据。较小的文件是描述符文件,包含虚拟磁盘配置的基本 信息。使用诸如Nano等文本编辑器打开原始磁盘的描述符文件(通常情况下和虚拟机的名称相同,如myvm.vmdk),可以看到列出来的CID和父 CID。第一个磁盘的父CID一般是“ffffffff”,在下面的例子中需要注意快照的父CID和原始磁盘的CID并不一致。
原始磁盘文件:
CID=37b6f123
parentCID=ffffffff
快照磁盘文件:
CID=afafa03b
parentCID=ba4f9916
为了重新关联父子CID,编辑快照的描述符VMDK文件。标识原始磁盘文件的CID,修改快照磁盘文件的父CID,保证两者一致。如下所示:
原始磁盘文件:
CID=37b6f123
parentCID=ffffffff
快照磁盘文件:
CID=afafa03b parentCID=37b6f123
重新启动虚拟机,就可以顺利重新引导系统了。
未指定网卡的虚拟转换器
没有指定网卡的虚拟转换器(vSwitche)同那些隔离的、仅存在于内网的转换器(这些转换器与网络和ESX主机上的任何其它vSwitches相隔 离)一样。如果不希望虚拟机和常规网络通信,这类vSwitche在隔离虚拟机方面非常有帮助。如下是可能用到的一些例子:
创建一台新虚拟机,并且在完全打补丁和安全防护之前进行隔离;
在虚拟机上进行入侵测试或者运行安全扫描;
为故障恢复克隆现有虚拟机,保证原始服务器和克隆机能够同时运行并且相互隔离;
“P2V”一台物理服务器,在虚拟机完全准备好和物理服务器可以关闭之前,需要保证物理服务器和虚拟机可以使用相同的IP地址同时运行;
创建一个和其它服务器没有任何网络连接的隔离测试环境;
在每一台ESX服务器上分别部署一个虚拟转换器是一个不错的方法。它们支持端口组和VLAN标签,因此可以在多个服务器上构建一个隔离的工作环境。通过编辑虚拟机设置可以简单地把虚拟机在不同的网络上来回切换,并且不必关闭虚拟机。
创建内部vSwitche,首先需要在VMware基础架构客户端(VI Client)中选择ESX宿主平台。在配置标签页上,选择网络,点击新增网络连接。选择虚拟机作为连接类型,然后选择创建vSwitche,切记不要选 择任何网络适配器。最后,自行指定一个VLAN ID。如果需要其它VLAN,就创建更多的端口组。
NIC重新编号
在新增、修改和删除ESX主机上诸如网卡、光纤卡的硬件之后,可能会遇到ESX服务器对网卡重新编号从而引发网络故障的情况。使用同样型号的卡代替有故 障的卡后也可能会出现这样的问题。偶尔在服务器的BIOS修改硬件设备的物理拓扑(随之被改变的是这些设备的引导顺序),也会发生这样的问题。这种情况发 生时,ESX将会把网卡作为一个新设备,对其指定新NIC号(如vmnic#)。
如果使用两个端口的网卡代替四个端口的网卡就会出现这种情况。原来的网卡号一般会是vmnic0和vmnic1,网卡变动之后一旦重新启动 ESX,ESX就会发现新网卡并且依次编号为vmnic2 到vmnic5。这是因为虽然没有vmnic0和vmnic1物理设备了,但信息在ESX配置中依然存在。因为当前虚拟交换器配置依赖于vmnic0和 vmnic1,ESX主机重新启动后网络就不能正常工作了,同样也不能通过SSH或者VI客户端远程连接到服务器控制台上。
出现这种情况时,有两种处理方案:第一种方案比较简单并且可以不用修改vSwithch配置,但是需要编辑esx.conf文件,因此必须要小心。另外如果不希望网卡从vmnic2开始编号的话,第一种方案可以保持网卡编号不变。
方案一、编辑esx.conf文件
登录服务控制台;
输入esxcfg-nics –l查看现有网卡编号;
输入cd /etc/vmware进入正确的目录;
输入cp esx.conf esx.con.bak’,对该文件进行备份(因为该文件是ESX上非常关键的配置文件);
输入nano esx.conf打开文件进行编辑;
按下CTRL键,输入W;然后输入vmnic2搜索第一个新网卡;
把vmnic2修改为vmnic0;
依次修改vmnic3为vmnic1、vmnic4为vmnic2、 vmnic5为vmnic3;
按住CTRL键,输入O保存文件;
按下CTRL和X键,退出Nano编辑器;
重新启动ESX服务器;
服务器启动之后网卡编号应该是从vmnic0到vmnic3,可以使用命令esxcfg-nics –l检查是否正确。
方案二、修改虚拟转换器配置
登录服务控制台;
使用命令esxcfg-nics –l检查现有网卡号;
使用命令esxcfg-vswitch –l查看当前vSwithch配置,注意网卡和vSwithch之间的匹配关系(上行卷);
使用命令esxcfg-vswitch –U (如esxcfg-vswitch –U vmnic0 vSwitch1)移除被重新命名的旧网卡;
使用命令esxcfg-vswitch –L (如esxcfg-vswitch –L vmnic2 vSwitch1)新增使用当前名称的新网卡;
针对其它网卡重复该步骤。在保证包含服务器控制台的vSwithch正确之后,就可以通过VI客户端和登录,从而可以修改其它vSwithch;
需要把新命名的网卡指定到原始vSwithch上,网络才能够正常工作。
忘记根口令
忘记ESX服务器的根口令,并且没有其它方法可以修改。如果可以以物理方式访问ESX服务器的话,如下方法可以修改口令:
重启ESX服务器,在第一个菜单中输入a;
看到下一个提示菜单;
ESX通过引导进程后,最后输入“#”提示符;
输入passwd命令,然后输入新根用户口令,根据提示再次输入新口令;
输入reboot命令,重新启动系统。