Linux虛擬服務器(LVS)系統是由負載調度器(Load Balancer)、服務器集群(Server Cluster)和文件存儲服務(File Servers)組成的,通過Linux下的負載平衡,將一群服務器構成一個服務集群,而實際服務器的前端是一臺負載平衡器,將用戶的請求調度到實際服務 器執行后將結果返回用戶,而終端用戶可見的只是一臺服務器,由于負載調度技術是在Linux內核中實現的,我們稱之為Linux Virtual Server。正如上文所講,當前網絡服務要求系統提供可靠性、可用性高的服務,即要求系統在遭到破壞和出現故障時,系統上的數據不能丟失,而且在盡可能 短的時間內恢復系統的正常運行,下面我們就LVS的基本原理(參考圖1)和一些服務安全性能進行探討。
附件1
連接用戶的外部網為Internet/Intranet,服務器組由內部網(通常是高速局域網或地理分布的廣域網)連接。負載平衡器有兩個IP地 址,一個是外部網關,一個是內部網關。外部網的用戶發出請求,負載調度器負責將用戶要求的任務,調度到服務器集群中的服務器上執行,具體的調度策略現在主 要有四種調度算法:輪轉調度算法(Round-RobinScheduling)、加權輪轉調度算法(Weighted Round-RobinScheduling)、最小連接調度算法(Least-ConnectionScheduing)、加權最小連接算法 (Weighted Least- ConnectionScheduing)。LVS采用基于IP層負載平衡技術,通過IPVS軟件實現了三種IP負載均衡技術,在Linux操作系統下, 將IP層的TCP和UDP請求均衡地轉移到不同的服務器上。當用戶請求到達時,調度器從服務器組中選出一個服務器轉發該請求并由該服務器執行,同時記錄此 調度。這一切都在操作系統核心空間內完成,且調度開銷很小,使得服務器集群中的節點數目可以達25甚至可以多達100。文件存儲系統基于容錯式分布文件系 統來實現,如Coda。
我們談到的LVS網絡服務的高可靠性主要體現在:
1.負載調度器上運行了一個監視進程--mon,它負責監控服務進程和服務器集群中的各個服務器節點的狀況,通過配置fping 監聽器,每隔一定時間檢測各個服務器節點。通過配置相應的服務監聽器來探查所有節點中不同的服務進程,例如http monitor就用來探查http服務,一旦出現失敗,監視進程就發出警報通知調度器將該節點從調度列表中刪除,使調度器可以自動屏蔽服務器節點的失效。 當此服務器節點恢復時,調度器將此節點添加到調度列表中,從而總是保持對系統重置的正確,并且服務器集群中節點的數目是可變的,由于節點的失效被屏蔽,系 統管理員可以在任何時候加入或刪除一個或多個節點而不干擾對用戶提供的服務。這也就意味著LVS系統在超載時,我們可以通過增加服務集群的節點數目來滿足 用戶的請求,當服務器組中某臺實際服務器出現故障,可以刪除但不影響對用戶的服務,從而實現高效可靠的服務。
2.在第一點的基礎上,現在調度器就成為了單一的失效點,調度器的失效將導致整個系統的癱瘓。為了屏蔽主調度器可能出現的失效,需要建立一個 備份的從調度器。兩個心跳進程分別在主、從調度器上運行,定期互相匯報各自的健康狀況,一旦從調度器探測到主調度器失效,則激活fake程序接管 Virtual IP Address來提供負載平衡調度;當從調度器探測到主調度器恢復時,將釋放Virtual IP Address,由主調度器收回并提供負載調度服務。雖然,主調度器的失效和接管將導致調度信息的丟失,需要用戶重新發送請求。但是,這大大的提高了系統 的安全性和可靠性,使得一旦主調度器出現故障,系統可以在很短的時間內恢復服務。
附件1
連接用戶的外部網為Internet/Intranet,服務器組由內部網(通常是高速局域網或地理分布的廣域網)連接。負載平衡器有兩個IP地 址,一個是外部網關,一個是內部網關。外部網的用戶發出請求,負載調度器負責將用戶要求的任務,調度到服務器集群中的服務器上執行,具體的調度策略現在主 要有四種調度算法:輪轉調度算法(Round-RobinScheduling)、加權輪轉調度算法(Weighted Round-RobinScheduling)、最小連接調度算法(Least-ConnectionScheduing)、加權最小連接算法 (Weighted Least- ConnectionScheduing)。LVS采用基于IP層負載平衡技術,通過IPVS軟件實現了三種IP負載均衡技術,在Linux操作系統下, 將IP層的TCP和UDP請求均衡地轉移到不同的服務器上。當用戶請求到達時,調度器從服務器組中選出一個服務器轉發該請求并由該服務器執行,同時記錄此 調度。這一切都在操作系統核心空間內完成,且調度開銷很小,使得服務器集群中的節點數目可以達25甚至可以多達100。文件存儲系統基于容錯式分布文件系 統來實現,如Coda。
我們談到的LVS網絡服務的高可靠性主要體現在:
1.負載調度器上運行了一個監視進程--mon,它負責監控服務進程和服務器集群中的各個服務器節點的狀況,通過配置fping 監聽器,每隔一定時間檢測各個服務器節點。通過配置相應的服務監聽器來探查所有節點中不同的服務進程,例如http monitor就用來探查http服務,一旦出現失敗,監視進程就發出警報通知調度器將該節點從調度列表中刪除,使調度器可以自動屏蔽服務器節點的失效。 當此服務器節點恢復時,調度器將此節點添加到調度列表中,從而總是保持對系統重置的正確,并且服務器集群中節點的數目是可變的,由于節點的失效被屏蔽,系 統管理員可以在任何時候加入或刪除一個或多個節點而不干擾對用戶提供的服務。這也就意味著LVS系統在超載時,我們可以通過增加服務集群的節點數目來滿足 用戶的請求,當服務器組中某臺實際服務器出現故障,可以刪除但不影響對用戶的服務,從而實現高效可靠的服務。
2.在第一點的基礎上,現在調度器就成為了單一的失效點,調度器的失效將導致整個系統的癱瘓。為了屏蔽主調度器可能出現的失效,需要建立一個 備份的從調度器。兩個心跳進程分別在主、從調度器上運行,定期互相匯報各自的健康狀況,一旦從調度器探測到主調度器失效,則激活fake程序接管 Virtual IP Address來提供負載平衡調度;當從調度器探測到主調度器恢復時,將釋放Virtual IP Address,由主調度器收回并提供負載調度服務。雖然,主調度器的失效和接管將導致調度信息的丟失,需要用戶重新發送請求。但是,這大大的提高了系統 的安全性和可靠性,使得一旦主調度器出現故障,系統可以在很短的時間內恢復服務。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
