共計 4547 個字符,預計需要花費 12 分鐘才能閱讀完成。
這篇文章主要介紹 LVS 是什么意思,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
一、LVS 概念
LVS 是 Linux Virtual Server 的簡稱,也就是 Linux 虛擬服務器。這是一個由章文嵩博士發起的一個開源項目,它的官方網站是 http://www.linuxvirtualserver.org/. 現在 LVS 已經是 Linux 內核標準的一部分。
使用 LVS 可以達到的技術目標是:通過 LVS 達到的負載均衡技術和 Linux 操作系統實現一個高性能高可用的 Linux 服務器群集,它具有良好的可靠性,可拓展性和可操作性。從而以低廉的成本實現 *** 的性能。
LVS 從 1998 年開始,發展到現在已經是一個比較成熟的項目了。利用 LVS 技術可以實現高性能,高可壓縮的網路服務,例如 WWW 服務,FTP 服務,MAIL 服務等。比較著名的就是 www.linux.com 以及 www.real.com.
二、LVS 的體系架構
使 用 LVS 架設的服務器集群系統有三個部分組成:最前端的負載均衡層(Loader Balancer),中間的服務器群組層,用 Server Array 表示,*** 層的數據共享存儲層,用 Shared Storage 表示。在用戶看來所有的應用都是透明的,用戶只是在使用一個虛擬服務器提供的高性能服務。
LVS 的體系架構如圖:
LVS 的各個層次的詳細介紹:
Load Balancer 層:位于整個集群系統的最前端,有一臺或者多臺負載調度器(Director Server)組成,LVS 模塊就安裝在 Director Server 上,而 Director 的主要作用類似于一個路由器,它含有完成 LVS 功能所設定的路由表,通過這些路由表把用戶的請求分發給 Server Array 層的應用服務器(Real Server)上。同時,在 Director Server 上還要安裝對 Real Server 服務的監控模塊 Ldirectord,此模塊用于監測各個 Real Server 服務的健康狀況。在 Real Server 不可用時把它從 LVS 路由表中剔除,恢復時重新加入。
Server Array 層:由一組實際運行應用服務的機器組成,Real Server 可以是 WEB 服務器、MAIL 服務器、FTP 服務器、DNS 服務器、視頻服務器中的一個或者多個,每個 Real Server 之間通過高速的 LAN 或分布在各地的 WAN 相連接。在實際的應用中,Director Server 也可以同時兼任 Real Server 的角色。
Shared Storage 層:是為所有 Real Server 提供共享存儲空間和內容一致性的存儲區域,在物理上,一般有磁盤陣列設備組成,為了提供內容的一致性,一般可以通過 NFS 網絡文件系統共享數 據,但是 NFS 在繁忙的業務系統中,性能并不是很好,此時可以采用集群文件系統,例如 Red hat 的 GFS 文件系統,oracle 提供的 OCFS2 文件系統等。
從整個 LVS 結構可以看出,Director Server 是整個 LVS 的核心,目前,用于 Director Server 的操作系統只能是 Linux 和 FreeBSD,linux2.6 內核不用任何設置就可以支持 LVS 功能,而 FreeBSD 作為 Director Server 的應用還不是很多,性能也不是很好。對于 Real Server,幾乎可以是所有的系統平臺,Linux、windows、Solaris、AIX、BSD 系列都能很好的支持。
三、 LVS 集群的特點
3.1 IP 負載均衡與負載調度算法
1.IP 負載均衡技術
負載均衡技術有很多實現方案,有基于 DNS 域名輪流解析的方法、有基于客戶端調度訪問的方法、有基于應用層系統負載的調度方法,還有基于 IP 地址的調度方法,在這些負載調度算法中,執行效率 *** 的是 IP 負載均衡技術。
LVS 的 IP 負載均衡技術是通過 IPVS 模塊來實現的,IPVS 是 LVS 集群系統的核心軟件,它的主要作用是:安裝在 Director Server 上,同時在 Director Server 上虛擬出一個 IP 地址,用戶必須通過這個虛擬的 IP 地址訪問服務。這個虛擬 IP 一般稱為 LVS 的 VIP,即 Virtual IP。訪問的請求首先經過 VIP 到達負載調度器,然后由負載調度器從 Real Server 列表中選取一個服務節點響應用戶的請求。
當用戶的請求到達負載調度器后,調度器如何將請求發送到提供服務的 Real Server 節點,而 Real Server 節點如何返回數據給用戶,是 IPVS 實現的重點技術,IPVS 實現負載均衡機制有三種,分別是 NAT、TUN 和 DR,詳述如下:
VS/NAT:即(Virtual Server via Network Address Translation)
也就是網絡地址翻譯技術實現虛擬服務器,當用戶請求到達調度器時,調度器將請求報文的目標地址(即虛擬 IP 地址)改寫成選定的 Real Server 地址,同時報文的目標端口也改成選定的 Real Server 的相應端口,*** 將報文請求發送到選定的 Real Server。在服務器端得到數據后,Real Server 返回數據給用戶時,需要再次經過負載調度器將報文的源地址和源端口改成虛擬 IP 地址和相應端口,然后把數據發送給用戶,完成整個負載調度過程。可以看出,在 NAT 方式下,用戶請求和響應報文都必須經過 Director Server 地址重寫,當用戶請求越來越多時,調度器的處理能力將稱為瓶頸。
VS/TUN:即(Virtual Server via IP Tunneling)
也就是 IP 隧道技術實現虛擬服務器。它的連接調度和管理與 VS/NAT 方式一樣,只是它的報文轉發方法不同,VS/TUN 方式中,調度器采用 IP 隧道技術將用戶請求轉發到某個 Real Server,而這個 Real Server 將直接響應用戶的請求,不再經過前端調度器,此外,對 Real Server 的地域位置沒有要求,可以和 Director Server 位于同一個網段,也可以是獨立的一個網絡。因此,在 TUN 方式中,調度器將只處理用戶的報文請求,集群系統的吞吐量大大提高。
VS/DR:即(Virtual Server via Direct Routing)
也就是用直接路由技術實現虛擬服務器。它的連接調度和管理與 VS/NAT 和 VS/TUN 中的一樣,但它的報文轉發方法又有不同,VS/DR 通過改寫請求報文的 MAC 地址,將請求發送到 Real Server,而 Real Server 將響應直接返回給客戶,免去了 VS/TUN 中的 IP 隧道開銷。這種方式是三種負載調度機制中性能 ****** 的,但是必須要求 Director Server 與 Real Server 都有一塊網卡連在同一物理網段上。
2.負載調度算法
上面我們談到,負載調度器是根據各 個服務器的負載情況,動態地選擇一臺 Real Server 響應用戶請求,那么動態選擇是如何實現呢,其實也就是我們這里要說的負載調度算法,根據不同的網絡服務需求和服務器配置,IPVS 實現了如下 八種負載調度算法,這里我們詳細講述最常用的四種調度算法,剩余的四種調度算法請參考其它資料。
輪叫調度(Round Robin)
“輪叫”調度也叫 1:1 調度,調度器通過“輪叫”調度算法將外部用戶請求按順序 1:1 的分配到集群中的每個 Real Server 上,這種算法平等地對待每一臺 Real Server,而不管服務器上實際的負載狀況和連接狀態。
加權輪叫調度(Weighted Round Robin)
“加 權輪叫”調度算法是根據 Real Server 的不同處理能力來調度訪問請求。可以對每臺 Real Server 設置不同的調度權值,對于性能相對較好的 Real Server 可以設置較高的權值,而對于處理能力較弱的 Real Server,可以設置較低的權值,這樣保證了處理能力強的服務器處理更多的訪問流量。充分合理的利用了服務器資源。同時,調度器還可以自動查詢 Real Server 的負載情況,并動態地調整其權值。
最少鏈接調度(Least Connections)
“最少連接”調度算法動態地將網絡請求調度到已建立的鏈接數最少的服務器上。如果集群系統的真實服務器具有相近的系統性能,采用“最小連接”調度算法可以較好地均衡負載。
加權最少鏈接調度(Weighted Least Connections)
“加權最少鏈接調度”是“最少連接調度”的超集,每個服務節點可以用相應的權值表示其處理能力,而系統管理員可以動態的設置相應的權值,缺省權值為 1,加權最小連接調度在分配新連接請求時盡可能使服務節點的已建立連接數和其權值成正比。
其它四種調度算法分別為:基于局部性的最少鏈接(Locality-Based Least Connections)、帶復制的基于局部性最少鏈接(Locality-Based Least Connections with Replication)、目標地址散列(Destination Hashing)和源地址散列(Source Hashing),對于這四種調度算法的含義,本文不再講述,如果想深入了解這其余四種調度策略的話,可以登陸 LVS 中文站點 zh.linuxvirtualserver.org,查閱更詳細的信息。
3.2 高可用性
LVS 是一個基于內核級別的應用 軟件,因此具有很高的處理性能,用 LVS 構架的負載均衡集群系統具有優秀的處理能力,每個服務節點的故障不會影響整個系統的正常使用,同時又實現負載的合 理均衡,使應用具有超高負荷的服務能力,可支持上百萬個并發連接請求。如配置百兆網卡,采用 VS/TUN 或 VS/DR 調度技術,整個集群系統的吞吐量可高 達 1Gbits/s;如配置千兆網卡,則系統的 *** 吞吐量可接近 10Gbits/s。
3.3 高可靠性
LVS 負載均衡集群軟 件已經在企業、學校等行業得到了很好的普及應用,國內外很多大型的、關鍵性的 web 站點也都采用了 LVS 集群軟件,所以它的可靠性在實踐中得到了很好的證 實。有很多以 LVS 做的負載均衡系統,運行很長時間,從未做過重新啟動。這些都說明了 LVS 的高穩定性和高可靠性。
3.4 適用環境
LVS 對前端 Director Server 目前僅支持 Linux 和 FreeBSD 系統,但是支持大多數的 TCP 和 UDP 協議,支持 TCP 協議的應用有:HTTP,HTTPS,FTP,SMTP,,POP3,IMAP4,PROXY,LDAP,SSMTP 等等。
支持 UDP 協議的應用有:DNS,NTP,ICP,視頻、音頻流播放協議等。
LVS 對 Real Server 的操作系統沒有任何限制,Real Server 可運行在任何支持 TCP/IP 的操作系統上,包括 Linux,各種 Unix(如 FreeBSD、Sun Solaris、HP Unix 等),Mac/OS 和 Windows 等。
3.5 開源軟件
LVS 集群軟件是按 GPL(GNU Public License)許可證發行的自由軟件,因此,使用者可以得到軟件的源代碼,并且可以根據自己的需要進行各種修改,但是修改必須是以 GPL 方式發行。
以上是“LVS 是什么意思”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注丸趣 TV 行業資訊頻道!