服務(wù)器集群高可用性:DNS與故障轉(zhuǎn)移
即使虛擬化逐步成熟,高可用性HA仍然是集群里最難懂的組件之一。服務(wù)器集群能啟動(dòng)高可用性,它是一個(gè)hypervisor功能,當(dāng)虛擬機(jī)崩潰時(shí)能限制宕機(jī)時(shí)間。VMware vSphere、Microsoft Hyper-V and Citrix XenServer都提供了高可用性功能,減輕虛擬架構(gòu)中的災(zāi)難恢復(fù)任務(wù)。
太多的人在沒(méi)有理解高可用性的情況下實(shí)施虛擬化項(xiàng)目。更糟的是,管理員在服務(wù)器集群實(shí)施期間忽視高可用性,導(dǎo)致現(xiàn)在發(fā)現(xiàn)它從解決問(wèn)題的方案變成需要解決的問(wèn)題。
事實(shí)上,高可用性能解決一些列問(wèn)題。它就是一個(gè)簡(jiǎn)單的服務(wù),無(wú)論你使用何種hypervisor,在主機(jī)發(fā)生故障后重新啟動(dòng)虛擬機(jī)。持續(xù)的可用性是個(gè)理想目標(biāo),但是虛擬機(jī)仍然經(jīng)歷一些宕機(jī)。
高可用性通常與熱遷移相關(guān),如XenMotion、vMotion,但實(shí)際上不是,我曾見(jiàn)過(guò)在第一次主機(jī)發(fā)生故障后,服務(wù)器集群里出現(xiàn)大量問(wèn)題,由于混淆了這兩個(gè)概念。
高可用性技術(shù)越來(lái)越智能,但是要注意下面的問(wèn)題可能使你的服務(wù)器集群崩潰。
DNS如何影響高可用性
與VMware HA結(jié)合,域名服務(wù)器(DNS)分辨率會(huì)成為嚴(yán)重的問(wèn)題。要允許服務(wù)器集群節(jié)點(diǎn)相互通信,VMware對(duì)DNS分辨率擔(dān)負(fù)重要責(zé)任。通常,這不是問(wèn)題。但如今很多的IT人員已經(jīng)習(xí)慣DNS是個(gè)服務(wù)的概念,不需要進(jìn)行管理。
這種不干預(yù)政策的部分原因在于Windows的動(dòng)態(tài)DNS功能。許多管理員沒(méi)有像以前那樣花心思對(duì)待DNS,因?yàn)閯?dòng)態(tài)DNS現(xiàn)在自動(dòng)執(zhí)行多數(shù)任務(wù)。但是VMware服務(wù)器沒(méi)有使用動(dòng)態(tài)DNS.
如果在服務(wù)器集群中使用VMware HA,確保你的管理網(wǎng)絡(luò)IP地址和相關(guān)的主機(jī)名都進(jìn)入到DNS.在進(jìn)行變更或添加附件到虛擬環(huán)境中時(shí),需要進(jìn)行手動(dòng)操作與維護(hù)。如果DNS沒(méi)有正確配置,VMware會(huì)出現(xiàn)明顯的提示說(shuō)明,但是如果發(fā)現(xiàn)得太晚就容易忽略這個(gè)提示。
#p#
多站點(diǎn)服務(wù)器集群中的DNS分辨率
DNS分辨率問(wèn)題也會(huì)影響多站點(diǎn)Hyper-V集群。Hyper-V的Windows Failover Clustering服務(wù)現(xiàn)在能跨子網(wǎng)。在某些方面,這種架構(gòu)很好,因?yàn)槟悴辉傩枰褂脧?fù)雜的網(wǎng)絡(luò)技術(shù)跨不同的地點(diǎn)管理。但另一方面,故障轉(zhuǎn)移到第二個(gè)站點(diǎn)的虛擬機(jī)通常需要處理新的子網(wǎng)。
從服務(wù)器方面來(lái)說(shuō)這不是大問(wèn)題,但對(duì)于客戶(hù)端就造成問(wèn)題??蛻?hù)端配置的是存活時(shí)間值,決定緩存DNS報(bào)道需要多久。故障轉(zhuǎn)移后這些報(bào)道就過(guò)時(shí)了。在物理的災(zāi)難恢復(fù)中,通常不是問(wèn)題,因?yàn)槟憧赡苄枰幚砀嘀匾膯?wèn)題,如“數(shù)據(jù)中心正在崩潰!”但在虛擬架構(gòu)中,當(dāng)虛擬機(jī)偶然遷移到另一個(gè)可替換站點(diǎn)時(shí)就會(huì)出現(xiàn)問(wèn)題。
高可用性問(wèn)題不專(zhuān)門(mén)出現(xiàn)在Hyper-V集群中。在不同的子網(wǎng)啟動(dòng)虛擬機(jī)的災(zāi)難恢復(fù)的服務(wù)器集群都會(huì)經(jīng)歷類(lèi)似的問(wèn)題。
#p#
故障恢復(fù)命令的重要性
DNS問(wèn)題凸顯了服務(wù)器集群管理中故障恢復(fù)命令重要性這個(gè)事實(shí)。一些服務(wù)器集群組織故障恢復(fù)命令比其他的好。例如VMware HA讓服務(wù)器集群自己處理故障恢復(fù)命令。其他的如Hyper-V,管理員手動(dòng)決定發(fā)生故障后虛擬機(jī)往哪遷移。
你不想看到的是虛擬機(jī)移到不合適的服務(wù)器集群節(jié)點(diǎn),如移到多站點(diǎn)集群的另一端,或者超載的節(jié)點(diǎn)。特別注意你的故障恢復(fù)命令,確保平衡集群負(fù)載。
#p#
發(fā)生主機(jī)隔離該怎么做?
當(dāng)服務(wù)器集群主機(jī)仍然在線時(shí)就會(huì)出現(xiàn)主機(jī)隔離,但它已不能與其他節(jié)點(diǎn)通信。主機(jī)隔離的問(wèn)題在于隔離的主機(jī)仍然運(yùn)行虛擬機(jī)。在VMware HA隔離事件中,這些虛擬機(jī)通常運(yùn)行在不同的虛擬交換機(jī)上,不會(huì)受到隔離的影響。集群可能想將這些虛擬機(jī)故障恢復(fù)到隔離區(qū)之外,但是如果一臺(tái)隔離的主機(jī)缺少虛擬機(jī)的磁盤(pán)文件就不能實(shí)現(xiàn)。
有幾種方式修復(fù)這個(gè)問(wèn)題。很明顯,將隔離的主機(jī)重新召回來(lái)在線是最佳方案。但是如果不能這樣做,你需要關(guān)閉虛擬機(jī),讓存活的集群節(jié)點(diǎn)能故障轉(zhuǎn)移這些虛擬機(jī)。注意高科用性解決方案的隔離響應(yīng)設(shè)置,確定哪個(gè)設(shè)置能滿(mǎn)足你的特別需求。在主機(jī)發(fā)生隔離時(shí),許多功能允許你選擇繼續(xù)運(yùn)行或者關(guān)閉虛擬機(jī)。
高可用性是虛擬架構(gòu)中的有用組件,但是不能在服務(wù)器集群中繞開(kāi)重要的設(shè)置來(lái)管理讓人興奮的負(fù)載均衡功能。否則,就會(huì)出現(xiàn)許多棘手的問(wèn)題。
【編輯推薦】