如何在單臺虛擬主機(jī)與故障切換集群之間取舍?
和使用物理服務(wù)器相比,服務(wù)器虛擬化提供了數(shù)不清的優(yōu)勢,但它至少有一個明顯的不足之處。虛擬環(huán)境中主機(jī)發(fā)生故障帶來的后果要比在物理服務(wù)器環(huán)境中更嚴(yán)重。如果服務(wù)器在物理環(huán)境中出故障,那么只會影響單個工作負(fù)載。然而如果虛擬主機(jī)出故障,運(yùn)行在這臺主機(jī)上的所有虛擬機(jī)都會出問題。這可能會導(dǎo)致重大服務(wù)中斷。
避免虛擬主機(jī)發(fā)生故障
使用故障切換集群實(shí)現(xiàn)虛擬機(jī)的高可用性能夠修復(fù)此問題。簡而言之,在主機(jī)服務(wù)器出現(xiàn)故障時(shí),故障切換集群允許運(yùn)行在故障主機(jī)上的虛擬機(jī)切換到集群中的另一臺主機(jī)上,保證虛擬機(jī)繼續(xù)運(yùn)行。
因?yàn)橹鳈C(jī)服務(wù)器出故障帶來的潛在后果,使用故障切換集群已經(jīng)成為了運(yùn)營虛擬環(huán)境的標(biāo)準(zhǔn)、可接受方式。但故障切換集群實(shí)施成本很高,因?yàn)樾枰徺I許可虛擬軟件以及服務(wù)器和共享存儲陣列硬件。還要考慮支持及維護(hù)故障切換集群的費(fèi)用。為避免與構(gòu)建及維護(hù)hypervisor集群環(huán)境所帶來的復(fù)雜性及巨大的成本,有必要考慮能否使用獨(dú)立非集群虛擬主機(jī)代替故障切換集群。
在實(shí)驗(yàn)環(huán)境中使用非集群虛擬主機(jī)是很常見的,因?yàn)镮T部門針對開發(fā)/測試環(huán)境的預(yù)算有限。此外,可能的原因是如果實(shí)驗(yàn)環(huán)境中的主機(jī)出故障,通常不會帶來嚴(yán)重的后果。但對生產(chǎn)環(huán)境來說就是另一回事了。
表面上看,在生產(chǎn)環(huán)境中使用單臺虛擬主機(jī)似乎明顯違背了長期建立的最佳實(shí)踐,但在如下場景中是可行的。
什么時(shí)候使用獨(dú)立主機(jī)
在生產(chǎn)環(huán)境中使用單臺獨(dú)立主機(jī)最為常見的例子出現(xiàn)在小微企業(yè)中。小企業(yè)只有很少的員工,往往使用單臺虛擬主機(jī)運(yùn)行為數(shù)不多的虛擬機(jī)。盡管這一做法很常見,但仍舊充滿風(fēng)險(xiǎn)而且有些欠考慮,因?yàn)橹鳈C(jī)服務(wù)器故障會導(dǎo)致所有的服務(wù)出問題。對小微企業(yè)來說,可能缺少部署故障切換集群的預(yù)算或者經(jīng)驗(yàn),最好的辦法是在公有云中運(yùn)行生產(chǎn)工作負(fù)載,而不是只依賴于獨(dú)立的虛擬主機(jī)。
具備某些冗余機(jī)制的組織也可以使用獨(dú)立主機(jī)。例如,Hyper-V能夠?qū)⑻摂M機(jī)復(fù)制到第二臺或者第三臺主機(jī)—不需要構(gòu)建故障切換集群。這意味著要比構(gòu)建故障切換集群更容易,成本也更低。
然而,hypervisor級復(fù)制并沒有提供實(shí)時(shí)的故障切換功能。就Hyper-V而言,故障切換到副本虛擬機(jī)是有可能的。但人工處理將導(dǎo)致短暫的宕機(jī)。而且企業(yè)要應(yīng)對工作負(fù)載出現(xiàn)短暫的中斷。
最后,當(dāng)在虛擬機(jī)層面具備冗余時(shí),使用單臺獨(dú)立虛擬主機(jī)也是可接受的。例如,考慮三個域控制器位于三個獨(dú)立的虛擬主機(jī)上的情形。在這種情況下缺少故障切換集群不會帶來嚴(yán)重的風(fēng)險(xiǎn),因?yàn)橛蚩刂破魇侨哂嗟?。如果在客戶機(jī)級別的工作負(fù)載實(shí)現(xiàn)了集群,那么主機(jī)級別的集群提供的是額外的安全防護(hù)。但這并非應(yīng)對服務(wù)中斷的唯一措施。
如果有可能,那么將虛擬主機(jī)加入故障切換集群往往是最好的選擇。在實(shí)際工作中,技術(shù)或預(yù)算限制可能會導(dǎo)致無法使用故障切換集群。在這種情況下,要尋求在主機(jī)中斷時(shí)保護(hù)工作負(fù)載的其他方式。例如IT團(tuán)隊(duì)可以配置Hyper-V的免費(fèi)版本作為故障切換集群。虛擬機(jī)復(fù)制以及客戶機(jī)集群是另兩種選擇。最重要的是:不能允許主機(jī)服務(wù)器出現(xiàn)單點(diǎn)故障。