Linux虛擬服務器 LVS的三種負載均衡方式比較

1、LVS的定義?
LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集群系統(tǒng)。其實它是一種集群(Cluster)技術(shù),采用IP負載均衡技術(shù)和基于內(nèi)容請求分發(fā)技術(shù)。調(diào)度器具有很好的吞吐率,將請求均衡地轉(zhuǎn)移到不同的服務器上執(zhí)行,且調(diào)度器自動屏蔽掉服務器的故障,從而將一組服務器構(gòu)成一個高性能的、高可用的虛擬服務器。整個服務器集群的結(jié)構(gòu)對客戶是透明的,而且無需修改客戶端和服務器端的程序。本項目在1998年5月由章文嵩博士成立,是中國國內(nèi)最早出現(xiàn)的自由軟件項目之一。
為此,在設計時需要考慮系統(tǒng)的透明性、可伸縮性、高可用性和易管理性。一般來說,LVS集群采用三層結(jié)構(gòu),其體系結(jié)構(gòu)如圖所示:
LVS集群的體系結(jié)構(gòu)
2、LVS主要組成部分為:
負載調(diào)度器(load balancer/ Director),它是整個集群對外面的前端機,負責將客戶的請求發(fā)送到一組服務器上執(zhí)行,而客戶認為服務是來自一個IP地址(我們可稱之為虛擬IP地址)上的。
服務器池(server pool/ Realserver),是一組真正執(zhí)行客戶請求的服務器,執(zhí)行的服務一般有WEB、MAIL、FTP和DNS等。
共享存儲(shared storage),它為服務器池提供一個共享的存儲區(qū),這樣很容易使得服務器池擁有相同的內(nèi)容,提供相同的服務。
3、LVS負載均衡方式:
Virtual Server via Network Address Translation NAT(VS/NAT)
VS/NAT是一種最簡單的方式,所有的RealServer只需要將自己的網(wǎng)關(guān)指向Director即可。客戶端可以是任意操作系統(tǒng),但此方式下,一個Director能夠帶動的RealServer比較有限。在VS/NAT的方式下,Director也可以兼為一臺RealServer。VS/NAT的體系結(jié)構(gòu)如圖所示。
VS/NAT的體系結(jié)構(gòu)
Virtual Server via IP Tunneling(VS/TUN)
IP隧道(IP tunneling)是將一個IP報文封裝在另一個IP報文的技術(shù),這可以使得目標為一個IP地址的數(shù)據(jù)報文能被封裝和轉(zhuǎn)發(fā)到另一個IP地址。IP隧道技術(shù)亦稱為IP封裝技術(shù)(IP encapsulation)。IP隧道主要用于移動主機和虛擬私有網(wǎng)絡(Virtual Private Network),在其中隧道都是靜態(tài)建立的,隧道一端有一個IP地址,另一端也有唯一的IP地址。它的連接調(diào)度和管理與VS/NAT中的一樣,只是它的報文轉(zhuǎn)發(fā)方法不同。調(diào)度器根據(jù)各個服務器的負載情況,動態(tài)地選擇一臺服務器,將請求報文封裝在另一個IP報文中,再將封裝后的IP報文轉(zhuǎn)發(fā)給選出的服務器;服務器收到報文后,先將報文解封獲得原來目標地址為 VIP 的報文,服務器發(fā)現(xiàn)VIP地址被配置在本地的IP隧道設備上,所以就處理這個請求,然后根據(jù)路由表將響應報文直接返回給客戶。
VS/TUN的體系結(jié)構(gòu)
VS/TUN的工作流程:
Virtual Server via Direct Routing(VS/DR)
VS/DR方式是通過改寫請求報文中的MAC地址部分來實現(xiàn)的。Director和RealServer必需在物理上有一個網(wǎng)卡通過不間斷的局域網(wǎng)相連。 RealServer上綁定的VIP配置在各自Non-ARP的網(wǎng)絡設備上(如lo或tunl),Director的VIP地址對外可見,而RealServer的VIP對外是不可見的。RealServer的地址即可以是內(nèi)部地址,也可以是真實地址。
VS/DR的體系結(jié)構(gòu)
VS/DR的工作流程
VS/DR的工作流程如圖所示:它的連接調(diào)度和管理與VS/NAT和VS/TUN中的一樣,它的報文轉(zhuǎn)發(fā)方法又有不同,將報文直接路由給目標服務器。在VS/DR中,調(diào)度器根據(jù)各個服務器的負載情況,動態(tài)地選擇一臺服務器,不修改也不封裝IP報文,而是將數(shù)據(jù)幀的MAC地址改為選出服務器的MAC地址,再將修改后的數(shù)據(jù)幀在與服務器組的局域網(wǎng)上發(fā)送。因為數(shù)據(jù)幀的MAC地址是選出的服務器,所以服務器肯定可以收到這個數(shù)據(jù)幀,從中可以獲得該IP報文。當服務器發(fā)現(xiàn)報文的目標地址VIP是在本地的網(wǎng)絡設備上,服務器處理這個報文,然后根據(jù)路由表將響應報文直接返回給客戶。
VS/DR的工作流程
4、三種負載均衡方式比較:
Virtual Server via NAT
VS/NAT 的優(yōu)點是服務器可以運行任何支持TCP/IP的操作系統(tǒng),它只需要一個IP地址配置在調(diào)度器上,服務器組可以用私有的IP地址。缺點是它的伸縮能力有限,當服務器結(jié)點數(shù)目升到20時,調(diào)度器本身有可能成為系統(tǒng)的新瓶頸,因為在VS/NAT中請求和響應報文都需要通過負載調(diào)度器。我們在Pentium166 處理器的主機上測得重寫報文的平均延時為60us,性能更高的處理器上延時會短一些。假設TCP報文的平均長度為536 Bytes,則調(diào)度器的最大吞吐量為8.93 MBytes/s. 我們再假設每臺服務器的吞吐量為800KBytes/s,這樣一個調(diào)度器可以帶動10臺服務器。(注:這是很早以前測得的數(shù)據(jù))
基于 VS/NAT的的集群系統(tǒng)可以適合許多服務器的性能要求。如果負載調(diào)度器成為系統(tǒng)新的瓶頸,可以有三種方法解決這個問題:混合方法、VS/TUN和 VS/DR。在DNS混合集群系統(tǒng)中,有若干個VS/NAT負調(diào)度器,每個負載調(diào)度器帶自己的服務器集群,同時這些負載調(diào)度器又通過RR-DNS組成簡單的域名。
但VS/TUN和VS/DR是提高系統(tǒng)吞吐量的更好方法。
對于那些將IP地址或者端口號在報文數(shù)據(jù)中傳送的網(wǎng)絡服務,需要編寫相應的應用模塊來轉(zhuǎn)換報文數(shù)據(jù)中的IP地址或者端口號。這會帶來實現(xiàn)的工作量,同時應用模塊檢查報文的開銷會降低系統(tǒng)的吞吐率。
Virtual Server via IP Tunneling
在VS/TUN 的集群系統(tǒng)中,負載調(diào)度器只將請求調(diào)度到不同的后端服務器,后端服務器將應答的數(shù)據(jù)直接返回給用戶。這樣,負載調(diào)度器就可以處理大量的請求,它甚至可以調(diào)度百臺以上的服務器(同等規(guī)模的服務器),而它不會成為系統(tǒng)的瓶頸。即使負載調(diào)度器只有100Mbps的全雙工網(wǎng)卡,整個系統(tǒng)的最大吞吐量可超過 1Gbps。所以,VS/TUN可以極大地增加負載調(diào)度器調(diào)度的服務器數(shù)量。VS/TUN調(diào)度器可以調(diào)度上百臺服務器,而它本身不會成為系統(tǒng)的瓶頸,可以用來構(gòu)建高性能的超級服務器。VS/TUN技術(shù)對服務器有要求,即所有的服務器必須支持“IP Tunneling”或者“IP Encapsulation”協(xié)議。目前,VS/TUN的后端服務器主要運行Linux操作系統(tǒng),我們沒對其他操作系統(tǒng)進行測試。因為“IP Tunneling”正成為各個操作系統(tǒng)的標準協(xié)議,所以VS/TUN應該會適用運行其他操作系統(tǒng)的后端服務器。
Virtual Server via Direct Routing
跟VS/TUN方法一樣,VS/DR調(diào)度器只處理客戶到服務器端的連接,響應數(shù)據(jù)可以直接從獨立的網(wǎng)絡路由返回給客戶。這可以極大地提高LVS集群系統(tǒng)的伸縮性。跟VS/TUN相比,這種方法沒有IP隧道的開銷,但是要求負載調(diào)度器與實際服務器都有一塊網(wǎng)卡連在同一物理網(wǎng)段上,服務器網(wǎng)絡設備(或者設備別名)不作ARP響應,或者能將報文重定向(Redirect)到本地的Socket端口上。
三種LVS負載均衡技術(shù)的優(yōu)缺點歸納以下表:
注:以上三種方法所能支持最大服務器數(shù)目的估計是假設調(diào)度器使用100M網(wǎng)卡,調(diào)度器的硬件配置與后端服務器的硬件配置相同,而且是對一般Web服務。使 用更高的硬件配置(如千兆網(wǎng)卡和更快的處理器)作為調(diào)度器,調(diào)度器所能調(diào)度的服務器數(shù)量會相應增加。當應用不同時,服務器的數(shù)目也會相應地改變。所以,以上數(shù)據(jù)估計主要是為三種方法的伸縮性進行量化比較。
5、負載均衡調(diào)度算法
1)最少的連接方式(Least Connection):傳遞新的連接給那些進行最少連接處理的服務器。當其中某個服務器發(fā)生第二到第7 層的故障,BIG-IP 就把其從服務器隊列中拿出,不參加下一次的用戶請求的分配, 直到其恢復正常。
2)最快模式(Fastest):傳遞連接給那些響應最快的服務器。當其中某個服務器發(fā)生第二到第7 層的故障,BIG-IP 就把其從服務器隊列中拿出,不參加下一次的用戶請求的分配,直到其恢復正常。
3)觀察模式(Observed):連接數(shù)目和響應時間以這兩項的最佳平衡為依據(jù)為新的請求選擇服務器。當其中某個服務器發(fā)生第二到第7 層的故障,BIG-IP就把其從服務器隊列中拿出,不參加下一次的用戶請求的分配,直到其恢復正常。
4)預測模式(Predictive):BIG-IP利用收集到的服務器當前的性能指標,進行預測分析,選擇一臺服務器在下一個時間片內(nèi),其性能將達到最佳的服務器相應用戶的請求。(被BIG-IP 進行檢測)
5)動態(tài)性能分配(Dynamic Ratio-APM):BIG-IP 收集到的應用程序和應用服務器的各項性能參數(shù),動態(tài)調(diào)整流量分配。
6)動態(tài)服務器補充(Dynamic Server Act.):當主服務器群中因故障導致數(shù)量減少時,動態(tài)地將備份服務器補充至主服務器群。
7)服務質(zhì)量(QoS):按不同的優(yōu)先級對數(shù)據(jù)流進行分配。
8)服務類型(ToS): 按不同的服務類型(在Type of Field中標識)負載均衡對數(shù)據(jù)流進行分配。
9)規(guī)則模式:針對不同的數(shù)據(jù)流設置導向規(guī)則,用戶可自行。
以上就是Linux虛擬服務器三種負載均衡方式的比較,內(nèi)容比較多,而且詳細,相信看完以后你會對Linux虛擬服務器負載均衡的方式有所了解,謝謝閱讀。
相關(guān)文章
Fedora Linux 42 穩(wěn)定版發(fā)布: 帶來大量新功能和軟件更新
Fedora 42昨日發(fā)布,這是 Red Hat 贊助開發(fā)的杰出前沿 Linux 發(fā)行版的最新版,包含大量新功能和軟件更新,使其成為 2025 年上半年發(fā)布的一款出色的 Linux 操作系統(tǒng)之一,內(nèi)2025-04-16如何在Linux查看硬盤信息? 查看Linux硬盤大小類型和硬件信息的5種方法
使用Linux系統(tǒng)的過程中,查看和了解硬盤信息是非常重要的工作,尤其是對于系統(tǒng)管理員而言,那么在Linux系統(tǒng)中如何查看硬盤信息?以下是具體內(nèi)容介紹2025-03-12如何在 Linux 中查看 CPU 詳細信息? 3招輕松查看CPU型號、核心數(shù)和溫度
在日常運維工作中,獲取 CPU 信息是系統(tǒng)運維管理員常見的工作內(nèi)容,無論是為了性能調(diào)優(yōu)、硬件升級還是僅僅滿足好奇心2025-03-11什么是 Arch Linux? 獨樹一幟的Arch Linux發(fā)行版分析
Arch Linux是為簡化,優(yōu)化,現(xiàn)代化,實用主義,用戶中心和多功能性而創(chuàng)建Linux發(fā)行版,究竟是什么讓 Arch 與眾不同?下面我們就來簡要解讀2025-02-19如何在Linux環(huán)境下制作 Win11裝機U盤?
一直用的linux辦公,想要將筆記本電腦從 Linux 系統(tǒng)切換回 Windows 11,我們可以制作一個win11裝機u盤,詳細如下2025-02-17Rsnapshot怎么用? 基于Rsync的強大Linux備份工具使用指南
Rsnapshot 不僅可以備份本地文件,還能通過 SSH 備份遠程文件,接下來詳細介紹如何安裝、配置和使用 Rsnapshot,包括創(chuàng)建每小時、每天、每周和每月的本地備份,以及如何進2025-02-06Linux Kernel 6.13發(fā)布:附更新內(nèi)容及新特性解讀
Linux 內(nèi)核 6.13 正式發(fā)布,新版本引入了惰性搶占支持,簡化內(nèi)核搶占邏輯,通過減少與調(diào)度器相關(guān)的調(diào)用次數(shù),讓內(nèi)核在運行時表現(xiàn)更優(yōu),從而提高效率2025-01-23五大特性引領(lǐng)創(chuàng)新! 深度操作系統(tǒng) deepin 25 Preview預覽版發(fā)布
今日,深度操作系統(tǒng)正式推出deepin 25 Preview版本,該版本集成了五大核心特性:磐石系統(tǒng)、全新DDE、Treeland窗口合成器、AI For OS以及Distrobox子系統(tǒng)2025-01-18Linux Mint Xia 22.1重磅發(fā)布: 重要更新一覽
Beta 版 Linux Mint“Xia” 22.1 發(fā)布,新版本基于 Ubuntu 24.04,內(nèi)核版本為 Linux 6.8,這次更新帶來了諸多優(yōu)化和改進,進一步鞏固了 Mint 在 Linux 桌面操作系統(tǒng)領(lǐng)域的2025-01-16LinuxMint怎么安裝? Linux Mint22下載安裝圖文教程
Linux Mint22發(fā)布以后,有很多新功能,很多朋友想要下載并安裝,該怎么操作呢?下面我們就來看看詳細安裝指南2025-01-16