realserver:也稱爲真實內部服務器,是真正在提供服務的;前端
VIP:對外公佈的IP,即客戶請求進來的IP地址;linux
DIP:調度器和realserver之間通訊的地址;web
yum -y install ipvsadm
配置內部私網地址,默認網關指向調度服務器算法
二、Directer配置要求 基本配置:服務器
調度服務器須要2塊網卡(一塊網卡對外,一塊網卡對內。1塊也能夠,配置子接口,對外的VIP和DIP都配置在同一網卡上,不過這樣會更加的下降調度器的性能,建議仍是雙網卡)網絡
關閉selinux和iptables,並打開包轉發功能:負載均衡
setenforce 0 service iptables stop
echo "1" > /proc/sys/net/ipv4/ip_forward
(爲了不沒必要要的麻煩,在每臺服務器上都關閉這2個服務)tcp
ipvsadm -A –t $VIP:$Port -s rr
解釋:-A表示添加一個集羣服務(能夠添加多個,好比添加一個web的80和一個https的443);性能
-t表示是tcp協議;優化
-s表示調度算法是輪詢(一共有10種調度算法,能夠按照本身實際須要選擇)
ipvsadm -a –t $VIP:$Port -r $DIP:$Port -m
解釋:-a表示添加一個realserver,後面跟上以前定義的集羣服務的地址端口,-r表示增長具體realserver的地址,-m表示模式爲NAT模式
一、Realserver配置要求 基本配置
首先先配置限制arp,否則等配置好地址後就產生地址衝突了,經過修改內核參數來實現。
在linux中 ,默認在接口上通告全部接口上IP的arp廣播,在接口上應答全部接口上IP的arp請求
arp_announce 限制arp通告
限制等級
0:在接口上通告全部接口上IP的arp廣播
1:對於其它設備的arp請求,在接口上儘可能限制廣播通告應答(不夠嚴格)
2:只通告本接口上IP的arp廣播
arp_ignore 限制arp應答
限制等級
0:對於其它設備 的arp請求,應答全部其它接口的上IP的arp應答
1:對於其它設備的arp請求,只應答本接口上IP的arp應答
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" > /proc/sys/net/ipv4/conf//lo/arp_announce echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
在realserver上的lo口配置VIP,這樣配置就限制了VIP不會在物理交換機上產生MAC地址表,從而避免IP衝突
ifconfig lo:1 $VIP broadcast $VIP netmask 255.255.255.255 ifconfig eth0 $DIP up
注意此VIP的接口的廣播地址仍然爲VIP,限制其廣播,子網掩碼是32位,下面調度器上的配置也注意此項
配置特殊路由,使目標爲VIP的包的以源地址爲VIP的lo口出去
route add –host $VIP dev lo:1
Directer配置要求
配置VIP和DIP,VIP配置在物理網卡的子接口上
ifconfig eth0 $DIP broadcast $VIP netmask 255.255.255.0 up ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up
配置特殊路由,目標是VIP的包從配置了VIP的物理子接口上出去
route add –host $VIP dev eth0:1
集羣配置
ipvsadm -A –t $VIP:$Port-s rr
解釋:-A表示添加一個集羣服務(這裏和NAT中的配置同樣)
ipvsadm -a –t $VIP:$Port -r $DIP:$Port-g
解釋:其它和NAT也差很少,在最後的模式改成-g,即DR模式
-s 指定服務採用的算法,經常使用的算法參數以下:
rr 輪叫(Round Robin)
調度器經過」輪叫」調度算法將外部請求按順序輪流分配到集羣中的真實服務器上,它均等地對待每一臺服務 器,而無論服務器上實際的鏈接數和系統負載。
wrr 加權輪叫(Weighted Round Robin)
調度器經過」加權輪叫」調度算法根據真實服務器的不一樣處理能力來調度訪問請求。這樣能夠保證處理能力強的服務器處理更多的訪問流量。調度器能夠自動問詢真實服務器的負載狀況,並動態地調整其權值。
lc 最少連接(Least Connections)
調度器經過」最少鏈接」調度算法動態地將網絡請求調度到已創建的連接數最少的服務器上。若是集羣系統的真實服務器具備相近的系統性能,採用」最小鏈接」調度算法能夠較好地均衡負載。
wlc 加權最少連接(Weighted Least Connections)
在集羣系統中的服務器性能差別較大的狀況下,調度器採用」加權最少連接」調度算法優化負載均衡性能,具備較高權值的服務器將承受較大比例的活動鏈接負載。調度器能夠自動問詢真實服務器的負載狀況,並動態地調整其權值。
lblc 基於局部性的最少連接(Locality-Based Least Connections)
「基於局部性的最少連接」調度算法是針對目標IP地址的負載均衡,目前主要用於Cache集羣系統。該算法根據請求的目標IP地址找出該目標IP地址最近使用的服務器,若該服務器是可用的且沒有超載,將請求發送到該服務器;若服務器不存在,或者該服務器超載且有服務器處於一半的工做負載,則用」最少連接」 的原則選出一個可用的服務器,將請求發送到該服務器。
lblcr 帶複製的基於局部性最少連接(Locality-Based Least Connections with Replication)
」帶複製的基於局部性最少連接」調度算法也是針對目標IP地址的負載均衡,目前主要用於Cache集羣系統。它與LBLC算法的不一樣之處是它要維護從一個目標IP地址到一組服務器的映射,而LBLC算法維護從一個目標IP地址到一臺服務器的映射。該算法根據請求的目標IP地址找出該目標IP地址對應的服務器組,按」最小鏈接」原則從服務器組中選出一臺服務器,若服務器沒有超載,將請求發送到該服務器,若服務器超載;則按」最小鏈接」原則從這個集羣中選出一臺服務器,將該服務器加入到服務器組中,將請求發送到該服務器。同時,當該服務器組有一段時間沒有被修改,將最忙的服務器從服務器組中刪除,以下降複製的程度。
dh 目標地址散列(Destination Hashing)
「目標地址散列」調度算法根據請求的目標IP地址,做爲散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,不然返回空。
sh 源地址散列(Source Hashing)「源地址散列」調度算法根據請求的源IP地址,做爲散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,不然返回空。