一、多層架構(gòu)下多層次集群系統(tǒng)
集群技術(shù)是一種計(jì)算機(jī)系統(tǒng)之間連接的方式。最早的集群系統(tǒng)出于并行處理的目的,將分散的計(jì)算系統(tǒng)連接起來(lái)完成原來(lái)單獨(dú)節(jié)點(diǎn)的計(jì)算系統(tǒng)無(wú)法完成的任務(wù)。但是隨著計(jì)算機(jī)性能的發(fā)展和網(wǎng)絡(luò)不安全因素的出現(xiàn),集群技術(shù)成為系統(tǒng)高可用性的重要技術(shù)手段之一。
隨著互聯(lián)網(wǎng)的興起,多層架構(gòu)應(yīng)用系統(tǒng)部署越來(lái)越廣泛,并逐步滲入銀行等對(duì)可用性要求非常高的計(jì)算領(lǐng)域。多層架構(gòu)應(yīng)用系統(tǒng)通常包括表示層、應(yīng)用層、數(shù)據(jù)層,并部署在多臺(tái)計(jì)算機(jī)上。圖1是一個(gè)簡(jiǎn)單的多層應(yīng)用架構(gòu)下的多層次集群系統(tǒng)示意圖。圖1中包括Web負(fù)載均衡器集群、應(yīng)用服務(wù)器集群、表示層服務(wù)器集群、數(shù)據(jù)庫(kù)服務(wù)器集群。
二、可用性計(jì)算公式
可用性是系統(tǒng)在規(guī)定的條件下執(zhí)行規(guī)定功能的概率,也可以理解為一個(gè)系統(tǒng)可以為用戶所使用時(shí)間的百分比。
可用性是可靠性和可維護(hù)性的函數(shù)。所謂可靠性是指測(cè)量在沒(méi)有故障的情況一個(gè)系統(tǒng)能工作多長(zhǎng)時(shí)間,通常表示為發(fā)生故障的平均時(shí)間MTTF(Mean Time to Failure),即在系統(tǒng)(或系統(tǒng)的一個(gè)部件)發(fā)生故障前正常運(yùn)行的平均時(shí)間。所謂可維護(hù)性是指系統(tǒng)是否易于維護(hù),包括硬件和軟件維護(hù)、維修和升級(jí)等,通常表示為系統(tǒng)從故障狀態(tài)到修復(fù)的平均時(shí)間MTTR(Mean Time to Repair),即用于修復(fù)系統(tǒng)和在修復(fù)后將它恢復(fù)到工作狀態(tài)所用的平均時(shí)間。對(duì)單個(gè)系統(tǒng)/部件/元件可用性(用A表示)的計(jì)算公式如下:
串聯(lián)系統(tǒng)是指系統(tǒng)中當(dāng)任何一個(gè)元件失效時(shí),均會(huì)構(gòu)成系統(tǒng)失效的一種系統(tǒng)。也就是說(shuō),必須組成系統(tǒng)的全部元件/部件/設(shè)備正常工作時(shí),整個(gè)系統(tǒng)才算正常工作。串聯(lián)系統(tǒng)的可用性為:
其中n為串聯(lián)系統(tǒng)所有元件/部件/設(shè)備的數(shù)量。
并聯(lián)系統(tǒng)中只有當(dāng)所有元件失效時(shí)系統(tǒng)才會(huì)失效。只要系統(tǒng)中有1個(gè)元件/部件/設(shè)備正常工作,就認(rèn)為系統(tǒng)是正常工作。根據(jù)概率論理論,并聯(lián)系統(tǒng)的可用性為:
其中n為并聯(lián)系統(tǒng)中并聯(lián)的元件/部件/設(shè)備的數(shù)量。
三、多層架構(gòu)下多層次集群系統(tǒng)可用性計(jì)算
多層架構(gòu)下多層次集群系統(tǒng)可用性計(jì)算首先需要對(duì)多層架構(gòu)下多層次集群系統(tǒng)進(jìn)行抽象,形成可用性指標(biāo)計(jì)算模型。通常按照如下原則對(duì)多層次集群系統(tǒng)進(jìn)行抽象:
l同一個(gè)集群內(nèi)具有相同功能的計(jì)算機(jī)設(shè)備或者網(wǎng)絡(luò)設(shè)備抽象為并聯(lián)系統(tǒng)
按照功能,將連接集群的設(shè)備及集群之間抽象為串聯(lián)系統(tǒng)
圖2是將圖1按照抽象原則抽象后的結(jié)果。其中表示層服務(wù)器集群、應(yīng)用服務(wù)器及數(shù)據(jù)塊服務(wù)器抽象成為并聯(lián)系統(tǒng)。
根據(jù)公式(2)和公式(3),圖2的可用性計(jì)算公式如下:
從公式(4)可以看出,集群有利于提高多層級(jí)架構(gòu)系統(tǒng)的可用性。但由于用于連接集群的網(wǎng)絡(luò)設(shè)備、存儲(chǔ)設(shè)備較多,因此提高集群中設(shè)備的數(shù)量對(duì)提高系統(tǒng)整體的可用性有限,增加網(wǎng)絡(luò)設(shè)備、存儲(chǔ)設(shè)備的可用性對(duì)系統(tǒng)整體可用性的提高幫助更大。
四、小結(jié)
本文可用性計(jì)算前提是“只要集群中有1個(gè)設(shè)備正常工作,就認(rèn)為集群系統(tǒng)是正常工作”。如果考慮集群的負(fù)載,這個(gè)前提并不成立,那么系統(tǒng)可用性需要更加復(fù)雜的計(jì)算。工程實(shí)踐中,由于在負(fù)載規(guī)劃中,不會(huì)讓集群中每臺(tái)設(shè)備都滿負(fù)荷工作,通常當(dāng)集群中的設(shè)備不超過(guò)3個(gè)時(shí),即可以利用本文的計(jì)算方法對(duì)系統(tǒng)的可用性進(jìn)行估算。