為了更好的讓大家理解這份命令手冊,將手冊里面用到的幾個術(shù)語先簡單的介紹一下:
1、virtual-service-address:是指虛擬服務(wù)器的ip地址
2、real-service-address:是指真實服務(wù)器的ip 地址
3、scheduler:調(diào)度方法
ipvsadm 的用法和格式如下:
ipvsadm -A|E -t|u|f virutal-service-address:port [-s scheduler] [-p [timeout]] [-M netmask]
ipvsadm -D -t|u|f virtual-service-address
ipvsadm -C
ipvsadm -R
ipvsadm -S [-n]
ipvsadm -a|e -t|u|f service-address:port -r real-server-address:port [-g|i|m] [-w weight]
ipvsadm -d -t|u|f service-address -r server-address
ipvsadm -L|l [options]
ipvsadm -Z [-t|u|f service-address]
ipvsadm --set tcp tcpfin udp
ipvsadm --start-daemon state [--mcast-interface interface]
ipvsadm --stop-daemon
ipvsadm -h
命令選項解釋:
有兩種命令選項格式,長的和短的,具有相同的意思。在實際使用時,兩種都可以。
-A --add-service 在內(nèi)核的虛擬服務(wù)器表中添加一條新的虛擬服務(wù)器記錄。也就是增加一臺新的虛擬服務(wù)器。
-E --edit-service 編輯內(nèi)核虛擬服務(wù)器表中的一條虛擬服務(wù)器記錄。
-D --delete-service 刪除內(nèi)核虛擬服務(wù)器表中的一條虛擬服務(wù)器記錄。
-C --clear 清除內(nèi)核虛擬服務(wù)器表中的所有記錄。
-R --restore 恢復虛擬服務(wù)器規(guī)則
-S --save 保存虛擬服務(wù)器規(guī)則,輸出為-R 選項可讀的格式
-a --add-server 在內(nèi)核虛擬服務(wù)器表的一條記錄里添加一條新的真實服務(wù)器記錄。也就是在一個虛擬服務(wù)器中增加一臺新的真實服務(wù)器
-e --edit-server 編輯一條虛擬服務(wù)器記錄中的某條真實服務(wù)器記錄
-d --delete-server 刪除一條虛擬服務(wù)器記錄中的某條真實服務(wù)器記錄
-L|-l --list 顯示內(nèi)核虛擬服務(wù)器表
-Z --zero 虛擬服務(wù)表計數(shù)器清零(清空當前的連接數(shù)量等)
--set tcp tcpfin udp 設(shè)置連接超時值
--start-daemon 啟動同步守護進程。他后面可以是master 或backup,用來說明LVS Router 是master 或是backup。在這個功能上也可以采用keepalived 的VRRP 功能。
--stop-daemon 停止同步守護進程
-h --help 顯示幫助信息
其他的選項:
-t --tcp-service service-address 說明虛擬服務(wù)器提供的是tcp 的服務(wù)[vip:port] or [real-server-ip:port]
-u --udp-service service-address 說明虛擬服務(wù)器提供的是udp 的服務(wù)[vip:port] or [real-server-ip:port]
-f --fwmark-service fwmark 說明是經(jīng)過iptables 標記過的服務(wù)類型。
-s --scheduler scheduler 使用的調(diào)度算法,有這樣幾個選項 rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默認的調(diào)度算法是: wlc.
-p --persistent [timeout] 持久穩(wěn)固的服務(wù)。這個選項的意思是來自同一個客戶的多次請求,將被同一臺真實的服務(wù)器處理。timeout 的默認值為300 秒。
-M --netmask netmask persistent granularity mask
-r --real-server server-address 真實的服務(wù)器[Real-Server:port]
-g --gatewaying 指定LVS 的工作模式為直接路由模式(也是LVS 默認的模式)
-i --ipip 指定LVS 的工作模式為隧道模式
-m --masquerading 指定LVS 的工作模式為NAT 模式
-w --weight weight 真實服務(wù)器的權(quán)值
--mcast-interface interface 指定組播的同步接口
-c --connection 顯示LVS 目前的連接 如:ipvsadm -L -c
--timeout 顯示tcp tcpfin udp 的timeout 值 如:ipvsadm -L --timeout
--daemon 顯示同步守護進程狀態(tài)
--stats 顯示統(tǒng)計信息
--rate 顯示速率信息
--sort 對虛擬服務(wù)器和真實服務(wù)器排序輸出
--numeric -n 輸出IP 地址和端口的數(shù)字形式
LVS的三種包轉(zhuǎn)發(fā)方式
LVS提供了三種包轉(zhuǎn)發(fā)方式:NAT(網(wǎng)絡(luò)地址映射)、IP Tunneling(IP隧道)、Direct Routing(直接路由)。不同的轉(zhuǎn)發(fā)模式?jīng)Q定了不同的cluster的網(wǎng)絡(luò)結(jié)構(gòu),下面對三種轉(zhuǎn)發(fā)方式分別介始:
NAT(網(wǎng)絡(luò)地址映射)
NAT方式可支持任何的操作系統(tǒng),以及私有網(wǎng)絡(luò),并且只需一個Internet IP地址,但是整個系統(tǒng)的性能受到限制。因為執(zhí)行NAT每次需要重寫包,有一定的延遲;另外,大部分應用有80%的數(shù)據(jù)是從服務(wù)器流向客戶機,也就是用戶的請求非常短,而服務(wù)器的回應非常大,對負載均衡器形成很大壓力,成為了新的瓶頸。
IP Tunneling(IP隧道)
director分配請求到不同的real server。real server處理請求后直接回應給用戶,這樣director負載均衡器僅處理客戶機與服務(wù)器的一半連接。IP Tunneling技術(shù)極大地提高了director的調(diào)度處理能力,同時也極大地提高了系統(tǒng)能容納的最大節(jié)點數(shù),可以超過100個節(jié)點。real server可以在任何LAN或WAN上運行,這意味著允許地理上的分布,這在災難恢復中有重要意義。服務(wù)器必須擁有正式的IP地址用于與客戶機直接通信,并且所有服務(wù)器必須支持IP隧道協(xié)議。
Direct Routing(直接路由)
與IP Tunneling類似,負載均衡器僅處理一半的連接,避免了新的性能瓶頸,同樣增加了系統(tǒng)的可伸縮性。Direct Routing與IP Tunneling相比,沒有IP封裝的開銷,但由于采用物理層(修改MAC地址)技術(shù),所有服務(wù)器都必須在一個物理網(wǎng)段。
LVS的負載調(diào)度算法
在內(nèi)核中的連接調(diào)度算法上,IPVS已實現(xiàn)了以下八種調(diào)度算法:
一、輪叫調(diào)度(Round-Robin Scheduling) ----rr
輪叫調(diào)度(Round Robin Scheduling)算法就是以輪叫的方式依次將請求調(diào)度不同的服務(wù)器,即每次調(diào)度執(zhí)行i = (i + 1) mod n,并選出第i臺服務(wù)器。算法的優(yōu)點是其簡潔性,它無需記錄當前所有連接的狀態(tài),所以它是一種無狀態(tài)調(diào)度。
二、加權(quán)輪叫調(diào)度(Weighted Round-Robin Scheduling) ----wrr
加權(quán)輪叫調(diào)度(Weighted Round-Robin Scheduling)算法可以解決服務(wù)器間性能不一的情況,它用相應的權(quán)值表示服務(wù)器的處理性能,服務(wù)器的缺省權(quán)值為1。假設(shè)服務(wù)器A的權(quán)值為1,B的權(quán)值為2,則表示服務(wù)器B的處理性能是A的兩倍。加權(quán)輪叫調(diào)度算法是按權(quán)值的高低和輪叫方式分配請求到各服務(wù)器。權(quán)值高的服務(wù)器先收到的連接,權(quán)值高的服務(wù)器比權(quán)值低的服務(wù)器處理更多的連接,相同權(quán)值的服務(wù)器處理相同數(shù)目的連接數(shù)。
三、最小連接調(diào)度(Least-Connection Scheduling) ---lc
最小連接調(diào)度(Least-Connection Scheduling)算法是把新的連接請求分配到當前連接數(shù)最小的服務(wù)器。最小連接調(diào)度是一種動態(tài)調(diào)度算法,它通過服務(wù)器當前所活躍的連接數(shù)來估計服務(wù)器的負載情況。調(diào)度器需要記錄各個服務(wù)器已建立連接的數(shù)目,當一個請求被調(diào)度到某臺服務(wù)器,其連接數(shù)加1;當連接中止或超時,其連接數(shù)減一。
四、加權(quán)最小連接調(diào)度(Weighted Least-Connection Scheduling)---wlc
加權(quán)最小連接調(diào)度(Weighted Least-Connection Scheduling)算法是最小連接調(diào)度的超集,這個是ipvsadm的默認算法。各個服務(wù)器用相應的權(quán)值表示其處理性能。服務(wù)器的缺省權(quán)值為1,系統(tǒng)管理員可以動態(tài)地設(shè)置服務(wù)器的權(quán)值。加權(quán)最小連接調(diào)度在調(diào)度新連接時盡可能使服務(wù)器的已建立連接數(shù)和其權(quán)值成比例。
五、基于局部性的最少鏈接(Locality-Based Least Connections Scheduling) --lblc
基于局部性的最少鏈接調(diào)度(Locality-Based Least Connections Scheduling,以下簡稱為LBLC)算法是針對請求報文的目標IP地址的負載均衡調(diào)度,目前主要用于Cache集群系統(tǒng),因為在Cache集群中客戶請求報文的目標IP地址是變化的。這里假設(shè)任何后端服務(wù)器都可以處理任一請求,算法的設(shè)計目標是在服務(wù)器的負載基本平衡情況下,將相同目標IP地址的請求調(diào)度到同一臺服務(wù)器,來提高各臺服務(wù)器的訪問局部性和主存Cache命中率,從而整個集群系統(tǒng)的處理能力。LBLC調(diào)度算法先根據(jù)請求的目標IP地址找出該目標IP地址最近使用的服務(wù)器,若該服務(wù)器是可用的且沒有超載,將請求發(fā)送到該服務(wù)器;若服務(wù)器不存在,或者該服務(wù)器超載且有服務(wù)器處于其一半的工作負載,則用“最少鏈接”的原則選出一個可用的服務(wù)器,將請求發(fā)送到該服務(wù)器。
六、帶復制的基于局部性最少鏈接(Locality-Based Least Connections with Replication Scheduling)--lblcr
帶復制的基于局部性最少鏈接調(diào)度(Locality-Based Least Connections with Replication Scheduling,以下簡稱為LBLCR)算法也是針對目標IP地址的負載均衡,目前主要用于Cache集群系統(tǒng)。它與LBLC算法的不同之處是它要維護從一個目標IP地址到一組服務(wù)器的映射,而LBLC算法維護從一個目標IP地址到一臺服務(wù)器的映射。對于一個“熱門”站點的服務(wù)請求,一臺Cache 服務(wù)器可能會忙不過來處理這些請求。這時,LBLC調(diào)度算法會從所有的Cache服務(wù)器中按“最小連接”原則選出一臺Cache服務(wù)器,映射該“熱門”站點到這臺Cache服務(wù)器,很快這臺Cache服務(wù)器也會超載,就會重復上述過程選出新的Cache服務(wù)器。這樣,可能會導致該“熱門”站點的映像會出現(xiàn)在所有的Cache服務(wù)器上,降低了Cache服務(wù)器的使用效率。LBLCR調(diào)度算法將“熱門”站點映射到一組Cache服務(wù)器(服務(wù)器集合),當該“熱門”站點的請求負載增加時,會增加集合里的Cache服務(wù)器,來處理不斷增長的負載;當該“熱門”站點的請求負載降低時,會減少集合里的Cache服務(wù)器數(shù)目。這樣,該“熱門”站點的映像不太可能出現(xiàn)在所有的Cache服務(wù)器上,從而提供Cache集群系統(tǒng)的使用效率。LBLCR算法先根據(jù)請求的目標IP地址找出該目標IP地址對應的服務(wù)器組;按“最小連接”原則從該服務(wù)器組中選出一臺服務(wù)器,若服務(wù)器沒有超載,將請求發(fā)送到該服務(wù)器;若服務(wù)器超載;則按“最小連接”原則從整個集群中選出一臺服務(wù)器,將該服務(wù)器加入到服務(wù)器組中,將請求發(fā)送到該服務(wù)器。同時,當該服務(wù)器組有一段時間沒有被修改,將最忙的服務(wù)器從服務(wù)器組中刪除,以降低復制的程度。
七、目標地址散列調(diào)度(Destination Hashing Scheduling) ---dh
目標地址散列調(diào)度(Destination Hashing Scheduling)算法也是針對目標IP地址的負載均衡,但它是一種靜態(tài)映射算法,通過一個散列(Hash)函數(shù)將一個目標IP地址映射到一臺服務(wù)器。目標地址散列調(diào)度算法先根據(jù)請求的目標IP地址,作為散列鍵(Hash Key)從靜態(tài)分配的散列表找出對應的服務(wù)器,若該服務(wù)器是可用的且未超載,將請求發(fā)送到該服務(wù)器,否則返回空。
八、源地址散列調(diào)度(Source Hashing Scheduling)---sh
源地址散列調(diào)度(Source Hashing Scheduling)算法正好與目標地址散列調(diào)度算法相反,它根據(jù)請求的源IP地址,作為散列鍵(Hash Key)從靜態(tài)分配的散列表找出對應的服務(wù)器,若該服務(wù)器是可用的且未超載,將請求發(fā)送到該服務(wù)器,否則返回空。它采用的散列函數(shù)與目標地址散列調(diào)度算法的相同。它的算法流程與目標地址散列調(diào)度算法的基本相似,除了將請求的目標IP地址換成請求的源IP地址,所以這里不一一敘述。在實際應用中,源地址散列調(diào)度和目標地址散列調(diào)度可以結(jié)合使用在防火墻集群中,它們可以保證整個系統(tǒng)的唯一出入口。
應用例子:
由于LVS像iptable一樣是工作在內(nèi)核層,所以只需要安裝模塊ip_vs就可以了,并沒有后臺進程在跑。對應lvs主機三種方式分別用參數(shù)-m, -i, -g來實現(xiàn)。以下列舉幾種鏈接方式的配置方法:
1.NAT方式:
NAT配置方式最簡單,只需要在LVS主機上配置就可以了,如下例子:
聯(lián)系客服