LVS項目從成立到現在為止,受到不少關注,LVS集群系統已被應用於很多重負載的站點。安裝LVS和配置LVS的工作比較繁雜,讀者在配置的過程中需要非常細心和耐心。本文對LVS的應用場景進行了簡單介紹,並著重介紹LVS的安裝和配置操作。 (http://os.51cto.com/art/201011/233146.htm)
LVS項目從成立到現在為止,受到不少關注,LVS集群系統已被應用於很多重負載的站點。到目前為止,該系統已在美、英、德、澳等國的幾十個站點上正式使用。目前,一些大型LVS應用實例如下:
英國國家JANET Cache Service(wwwcache.ja.net)是為英國150所以上的大學提供Web Cache服務。他們用28個結點的LVS集群代替了原有現50多台相互獨立的Cache服務器,用他們的話說現在速度就跟夏天一樣,因為夏天是放假期間沒有很多人使用網絡。
Linux的門戶站點(www.linux.com)用LVS將很多台VA Linux SMP服務器組成高性能的WEB服務,已使用將近一年。
SourceForge(sourceforge.net)是在全球范圍內為開發源碼項目提供WEB、FTP、Mailing List和CVS等服務,他們也使用LVS將負載調度到十幾台機器上。
世界上最大的PC制造商之一采用了兩個LVS集群系統,一個在美洲,一個在歐洲,用於網上直銷系統。
以RealPlayer提供音頻視頻服務而聞名的Real公司(www.real.com)使用由20台服務器組成的LVS集群,為其全球用戶提供音頻視頻服務。在2000年3月時,整個集群系統已收到平均每秒20,000個連接的請求流。
NetWalk(www.netwalk.com)用多台服務器構造LVS系統,提供1024個虛擬服務,其中本項目的一個美國鏡像站點(www.us.linuxvirtualserver.org)。
RedHat(www.redhat.com)從其6.1發行版起已經包含LVS代碼,他們開發了一個LVS集群管理工具叫Piranha,用於控制LVS集群,並提供了一個圖形化的配置界面。
VA Linux(www.valinux.com)向客戶提供基於LVS的服務器集群系統,並且提供相關的服務和支持。
安裝LVS
安裝LVS和配置LVS的工作比較繁雜,讀者在配置的過程中需要非常細心和耐心。在本節我們將對其進行詳細地介紹。主要包括如下幾個核心步驟:
1.獲取支持LVS的內核源代碼
如果讀者需要使用LVS,需要下載2.4.23以後版本的內核源代碼。下載地址為http://www.kerner.org。目前主流的Linux內核已經支持LVS,只需要直接使用,不需要進行內核的下載和更新工作。
2.用戶配置工具ipvsadm
該軟件的下載地址為:http://www.linuxvirtualserver.org/software/ipvs.html。
3.調整內核配置選項
讀者在內核配置時應該對下列必選項(用*號表示)進行檢查,如果某些選項的設置不正確,將有可能影響LVS的正常工作和使用。在查看這些選項之前,用戶需要使用make menuconfig命令,進入Networking options選項進行查看:
Networking options ---> <*> Packet socket <*> Netlink device emulation [*] TCP/IP networking [*] IP: advanced router [*] Network packet filtering (replaces ipchains) IP: Netfilter Configuration ---> <*> Connection tracking (required for masq/NAT) <*> IP tables support (required for filtering/masq/NAT) <*> Full NAT <*> MASQUERADE target support IP: Virtual Server Configuration ---> <*> virtual server support (EXPERIMENTAL) <M> IPVS connection table size (the Nth power of 2)--- IPVS scheduler <M> round-robin scheduling <M> weighted round-robin scheduling <M> least-connection scheduling <M> weighted least-connection scheduling <M> locality-based least-connection scheduling <M> locality-based least-connection with replication scheduling <M> destination hashing scheduling <M> shortest expected delay scheduling <M> never queue scheduling
配置和使用LVS
在安裝好LVS之後,就可以配置和使用LVS了,在本節我們將以一個具體的例子來對其進行講解。圖2為一個采用LVS系統的實際網絡拓撲圖。它基於NAT機制,具體的配置如下:
一台對外服務的超級服務器:它部署了LVS,也稱為balancer或者director,主要功能為負載均衡和任務調度,其外部IP地址為:210.77.132.8,內部IP地址為:172.168.10.8。外部用戶可以通過路由器(IP地址為:210.77.132.1)訪問它;
兩台內部的服務器:它們為實際的工作機器,通過前述的服務器對其進行調度。一台為RS1,其內部IP地址為:172.168.10.9;另一台為RS2,其內部IP地址為:172.168.10.10。
圖 采用LVS系統的實際網絡拓撲圖
根據上述的網路配置和拓撲,對LVS的配置如下:
1.配置LVS的超級服務器(稱為load balancer或者director)
運行如下命令:
//配置重定向 #echo "1" >/proc/sys/net/ipv4/ip_forward #echo "0" >/proc/sys/net/ipv4/conf/all/send_redirects #echo "0" >/proc/sys/net/ipv4/conf/default/send_redirects #echo "0" >/proc/sys/net/ipv4/conf/eth0/send_redirects #echo "0" >/proc/sys/net/ipv4/conf/eth1/send_redirects //清除ipvsadm表 #/sbin/ipvsadm -C //使用ipvsadm安裝LVS服務 #add http to VIP with rr scheduling #/sbin/ipvsadm -A -t 210.77.132.8:80 -s rr //增加第一台內部服務器RS1 #forward http to realserver 172.168.10.9 using LVS-NAT (-m), with weight=1 /sbin/ipvsadm -a -t 210.77.132.8:80 -r 172.168.10.9:80 -m -w 1 增加第二台內部服務器RS2 #forward http to realserver 172.168.10.10 using LVS-NAT (-m), with weight=1 /sbin/ipvsadm -a -t 210.77.132.8:80 -r 172.168.10.10:80 -m -w 1
2.配置LVS中的內部服務器
在172.168.10.9(RS1)和172.168.10.9(RS2)上分別將其網關設置為172.168.10.8,並分別啟動apache服務。在客戶端使用浏覽器多次訪問:http://210.77.132.8,然後再210.77.132.8上運行ipvsadm命令,應該有類似下面的輸出:
IP Virtual Server version 1.0.12 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 210.77.132.8:http rr -> 172.168.10.9:http Masq 1 0 33 -> 172.168.10.10:http Masq 1 0 33
從上面的結果可以看出,我們配置的LVS服務器已經成功運行。
本文出自 “卓越始於足下” 博客,請務必保留此出處http://patterson.blog.51cto.com/1060257/420557