良好的網(wǎng)絡(luò)架構(gòu)確保一個(gè)網(wǎng)絡(luò)組件故障不會(huì)影響虛擬服務(wù)器的可用性,雖然這種架構(gòu)具備了網(wǎng)絡(luò)冗余,但它并不是一個(gè)可行的高可用策略,因?yàn)榉⻊?wù)器硬件故障仍然是一個(gè)潛在的威脅,冗余網(wǎng)絡(luò)架構(gòu)就是一步創(chuàng)建一個(gè)彈性的虛擬數(shù)據(jù)中心。
創(chuàng)建一個(gè)具有彈性的虛擬數(shù)據(jù)中心最關(guān)鍵的是集中存儲(chǔ),所有虛擬機(jī)都應(yīng)該放到一個(gè)集中的存儲(chǔ)池中,所有宿主服務(wù)器都可以訪問這個(gè)存儲(chǔ)池,在這種情況下,如果出現(xiàn)故障,虛擬服務(wù)器可以快速移到另一個(gè)宿主服務(wù)器,如果虛擬硬盤驅(qū)動(dòng)器是放在直接附加存儲(chǔ)(DAS)上的,那這種類型的彈性就不可用,因?yàn)镈AS是與一臺(tái)服務(wù)器固定了的。
集中存儲(chǔ)池是創(chuàng)建一個(gè)無單點(diǎn)故障的最佳方法,實(shí)現(xiàn)集中才存儲(chǔ)的方法是在每臺(tái)宿主服務(wù)器上安裝多塊光纖卡,每塊光纖網(wǎng)卡連接到獨(dú)立的光纖交換機(jī)上,交換機(jī)再連接到公共存儲(chǔ)池,存儲(chǔ)池本身由冗余的存儲(chǔ)陣列組成,圖2展示了一個(gè)冗余的光纖架構(gòu),同時(shí)也展示了一個(gè)冗余的網(wǎng)絡(luò)架構(gòu),我們要仔細(xì)看看它們是如何與多臺(tái)服務(wù)器融合到一起的。
VMware和容錯(cuò)性
實(shí)時(shí)遷移和真實(shí)容錯(cuò)都需要一個(gè)共享的存儲(chǔ)架構(gòu),它們都允許虛擬機(jī)在兩臺(tái)宿主服務(wù)器之間快速移動(dòng)。雖然這兩個(gè)功能具有某些相似性,但它們的用途卻完全不一樣。
實(shí)時(shí)遷移是通過VMware的vMotion實(shí)現(xiàn)的,在Hyper-V R2中類似的功能,它將宿主服務(wù)器當(dāng)作一個(gè)資源池,資源可以分配給虛擬服務(wù)器,你可以立即將一個(gè)宿主服務(wù)器上的虛擬服務(wù)器轉(zhuǎn)移到另一個(gè)宿主服務(wù)器上。如果宿主服務(wù)器超載了,你可以使用實(shí)時(shí)遷移功能將某些虛擬服務(wù)器轉(zhuǎn)移到其它宿主服務(wù)器上。需要記住的是vMotion并不是一個(gè)容錯(cuò)功能。
VMware包括的容錯(cuò)功能叫做VMware FT,它屬于vSphere 4中的一個(gè)功能,與VMotion不一樣,VMware FT設(shè)計(jì)目的是快速檢測(cè)和響應(yīng)硬件故障,以便及早將虛擬服務(wù)器轉(zhuǎn)移到其它宿主服務(wù)器,通過vLockstep技術(shù)使其成為可能。
vLockstep的基本前提是主虛擬機(jī)和備用虛擬機(jī)要保持完全同步,在這種情況下,如果主虛擬機(jī)故障,備用虛擬機(jī)可以立即接管主虛擬機(jī)的任務(wù),vLockstep技術(shù)確保了主備虛擬機(jī)以相同的順序執(zhí)行相同的命令,主虛擬服務(wù)器的命令使用專用骨干網(wǎng)傳遞到備用虛擬服務(wù)器,此外,骨干網(wǎng)也要傳輸主備虛擬服務(wù)器之間的心跳信息,因此故障可以被快速檢測(cè)到。
關(guān)于vLockstep技術(shù)有趣的是主備虛擬服務(wù)器執(zhí)行是相同的命令,兩個(gè)虛擬服務(wù)器都會(huì)執(zhí)行寫入操作,但兩個(gè)服務(wù)器都連接到相同的存儲(chǔ)池,VMware FT會(huì)阻止備用虛擬服務(wù)器的寫操作,這樣才能確保只有一個(gè)虛擬機(jī)可以修改虛擬硬盤驅(qū)動(dòng)器上的數(shù)據(jù)。
VMware FT可以用于VMware HA集群中,這樣就容許發(fā)生多個(gè)故障,如果主虛擬機(jī)出現(xiàn)故障,備用虛擬機(jī)就接管成為主虛擬機(jī),VMware HA將會(huì)在另一個(gè)集群節(jié)點(diǎn)上自動(dòng)創(chuàng)建一個(gè)新的備用虛擬機(jī),這樣虛擬機(jī)就具有真正的容錯(cuò)功能了,不管故障是否發(fā)生在源宿主服務(wù)器上。
雖然創(chuàng)建一個(gè)彈性虛擬數(shù)據(jù)中心不是必須要?jiǎng)?chuàng)建一個(gè)傳統(tǒng)的服務(wù)器集群,但使用冗余的硬件仍然是必須的,為了使虛擬機(jī)轉(zhuǎn)移和容錯(cuò)成為現(xiàn)實(shí),你的數(shù)據(jù)中心必須提供集中式存儲(chǔ),讓所有的宿主服務(wù)器都可以訪問,但集中存儲(chǔ)也要實(shí)現(xiàn)冗余,否則它也會(huì)存在一個(gè)單點(diǎn)故障。