之前學習lvs接觸到的是lvs+keepalived結構,實現slb負載均衡和高可用,但是沒有想到還有一種lvs+ospf架構,有時候也可能會是lvs+ospf+quagga+keepalived(這裡的keepalived主要是提供配置檔案)架構,那它們之間的區別是什麼呢?
lvs我們就不做過多的介紹了,它是由我國的章文嵩博士提出的,是為了實現負載均衡的。
keepalived 是乙個基於vrrp協議來實現的lvs服務高可用方案。
vrrp(虛擬路由冗餘協議)可以避免路由單點故障。
vrrp 將區域網的一組路由器組織成乙個虛擬路由器。這個虛擬路由器通過虛擬ip對外提供服務,而在虛擬路由器內部是多個物理路由器協同工作,同一時間內只有一台物理路由器占有這個虛擬ip,作為master實際負責arp響應和資料報**等工作;其它物理路由器作為backup,不提供對外服務,僅接收master的vrrp狀態通告資訊。 master由優先順序選舉產生,每個物理路由器都有乙個 1-255 之間的優先順序,級別最高(highest priority)將成為master,若優先順序相同,則ip位址較大者勝出。 在vrrp協議中,所有的報文都是通過ip多播形式傳送的,而在乙個虛擬路由器中,只有處於master角色的路由器會一直傳送vrrp資料報,處於backup角色的路由器只接收master發過來的報文資訊,用來監控master的執行狀態,因此不會發生backup搶占的現象,除非它的優先順序更高。當master不可用時,backup也就無法收到master發過來的報文資訊,於是就認定master出現故障,接著多台backup就會進行優先順序最高的backup就將成為新的master,這樣就保證了服務的持續可用性。但是我們會發現使用者訪問同乙個vip,兩台排程器之間始終只有一台(master)是處於工作狀態,而另一台(backup)只是用來備份,當mater出現問題的時候才用到它,這樣就很浪費資源,特別是當有大量請求訪問的時候,還是只能有一台排程器進行工作 ,效率不是很高,所以我們可不可以線性橫向擴充套件讓兩台director都處於工作的狀態呢?lvs+ospf架構就很好的解決了這個問題。在乙個虛擬路由器中,不管誰是master,對外都是相同的mac和ip(稱之為vip)。客戶端主機並不需要因為master的改變而修改自己的路由配置,對客戶端來說,這種主從的切換是透明的。
在乙個虛擬路由器中,只有作為master的vrrp路由器會一直傳送vrrp通告資訊(vrrpadvertisement message),backup不會搶占master,除非它的優先順序(priority)更高。當master不可用時(backup收不到通告資訊), 多台backup中優先順序最高的這台會被搶占為master。這種搶占是非常快速的(<1s),以保證服務的連續性。
出於安全性考慮,vrrp包使用了加密協議進行加密.
這裡的路由器也可以換成交換機,當然也可以用qugga代替
quagga是乙個開源軟體,用於在linux上模擬路由器的配置,將一台普通的linux伺服器實現一台簡單的路由器/交換機的功能。它的操作命令保持和思科網路裝置一致,和常用的shell命令有較大區別。
交換機可以參考小公尺:
quagga可以參考:
我們先看了解一下ospf:
ospf(open shortest path first開放式最短路徑優先)是乙個內部閘道器協議(interior gateway protocol,簡稱igp),用於在單一自治系統(autonomous system,as)內決策路由。
ospf可以實現類似負載均衡的水平擴充套件,實現的核心是什麼?
ecmp(equal-costmultipathrouting)等價多路徑,存在多條不同鏈路到達同一目的位址的網路環境中,如果使用傳統的路由技術,發往該目的位址的資料報只能利用其中的一條鏈路,其它鏈路處於備份狀態或無效狀態,並且在動態路由環境下相互的切換需要一定時間,而等值多路徑路由協議可以在該網路環境下同時使用多條鏈路,不僅增加了傳輸頻寬,並且可以無時延無丟包地備份失效鏈路的資料傳輸。
ecmp最大的特點是實現了等值情況下,多路徑負載均衡和鏈路備份的目的,在靜態路由和ospf中基本上都支援ecmp功能。
例如下圖中的路徑a、路徑b、路徑c 3條路徑的cost值相同,既是等價路徑。在路由器選路的時候,便可以同時使用這3條路徑,從而實現負載均衡。
注:雖然鏈路cost值相同,但是實際情況是,各路徑的頻寬、時延和可靠性等不一樣,把cost認可成一樣,不能很好地利用頻寬,尤其在路徑間差異大時,效果會非常不理想。這時可以使用
wcmp(weight-costmultipathrouting)加權多路徑,能夠非常靈活地按照比例在鏈路上傳遞流量。
ecmp是乙個逐跳的基於流的負載均衡策略,當路由器發現同一目的位址出現多個最優路徑時,會更新路由表,為此目的位址新增多條規則,對應於多個下一跳。可同時利用這些路徑**資料,增加頻寬。ecmp演算法被多種路由協議支援,例如:ospf、isis、eigrp、bgp等。在資料中心架構vl2中也提到使用ecmp作為負載均衡演算法。
對於未開啟ecmp的網路來說,無法充分利用路徑資源。如圖1所示,假設從s0到server的為s0-s1-s2-s4即圖中橘色路徑,那麼即便存在另一條等價路徑,藍色路徑,路由器仍然會每次選擇第一條橘色路徑**資料。除非此條路徑發生擁塞,才會重新選擇路徑。
當開啟ecmp功能時,便可同時利用兩條路徑,進行基於流的負載均衡,例如主機a到server的資料流選擇橘色路徑,主機b到server的資料流選擇藍色路徑。
ecmp的路徑選擇策略有多種方法:
《企業應用架構模式》介紹部分筆記
架構 架構一般來說意味著 從最高層將系統分解成多個部分。一旦作出就很難改變的決定。ralph johnson說 架構是一種主觀的東西,是專案專家開發人員對系統設計的一種共同理解。通常,共同理解是指系統包含哪些主要元件以及這些元件相互之間如何互動。martin認為架構模式中最重要就是分層。企業應用程式...
企業架構 如何描述企業架構
搭建乙個簡易狗屋時,我們不會去設計三維圖,做預算,規劃施工等,而建個複雜建築時,缺少架構是不可能能完成的。就像我們程式設計師做個小功能,可能都不需要做設計就可以實現了,但是當問題複雜了,考慮因素多了,產品關聯複雜了,那麼還一直摸著石頭過河,事前不做架構不做規劃,那麼最終結果必然是失敗的。蓋房屋需要架...
企業IT架構
在企業it應用中,it架構師是非常重要的角色。他首先要和cio一起與業務部門溝通,將業務需求轉化成it實踐 同時,it架構師還可以為企業設定it架構的總體目標。企業it架構就是it的發展藍圖,它可以幫助企業清晰了解目前系統的現狀,然後設計未來的業務目標與it目標。這不僅可以系統化地管理整個it系統 ...