VMware HA作为2006年推出的VMware Infrastructure 3的新功能,受到很多IT业界人士的瞩目。它具有易操作,低成本,高可用的优点,而且不需要增加额外的成本,也不会像传统的应用群集技术那样,需要额外的备用硬件或者分层软件。对于Vmware HA,Vmware的宗旨是以最低的成本提供始终如一的高可用性。
VMware HA概述
HA的全称是High Availability(高可用性)。VMware HA群集一般具有一个包括两个或者两个以上ESX主机的逻辑队列。在一个HA群集中,每一台VMware ESX服务器配有一个HA代理,持续不断地检测群集中其他主机的心跳信号。ESX主机每隔五秒就会通过服务主机的网络连接发送心跳信号。假如某台ESX主机在连续三个时间间隔后都还没有发出心跳信号,那么该主机就被默认为发生了故障或者与网络的连接出现了问题。
在这种情况下,原本在该主机上运行的虚拟机就会自动被转移到群集中的其他主机上。反之,如果一台主机无法接收到来自群集的其他主机的心跳信号,那么该主机便会启动一个内部进程来检测自己跟群集中其他主机的连接是否出现了问题。如果真的出现了问题,那么就会中断在这台主机上所有正在运行的虚拟机,并启动预先设定好的备用主机。
此外,VMware HA的另一个显著的特点是能够对一个群集中的多台ESX服务器(多达四台)上进行故障转移。对于一次VMware HA故障转移,客户端操作系统认为只是一次因硬件的崩溃而进行的重启,并不会觉察到是一次有序的关机。因此,这样的修复并不会改变操作系统的状态。此外,虚拟机中任何正在进行的业务也不会丢失。即使备用ESX服务器主机的硬件设备跟原ESX服务器主机的硬件设备有所不同,客户端操作系统也不会检测到这种不同。所以,VMware HA的故障转移对于客户来说可以算是完全透明的,几乎不会出现任何停机的危险。
VMware HA的完整过程
进行VMware HA操作时,并不用像Windows Cluster那样需要两张网卡来进行网络的链接和传送心跳信号。它仅仅只需要一张网卡和一个Service Console即可,而且还不必创建Vmkernel。
另外,进行VMware HA操作还需要满足以下两个条件:
群集中主机(host)中启动的虚拟机必须能够访问共同的存储器和网络。
群集中的主机(host)能够通过主机名、完整的正式域名和IP来PING通对方。
下面可以对VMware HA的完整操作进行详细的描述。
一、 创建一个DNS服务器,为主机(host)提供主机名到IP地址的解析
在VMware HA群集中的所有主机都必须进行DNS配置,以便通过对群集中任意主机的短名(short host name,不包含域后缀)进行解析,得到其他主机正确的IP地址。假如没有进行DNS配置,那么整个VMware HA配置就会失败。如果你想要添加主机的使用IP地址,那么就必须启动DNS查找(DNS lookup),因为IP地址必须通过解析,变成主机的短名(short host name)。
当对VMware HA进行配置时,必须先创建一个DNS服务器,用来解析主机的名字。然而,VMware HA配置成功后,对故障的处理就不再需要DNS lookup了。
首先,安装一个Windows 2003企业版作为License Server和DNS服务器(打开控制面板――管理工具――DNS)。右键正向查找区域――新建区域向导。
接下来的操作按照下面的组图所示进行设置,并点击“下一步”即可。
至此,正向解析区域就创建完毕了,接下来可以为这个区域添加一些主机:在刚建好的vmware.com右键――新建主机。
输入主机名称,IP地址和相关设置之后,点击“添加主机”即可。通过上述操作,把Vmware Ha的主机全部添加进来之后,双击“名称服务器”,选择名称服务器――选择选择框中所罗列的名称服务器。然后点击编辑,在编辑记录那里点击浏览,查找刚创建的DNS服务器。
正向解析区域添加完成之后,现在开始添加反向查找区域:右键反向查找区域――新建区域向导。然后按照下图所示,进行设置,然后点击“下一步”。
下图是反向查找区域将IP地址转换为DNS名称的设置界面。由于该测试需要两个不同的网段,所以需要添加两个反向区域,并输入正确的IP网段。
右键刚刚新建的反向查找区域地址右键――选择新建指针。输入相关主机的指针,并且在浏览那里找到相应的主机。这里把192.168.103和10.3.131的网段都添加进来了,还要创建相关指针。
这里有一点需要提醒一下,一定要记住修改下图中的“此计算机的主DNS后缀”。假如没有对它做出修改,那么将会导致ESX不能进行短名的解析。要进行上述的操作,右键我的电脑属性――计算机名――更改――其他――输入所建的区域。
此外,还要把网卡里的主DNS设置成本地IP地址。
配置完后,重启计算机。用“NSLOOKUP”工具测试一下DNS:开始――运行输入CMD――运行NSLOOKUP命令。
二、在VC(vCenter)中配置VMware HA
在VC中创建一个群集(Cluster),命名为123,同时选择“VMware HA”选项。
接下来需要设置允许发生故障的虚拟机数量和发生故障后系统的默认操作,具体设置步骤如下:
1. 主机故障――指定需要确保虚拟机故障转移的主机故障数目(即故障容量)。
2. 发生故障后重启的优先级。
3. 隔离响应。
4. 接入控制――提供两个关于如何做出允许启动新虚拟机决定的选项:
1) 如果虚拟机违反可用性限制,则不启动虚拟机,通知强制执行指定的故障转移容量限制。
2) 即使虚拟机违反可用性限制,也允许启动虚拟机。此选项允许即使再也无法确保指定主机数目的故障切换时也可启动虚拟机(此时系统将发出警告)。
设置Swap文件:
1. 将Swap文件要与虚拟机放在同一个目录下。
2. 将Swap文件存储到指定的存储中。
点击“NEXT”,设置就完成了。
创建完群集(Cluster)之后,应该先检查一下两台ESX服务器的DNS配置是否正确:主要是检查下面两张截图中红圈内的内容。两台ESX服务器除了名字(Name)不一样之外,其他的设置应该都是相同的。假如DNS配置是正确的,那么就可以把两台ESX服务器添加到之前创建的名为“123”的群集中了。添加成功之后,系统就会自动启动HA功能。
Vmware HA设置到这里,就可以启动了。但是启动之后,却出现了下图所示的黄色警告。
该黄色警告时因为之前在开始进行设置的时候,只使用了一张网卡和一个Service Console,从而没有可用的冗余网络资源。必须增加一个Service Console和把网卡做了一个Teaming,才能消除黄色警告。其操作如下图所示:打开VC――Configuration――Networking――Properties…….
增加一个Service Console。
输入IP地址。
Service Console添加完成后,返回到刚才增加Service Console那里添加一张网卡,并把网卡做成Teaming:
选择一种空余的网卡。
选择一个VSwitch,然后决定两张网卡中哪张是主要网卡,哪张是备用的。右边的“Move Up”和“Move Down”可以调整上下。
对于Vmware HA的配置来说,VC是必要的条件。但是Vmware HA的管理却不需要VC。即使VC出现了故障,HA却仍然能够运作。
三、 检查ESX配置
尽管到这里Vmware HA已经可以启动,但是一般情况下,还要检查ESX配置。
首先,登录到第一胎ESX服务器的Service Console上PING一下DNS和另外一台ESX服务器。这里,有三种方式:IP地址,计算机名以及完整域名。一般情况下,使用IP地址和完整域名的方式都是可行的。只有使用计算机名可能会遇到以下情况:
这时,可以先来看看第一个/etc/hosts文件。/etc/host文件是配置ip地址和其对应主机名的文件。这里可以记录本机的或其他主机的ip及其对应主机名。比如文件中有这样的定义:10.3.131.70 esx101.vmware.com esx101。 假设“10.3.131.70”是一台网站服务器,在网页中输入“http:// esx101.vmware.com”或“http://esx101”,就会打开“10.3.131.70的网页”。通常情况下这个文件首先记录了本机的ip和主机名:127.0.0.1 localhost.localdomain localhost。
用VI编辑工具打开:vi /etc/hosts。如下图所示,只有一条10.3.131.70 esx101.vmware.com esx101的记录。
在这里,esx101上使用ping esx101是正确的。因为这里有一个叫esx101的主机名。所以要对上图所示的文件进行修改。
同样的,将另一台ESX的hosts文件也作一下修改,把DNS和esx101的记录也添加上去,如下图所示:
最后在两台ESX服务器上互相PING一下对方的主机名,看是否可行。
如果上述操作还无法解决问题,那么可以检查这几个文件的内容是否正确:/etc/hosts,/etc/resolv.conf 和/etc/vmware/esx.conf。
值得注意的是,ESX服务器的主机名一旦被修改,就需要重启服务器。因为尽管主机名字已经被修改,但是在/etc/vmware/esx.conf文件里的名字并没有更新。假如没有重启服务器的话,那么启动Vmware HA的时候,会出现无法解析短名的错误提示。
以上就是Vmware HA设置的完整操作过程。
群集状态信息
随着主机或虚拟机的添加或删除,群集可能会因为 HA 违反限制而被过度提交或者被视为无效。 “摘要”页上显示的消息显示当前选择的群集的状态。Virtual Infrastructure Client可以指示群集是否为有效(绿色)、被过度提交(黄色)或无效(红色)。
1. 黄色(被过度提交)群集
当群集满足或未满足故障切换要求时,不会产生黄色的 HA 群集指示。当资源池和虚拟机的数目内在一致,但用户却违反某些要求时,群集就会变为黄色。当将容量从群集删除时就会发生这种情况。例如,由于主机发生故障或者主机被删除并且没有足够的资源支持所有请求。
2. 红色(无效)群集
当启动的虚拟机的数目超过严格的故障切换的要求,即当前故障切换容量小于配置的故 障切换容量时,启用了 HA 的群集就会变成红色。例如,如果先前已经选择了“即使虚拟机违反了可用性限制,也允许启劢虚拟机”,那么,当启动太多虚拟机以至于没有足够的资源确保指定数目的主机故障切换时,则会出现这种情况。
如果直接在主机上启动虚拟机或执行其他操作,群集也会变成红色。 例如,如果在一个四主机群集中为两主机故障设置了HA。 并且有一个主机发生了故障,则群集同样会变成红色。此时,剩余的三个主机可能无法解决两主机故障。 此外,如果启用了 HA 的群集变成红色,那么它将不再确保指定数目主机的故障切换,但却依然能够继续执行故障切换。主机发生故障时,HA会先按优先级顺序对一台主机的虚拟机进行故障切换,然后再按优先级顺序对第二台主机的顺序进行故障切换,依此类推。