當(dāng)前位置:
首頁 >
LVS配置指南
發(fā)布時(shí)間:2025/3/19
34
豆豆
Part I. 安裝配置ipvsadm
1>加載ip_vs模塊
[root@ssn ~]# modprobe ip_vs
[root@ssn ~]# lsmod | grep ip_vs
ip_vs????????????????? 77569? 0
[root@ssn ~]# cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
? -> RemoteAddress:Port Forward Weight ActiveConn InActConn
2>建立kernel-source目錄鏈接
[root@ssn src]# rpm -q kernel-devel
kernel-devel-2.6.18-8.el5
[root@ssn src]# ln -s /usr/src/kernels/2.6.18-8.el5-i686/ /usr/src/linux
3>安裝ipvsadm
[sense@ssn Desktop]$ tar xzvf ipvsadm-1.24.tar.gz
[sense@ssn Desktop]$ cd ipvsadm-1.24
[sense@ssn ipvsadm-1.24]$ make
[sense@ssn ipvsadm-1.24]$ sudo make install
5>三種IP負(fù)載均衡技術(shù)的優(yōu)缺點(diǎn)比較:
雜項(xiàng) VS/NAT VS/TUN VS/DR
服務(wù)器操作系統(tǒng) 任意 支持隧道 ?? 多數(shù)(支持Non-arp )
服務(wù)器網(wǎng)絡(luò) 私有網(wǎng)絡(luò) 局域網(wǎng)/廣域網(wǎng) 局域網(wǎng)
服務(wù)器數(shù)目(100M網(wǎng)絡(luò))????? 10-20 100 多(100)
服務(wù)器網(wǎng)關(guān) 負(fù)載均衡器 自己的路由 ?? 自己的路由
效率 一般 高 ?? 最高
Part II. LVS/NAT
1>director端配置
(1)開啟IP轉(zhuǎn)發(fā):
臨時(shí)開啟(立即生效):
[root@ssn src]# echo "1">/proc/sys/net/ipv4/ip_forward
永久開啟(重啟服務(wù)器或NETWROK服務(wù)后生效):
[root@ssn src]# vi /etc/sysctl.conf
--------------------------------------------
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
--------------------------------------------
[root@ssn src]# sysctl -p
(2)配置ipvsadm調(diào)度
[root@ssn src]# ipvsadm -C
[root@ssn src]# ipvsadm -A -t 192.168.1.90:80 -s wlc -p 120
[root@ssn src]# ipvsadm -a -t 192.168.1.90:80 -r 192.168.2.1:80 -m
[root@ssn src]# ipvsadm -a -t 192.168.1.90:80 -r 192.168.2.2:80 -m
[root@ssn src]# iptables -F
注:目前director端使用netfilter模塊會(huì)與LVS產(chǎn)生沖突,所以推薦直接關(guān)閉iptables。
2>client端配置
cluster1:
[root@cluster1 ~]# vi /etc/sysconfig/network
-------------------------------------------------
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=cluster1
GATEWAY=192.168.2.254
-------------------------------------------------
[root@cluster1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
-------------------------------------------------
DEVICE=eth0
BROADCAST=192.168.2.255
IPADDR=192.168.2.1
IPV6ADDR=
IPV6PREFIX=
NETMASK=255.255.255.0
NETWORK=192.168.2.0
ONBOOT=yes
-------------------------------------------------
cluster2:
[root@cluster2 ~]# vi /etc/sysconfig/network
-------------------------------------------------
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=cluster2
GATEWAY=192.168.2.254
-------------------------------------------------
[root@cluster2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
-------------------------------------------------
DEVICE=eth0
BROADCAST=192.168.2.255
IPADDR=192.168.2.2
IPV6ADDR=
IPV6PREFIX=
NETMASK=255.255.255.0
NETWORK=192.168.2.0
ONBOOT=yes
-------------------------------------------------
3>遠(yuǎn)程測試
[url]http://192.168.1.254/[/url]
4>問題說明
ip_vs模塊是實(shí)現(xiàn)基于內(nèi)核的流量調(diào)度,所以本地不會(huì)顯示相應(yīng)的監(jiān)控程序。
[root@ssn httpd-2.2.6]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address?????????????? Foreign Address???????????? State?????? PID/Program name? ?
tcp??????? 0????? 0 127.0.0.1:8000????????????? 0.0.0.0:*?????????????????? LISTEN????? 5321/nasd????????? ?
tcp??????? 0????? 0 0.0.0.0:873???????????????? 0.0.0.0:*?????????????????? LISTEN????? 6010/rsync???????? ?
tcp??????? 0????? 0 :::873????????????????????? :::*??????????????????????? LISTEN????? 6010/rsync??? ?
[root@ssn httpd-2.2.6]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
? -> RemoteAddress:Port?????????? Forward Weight ActiveConn InActConn
TCP? 192.168.1.90:http wlc
? -> 192.168.2.3:http???????????? Masq??? 1????? 0????????? 42?????? ?
? -> 192.168.2.2:http???????????? Masq??? 1????? 0????????? 44?????? ?
Part III. LVS/DR
1>director配置
root@ssn httpd-2.2.6]# vi /etc/sysctl.conf
------------------------------------------------
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.eth0.send_redirects = 1
------------------------------------------------
[root@ssn httpd-2.2.6]# sysctl -p
配置VIP:
[root@ssn httpd-2.2.6]# ip addr add 192.168.1.254 dev eth0
[root@ssn httpd-2.2.6]# ip route add 192.168.1.254/32 dev eth0
配置ipvsadm調(diào)度:
[root@ssn httpd-2.2.6]# ipvsadm -C
[root@ssn httpd-2.2.6]# ipvsadm -A -t 192.168.1.254:80 -s wlc -p 120
[root@ssn httpd-2.2.6]# ipvsadm -a -t 192.168.1.254:80 -r 192.168.1.92 -g
[root@ssn httpd-2.2.6]# ipvsadm -a -t 192.168.1.254:80 -r 192.168.1.93 -g
關(guān)閉防火墻:
[root@ssn src]# iptables -F
注:目前director端使用netfilter模塊會(huì)與LVS產(chǎn)生沖突,所以推薦直接關(guān)閉iptables。
2>realserver配置
cluster1:
[root@cluster1 ~]# vi /etc/sysctl.conf
----------------------------------------
net.ipv4.ip_forward = 0
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
----------------------------------------
[root@cluster1 ~]# sysctl? -p
配置VIP:
[root@cluster1 ~]# ip addr add 192.168.1.254 dev lo
[root@cluster1 ~]# ip route add 192.168.1.254/32 dev lo
本地IP:
[root@cluster1 ~]# vi /etc/sysconfig/network
-------------------------------------------------
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=cluster1
GATEWAY=192.168.1.1
-------------------------------------------------
[root@cluster1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
-------------------------------------------------
DEVICE=eth0
BROADCAST=192.168.1.255
IPADDR=192.168.1.91
IPV6ADDR=
IPV6PREFIX=
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
-------------------------------------------------
關(guān)閉iptables:
[root@cluster1 ~]# iptables -F
cluster2:
[root@cluster2 ~]# vi /etc/sysctl.conf
----------------------------------------
net.ipv4.ip_forward = 0
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
----------------------------------------
[root@cluster2 ~]# sysctl? -p
配置VIP:
[root@cluster2 ~]# ip addr add 192.168.1.254 dev lo
[root@cluster2 ~]# ip route add 192.168.1.254/32 dev lo
本地IP:
[root@cluster2 ~]# vi /etc/sysconfig/network
-------------------------------------------------
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=cluster2
GATEWAY=192.168.1.1
-------------------------------------------------
[root@cluster2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
-------------------------------------------------
DEVICE=eth0
BROADCAST=192.168.1.255
IPADDR=192.168.1.92
IPV6ADDR=
IPV6PREFIX=
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
-------------------------------------------------
關(guān)閉iptables:
[root@cluster1 ~]# iptables -F
3>遠(yuǎn)程測試
[url]http://192.168.1.254/[/url]
4>問題說明
LVS/DR中realserver也不能使用iptables,否則訪問測試不能成功。
[root@ssn httpd-2.2.6]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
? -> RemoteAddress:Port?????????? Forward Weight ActiveConn InActConn
TCP? 192.168.1.254:http wlc
? -> 192.168.1.91:http??????????? Route?? 1????? 0????????? 11?????? ?
? -> 192.168.1.92:http??????????? Route?? 1????? 1????????? 10?????? ?
Part III. LVS/TUN
Part IV. ipvsadm命令參數(shù)說明(引用)
ipvsadm -A -t 192.168.1.90:80 -s wlc -p 120
-A 增加一個(gè)虛擬服務(wù),該服務(wù)由協(xié)議、IP地址和端口號(hào)組成,例如:
-A -t 202.99.59.110:80 (增加一格虛擬服務(wù),其協(xié)議(-t表示tcp,-u表示udp)為TCP、IP為202.99.59.110、端口號(hào)為80。
-s 指定服務(wù)采用的算法,常用的算法參數(shù)如下:
??? * rr?? 輪叫(Round Robin)
????? 調(diào)度器通過"輪叫"調(diào)度算法將外部請求按順序輪流分配到集群中的真實(shí)服務(wù)器上,它均等地對待每一臺(tái)服務(wù) 器,而不管服務(wù)器上實(shí)際的連接數(shù)和系統(tǒng)負(fù)載。
??? * wrr?? 加權(quán)輪叫(Weighted Round Robin)
????? 調(diào)度器通過"加權(quán)輪叫"調(diào)度算法根據(jù)真實(shí)服務(wù)器的不同處理能力來調(diào)度訪問請求。這樣可以保證處理能力強(qiáng)的服務(wù)器處理更多的訪問流量。調(diào)度器可以自動(dòng)問詢真實(shí)服務(wù)器的負(fù)載情況,并動(dòng)態(tài)地調(diào)整其權(quán)值。
??? * lc?? 最少鏈接(Least Connections)
????? 調(diào)度器通過"最少連接"調(diào)度算法動(dòng)態(tài)地將網(wǎng)絡(luò)請求調(diào)度到已建立的鏈接數(shù)最少的服務(wù)器上。如果集群系統(tǒng)的真實(shí)服務(wù)器具有相近的系統(tǒng)性能,采用"最小連接"調(diào)度算法可以較好地均衡負(fù)載。
??? * wlc?? 加權(quán)最少鏈接(Weighted Least Connections)
????? 在集群系統(tǒng)中的服務(wù)器性能差異較大的情況下,調(diào)度器采用"加權(quán)最少鏈接"調(diào)度算法優(yōu)化負(fù)載均衡性能,具有較高權(quán)值的服務(wù)器將承受較大比例的活動(dòng)連接負(fù)載。調(diào)度器可以自動(dòng)問詢真實(shí)服務(wù)器的負(fù)載情況,并動(dòng)態(tài)地調(diào)整其權(quán)值。
??? * lblc?? 基于局部性的最少鏈接(Locality-Based Least Connections)
????? "基于局部性的最少鏈接" 調(diào)度算法是針對目標(biāo)IP地址的負(fù)載均衡,目前主要用于Cache集群系統(tǒng)。該算法根據(jù)請求的目標(biāo)IP地址找出該目標(biāo)IP地址最近使用的服務(wù)器,若該服務(wù)器是可用的且沒有超載,將請求發(fā)送到該服務(wù)器;若服務(wù)器不存在,或者該服務(wù)器超載且有服務(wù)器處于一半的工作負(fù)載,則用"最少鏈接"的原則選出一個(gè)可用的服務(wù)器,將請求發(fā)送到該服務(wù)器。
??? * lblcr?? 帶復(fù)制的基于局部性最少鏈接(Locality-Based Least Connections with Replication)
????? " 帶復(fù)制的基于局部性最少鏈接"調(diào)度算法也是針對目標(biāo)IP地址的負(fù)載均衡,目前主要用于Cache集群系統(tǒng)。它與LBLC算法的不同之處是它要維護(hù)從一個(gè)目標(biāo)IP地址到一組服務(wù)器的映射,而LBLC算法維護(hù)從一個(gè)目標(biāo)IP地址到一臺(tái)服務(wù)器的映射。該算法根據(jù)請求的目標(biāo)IP地址找出該目標(biāo)IP地址對應(yīng)的服務(wù)器組,按"最小連接"原則從服務(wù)器組中選出一臺(tái)服務(wù)器,若服務(wù)器沒有超載,將請求發(fā)送到該服務(wù)器,若服務(wù)器超載;則按"最小連接"原則從這個(gè)集群中選出一臺(tái)服務(wù)器,將該服務(wù)器加入到服務(wù)器組中,將請求發(fā)送到該服務(wù)器。同時(shí),當(dāng)該服務(wù)器組有一段時(shí)間沒有被修改,將最忙的服務(wù)器從服務(wù)器組中刪除,以降低復(fù)制的程度。
??? * dh?? 目標(biāo)地址散列(Destination Hashing)
????? "目標(biāo)地址散列"調(diào)度算法根據(jù)請求的目標(biāo)IP地址,作為散列鍵(Hash Key)從靜態(tài)分配的散列表找出對應(yīng)的服務(wù)器,若該服務(wù)器是可用的且未超載,將請求發(fā)送到該服務(wù)器,否則返回空。
??? * sh?? 源地址散列(Source Hashing)
????? "源地址散列"調(diào)度算法根據(jù)請求的源IP地址,作為散列鍵(Hash Key)從靜態(tài)分配的散列表找出對應(yīng)的服務(wù)器,若該服務(wù)器是可用的且未超載,將請求發(fā)送到該服務(wù)器,否則返回空。
-p 會(huì)話保持時(shí)間,定義流量被轉(zhuǎn)到同一個(gè)realserver的會(huì)話存留時(shí)間。
/sbin/ipvsadm -a -t 192.168.1.254:80 -r 192.168.1.12 -g -w 1 -p 100
-a 表示往一個(gè)服務(wù)內(nèi)增加一個(gè)real server
-r 指定real server的IP地址
-w 表示權(quán)重
-g 表示使用DR方式,-m表示NAT方式,-i表示tunneling方式。
更新中……
1>加載ip_vs模塊
[root@ssn ~]# modprobe ip_vs
[root@ssn ~]# lsmod | grep ip_vs
ip_vs????????????????? 77569? 0
[root@ssn ~]# cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
? -> RemoteAddress:Port Forward Weight ActiveConn InActConn
2>建立kernel-source目錄鏈接
[root@ssn src]# rpm -q kernel-devel
kernel-devel-2.6.18-8.el5
[root@ssn src]# ln -s /usr/src/kernels/2.6.18-8.el5-i686/ /usr/src/linux
3>安裝ipvsadm
[sense@ssn Desktop]$ tar xzvf ipvsadm-1.24.tar.gz
[sense@ssn Desktop]$ cd ipvsadm-1.24
[sense@ssn ipvsadm-1.24]$ make
[sense@ssn ipvsadm-1.24]$ sudo make install
5>三種IP負(fù)載均衡技術(shù)的優(yōu)缺點(diǎn)比較:
雜項(xiàng) VS/NAT VS/TUN VS/DR
服務(wù)器操作系統(tǒng) 任意 支持隧道 ?? 多數(shù)(支持Non-arp )
服務(wù)器網(wǎng)絡(luò) 私有網(wǎng)絡(luò) 局域網(wǎng)/廣域網(wǎng) 局域網(wǎng)
服務(wù)器數(shù)目(100M網(wǎng)絡(luò))????? 10-20 100 多(100)
服務(wù)器網(wǎng)關(guān) 負(fù)載均衡器 自己的路由 ?? 自己的路由
效率 一般 高 ?? 最高
Part II. LVS/NAT
1>director端配置
(1)開啟IP轉(zhuǎn)發(fā):
臨時(shí)開啟(立即生效):
[root@ssn src]# echo "1">/proc/sys/net/ipv4/ip_forward
永久開啟(重啟服務(wù)器或NETWROK服務(wù)后生效):
[root@ssn src]# vi /etc/sysctl.conf
--------------------------------------------
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
--------------------------------------------
[root@ssn src]# sysctl -p
(2)配置ipvsadm調(diào)度
[root@ssn src]# ipvsadm -C
[root@ssn src]# ipvsadm -A -t 192.168.1.90:80 -s wlc -p 120
[root@ssn src]# ipvsadm -a -t 192.168.1.90:80 -r 192.168.2.1:80 -m
[root@ssn src]# ipvsadm -a -t 192.168.1.90:80 -r 192.168.2.2:80 -m
[root@ssn src]# iptables -F
注:目前director端使用netfilter模塊會(huì)與LVS產(chǎn)生沖突,所以推薦直接關(guān)閉iptables。
2>client端配置
cluster1:
[root@cluster1 ~]# vi /etc/sysconfig/network
-------------------------------------------------
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=cluster1
GATEWAY=192.168.2.254
-------------------------------------------------
[root@cluster1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
-------------------------------------------------
DEVICE=eth0
BROADCAST=192.168.2.255
IPADDR=192.168.2.1
IPV6ADDR=
IPV6PREFIX=
NETMASK=255.255.255.0
NETWORK=192.168.2.0
ONBOOT=yes
-------------------------------------------------
cluster2:
[root@cluster2 ~]# vi /etc/sysconfig/network
-------------------------------------------------
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=cluster2
GATEWAY=192.168.2.254
-------------------------------------------------
[root@cluster2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
-------------------------------------------------
DEVICE=eth0
BROADCAST=192.168.2.255
IPADDR=192.168.2.2
IPV6ADDR=
IPV6PREFIX=
NETMASK=255.255.255.0
NETWORK=192.168.2.0
ONBOOT=yes
-------------------------------------------------
3>遠(yuǎn)程測試
[url]http://192.168.1.254/[/url]
4>問題說明
ip_vs模塊是實(shí)現(xiàn)基于內(nèi)核的流量調(diào)度,所以本地不會(huì)顯示相應(yīng)的監(jiān)控程序。
[root@ssn httpd-2.2.6]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address?????????????? Foreign Address???????????? State?????? PID/Program name? ?
tcp??????? 0????? 0 127.0.0.1:8000????????????? 0.0.0.0:*?????????????????? LISTEN????? 5321/nasd????????? ?
tcp??????? 0????? 0 0.0.0.0:873???????????????? 0.0.0.0:*?????????????????? LISTEN????? 6010/rsync???????? ?
tcp??????? 0????? 0 :::873????????????????????? :::*??????????????????????? LISTEN????? 6010/rsync??? ?
[root@ssn httpd-2.2.6]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
? -> RemoteAddress:Port?????????? Forward Weight ActiveConn InActConn
TCP? 192.168.1.90:http wlc
? -> 192.168.2.3:http???????????? Masq??? 1????? 0????????? 42?????? ?
? -> 192.168.2.2:http???????????? Masq??? 1????? 0????????? 44?????? ?
Part III. LVS/DR
1>director配置
root@ssn httpd-2.2.6]# vi /etc/sysctl.conf
------------------------------------------------
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.eth0.send_redirects = 1
------------------------------------------------
[root@ssn httpd-2.2.6]# sysctl -p
配置VIP:
[root@ssn httpd-2.2.6]# ip addr add 192.168.1.254 dev eth0
[root@ssn httpd-2.2.6]# ip route add 192.168.1.254/32 dev eth0
配置ipvsadm調(diào)度:
[root@ssn httpd-2.2.6]# ipvsadm -C
[root@ssn httpd-2.2.6]# ipvsadm -A -t 192.168.1.254:80 -s wlc -p 120
[root@ssn httpd-2.2.6]# ipvsadm -a -t 192.168.1.254:80 -r 192.168.1.92 -g
[root@ssn httpd-2.2.6]# ipvsadm -a -t 192.168.1.254:80 -r 192.168.1.93 -g
關(guān)閉防火墻:
[root@ssn src]# iptables -F
注:目前director端使用netfilter模塊會(huì)與LVS產(chǎn)生沖突,所以推薦直接關(guān)閉iptables。
2>realserver配置
cluster1:
[root@cluster1 ~]# vi /etc/sysctl.conf
----------------------------------------
net.ipv4.ip_forward = 0
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
----------------------------------------
[root@cluster1 ~]# sysctl? -p
配置VIP:
[root@cluster1 ~]# ip addr add 192.168.1.254 dev lo
[root@cluster1 ~]# ip route add 192.168.1.254/32 dev lo
本地IP:
[root@cluster1 ~]# vi /etc/sysconfig/network
-------------------------------------------------
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=cluster1
GATEWAY=192.168.1.1
-------------------------------------------------
[root@cluster1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
-------------------------------------------------
DEVICE=eth0
BROADCAST=192.168.1.255
IPADDR=192.168.1.91
IPV6ADDR=
IPV6PREFIX=
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
-------------------------------------------------
關(guān)閉iptables:
[root@cluster1 ~]# iptables -F
cluster2:
[root@cluster2 ~]# vi /etc/sysctl.conf
----------------------------------------
net.ipv4.ip_forward = 0
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
----------------------------------------
[root@cluster2 ~]# sysctl? -p
配置VIP:
[root@cluster2 ~]# ip addr add 192.168.1.254 dev lo
[root@cluster2 ~]# ip route add 192.168.1.254/32 dev lo
本地IP:
[root@cluster2 ~]# vi /etc/sysconfig/network
-------------------------------------------------
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=cluster2
GATEWAY=192.168.1.1
-------------------------------------------------
[root@cluster2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
-------------------------------------------------
DEVICE=eth0
BROADCAST=192.168.1.255
IPADDR=192.168.1.92
IPV6ADDR=
IPV6PREFIX=
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
-------------------------------------------------
關(guān)閉iptables:
[root@cluster1 ~]# iptables -F
3>遠(yuǎn)程測試
[url]http://192.168.1.254/[/url]
4>問題說明
LVS/DR中realserver也不能使用iptables,否則訪問測試不能成功。
[root@ssn httpd-2.2.6]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
? -> RemoteAddress:Port?????????? Forward Weight ActiveConn InActConn
TCP? 192.168.1.254:http wlc
? -> 192.168.1.91:http??????????? Route?? 1????? 0????????? 11?????? ?
? -> 192.168.1.92:http??????????? Route?? 1????? 1????????? 10?????? ?
Part III. LVS/TUN
Part IV. ipvsadm命令參數(shù)說明(引用)
ipvsadm -A -t 192.168.1.90:80 -s wlc -p 120
-A 增加一個(gè)虛擬服務(wù),該服務(wù)由協(xié)議、IP地址和端口號(hào)組成,例如:
-A -t 202.99.59.110:80 (增加一格虛擬服務(wù),其協(xié)議(-t表示tcp,-u表示udp)為TCP、IP為202.99.59.110、端口號(hào)為80。
-s 指定服務(wù)采用的算法,常用的算法參數(shù)如下:
??? * rr?? 輪叫(Round Robin)
????? 調(diào)度器通過"輪叫"調(diào)度算法將外部請求按順序輪流分配到集群中的真實(shí)服務(wù)器上,它均等地對待每一臺(tái)服務(wù) 器,而不管服務(wù)器上實(shí)際的連接數(shù)和系統(tǒng)負(fù)載。
??? * wrr?? 加權(quán)輪叫(Weighted Round Robin)
????? 調(diào)度器通過"加權(quán)輪叫"調(diào)度算法根據(jù)真實(shí)服務(wù)器的不同處理能力來調(diào)度訪問請求。這樣可以保證處理能力強(qiáng)的服務(wù)器處理更多的訪問流量。調(diào)度器可以自動(dòng)問詢真實(shí)服務(wù)器的負(fù)載情況,并動(dòng)態(tài)地調(diào)整其權(quán)值。
??? * lc?? 最少鏈接(Least Connections)
????? 調(diào)度器通過"最少連接"調(diào)度算法動(dòng)態(tài)地將網(wǎng)絡(luò)請求調(diào)度到已建立的鏈接數(shù)最少的服務(wù)器上。如果集群系統(tǒng)的真實(shí)服務(wù)器具有相近的系統(tǒng)性能,采用"最小連接"調(diào)度算法可以較好地均衡負(fù)載。
??? * wlc?? 加權(quán)最少鏈接(Weighted Least Connections)
????? 在集群系統(tǒng)中的服務(wù)器性能差異較大的情況下,調(diào)度器采用"加權(quán)最少鏈接"調(diào)度算法優(yōu)化負(fù)載均衡性能,具有較高權(quán)值的服務(wù)器將承受較大比例的活動(dòng)連接負(fù)載。調(diào)度器可以自動(dòng)問詢真實(shí)服務(wù)器的負(fù)載情況,并動(dòng)態(tài)地調(diào)整其權(quán)值。
??? * lblc?? 基于局部性的最少鏈接(Locality-Based Least Connections)
????? "基于局部性的最少鏈接" 調(diào)度算法是針對目標(biāo)IP地址的負(fù)載均衡,目前主要用于Cache集群系統(tǒng)。該算法根據(jù)請求的目標(biāo)IP地址找出該目標(biāo)IP地址最近使用的服務(wù)器,若該服務(wù)器是可用的且沒有超載,將請求發(fā)送到該服務(wù)器;若服務(wù)器不存在,或者該服務(wù)器超載且有服務(wù)器處于一半的工作負(fù)載,則用"最少鏈接"的原則選出一個(gè)可用的服務(wù)器,將請求發(fā)送到該服務(wù)器。
??? * lblcr?? 帶復(fù)制的基于局部性最少鏈接(Locality-Based Least Connections with Replication)
????? " 帶復(fù)制的基于局部性最少鏈接"調(diào)度算法也是針對目標(biāo)IP地址的負(fù)載均衡,目前主要用于Cache集群系統(tǒng)。它與LBLC算法的不同之處是它要維護(hù)從一個(gè)目標(biāo)IP地址到一組服務(wù)器的映射,而LBLC算法維護(hù)從一個(gè)目標(biāo)IP地址到一臺(tái)服務(wù)器的映射。該算法根據(jù)請求的目標(biāo)IP地址找出該目標(biāo)IP地址對應(yīng)的服務(wù)器組,按"最小連接"原則從服務(wù)器組中選出一臺(tái)服務(wù)器,若服務(wù)器沒有超載,將請求發(fā)送到該服務(wù)器,若服務(wù)器超載;則按"最小連接"原則從這個(gè)集群中選出一臺(tái)服務(wù)器,將該服務(wù)器加入到服務(wù)器組中,將請求發(fā)送到該服務(wù)器。同時(shí),當(dāng)該服務(wù)器組有一段時(shí)間沒有被修改,將最忙的服務(wù)器從服務(wù)器組中刪除,以降低復(fù)制的程度。
??? * dh?? 目標(biāo)地址散列(Destination Hashing)
????? "目標(biāo)地址散列"調(diào)度算法根據(jù)請求的目標(biāo)IP地址,作為散列鍵(Hash Key)從靜態(tài)分配的散列表找出對應(yīng)的服務(wù)器,若該服務(wù)器是可用的且未超載,將請求發(fā)送到該服務(wù)器,否則返回空。
??? * sh?? 源地址散列(Source Hashing)
????? "源地址散列"調(diào)度算法根據(jù)請求的源IP地址,作為散列鍵(Hash Key)從靜態(tài)分配的散列表找出對應(yīng)的服務(wù)器,若該服務(wù)器是可用的且未超載,將請求發(fā)送到該服務(wù)器,否則返回空。
-p 會(huì)話保持時(shí)間,定義流量被轉(zhuǎn)到同一個(gè)realserver的會(huì)話存留時(shí)間。
/sbin/ipvsadm -a -t 192.168.1.254:80 -r 192.168.1.12 -g -w 1 -p 100
-a 表示往一個(gè)服務(wù)內(nèi)增加一個(gè)real server
-r 指定real server的IP地址
-w 表示權(quán)重
-g 表示使用DR方式,-m表示NAT方式,-i表示tunneling方式。
更新中……
轉(zhuǎn)載于:https://blog.51cto.com/sense5/55297
總結(jié)
- 上一篇: asp.net三层结构
- 下一篇: 使用REVERSE INDEX改善大规模