姓名:朱碩雅
學(xué)號:14020120008
轉(zhuǎn)載自http://mp.weixin.qq.com/s?__biz=MzAxNDAyMzc0Mg==&mid=2683460174&idx=3&sn=ce8282c28192eac14455dd200e19e7cf&scene=21#wechat_redirect
【嵌牛導(dǎo)讀】:公司里做項目口芍,需要提高產(chǎn)品可靠性,而其中最有效的方法就是冗余設(shè)計雇卷。
【嵌牛鼻子】:可靠性鬓椭,冗余設(shè)計
【嵌牛提問】:(1)什么是冗余設(shè)計?
(2)冗余設(shè)計的分類是什么关划?
【嵌牛正文】:
一小染、什么是冗余設(shè)計
又稱余度設(shè)計技術(shù),是在系統(tǒng)或設(shè)備完成任務(wù)起關(guān)鍵作用的地方贮折,增加一套以上完成相同功能的功能通道裤翩、工作元件或部件,以保證當(dāng)該部分出現(xiàn)故障時调榄,系統(tǒng)或設(shè)備仍能正常工作岛都,以減少系統(tǒng)或者設(shè)備的故障概率律姨,提高系統(tǒng)可靠性。
航空領(lǐng)域的飛機臼疫,因為單次飛機事故造成的死亡率高择份,死亡人數(shù)多,所以冗余系統(tǒng)在飛機上也有很好的應(yīng)用烫堤,如果一個飛機需要兩個發(fā)動機可以正常啟用的話荣赶,那這個飛機可能需要至少四個發(fā)動機,除去安全系數(shù)的考慮外鸽斟,這里面就有冗余系統(tǒng)的理念拔创,以保證一兩個發(fā)動機的故障,不會引起飛機失事富蓄,而造成重大的事故剩燥。這里可以看出冗余系統(tǒng)的一個很重要的缺點:就是發(fā)動機的故障并不是獨立的,可能其中一個發(fā)動機著火的話立倍,會引起其他發(fā)動機的故障灭红,所以這個可靠性會比理論計算的少很多。
生活中口注,也有比較常見的冗余系統(tǒng)变擒,如運貨的重卡,在卡車載重的后輪胎上寝志,任意一個軸承上的一邊至少有兩個輪胎娇斑,其實僅需要一個輪胎,重卡就可以正常運行材部,另外一個輪胎就是冗余系統(tǒng)了毫缆。
冗余系統(tǒng)不一定非要是軟件類的系統(tǒng)或機械類的設(shè)備,也可以是人(廣義上來說人也是系統(tǒng)的一部分)乐导,但用人來當(dāng)冗余系統(tǒng)的話悔醋,可靠性會更低,因為人的判斷更易受外界因素的干擾兽叮。
一般來說冗余系統(tǒng)目的在于:為了保險起見,采取兩套同樣獨立配置的硬件猾愿、軟件或設(shè)計等鹦聪,防止在其中一套系統(tǒng)出現(xiàn)故障時,另一套系統(tǒng)能立即啟動蒂秘,代替工作泽本,這就好比演員的替身。一套單獨的系統(tǒng)也許運行的故障率很高姻僧,但采取冗余措施后规丽,在不改變內(nèi)部設(shè)計的情況下蒲牧,這套系統(tǒng)的可靠性立即可以大幅度提高。假如單獨系統(tǒng)的故障率為50%赌莺,而采取冗余系統(tǒng)后馬上可以將故障率降低到25%冰抢。
冗余系統(tǒng)的優(yōu)點在于:
一、以現(xiàn)有的系統(tǒng)為依托艘狭,不需要任何時間或科研投入挎扰,可以立即實現(xiàn);
二巢音、配置遵倦、安裝、使用簡單官撼,無需額外的培訓(xùn)梧躺、設(shè)計等;
三傲绣、使用冗余系統(tǒng)掠哥,理論上來講,系統(tǒng)的故障率可以接近為零斜筐。
冗余系統(tǒng)的缺點在于:
一龙致、使用冗余系統(tǒng)就代表該系統(tǒng)臃腫,不簡潔顷链;
二:投入成本巨大目代,需要購買額外的系統(tǒng),以及增加該系統(tǒng)后的后期維護成本等嗤练;
三:完全獨立的系統(tǒng)并不存在榛了,所以冗余系統(tǒng)最大的缺點在于,相互獨立的配置之間會互相影響(尤其是依靠人的冗余系統(tǒng))煞抬,可靠性相對理論計算會大幅度下降霜大。
冗余系統(tǒng)因為前期投入巨大,后期的維護成本高革答,所以只有在高風(fēng)險(包括金融風(fēng)險战坤、行政風(fēng)險、管理風(fēng)險以及危及生命安全的風(fēng)險)行業(yè)應(yīng)用比較廣泛残拐,如:金融領(lǐng)域途茫、核安全領(lǐng)域、航空領(lǐng)域溪食、煤礦等領(lǐng)域囊卜。
銀行中的數(shù)據(jù)非常重要,即使服務(wù)器小概率的故障,也會有很大影響栅组,甚至?xí)绊懸粋€國家的金融體系的穩(wěn)定雀瓢。所以,每一個銀行的數(shù)據(jù)至少同時存在兩個以上的不同地點的服務(wù)器中(這就是一個簡單的冗余系統(tǒng))玉掸,需要明白的是這個跟備份不一樣刃麸,備份可以是先存儲,再備份排截,而銀行系統(tǒng)的冗余系統(tǒng)是同時更改嫌蚤,以保證在任意時間,任意一個服務(wù)器的故障断傲,都不會引起數(shù)據(jù)失真脱吱。
二、冗余設(shè)計的分類
1认罩、異地容災(zāi):
異地容災(zāi)箱蝠,顧名思義就是在不同的地域,構(gòu)建一套或者多套相同的應(yīng)用或者數(shù)據(jù)庫垦垂,起到災(zāi)難后立刻接管的作用宦搬。
現(xiàn)代的企業(yè)已經(jīng)變得越來越依賴數(shù)據(jù)處理中心進行業(yè)務(wù)處理,對于這些數(shù)據(jù)中心來說劫拗,業(yè)務(wù)完全依靠信息技術(shù)進行處理间校。對于信息處理中心來說,對數(shù)據(jù)的完整性和可用性提出了極高的要求页慷。特別是大型金融憔足、電信等企業(yè),對業(yè)務(wù)系統(tǒng)的連續(xù)性提出了更高的要求,對于這些企事業(yè)單位來說,遇到突發(fā)的故障事件,沒有完備的災(zāi)備系統(tǒng),對于業(yè)務(wù)系統(tǒng)都是致命的酒繁。同樣滓彰,對許多中小企業(yè)來說,必要的災(zāi)備系統(tǒng)也是必要的州袒。
由于異地容災(zāi)的解決方案揭绑,是兩套或者多套數(shù)據(jù)及設(shè)備部署在不同的地域,所以當(dāng)一個地點發(fā)生火災(zāi)郎哭、地震的情況的時候他匪,在異地的備份可以接管業(yè)務(wù)。由于平時兩地的數(shù)據(jù)同步夸研,也不會造成用戶數(shù)據(jù)丟失邦蜜。
2、雙機備份
雙機熱備特指基于高可用系統(tǒng)中的兩臺服務(wù)器的熱備(或高可用)陈惰,因兩機高可用在國內(nèi)使用較多,故得名雙機熱備,雙機高可用按工作中的切換方式分為:主-備方式(Active-Standby方式)和雙主機方式(Active-Active方式)抬闯,主-備方式即指的是一臺服務(wù)器處于某種業(yè)務(wù)的激活狀態(tài)(即Active狀態(tài))井辆,另一臺服務(wù)器處于該業(yè)務(wù)的備用狀態(tài)(即Standby狀態(tài))。而雙主機方式即指兩種不同業(yè)務(wù)分別在兩臺服務(wù)器上互為主備狀態(tài)(即Active-Standby和Standby-Active狀態(tài))溶握。
在企業(yè)的發(fā)展情況與不同環(huán)境因素下杯缺,用戶對系統(tǒng)的連續(xù)工作性和實時性也有著更高的要求,從實際操作面來看睡榆,企業(yè)用戶在工作環(huán)節(jié)中萍肆,要把采集到的實時數(shù)據(jù)存儲在兩臺計算機上,其中一臺采集機故障時胀屿,另一臺備用的立刻可以接替塘揣,并給出警告信號,當(dāng)采集機恢復(fù)后宿崭,可自動接替?zhèn)溆脵C亲铡。因此既達到能保存重要數(shù)據(jù),又能節(jié)省成本葡兑,那么雙機備份軟件就是企業(yè)用戶的更好選擇奖蔓。
基于共享存儲(磁盤陣列)的方式
共享存儲方式主要通過磁盤陣列提供切換后,對數(shù)據(jù)完整性和連續(xù)性的保障讹堤。用戶數(shù)據(jù)一般會放在磁盤陣列上吆鹤,當(dāng)主機宕機后,備機繼續(xù)從磁盤陣列上取得原有數(shù)據(jù)洲守。如下圖所示
傳統(tǒng)的單存儲方式
這種方式因為使用一臺存儲設(shè)備疑务,往往被業(yè)內(nèi)人士稱為磁盤單點故障。但一般來講存儲的安全性較高岖沛。所以如果忽略存儲設(shè)備故障的情況下暑始,這種方式也是業(yè)內(nèi)采用最多的熱備方式。
全冗余方式
全冗余方式就是雙機雙存儲婴削,基于單臺存儲的傳統(tǒng)雙機熱備方式廊镜,確實存在存儲單點故障的情況,為實現(xiàn)存儲冗余唉俗,存儲高可用也已經(jīng)越來越多的被用戶接受嗤朴。我們從理解上可以看出,雙機熱備最早是為解決服務(wù)器的計劃性停機與非計劃性宕機的解決方案虫溜,但是我們無法實現(xiàn)存儲的計劃性停機與非計劃性宕機帶來的服務(wù)器停機雹姊,而存儲作為雙機熱備中唯一存儲數(shù)據(jù)的設(shè)備,它一旦發(fā)生故障往往會造成雙機熱備系統(tǒng)全面崩潰衡楞。
3吱雏、單板級主備倒換
高端設(shè)備由于所處網(wǎng)絡(luò)位置非常重要,不允許出現(xiàn)單點故障,設(shè)備一般都配備兩塊主控板歧杏,分別稱為主用主控板(Master)和備用主控板(Slave)镰惦。其中,主用主控板作為控制平面的核心犬绒,與外部和業(yè)務(wù)板進行業(yè)務(wù)通信旺入,完成系統(tǒng)內(nèi)各模塊的正常功能;而備用主控板則只作為主用主控板的備份凯力,與外部和業(yè)務(wù)板沒有通信茵瘾。當(dāng)主用主控板發(fā)生故障時,系統(tǒng)自動進行主備切換咐鹤,由備用主控板接替主用主控板的工作拗秘,保證業(yè)務(wù)的正常運行
主備主控板的熱備份過程主要分為批量備份、實時備份和數(shù)據(jù)平滑三個階段慷暂。
備用主控板啟動后聘殖,由于此時主用主控板和備用主控板的差異比較大,主用主控板會將當(dāng)前需要備份的數(shù)據(jù)批量同步到備用主控板行瑞,這個過程稱之為批量備份奸腺,批量備份時間的長短取決于需要備份數(shù)據(jù)量的大小。
批量備份過程結(jié)束后血久,系統(tǒng)進入實時備份過程突照,在此過程中,當(dāng)主用主控板備份數(shù)據(jù)發(fā)生變化時氧吐,備份數(shù)據(jù)將實時同步到備用板讹蘑,這個過程通常很快。
主備倒換后筑舅,備用板升為新的主用板座慰,會通知各個模塊向業(yè)務(wù)板進行數(shù)據(jù)收集和同步,這個過程稱之為數(shù)據(jù)平滑翠拣。平滑過程中版仔,各模塊主動與業(yè)務(wù)板進行通信,在硬件狀態(tài)误墓、鏈路層狀態(tài)蛮粮、配置數(shù)據(jù)三個方面進行確認和同步,以保證整個系統(tǒng)維護的數(shù)據(jù)和狀態(tài)是一致的谜慌,從而確保主備切換之后然想,系統(tǒng)能夠正常運行。平滑階段結(jié)束欣范,新的主用板才稱之為完全意義上的主用主控板变泄。
上面的機框令哟,可以看出,電源板妨蛹、主控板都做了備份兩份的配置励饵。
4、單板資源池
再如上圖中滑燃,下面這些電路板一般都是業(yè)務(wù)或者是接口板,為了防止有單板損壞颓鲜,按照業(yè)務(wù)性能滿足之外表窘,一般會多備份一塊備用電路,如果有正在工作的某一塊電路損壞甜滨,都可以切換到備用電路板乐严,進行繼續(xù)工作。
5衣摩、磁盤陣列
即然提到了RAID磁盤陣列昂验,那么我們就先來了解一下什么是RAID?所謂的RAID艾扮,是Redundant Arrays of Independent Disks的簡稱既琴,中文為廉價冗余磁盤陣列。由1987年由加州大學(xué)伯克利分校提出的泡嘴,初衷是為了將較廉價的多個小磁盤進行組合來替代價格昂貴的大容量磁盤甫恩,希望單個磁盤損壞后不會影響到其它磁盤的繼續(xù)使用,使數(shù)據(jù)更加的安全酌予。RAID作為一種廉價的磁盤冗余陣列磺箕,能夠提供一個獨立的大型存儲設(shè)備解決方案。在提高硬盤容量的同時抛虫,還能夠充分提高硬盤的速度松靡,使數(shù)據(jù)更加安全,更加易于磁盤的管理建椰。
RAID的幾種常見工作模式
1雕欺、RAID 0
RAID 0是最早出現(xiàn)的RAID模式,即Data Stripping數(shù)據(jù)分條技術(shù)广凸。RAID 0是組建磁盤陣列中最簡單的一種形式阅茶,只需要2塊以上的硬盤即可,成本低谅海,可以提高整個磁盤的性能和吞吐量脸哀。RAID 0沒有提供冗余或錯誤修復(fù)能力,是實現(xiàn)成本是最低的扭吁。
RAID 0最簡單的實現(xiàn)方式就是把N塊同樣的硬盤用硬件的形式通過智能磁盤控制器或用操作系統(tǒng)中的磁盤驅(qū)動程序以軟件的方式串聯(lián)在一起創(chuàng)建一個大的卷集撞蜂。在使用中電腦數(shù)據(jù)依次寫入到各塊硬盤中盲镶,它的最大優(yōu)點就是可以整倍的提高硬盤的容量。如使用了三塊80GB的硬盤組建成RAID 0模式蝌诡,那么磁盤容量就會是240GB溉贿。其速度方面,各單獨一塊硬盤的速度完全相同浦旱。最大的缺點在于任何一塊硬盤出現(xiàn)故障宇色,整個系統(tǒng)將會受到破壞,可靠性僅為單獨一塊硬盤的1/N颁湖。
為了解決這一問題宣蠕,便出一了RAID 0的另一種模式。即在N塊硬盤上選擇合理的帶區(qū)來創(chuàng)建帶區(qū)集甥捺。其原理就是將原先順序?qū)懭氲臄?shù)據(jù)被分散到所有的四塊硬盤中同時進行讀寫抢蚀。四塊硬盤的并行操作使同一時間內(nèi)磁盤讀寫的速度提升了4倍。
在創(chuàng)建帶區(qū)集時镰禾,合理的選擇帶區(qū)的大小非常重要皿曲。如果帶區(qū)過大,可能一塊磁盤上的帶區(qū)空間就可以滿足大部分的I/O操作吴侦,使數(shù)據(jù)的讀寫仍然只局限在少數(shù)的一屋休、兩塊硬盤上,不能充分的發(fā)揮出并行操作的優(yōu)勢备韧。另一方面博投,如果帶區(qū)過小,任何I/O指令都可能引發(fā)大量的讀寫操作盯蝴,占用過多的控制器總線帶寬毅哗。因此,在創(chuàng)建帶區(qū)集時捧挺,我們應(yīng)當(dāng)根據(jù)實際應(yīng)用的需要虑绵,慎重的選擇帶區(qū)的大小。
帶區(qū)集雖然可以把數(shù)據(jù)均勻的分配到所有的磁盤上進行讀寫闽烙。但如果我們把所有的硬盤都連接到一個控制器上的話翅睛,可能會帶來潛在的危害。這是因為當(dāng)我們頻繁進行讀寫操作時黑竞,很容易使控制器或總線的負荷 超載捕发。為了避免出現(xiàn)上述問題,建議用戶可以使用多個磁盤控制器很魂。最好解決方法還是為每一塊硬盤都配備一個專門的磁盤控制器扎酷。
雖然RAID 0可以提供更多的空間和更好的性能蔬充,但是整個系統(tǒng)是非常不可靠的喧伞,如果出現(xiàn)故障尸红,無法進行任何補救兄旬。所以,RAID 0一般只是在那些對數(shù)據(jù)安全性要求不高的情況下才被人們使用凡纳。
2 ??RAID 1
RAID 1稱為磁盤鏡像窃植,原理是把一個磁盤的數(shù)據(jù)鏡像到另一個磁盤上,也就是說數(shù)據(jù)在寫入一塊磁盤的同時荐糜,會在另一塊閑置的磁盤上生成鏡像文件巷怜,在不影響性能情況下最大限度的保證系統(tǒng)的可靠性和可修復(fù)性上,只要系統(tǒng)中任何一對鏡像盤中至少有一塊磁盤可以使用暴氏,甚至可以在一半數(shù)量的硬盤出現(xiàn)問題時系統(tǒng)都可以正常運行,當(dāng)一塊硬盤失效時丛版,系統(tǒng)會忽略該硬盤,轉(zhuǎn)而使用剩余的鏡像盤讀寫數(shù)據(jù)偏序,具備很好的磁盤冗余能力。雖然這樣對數(shù)據(jù)來講絕對安全胖替,但是成本也會明顯增加研儒,磁盤利用率為50%,以四塊80GB容量的硬盤來講独令,可利用的磁盤空間僅為160GB端朵。另外,出現(xiàn)硬盤故障的RAID系統(tǒng)不再可靠燃箭,應(yīng)當(dāng)及時的更換損壞的硬盤冲呢,否則剩余的鏡像盤也出現(xiàn)問題,那么整個系統(tǒng)就會崩潰招狸。更換新盤后原有數(shù)據(jù)會需要很長時間同步鏡像敬拓,外界對數(shù)據(jù)的訪問不會受到影響,只是這時整個系統(tǒng)的性能有所下降裙戏。因此乘凸,RAID 1多用在保存關(guān)鍵性的重要數(shù)據(jù)的場合。
RAID 1主要是通過二次讀寫實現(xiàn)磁盤鏡像累榜,所以磁盤控制器的負載也相當(dāng)大营勤,尤其是在需要頻繁寫入數(shù)據(jù)的環(huán)境中。為了避免出現(xiàn)性能瓶頸壹罚,使用多個磁盤控制器就顯得很有必要葛作。
3RAID0+1
從RAID 0+1名稱上我們便可以看出是RAID0與RAID1的結(jié)合體。在我們單獨使用RAID 1也會出現(xiàn)類似單獨使用RAID 0那樣的問題猖凛,即在同一時間內(nèi)只能向一塊磁盤寫入數(shù)據(jù)赂蠢,不能充分利用所有的資源。為了解決這一問題辨泳,我們可以在磁盤鏡像中建立帶區(qū)集客年。因為這種配置方式綜合了帶區(qū)集和鏡像的優(yōu)勢霞幅,所以被稱為RAID 0+1。把RAID0和RAID1技術(shù)結(jié)合起來量瓜,數(shù)據(jù)除分布在多個盤上外司恳,每個盤都有其物理鏡像盤,提供全冗余能力绍傲,允許一個以下磁盤故障扔傅,而不影響數(shù)據(jù)可用性,并具有快速讀/寫能力烫饼。RAID0+1要在磁盤鏡像中建立帶區(qū)集至少4個硬盤猎塞。
由于我們此次只是介紹家用臺式機如何組建RAID磁盤陣列功能,目前主流的主板也只是提供這三種組建模式杠纵,因此其它諸如服務(wù)等的高級RAID模式荠耽,這里我們將不再過多的介紹。
4比藻、RAID 5
RAID 5控制還是比較常用的铝量。RAID 5和RAID4 相似但避免了RAID4 的瓶頸,方法是不用校驗磁盤而將校驗數(shù)據(jù)以循環(huán)的方式放在每一個磁盤中银亲,RAID 5控制比較復(fù)雜慢叨,尤其是利用硬件對磁盤陣列的控制,因為這種方式的應(yīng)用比其他的RAID level 要掌握更多的事情务蝠,有更多的輸出/入需求拍谐,既要速度快,又要處理數(shù)據(jù)馏段,計算校驗值轩拨,做錯誤校正等,所以價格較高院喜。
RAID 5在不停機及容錯的表現(xiàn)都很好气嫁,但如有磁盤故障,對性能的影響較大,大容量的快取內(nèi)存有助于維持性能够坐,但在OLTP 的應(yīng)用上寸宵,因為每一筆數(shù)據(jù)或記錄(record)都很小,對磁盤的存取頻繁元咙,故有一定程度的影響梯影。
某一磁盤故障時,讀取該磁盤的數(shù)據(jù)需把共用同一校驗值分段的所有數(shù)據(jù)及校驗值讀出來庶香,再把故障磁盤的數(shù)據(jù)計算出來甲棍;寫入時,除了要重覆讀取的程序外赶掖,還要再做校驗值的計算感猛,然后寫入更新的數(shù)據(jù)及校驗值七扰;等換上新的磁盤,系統(tǒng)要計算整個磁盤陣列的數(shù)據(jù)以回復(fù)故障磁盤的數(shù)據(jù)陪白,時間要很長颈走,如系統(tǒng)的工作負載很重的話,有很多輸出/入的需求在排隊等候時,會把系統(tǒng)的性能拉下來咱士。
但如使用硬件磁盤陣列的話立由,其性能就可以得到大幅度的改進,因為硬件磁盤陣列如Arena 系列本身有內(nèi)置的CPU 與主機系統(tǒng)并行運作序厉,所有存取磁盤的輸出入工作都在磁盤陣列本身完成锐膜,不花費主機的時間,配合磁盤陣列的快取內(nèi)存的使用弛房,可以提高系統(tǒng)的整體性能道盏,而優(yōu)越的SCSI 控制更能增加數(shù)據(jù)的傳輸速率,即使在磁盤故障的情況下文捶,主機系統(tǒng)的性能也不會有明顯的降低荷逞。RAID 5要做的事情太多,所以價格較貴拄轻,不適于小系統(tǒng),但如果是大系統(tǒng)使用大的磁盤陣列的話伟葫,RAID 5卻是最便宜的方案恨搓。以上介紹RAID 5控制。
三筏养、冗余設(shè)計應(yīng)用舉例
上圖斧抱,這是一個典型的通信設(shè)備的冗余備份設(shè)計。
主控板渐溶、交換板辉浦、時鐘板:? 1+1熱備或溫備
一次電源模塊:? 1:1并聯(lián)雙工
風(fēng)扇單元:負荷分擔(dān)
功能板、接口板:N+1備份
我們都知道:一個和尚挑水喝茎辐、兩個和尚抬水喝宪郊,三個和尚沒水喝。如果資源多了拖陆,做不好協(xié)調(diào)和管理弛槐,會適得其反。
我們做了冗余設(shè)計依啰,如果以下幾點沒有做好乎串,不但不能提高系統(tǒng)的可靠性,還可能弄巧成拙速警。
影響1+1冗余系統(tǒng)可靠性的關(guān)鍵因素:
1叹誉、主鸯两、備用單元故障檢測率
2、切換成功率(與倒換電路长豁、邏輯等相關(guān))
3钧唐、主、備用單元的失效率
4蕉斜、故障修復(fù)率
5逾柿、數(shù)據(jù)備份模塊負責(zé)通過一定的形式組織和管理需要備份的數(shù)據(jù),在主備板之間建立備份通道宅此,接收用戶的備份通知机错,發(fā)送和接收備份數(shù)據(jù),將主板中的數(shù)據(jù)備份到備板上父腕。
6弱匪、倒換模塊負責(zé)單板狀態(tài)監(jiān)控和主備單板倒換的觸發(fā)。執(zhí)行相應(yīng)的操作:主板降為備板復(fù)位璧亮、備板升為主板萧诫,并且觸發(fā)平滑過程。倒換模塊同時對數(shù)據(jù)備份模塊進行控制枝嘶,并在倒換后啟動原備板的平滑過程帘饶。
7、數(shù)據(jù)平滑模塊負責(zé)倒換后備板對備份數(shù)據(jù)進行一致性檢查以及數(shù)據(jù)重建的工作群扶。
1及刻、主備倒換
高端交換機由于所處網(wǎng)絡(luò)位置非常重要,不允許出現(xiàn)單點故障竞阐,設(shè)備一般都配備兩塊主控板缴饭,分別稱為主用主控板(Master)和備用主控板(Slave)。
其中骆莹,主用主控板作為控制平面的核心颗搂,與外部和業(yè)務(wù)板進行業(yè)務(wù)通信,完成系統(tǒng)內(nèi)各模塊的正常功能幕垦;而備用主控板則只作為主用主控板的備份丢氢,與外部和業(yè)務(wù)板沒有通信。當(dāng)主用主控板發(fā)生故障時先改,系統(tǒng)自動進行主備切換卖丸,由備用主控板接替主用主控板的工作,保證業(yè)務(wù)的正常運行
2盏道、數(shù)據(jù)備份
主備主控板的熱備份過程主要分為批量備份稍浆、實時備份和數(shù)據(jù)平滑三個階段。
備用主控板啟動后,由于此時主用主控板和備用主控板的差異比較大衅枫,主用主控板會將當(dāng)前需要備份的數(shù)據(jù)批量同步到備用主控板嫁艇,這個過程稱之為批量備份,批量備份時間的長短取決于需要備份數(shù)據(jù)量的大小弦撩。
批量備份過程結(jié)束后步咪,系統(tǒng)進入實時備份過程,在此過程中益楼,當(dāng)主用主控板備份數(shù)據(jù)發(fā)生變化時猾漫,備份數(shù)據(jù)將實時同步到備用板,這個過程通常很快感凤。
主備倒換后悯周,備用板升為新的主用板,會通知各個模塊向業(yè)務(wù)板進行數(shù)據(jù)收集和同步陪竿,這個過程稱之為數(shù)據(jù)平滑禽翼。平滑過程中,各模塊主動與業(yè)務(wù)板進行通信族跛,在硬件狀態(tài)闰挡、鏈路層狀態(tài)、配置數(shù)據(jù)三個方面進行確認和同步礁哄,以保證整個系統(tǒng)維護的數(shù)據(jù)和狀態(tài)是一致的长酗,從而確保主備切換之后,系統(tǒng)能夠正常運行桐绒。平滑階段結(jié)束夺脾,新的主用板才稱之為完全意義上的主用主控板。
3掏膏、主備工作狀態(tài)機
主用主控板狀態(tài)機在如下五個狀態(tài)順序遷移劳翰,分別為:等待備用板插入狀態(tài)敦锌、等待批量備份請求狀態(tài)馒疹、批量備份狀態(tài)、實時備份狀態(tài)以及數(shù)據(jù)平滑狀態(tài)乙墙。
備用主控板狀態(tài)則在就緒狀態(tài)颖变、批量接收數(shù)據(jù)狀態(tài)、實時接收數(shù)據(jù)狀態(tài)三個狀態(tài)順序遷移听想。
主用板啟動正常工作后就進入等待備用板插入狀態(tài)腥刹;主用主控板檢測到備用板插入槽位上電啟動后進入到等待批量備份數(shù)據(jù)狀態(tài),等待備用板的批量備份數(shù)據(jù)請求汉买;當(dāng)備用板上電啟動完畢后衔峰,首先會向主控板發(fā)送數(shù)據(jù)批量備份請求,主控板就把需要備份的數(shù)據(jù)打包批量發(fā)送給備用板,包括配置信息和一些狀態(tài)信息等垫卤;批量備份完成后威彰,進入實時備份狀態(tài),當(dāng)主控板需要備份的數(shù)據(jù)發(fā)生變化時穴肘,會通過消息發(fā)送給備用板歇盼,備用板完成相關(guān)同步工作;平滑過程只有在備用板變?yōu)橹骺匕宓碾A段才會出現(xiàn)评抚,是主控板的控制平面數(shù)據(jù)和業(yè)務(wù)板進行狀態(tài)確認和同步的過程豹缀;平滑過程完成后備用板才真正成為主控板。
備用板上電啟動完成后即進入就緒狀態(tài)慨代,即隨時可以接替主控板工作的狀態(tài)邢笙;然后向主控板發(fā)送批量數(shù)據(jù)備份請求,進行批量數(shù)據(jù)同步鱼响,此時不與業(yè)務(wù)板進行通信鸣剪;批量同步完成后,進入實時備份狀態(tài)丈积,實時備份的發(fā)起者是主控板筐骇,備用板只有在接收到備份數(shù)據(jù)消息時才進行實時備份。
4江滨、主備狀態(tài)確定及倒換
4.1 主備狀態(tài)確定
雙主控環(huán)境下铛纬,主控板的狀態(tài)是主用還是備用,是在啟動過程中由硬件決定的唬滑。一般情況告唆,設(shè)備會首先選擇小槽位號的主控板作為主用主控板(雙主控啟動環(huán)境下,硬件會在大槽位號主控板設(shè)置一個延時晶密,使它稍后啟動)擒悬。
初始啟動時,兩塊主控板都處于備用狀態(tài)稻艰,各自進行軟件的啟動懂牧。小槽位號主控板在啟動到一定階段時將自己的單板狀態(tài)位置為正常,并且同時檢測另一塊主控板的狀態(tài)是否正常尊勿;而大槽位號的主控此時會有一個延時僧凤,再檢查另一塊主控板是否正常,并且將自己的單板狀態(tài)位置為正常元扔。這樣躯保,在小槽位號主控板的狀態(tài)變?yōu)檎r,大槽位號主控板的狀態(tài)還未正常澎语,因此小槽位號主控板的狀態(tài)為主用途事;大槽位號主控板在延時過后檢查验懊,發(fā)現(xiàn)另一塊主控板的狀態(tài)為正常,便將自己設(shè)置為備用狀態(tài)尸变。所以鲁森,在雙主控環(huán)境下,即使在系統(tǒng)重啟之前振惰,是大槽位號主控板的狀態(tài)為主用歌溉,重啟后,仍然會是小槽位號主控板的狀態(tài)為主用骑晶。
4.2 主備倒換觸發(fā)
備用主控板到達實時接收數(shù)據(jù)狀態(tài)后痛垛,如果檢測到倒換通知,則切換為主用主控板桶蛔。檢測通知是中斷觸發(fā)的匙头,主備倒換的硬件切換時間在毫秒級。硬件切換后仔雷,新主控板的主備狀態(tài)機進入平滑狀態(tài)蹂析,開始平滑過程處理。
主備切換的觸發(fā)因素主要有以下幾類:
命令行執(zhí)行主備倒換命令碟婆,強行切換电抚。
主用主控板硬復(fù)位或者被手工拔出,引起主備倒換竖共。
主用主控板上發(fā)生軟件異常重啟蝙叛,從而觸發(fā)倒換。如:模塊異常占用CPU時間過長公给,引發(fā)硬件看門狗重啟系統(tǒng)借帘;數(shù)據(jù)訪問異常、指令訪問異常等系統(tǒng)異常等引發(fā)重啟淌铐。
對于以上不同的觸發(fā)因素肺然,備用主控板感應(yīng)的時間都是一樣的:都是在硬件中斷觸發(fā)的,狀態(tài)切換時間在毫秒級腿准。
主控板和備用板都會周期發(fā)送握手報文际起,主控板或備用板在設(shè)定的周期內(nèi)沒有收到對方的握手報文,就會認為主備通信異常释涛,重新復(fù)位備用板加叁。