Win2008高可用性之FailoverCluster

字號:

Windows Server 2008的七個應(yīng)用場景,其中很重要的一個就是高可用性,也許有人會說,在Windows Server 2003中也有關(guān)于高可用的特性,比如群集、網(wǎng)絡(luò)負(fù)載均衡、災(zāi)難恢復(fù)等。既然作為Server 2008一個重要的應(yīng)用場景,高可用性的改進(jìn)和變化自然也是很大的,到底會有怎樣的變化呢?
    首先我們要明確,什么是可用性,可用性包括可靠性、故障和恢復(fù)。一個系統(tǒng)的可靠性,故障發(fā)生時間間隔和故障恢復(fù)速度,共同決定了這個系統(tǒng)的可用性。那么我們通常都如何來衡量一個系統(tǒng)的可用性呢?最常用的方法就是使用數(shù)字“9”,通常我們會以幾個“9”來說明系統(tǒng)的可用性,讓我們看看下面這張表吧:
    通過這張表,我們不難發(fā)現(xiàn),要做到3個“9”級別的系統(tǒng)可用性,每年只允許我們有8.77個小時的停機(jī)時間。當(dāng)然,可用性是只能用“9”,而不可能用“8”或者“7”來衡量的。一個系統(tǒng)的高可用性,需要很多方面共同實(shí)現(xiàn),如硬件、網(wǎng)絡(luò)、操作系統(tǒng)、應(yīng)用層面都需要有相應(yīng)的高可用解決方案,在操作系統(tǒng)層面上,微軟的Windows Server已經(jīng)為我們提供了很好的高可用解決方案:Cluster(群集,一種并行或分布式的系統(tǒng),由全面互連的計(jì)算機(jī)集合組成,可以作為一個統(tǒng)一的計(jì)算機(jī)資源使用)。
    相信很多人都已經(jīng)了解了Windows Server的群集,我就不再詳細(xì)解釋什么是群集,如何實(shí)現(xiàn)群集了,主要想談一談Windows Server 2008中群集的變化。首先,最明顯、最直觀的就是名稱的變化,群集在Windows NT4時代就已經(jīng)有了,那是叫做Microsoft Cluster Services(MSCS),到了Windows 2000時代,改叫做Server Clustering,而在Windows Server 2008中,群集有了個更為形象的名稱,F(xiàn)ailover Clustering(WSFC),我覺得名字起的很形象,F(xiàn)ail-服務(wù)器故障了,Over-轉(zhuǎn)移到其它機(jī)器上,正好叫做Failover。當(dāng)然,名稱的改進(jìn)是不會對企業(yè)用戶有很大實(shí)際意義的,那就讓我來看看它在技術(shù)上的改進(jìn)吧。
    在這里我還是想討論一下高可用性方案對企業(yè)用戶的價值,我們經(jīng)常說,或者經(jīng)常會聽到各個廠商說,高可用方案能夠降低TCO,可很多企業(yè)都對這個有所質(zhì)疑,本來一臺服務(wù)器能完成的工作,現(xiàn)在需要購買額外的服務(wù)器,明明硬件成本、維護(hù)成本甚至人員成本都增加了,怎么還能降低TCO呢?那就讓我們回想去年發(fā)生的一件事情吧,那是2007年的10月底的一天,時值2008年奧運(yùn)會門票第二階段發(fā)售之日,記得當(dāng)時的售票策略是先到先得,于是乎,在發(fā)售門票開始時,便有成千上萬乃至上百萬的用戶蜂擁到奧運(yùn)門票銷售網(wǎng)站,霎時間網(wǎng)站就因?yàn)椴l(fā)連接過大而無法響應(yīng)了。在那之后的一天時間里,服務(wù)器也沒能恢復(fù)正常工作,以至于后來不得不改變了門票的分配方式。我想這件事情大家可能都了解,也許是售票系統(tǒng)的軟件設(shè)計(jì)問題,也許是硬件性能的問題,總之這套售票系統(tǒng)既不可靠,還發(fā)生了故障,而且沒能恢復(fù),可用性的三大方面一項(xiàng)也沒滿足,自然談不上高可用啦。那么我們想一想,沒有高可用帶來的損失吧,要知道奧運(yùn)可是當(dāng)前我們偉大祖國的大事,而且也是全世界矚目的大事,在如此之大的事情上出現(xiàn)了這么重大的失誤,我想這件事造成的損失很難用幾千、幾萬的錢來衡量了,如果當(dāng)初高可用方案做得很好,當(dāng)然也就沒有損失了,甚至可能帶來很高的信譽(yù)。由此可見,高可用性方案決不是只會給企業(yè)增加成本的,而是真正的降低了企業(yè)面臨的風(fēng)險,降低了TCO。
    既然看到了高可用性的價值所在,讓我們來看看Windows Server 2008故障轉(zhuǎn)移群集還帶給了我們哪些驚喜吧。
    我們很多企業(yè)已經(jīng)意識到了實(shí)現(xiàn)高可用性方案的重要性,也有很多企業(yè)希望盡快實(shí)現(xiàn)這樣的高可用方案,但在實(shí)施的時候經(jīng)常會遇到各種各樣的問題,其中很大一部分是因?yàn)橹霸趧?chuàng)建Windows Server Cluster的時候,過程非常復(fù)雜,還受到了很多條件的限制,造成了群集實(shí)施的困難。在Windows Server 2008中,對于群集的創(chuàng)建和管理都有了很多改進(jìn),能夠讓企業(yè)的IT管理員更輕松的實(shí)現(xiàn)高可用的方案。
    群集安裝前的準(zhǔn)備:我們知道群集的安裝不僅需要有軟件的準(zhǔn)備,還需要對硬件做好配置,如配置好共享存儲設(shè)備,配置好群集心跳線等等,由于配置眾多,往往我們無法去判斷當(dāng)前的條件是否能夠滿足群集的安裝要求,即使能夠滿足,在部署了群集之后,又是否能夠安全可靠,實(shí)現(xiàn)自動切換呢。在Windows Server 08的群集創(chuàng)建前,增加了一個“驗(yàn)證”的步驟,這個步驟會對操作系統(tǒng)的一致性(每個節(jié)點(diǎn))、基礎(chǔ)架構(gòu)(如CPU、內(nèi)存)、配置(是否是域成員)、硬件設(shè)備(HBA、NIC)、節(jié)點(diǎn)連通性、兼容性、共享存儲、軟件(如IP地址的配置)做出必要的檢測和驗(yàn)證,并且還會模擬群集創(chuàng)建完成后的故障轉(zhuǎn)移,以確保群集的安裝萬無一失。相信大家對群集的安裝條件都很了解,在這特別提示一點(diǎn),就是群集節(jié)點(diǎn)的內(nèi)、外網(wǎng)卡一定要設(shè)置在不同的網(wǎng)段,否則在群集管理器中只能夠看到節(jié)點(diǎn)的一塊網(wǎng)卡哦。另外還有,就是群集是否可以安裝在DC上的問題,首先說這是可以的,但是我們包括微軟絕對不推薦的,最近就因?yàn)榭蛻魧C作為群集節(jié)點(diǎn)遇到了各種怪異的問題,總之,還是按照微軟推薦的Best Practice進(jìn)行配置。
    企業(yè)在配置群集時,另外一個主要的考慮就是共享存儲,要知道共享存儲設(shè)備是很貴的,不是所有企業(yè)都愿意為了實(shí)現(xiàn)高可用去購買昂貴的存儲設(shè)備的。(當(dāng)然,中石油、中移動一類的企業(yè)刨除在外,記得在給移動做項(xiàng)目的時候,被人家告知,剛剛買了多少多少存儲,才花了600多萬,真便宜。汗!無語了)昂貴的存儲設(shè)備,限制了群集在企業(yè)中的部署,并且還有個致命的問題:單點(diǎn)故障,也就是說,一旦群集的共享存儲有幸休個假的話,整個群集也要跟著去休假了。在Windows Server 2003時代,就通過更新引入了一種新的群集仲裁模式,可以在沒有共享存儲的情況下,使用共享文件夾作為群集的仲裁資源(需要安裝kb921181更新)。在Windows Server 2008中將會包含四種群集仲裁模式,這既可以幫助沒有共享存儲的企業(yè)實(shí)現(xiàn)高可用,也可以消除單點(diǎn)故障的問題。這四種模式分別是:多數(shù)仲裁模式、多數(shù)節(jié)點(diǎn)模式、磁盤仲裁、文件共享仲裁。
    群集中的每個節(jié)點(diǎn)和磁盤存儲均有投票權(quán),當(dāng)有節(jié)點(diǎn)或者存儲發(fā)生故障時,由群集中的所有節(jié)點(diǎn)和存儲進(jìn)行投票,決定群集資源如何進(jìn)行切換,這種模式中,即使共享存儲設(shè)備發(fā)生故障(當(dāng)然需要共享存儲中只有仲裁資源,而沒有其它數(shù)據(jù)資源,如Exchange mailbox store),群集仍然能夠正常運(yùn)行,這就有效避免了群集的單點(diǎn)故障問題。
    與多數(shù)仲裁模式的區(qū)別是群集節(jié)點(diǎn)連接的存儲設(shè)備是沒有投票權(quán)的,這種模式通常采用的存儲設(shè)備是iSCSI的存儲設(shè)備,這樣能夠?qū)崿F(xiàn)異地的高可用解決方案(這在Windows Server 2003中是很難實(shí)現(xiàn)的,不僅因?yàn)槭艿搅酥俨媚J降南拗?,還因?yàn)槿杭奶€之前采用的是廣播的方式,是無法跨越路由的,自然也就無法實(shí)現(xiàn)異地高可用啦)。
    最后提示一點(diǎn),在Windows Server 2003群集的文件共享仲裁模式中,僅能夠支持兩節(jié)點(diǎn)的群集,而在Windows Server 2008中,將可以支持更多的節(jié)點(diǎn)。
    隨著Windows Server 2008的正是發(fā)布,現(xiàn)在大家對它的興趣也越來越濃了,越來越多的企業(yè)希望能夠了解它有哪些新的特性,其實(shí)企業(yè)是否會升級到08,主要考慮的一個方面是它是否具有足夠的吸引力。
    剛剛和同事討論完Windows Server 2008的群集,發(fā)現(xiàn)其中還是有很多有意義的改變。之前我們討論過了08群集的仲裁模式,通過對仲裁模式的改進(jìn),徹底消除了之前群集的一大詬病:單點(diǎn)故障。很多企業(yè)在部署群集的時候,都會考慮到單點(diǎn)故障的問題,如果投入了巨大的成本,實(shí)現(xiàn)了服務(wù)、應(yīng)用的高可用,可卻因?yàn)榇鎯υO(shè)備的單點(diǎn)故障而造成整個系統(tǒng)的崩潰,企業(yè)肯定是不希望看到的。Windows Server 2008故障轉(zhuǎn)移群集徹底解決了這個問題,讓我們可以輕松地面對發(fā)生的各種故障。
    當(dāng)然,在之前做過的很多項(xiàng)目中,客戶都提到過這樣一個問題,能否做異地的高可用。其實(shí)這是很現(xiàn)實(shí)的問題,特別是對于一些大型企業(yè),通常不會在一個地點(diǎn)辦公,可能在全國、全世界都有分支機(jī)構(gòu),那么他們就需要實(shí)現(xiàn)異地的高可用,一旦某一地點(diǎn)發(fā)生了諸如停電、著火、地震、山崩、海嘯、911撞樓(當(dāng)然概率比較小,不過也不是沒可能啦J)這樣的災(zāi)害,可能就會對整個企業(yè)的業(yè)務(wù)和應(yīng)用系統(tǒng)造成破壞,如果這時候企業(yè)無法進(jìn)行系統(tǒng)的異地切換,就可能會長時間停機(jī),從而損失巨大。在之前的Windows群集中,實(shí)現(xiàn)異地的高可用很困難,因?yàn)槿杭墓?jié)點(diǎn)之間是需要進(jìn)行通訊的,而這種通訊采用的是UDP多播方式,是無法跨越路由器進(jìn)行傳輸?shù)模@就限制了企業(yè)實(shí)現(xiàn)異地高可用。在Server 08中,群集的節(jié)點(diǎn)通訊不再采用UDP多播,而是使用了TCP單播的方式,可以跨越路由,并且Server 08群集能夠很好地支持IPv6,這就使實(shí)現(xiàn)異地群集成為可能,并且只要節(jié)點(diǎn)之間可以通訊,就很容易實(shí)現(xiàn)。
    另外在Windows Server 2008群集中的很重要一項(xiàng)功能就是與虛擬化的結(jié)合,虛擬化也是Server 08的一個很重要特性,后面我也會對虛擬化技術(shù)做相應(yīng)的介紹。其實(shí)虛擬化技術(shù)的實(shí)現(xiàn),是無法脫離高可用的,甚至可以這么說,沒有高可用,虛擬化技術(shù)就沒有意義!。通過虛擬化,我們可以將很多服務(wù)和應(yīng)用放置在同一物理服務(wù)器上,但這無疑增加了這些應(yīng)用和服務(wù)所面臨的風(fēng)險,因此企業(yè)必然需要在實(shí)現(xiàn)虛擬化的同時,有很好的高可用方案。我們在一些已經(jīng)實(shí)現(xiàn)了虛擬化的企業(yè)客戶中,也遇到了類似的問題,我想虛擬化可能是未來服務(wù)器發(fā)展的一個趨勢,但高可用永遠(yuǎn)都會是服務(wù)器所必不可少的。