Linux虛擬服務器(LVS)是基于Linux內核的操作系統的負載平衡軟件。
LVS提供了良好的可擴展性,可靠性和可服務性。
LVS項目的主要工作是開發先進的IP 負載平衡軟件(IPVS),應用級負載平衡軟件(KTCPVS)和集群管理組件。
- IPVS:在Linux內核中實現的高級IP負載平衡軟件。
- KTCPVS:在Linux內核中實現應用級負載平衡
LVS可用于構建高可擴展性和高可用性的網絡服務,如網絡,電子郵件,媒體和VoIP服務,并將可擴展網絡服務集成到大規??煽康碾娮由虅栈螂娮诱諔弥??;贚VS的解決方案已經部署在世界各地的許多實際應用中。
LVS組件依賴于Linux Netfilter框架,其源代碼可在Linux內核源代碼中的net/netfilter/ipvs子目錄中使用。LVS能夠通過檢查第7層數據包來處理UDP,TCP第4層協議以及FTP被動連接。它提供目錄中的計數器的層次結構。/proc調用用于配置LVS 的用戶實用程序 ,這需要超級用戶權限才能運行。
LVS實現了幾個平衡調度器,下面列出了相關的源文件:
- 循環(ip_vs_rr.c)
- 加權循環(ip_vs_wrr.c)
- 最小連接(ip_vs_lc.c)
- 加權最小連接(ip_vs_wlc.c)
- 基于位置的最小連接(ip_vs_lblc.c)
- 基于位置的與復制的最小連接(ip_vs_lblcr.c)
- 目標散列(ip_vs_dh.c)
- 源哈希(ip_vs_sh.c)
- 預期延遲最短(ip_vs_sed.c)
- 不排隊(ip_vs_nq.c)
示例
使用兩個真實服務器設置虛擬HTTP服務器:
ipvsadm -A -t 192 .168.0.1:80 -s rr
ipvsadm -a -t 192 .168.0.1:80 -r 172 .16.0.1:80-m
ipvsadm -a -t 192 .168.0.1:80 -r 172 .16.0.2:80-m
第一個命令將IP地址192.168.0.1上的TCP端口80 分配給虛擬服務器。所選擇的負載均衡調度算法是round-robin()。第二和第三個命令是將真實服務器的IP地址添加到LVS設置。轉發的網絡包將被masked()。
查詢上述配置的LVS設置的狀態:
#ipvsadm -L -n
IP虛擬服務器版本1.0.8(size = 65536)
Prot LocalAddress:端口調度器標志
- > RemoteAddress:端口正向重量ActiveConn InActConn
TCP 192.168.0.1:80 rr
- > 172.16.0.2:80 Masq 1 3 1
- > 172.16.0.1:80 Masq 1 4 0
原創文章,作者:HGG,如若轉載,請注明出處:http://www.www58058.com/85252