高可用性網絡

高可用性網絡算法

前言 api

隨着網絡的快速普及和應用的日益深刻,各類增值業務在網絡上獲得了普遍部署,網絡帶寬也以指數級增加,網絡短期的中斷就可能影響大量業務,形成重大損失。做爲業務承載主體的基礎網絡,其高可用性(High AvailablityHA)也所以日益成爲關注的焦點。瀏覽器

 

高可用性網絡如何定義?安全

那麼,如何衡量一個網絡的可用性呢?首先,一個高可用性網絡不能頻頻出現故障,只要發生故障,即便是很短期的中斷,都會影響業務運營,特別在當前適時性強、對丟包和時延敏感的業務,如語音和視頻等業務在網絡上普遍部署的狀況下更是如此。其次,高可用性的網絡,即便出現故障,也應該能很快恢復。若是一個網絡一年不出一次故障,但一次故障須要幾個小時,甚至幾天才能恢復,那麼這個網絡也算不上一個高可用的網絡。 服務器

事實上,故障少、故障恢復時間短基本就歸納了高可用性網絡的特色。在實際網絡中,軟、硬件的版本質量是有極限的,而且也避免不了各類人爲和非技術因素形成的網絡故障和服務中斷。基於這個緣由,開發能讓網絡迅速從故障中恢復的技術很是重要。事實上,若是網絡老是能在不中斷(絕大部分)業務的狀況下恢復,對多數用戶,就其業務體驗來講,甚至能夠認爲是無端障的。網絡

 

網絡高可用性技術:負載均衡

1.服務器實現羣集  ide

LB  :負載均衡羣集性能

HA  :高可用性羣集測試

HP   :高性能羣集

      服務器羣集技術最主要的應用即在於網絡負載平衡的功能。 網絡負載平衡使用兩臺或更多臺一塊兒工做的主機計算機組成的羣集,爲服務器提供了高可用性和高伸縮性。Internet客戶端使用一個 IP 地址或一組地址訪問羣集。客戶端沒法區別羣集和單一服務器。服務器應用程序並不代表它們是在羣集上運行的。可是,網絡負載平衡羣集與運行單個服務器應用程序的單個主機有很大的區別,由於即便在某個羣集主機發生故障的狀況下,它也能夠提供不間斷服務。羣集對客戶端請求的響應也比單個主機快。

若是某個主機發生故障或脫機,則網絡負載平衡經過將傳入的網絡通訊重定向到工做的羣集主機,從而帶來了高可用性。連到脫機主機的現有鏈接將丟失,可是 Internet 服務仍然是可用的。在多數狀況下(例如,就 Web 服務器而言),客戶端軟件能夠自動重試失敗的鏈接,並且客戶端在接收響應時,只有數秒鐘的延遲。網絡負載平衡經過在分配給網絡負載平衡羣集的一個或多個虛擬 IP 地址(羣集 IP 地址)間分配傳入的網絡通訊,從而帶來了可變化的性能。而後,羣集中的主機同時對不一樣的客戶端請求甚至來自同一客戶端的多個請求作出響應。例如,Web瀏覽器能夠從網絡負載平衡羣集中的不一樣主機得到全部單張網頁中的多幅圖像。這就提升了處理速度,並縮短了對客戶端作出響應的時間。

網絡負載平衡使得單個子網上的全部羣集主機能夠同時檢測羣集 IP 地址的傳入網絡通訊。在每一個羣集主機上,網絡負載平衡驅動程序充當羣集適配器驅動程序和 TCP/IP堆棧間的過濾器,以便在主機間分配通訊。

2.三層設備

routerl3switchfirewall實現高可用性

         HSRP

熱備份路由器協議(HSRPHot Standby Router Protocol),是cisco平臺一種特有的技術,是cisco的私有協議。

該協議中含有多臺路由器,對應一個HSRP組。該組中只有一個路由器承擔轉發用戶流量的職責,這就是活動路由器。當活動路由器失效後,備份路由器將承擔該職責,成爲新的活動路由器。這就是熱備份的原理。

實現HSRP的條件是系統中有多臺路由器,它們組成一個「熱備份組」,這個組造成一個虛擬路由器。在任一時刻,一個組內只有一個路由器是活動的,並由它來轉發數據包,若是活動路由器發生了故障,將選擇一個備份路由器來替代活動路由器,可是在本網絡內的主機看來,虛擬路由器沒有改變。因此主機仍然保持鏈接,沒有受到故障的影響,這樣就較好地解決了路由器切換的問題。

爲了減小網絡的數據流量,在設置完活動路由器和備份路由器以後,只有活動路由器和備份路由器定時發送HSRP報文。若是活動路由器失效,備份路由器將接管成爲活動路由器。若是備份路由器失效或者變成了活躍路由器,將由另外的路由器被選爲備份路由器。

在實際的一個特定的局域網中,可能有多個熱備份組並存或重疊。每一個熱備份組模仿一個虛擬路由器工做,它有一個WellknownMAC地址和一個IP地址。該IP地址、組內路由器的接口地址、主機在同一個子網內,可是不能同樣。當在一個局域網上有多個熱備份組存在時,把主機分佈到不一樣的熱備份組,可使負載獲得分擔。  

VRRP:

VRRP是一種選擇協議,它能夠把一個虛擬路由器的責任動態分配到局域網上的 VRRP 路由器中的一臺。控制虛擬路由器 IP 地址的 VRRP 路由器稱爲主路由器,它負責轉發數據包到這些虛擬 IP 地址。[1]  一旦主路由器不可用,這種選擇過程就提供了動態的故障轉移機制,這就容許虛擬路由器的 IP 地址能夠做爲終端主機的默認第一跳路由器。是一種LAN接入設備備份協議。一個局域網絡內的全部主機都設置缺省網關,這樣主機發出的目的地址不在本網段的報文將被經過缺省網關發往三層交換機,從而實現了主機和外部網絡的通訊。

VRRP是一種路由容錯協議,也能夠叫作備份路由協議。一個局域網絡內的全部主機都設置缺省路由,當網內主機發出的目的地址不在本網段時,報文將被經過缺省路由發往外部路由器,從而實現了主機與外部網絡的通訊。當缺省路由器down掉(即端口關閉)以後,內部主機將沒法與外部通訊,若是路由器設置了VRRP時,那麼這時,虛擬路由將啓用備份路由器,從而實現全網通訊。

工做過程;

1)       路由器開啓VRRP功能後,會根據優先級肯定本身在備份組中的角色。優先級高的路由器成爲主用路由器,優先級低的成爲備用路由器。主用路由器按期發送VRRP通告報文,通知備份組內的其餘路由器本身工做正常;備用路由器則啓動定時器等待通告報文的到來。

2)       VRRP在不一樣的主用搶佔方式下,主用角色的替換方式不一樣:

l在搶佔方式下,當主用路由器收到VRRP通告報文後,會將本身的優先級與通告報文中的優先級進行比較。若是大於通告報文中的優先級,則成爲主用路由器;不然將保持備用狀態。

l在非搶佔方式下,只要主用路由器沒有出現故障,備份組中的路由器始終保持主用或備用狀態,備份組中的路由器即便隨後被配置了更高的優先級也不會成爲主用路由器。

3)       若是備用路由器的定時器超時後仍未收到主用路由器發送來的VRRP通告報文,則認爲主用路由器已經沒法正常工做,此時備用路由器會認爲本身是主用路由器,並對外發送VRRP通告報文。備份組內的路由器根據優先級選舉出主用路由器,承擔報文的轉發功能

3.磁盤 

獨立磁盤冗餘陣列(RAIDredundant array of independent disks)是把相同的數據存儲在多個硬盤的不一樣的地方的方法。經過把數據放在多個硬盤上,輸入輸出操做能以平衡的方式交疊,改良性能。由於多個硬盤增長了平均故障間隔時間(MTBF),儲存冗餘數據也增長了容錯。

RAID經過在多個磁盤上同時存儲和讀取數據來大幅提升存儲系統的數據吞吐量(Throughput)。在RAID中,可讓不少磁盤驅動器同時傳輸數據,而這些磁盤驅動器在邏輯上又是一個磁盤驅動器,因此使用RAID能夠達到單個磁盤驅動器幾倍、幾十倍甚至上百倍的速率。經過數據校驗提供容錯功能。普通磁盤驅動器沒法提供容錯功能,若是不包括寫在磁盤上的CRC(循環冗餘校驗)碼的話。RAID容錯是創建在每一個磁盤驅動器的硬件容錯功能之上的,因此它提供更高的安全性。在不少RAID模式中都有較爲完備的相互校驗/恢復的措施,甚至是直接相互的鏡像備份,從而大大提升了RAID系統的容錯度,提升了系統的穩定冗餘性。

        RAID常見的幾種技術規範:

RAID 0是組建磁盤陣列中最簡單的一種形式,只須要2塊以上的硬盤便可,成本低,能夠提升整個磁盤的性能和吞吐量。RAID 0沒有提供冗餘或錯誤修復能力,但實現成本是最低的。

RAID 1主要是經過二次讀寫實現磁盤鏡像,因此磁盤控制器的負載也至關大,尤爲是在須要頻繁寫入數據的環境中。爲了不出現性能瓶頸,使用多個磁盤控制器就顯得頗有必要。

RAID10 RAID1RAID0的結合。這種結構無非是一個帶區結構加一個鏡象結構,由於兩種結構各有優缺點,所以能夠相互補充,達到既高效又高速的目的。

RAID5的讀出效率很高,寫入效率通常,塊式的集體訪問效率不錯。由於奇偶校驗碼在不一樣的磁盤上,因此提升了可靠性。可是它對數據傳輸的並行性解決很差,並且控制器的設計也至關困難。

RAID6是對RAID5的擴展,主要是用於要求數據絕對不能出錯的場合。固然了,因爲引入了第二種奇偶校驗值,因此須要N+2個磁盤,同時對控制器的設計變得十分複雜,寫入速度也很差,用於計算奇偶校驗值和驗證數據正確性所花費的時間比較多,形成了沒必要須的負載。

4.鏈路

              lan  stp   rstp    mstp 鏈路聚合

       生成樹協議最主要的應用是爲了不局域網中的單點故障、網絡迴環,解決成環以太網網絡的「廣播風暴」問題,從某種意義上說是一種網絡保護技術,能夠消除因爲失誤或者意外帶來的循環鏈接。STP也提供了爲網絡提供備份鏈接的可能,可與SDH保護配合構成以太環網的雙重保護。

快速生成樹協議(rapid spanning Tree Protocol ):802.1w802.1d發展而成,這種協議在網絡結構發生變化時,能更快的收斂網絡。它比802.1d多了兩種端口類型:預備端口類型(alternate port)和備份端口類型。 STPSpanning Tree Protocol )是生成樹協議的英文縮寫。該協議可應用於環路網絡,經過必定的算法實現路徑冗餘,同時將環路網絡修剪成無環路的樹型網絡,從而避免報文在環路網絡中的增生和無限循環。

MSTP的實現基礎是充分利用SDH技術對傳輸業務數據流提供保護恢復能力和較小的延時性能,並對網絡業務支撐層加以改造,以適應多業務應用,實現對二層、三層的數據智能支持。即將傳送節點與各類業務節點融合在一塊兒,構成業務層和傳送層一體化的SDH業務節點,稱爲融合的網絡節點或多業務節點,主要定位於網絡邊緣。

         鏈路聚合(Link Aggregation),是指將多個物理端口捆綁在一塊兒,成爲一個邏輯端口,以實現出/ 入流量在各成員端口中的負荷分擔,交換機根據用戶配置的端口負荷分擔策略決定報文從哪個成員端口發送到對端的交換機。當交換機檢測到其中一個成員端口的鏈路發生故障時,就中止在此端口上發送報文,並根據負荷分擔策略在剩下鏈路中從新計算報文發送的端口,故障端口恢復後再次從新計算報文發送端口。鏈路聚合在增長鏈路帶寬、實現鏈路傳輸彈性和冗餘等方面是一項很重要的技術    

wan:      

A.       浮動靜態路由   [鏈路不同,骨幹鏈路和撥號類備份鏈路]

在一個支持DDRDial-on-Demand Routing)的網絡中,撥號鏈路只在須要時才撥通,所以不能爲動態路由信息表提供路由信息的變動狀況。在這種狀況下,網絡也適合使用浮動靜態路由。

浮動靜態路由是一種特殊的靜態路由,經過配置一個比主路由的管理距離更大的靜態路由,保證網絡中主路由失效的狀況下,提供備份路由。但在主路由存在的狀況下它不會出如今路由表中。浮動靜態路由主要用於拔號備份.

B.       backup接口     【鏈路一致,只用一條】

              指令 standby 

      在這個狀態下,該路由器就是所連網絡的備份指定路由器,而且和所在多址網絡上的其餘路由器創建鄰接關係。

C. MultiPPP   要求:鏈路一致 {網絡類型一致,封裝一致PPP,速率}

多重鏈路點對點協議(MP MultiPPP)是一種分離、重組和排序多重邏輯數據鏈路上的數據報的方法。PPP 多重鏈路(MP)基於 LCP 選項協商機制,容許系統暗示對等結構它可以將多重物理鏈路結合成「束」。在初始化 LCP 選項協商時,多重鏈路經協商經過。系統暗示對等結構它將經過發送多重鏈路選項創建多重鏈路,這是在初始化 LCP 選項協商過程當中完成的。

一旦多重鏈路協商成功經過,發送系統自由發送封裝和或分段的以及多重鏈路頭。爲了創建點對點鏈路建通訊,PPP 鏈路的每一端,必須首先發送 LCP 包以便設定和測試數據鏈路。在鏈路創建以後,有一個認證階段,其中認證協議主要負責決定鏈路中鏈接每一個系統的標識符。

 

5.網卡  bond

Linux bonding 驅動提供了一個把多個網絡接口設備捆綁爲單個的網絡接口設置來使用,用於網絡負載均衡及網絡冗餘

對於服務器來講,網絡設備的穩定也是比較重要的,特別是網卡。在生產型的系統中,網卡的可靠性就更爲重要了。在生產型的系統中,大多經過硬件設備的冗餘來提供服務器的可靠性和安全性,好比電源。bonding 也能爲網卡提供冗餘的支持。把多塊網卡綁定到一個IP地址,當一塊網卡發生物理性損壞的狀況下,另外一塊網卡自動啓用,並提供正常的服務,即:默認狀況下只有一塊網卡工做,其它網卡作備份