LVS實現負載均衡集羣 及ipvs的使用

1、集羣類型
html

一、LB:Load Balancing Cluster 負載均衡集羣
前端

二、HA: High Availiabty Cluster 高可用集羣
node

三、HP: High Perfomance Cluster 高性能集羣mysql

2、負載均衡器nginx

負載均衡器(調度器)是一種採用各類分配算法把網絡請求分散到一個服務器集羣中的可用服務器上去,經過管理進入的Web數據流量和增長有效的網絡帶寬,從而使網絡訪問者得到儘量最佳的聯網體驗的硬件設備。 算法

一、負載均衡器的工做層次:sql

1)工做於tcp/udp層實現底層協議的負載均衡,請求在內核中實現轉發;
數據庫

2)工做於應用層,支持特定的應用協議實現應用層的負載均衡,請求在用戶空間中。
apache

注:工做於tcp/udp層的性能要比工做於應用層的負載均衡器的好得多,若請求數量沒超過應用層負載均衡器的容量,應使用應用層的負載均衡器,它能直接於前端更好的解決請求。vim

二、http/https協議層的負載均衡器

1)tcp/udp層:lvs,haproxy

2) 應用層:apache,nginx,haproxy,lighttpd,varnish,squid

三、mysql協議層的負載均衡器

1)tcp/udp層:lvs

2)應用層:mysql-proxy,amoeba,haproxy,數據庫專用鏈接池能實現讀寫分離。

3、LVS的工做原理

LVS集羣採用IP負載均衡技術和基於內容請求分發技術。調度器具備很好的吞吐率,將請求均衡地轉移到不一樣的服務器上執行,且調度器自動屏蔽掉服務器的故障,從而將一組服務器構成一個高性能的、高可用的虛擬服務器。

其工做機制相似於netfilter(網絡信息報文過濾器),所以,ipvsadm機制與iptables機制不能同時使用,二者都具備鏈接追蹤功能。

ipvsadm/ipvs --> iptables/netfilter

4、LVS的調度算法

一、靜態調度算法(fixed method)

1)rr(Round Robin):輪調,輪叫

調度器經過「輪叫」調度算法將外部請求按順序輪流分配到集羣中的真實服務器上,它均等地對待每一臺服務器,而無論服務器上實際的鏈接數和系統負載。

2)wrr (Weighted Round Robin):加權輪叫

調度器經過「加權輪叫」調度算法根據真實服務器的不一樣處理能力來調度訪問請求。這樣能夠保證處理能力強的服務器能處理更多的訪問流量。調度器能夠自動問詢真實服務器的負載狀況,並動態地調整其權值。

3)sh (Source Hashing):源地址哈希,鎖定請求的用戶

源地址散列」調度算法根據請求的源IP地址,做爲散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,不然返回空。

4)dh (Destination Hashing):目標地址哈希,鎖定realserver(響應請求的服務器)

目標地址散列」調度算法根據請求的目標IP地址,做爲散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,不然返回空。

二、動態調度算法(dynamic method)

1)lc (Least Connections):最少鏈接調度

調度器經過「最少鏈接」調度算法動態地將網絡請求調度到已創建的連接數最少的服務器上。若是集羣系統的真實服務器具備相近的系統性能,採用「最小鏈接」調度算法能夠較好地均衡負載。

2)wlc (Weighted Least Connections):加權最少鏈接調度

調度器採用「加權最少連接」調度算法優化負載均衡性能,具備較高權值的服務器將承受較大比例的活動鏈接負載。調度器能夠自動問詢真實服務器的負載狀況,並動態地調整其權值。

3)sed (Shortest Expected Delay Scheduling SED):最少指望延遲

基於wlc的算法,使用sed算法計算最少的延遲進行請求分配。

4)nq (Never Queue Scheduling NQ):最少隊列調度

無需隊列。若是有臺 realserver的鏈接數=0就直接分配過去,不須要在進行sed運算。

5)lblc (Locality-Based Least Connections):基於本地的最少鏈接

6)lblcr (Locality-Based Least Connections with Replication):帶複製的基於本地的最少鏈接。

5、LVS的工做類型架構

一、NAT模型 :調度器只負責從後端的realserver中挑選一個響應用戶請求;用戶請求與響應報文都必須通過Director Server,調度器的處理能力將成爲瓶頸,不適用於併發場景高的服務,適用於服務器較少的場景。

NAT模型的特性:

1)、RealServer應該使用私有IP地址;

2)、RealServer的網關應該指向DIP;

3)、RIP和DIP應該在同一個網段內;

4)、進出的報文都得通過Directory,在高負載下,

Directory會成爲系統性能瓶頸;

5)、支持端口映射;

6)、RealServer可使用任意OS;

二、DR模型 :用直接路由技術實現用戶請求調度和報文響應;realserver的網關必定不能指向DIP,調度器經過改寫請求報文的MAC地址,將請求發送給realserver,而響應報文由realserver經過路由直接響應給用戶;DR模型適用於高併發場景的服務。

DR模型的特性:

1)、RealServer可使用私有地址;

2)、RealServer的網關必定不能指向DIP;

3)、RealServer和Director要在同一物理網絡內;DIP和RIP應該在同一網段,能夠不在同一網段;

4)、入站報文通過Directory,出站則由RealServer直接響應Client;

5)、不能作端口映射;

6)、RealServer能夠爲大多數常見OS;

注:DR模型中禁止realserver上的VIP直接跟前端路由通訊的三種方案:

1)、修改路由,使用靜態ARP;

2)、在RS上使用arptables,禁止響應對VIP的ARP廣播請求;

3)、在RS上修改其內核參數,並向VIP配置在與RIP不一樣的接口的別名上;

三、TUN模型 :經過IP隧道技術實現虛擬服務,其處理請求和響應報文與DR模型處理方式相同,因爲調度器只處理用戶的請求,從而使集羣系統的吞吐量大大提升,適用於高併發場景的服務。

TUN模型的特性:

1)、RIP、DIP不能是私有地址;

2)、RealServer的網關不能指向DIP;

3)、入站報文通過Directory,出站則由RealServer直接響應Client;

4)、不支持端口映射;

5)、支持IP tunneling的OS才能用於RealServer;

四、FULLNAT模型 :徹底地址轉換和NAT模型不一樣之處在FULLNAT除了作DNAT,還作SNAT,從而實現LVS-RealServer 間能夠跨vlan,realserver只須要鏈接到內網。

6、ipvs/ipvsadm的應用詳解

一、ipvsadm的安裝

[root@xz ~]# yum -y install ipvsadm
[root@xz ~]# man ipvsadm

二、ipvs的相關命令選項


SYNOPSIS
       ipvsadm -A|E -t|u|f service-address [-s scheduler]
               [-p [timeout]] [-O] [-M netmask]
## 定義、編輯一個集羣服務 -A:新增,-E:編輯, -t|u|f: tcp|udp|firewall 指定集羣服務的地址,-s:指定調度算法,-p:持久鏈接時長
       ipvsadm -D -t|u|f service-address
## 刪除集羣服務
       ipvsadm -C
## 清空所定義的規則
       ipvsadm -R
## 恢復所定義的規則
       ipvsadm -S [-n]
## 保存所定義的規則
       ipvsadm -a|e -t|u|f service-address -r server-address
               [-g|i|m] [-w weight] [-x upper] [-y lower]
## 添加、管理realserver,-a|e:向一個集羣服務中添加|編輯一個realserver,-t|u|f service-address:指定須要添加realserver的集羣地址,
-r server-address:指定realserver的地址 IP:[port],-g|i|m:指定LVS的類型,-g:DR模型、-i:TUN模型、-m:NAT模型,-w :指定權重
       ipvsadm -d -t|u|f service-address -r server-address
## 刪除集羣中的realserver
       ipvsadm -L|l [options]
## 查看集羣和realserver的定義、選項參數
       ipvsadm -Z [-t|u|f service-address]
## 清空計數器
       ipvsadm --set tcp tcpfin udp
       ipvsadm --start-daemon state [--mcast-interface interface]
               [--syncid syncid]
       ipvsadm --stop-daemon state
       ipvsadm -h

三、集羣服務管理

1)添加一個集羣服務

[root@xz ~]# ipvsadm -A -t 172.16.20.5:80 -s rr

2)在集羣服務中定義realserver,查看定義的realserver並保存


[root@xz ~]# ipvsadm -a -t 172.16.20.5:80 -r 172.16.200.8 -m
[root@xz ~]# ipvsadm -a -t 172.16.20.5:80 -r 172.16.200.9 -m
[root@xz ~]# ipvsadm -l -n --stats
[root@xz ~]# service ipvsadm save

3)刪除集羣服務中的realserver,及刪除集羣服務。

[root@xz ~]# ipvsadm -d -t 172.16.20.5:80 -r 172.16.200.8
[root@xz ~]# ipvsadm -D -t 172.16.20.5
[root@xz ~]# ipvsadm -l -n


7、ipvs實現LVS的NAT模型

NAT模型拓撲圖

153625398.jpg

一、準備三個節點。

節點xz:172.16.20.5 作LVS的調度器;DIP:192.168.200.254,VIP:172.16.20.3

節點node1: 192.168.200.7 作LVS集羣中的realserver1

節點node2: 192.168.200.9 作LVS集羣中的realserver2

注:並在節點node1,node2上禁用NetworkManager,啓用network

110325751.jpg

110326126.jpg



二、修改節點node一、node2的網卡鏈接模式(Network Connection:VMnet2),靜態配置兩個節點的IP併爲他們添加指向xz的DIP的網關。

110359577.jpg

110359921.jpg

node1的RIP配置

110507340.jpg

node2的RIP配置

110548992.jpg

查看爲兩個realserver添加的網關

111255629.jpg

111256770.jpg

三、節點xz在第二塊網卡上啓用DIP:192.168.200.254且將第二塊網卡的鏈接模式修改爲和兩個realserver的模式同樣,併爲兩個realserver節點提供http的訪問頁面。

[root@xz ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
BOOTPROTO="static"
IPADDR=192.168.200.254
GATEWAY=192.168.0.1
ONBOOT="yes"
.........
[root@xz ~]# ifconfig
.........
eth1      Link encap:Ethernet  HWaddr 00:0C:29:73:32:87
          inet addr:192.168.200.254  Bcast:192.168.200.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe73:3287/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:26 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1024 (1024.0 b)  TX bytes:1852 (1.8 KiB)

爲兩個realserver提供http訪問頁面

111348235.jpg

111349444.jpg

111349452.jpg

111349819.jpg

四、於節點xz上ping通node一、node2,啓動兩個realserver的httpd服務並在命令行訪問兩個realserver的http頁面。

ping通node1節點

[root@xz ~]# ping 192.168.200.7
PING 192.168.200.7 (192.168.200.7) 56(84) bytes of data.
64 bytes from 192.168.200.7: icmp_seq=1 ttl=64 time=2.16 ms
64 bytes from 192.168.200.7: icmp_seq=2 ttl=64 time=0.371 ms
^C
--- 192.168.200.7 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1825ms
rtt min/avg/max/mdev = 0.371/1.267/2.164/0.897 ms

ping通node2節點

[root@xz ~]# ping 192.168.200.9
PING 192.168.200.9 (192.168.200.9) 56(84) bytes of data.
64 bytes from 192.168.200.9: icmp_seq=1 ttl=64 time=1.12 ms
64 bytes from 192.168.200.9: icmp_seq=2 ttl=64 time=0.379 ms
^C
--- 192.168.200.9 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1769ms
rtt min/avg/max/mdev = 0.379/0.752/1.125/0.373 ms

在節點xz上訪問兩個realserver的http的頁面

[root@xz ~]# curl -I http://192.168.200.7
HTTP/1.1 200 OK
Date: Sat, 14 Sep 2013 04:33:31 GMT
Server: Apache/2.2.15 (CentOS)
Last-Modified: Sat, 14 Sep 2013 03:27:07 GMT
ETag: "c0103-24-4e64f8bba6c96"
Accept-Ranges: bytes
Content-Length: 36
Connection: close
Content-Type: text/html; charset=UTF-8

[root@xz ~]# curl -I http://192.168.200.9
HTTP/1.1 200 OK
Date: Tue, 24 Sep 2013 02:08:59 GMT
Server: Apache/2.2.15 (CentOS)
Last-Modified: Mon, 23 Sep 2013 22:47:27 GMT
ETag: "e0101-24-4e714cdfb017d"
Accept-Ranges: bytes
Content-Length: 36
Connection: close
Content-Type: text/html; charset=UTF-8

五、NAT模型準備好以後,配置xz調度器上的VIP,並確保物理機可以與VIP通訊。

[root@xz ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0:1
DEVICE=eth0:1
BOOTPROTO=static
ONBOOT=yes
IPADDR=172.16.20.3
NETMASK=255.255.0.0
GATEWAY=172.16.0.1
TYPE=Ethernet"

[root@xz ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0:1
DEVICE="eth0:1"
BOOTPROTO="static"
ONBOOT="yes"
IPADDR=172.16.20.3
NETMASK=255.255.0.0
GATEWAY=172.16.0.1
TYPE="Ethernet"

確保物理機能與VIP通訊

113953829.jpg

六、在xz負載均衡器上定義LVS的NAT模型的集羣服務,並添加node一、node2的realserver。

[root@xz ~]# ipvsadm -A -t 172.16.20.3:80 -s rr
[root@xz ~]# ipvsadm -a -t 172.16.20.3:80 -r 192.168.200.7 -m
[root@xz ~]# ipvsadm -a -t 172.16.20.3:80 -r 192.168.200.9 -m
[root@xz ~]# ipvsadm -l -n --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  172.16.20.3:80                      0        0        0        0        0
  -> 192.168.200.7:80                    0        0        0        0        0
  -> 192.168.200.9:80                    0        0        0        0        0


七、在節點xz上打開ipv4的網絡轉發功能,並訪問VIP的http頁面,查看ipvs規則信息。

[root@xz ~]# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
[root@xz ~]# ab -c 10 -n 100 http://172.16.20.3/index.html
[root@xz ~]# watch   'ipvsadm -l -n --stats'
Every 2.0s: ipvsadm -l -n --stats                                            Thu Sep 12 09:31:38 2013
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  172.16.20.3:80                    292     1443     1424   119297   157846
  -> 192.168.200.7:80                  146   721  711    59536    79200
  -> 192.168.200.9:80                  146   722  713    59761    78646

150116465.jpg

150116847.jpg



八、將調度器算法由rr改成wrr,清空計數器後再查看ipvs規則信息,保存ipvs規則。

[root@xz ~]# ipvsadm -E -t 172.16.20.3:80 -s wrr
[root@xz ~]# ipvsadm -e -t 172.16.20.3:80 -r 192.168.200.9 -m -w 2
[root@xz ~]# ipvsadm -l -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.20.3:80 wrr
  -> 192.168.200.7:80             Masq    1      0          0    
  -> 192.168.200.9:80             Masq    2      0          0

清空計數器,用ab命令對VIP的httpd頁面進行壓測

[root@xz ~]# ipvsadm -Z
[root@xz ~]# ab -c 10 -n 100 http://172.16.20.3/index.html
[root@xz ~]# watch   'ipvsadm -l -n --stats'

8、ipvs實現LVS的DR模型

DR模型拓撲圖

202333544.jpg

注:DR模型中請求報文通過調度器改變的只是其MAC地址,各個幾點的VIP要保持一致,且保證各個realserverVIP禁止跟前端路由通訊。

一、準備三個節點

基於NAT模型的三個節點xz,node1,node2,禁用xz節點的第二塊網卡eth1。

調度器:節點xz,DIP:172.16.200.5,VIP:172.16.200.6

realserver: 節點node1,RIP:172.16.200.7,VIP:172.16.200.6

節點node2,RIP:172.16.200.9,VIP:172.16.200.6

[root@xz ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
BOOTPROTO="static"
IPADDR=192.168.200.254
GATEWAY=192.168.0.1
ONBOOT="no"
[root@xz ~]# chkconfig --list NetworkManager
NetworkManager  0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@xz ~]# service network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down interface eth1:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:                                [  OK  ]
[root@xz ~]# ifconfig

二、配置xz的DIP以及realserver的RIP,將三個節點的網卡模式改成橋接,禁用NetworkManager並啓用network。

175901816.jpg

配置xz的DIP

175930498.jpg

[root@xz ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:73:32:7D
          inet addr:172.16.200.5  Bcast:172.16.255.255  Mask:255.255.0.0
          inet6 addr: fe80::20c:29ff:fe73:327d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2383 errors:0 dropped:0 overruns:0 frame:0
          TX packets:531 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:212117 (207.1 KiB)  TX bytes:65562 (64.0 KiB)


配置realserver節點node1 的RIP

181032116.jpg

[root@node1 ~]# chkconfig --list NetworkManager
NetworkManager  0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@node1 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:44:20:EC
          inet addr:172.16.200.7  Bcast:172.16.255.255  Mask:255.255.0.0
........

配置realserver節點node2 的RIP

181507801.jpg

[root@node2 ~]# chkconfig --list NetworkManager
NetworkManager  0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@node2 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:8E:72:15
          inet addr:172.16.200.9  Bcast:172.16.255.255  Mask:255.255.0.0
          inet6 addr: fe80::20c:29ff:fe8e:7215/64 Scope:Link
..........

三、在調度器節點xz上ping通realserver的兩個節點node1與node2,並訪兩個節點的http頁面。

[root@xz ~]# ping 172.16.200.7
PING 172.16.200.7 (172.16.200.7) 56(84) bytes of data.
64 bytes from 172.16.200.7: icmp_seq=1 ttl=64 time=2.37 ms
64 bytes from 172.16.200.7: icmp_seq=2 ttl=64 time=0.372 ms
^C
--- 172.16.200.7 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1895ms
rtt min/avg/max/mdev = 0.372/1.371/2.371/1.000 ms
[root@xz ~]# ping 172.16.200.9
PING 172.16.200.9 (172.16.200.9) 56(84) bytes of data.
64 bytes from 172.16.200.9: icmp_seq=1 ttl=64 time=6.18 ms
64 bytes from 172.16.200.9: icmp_seq=2 ttl=64 time=0.378 ms
^C
--- 172.16.200.9 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1560ms
rtt min/avg/max/mdev = 0.378/3.280/6.182/2.902 ms
........
[root@xz ~]# curl http://172.16.200.7
<h1>Realserver Node1 it works</h1>
[root@xz ~]# curl http://172.16.200.9
<h1>Realserver Node2 it works</h1>

四、在realserver上配置內核參數來禁止realserver上的VIP直接跟前端路由通訊,並配置realserver的VIP。

注:先配置內核參數,再配置realserver的VIP,VIP配置於lo接口上。

1)配置內核參數

[root@node1 ~]# vim /var/www/html/index.html
[root@node1 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@node1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@node1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@node1 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@node1 ~]# ls /proc/sys/net/ipv4/conf/
all  default  eth0  lo

2)配置node1節點的VIP,並與物理機上測試是否已經隔離

[root@node1 ~]# ifconfig lo:1 172.16.200.6 broadcast 172.16.200.6 netmask 255.255.255.255 up
[root@node1 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:44:20:EC
          inet addr:172.16.200.7  Bcast:172.16.255.255  Mask:255.255.0.0
.............
lo:1      Link encap:Local Loopback
          inet addr:172.16.200.6  Mask:255.255.255.255
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
[root@node1 ~]# route add -host 172.16.200.6 dev lo:1
[root@node1 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.200.6    0.0.0.0         255.255.255.255 UH    0      0        0 lo
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
172.16.0.0      0.0.0.0         255.255.0.0     U     0      0        0 eth0
0.0.0.0         172.16.0.1      0.0.0.0         UG    0      0        0 eth0

183546705.jpg

3)node2節點的配置同node1

[root@node2 ~]# ifconfig lo:1 172.16.200.6 broadcast 172.16.200.6 netmask 255.255.255.255 up
[root@node2 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:8E:72:15
          inet addr:172.16.200.9  Bcast:172.16.255.255  Mask:255.255.0.0
..........
lo:1      Link encap:Local Loopback
          inet addr:172.16.200.6  Mask:255.255.255.255
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
[root@node2 ~]# route add -host 172.16.200.6 dev lo:1
[root@node2 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.200.6   0.0.0.0         255.255.255.255 UH    0      0        0 lo
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
172.16.0.0      0.0.0.0         255.255.0.0     U     0      0        0 eth0
0.0.0.0         172.16.0.1      0.0.0.0         UG    0      0        0 eth0

五、在調度器節點xz上配置VIP,VIP配置在外網eth接口上。
1)清除ipvs上的全部規則,並配置節點xz的VIP

[root@xz ~]# ipvsadm -C
[root@xz ~]# ipvsadm -l -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
[root@xz ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination      
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination      
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
[root@xz ~]# ifconfig eth0:1 172.16.200.6 broadcast 172.16.200.6 netmask 255.255.255.255 up
[root@xz ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:73:32:7D
          inet addr:172.16.200.5  Bcast:172.16.255.255  Mask:255.255.0.0
          inet6 addr: fe80::20c:29ff:fe73:327d/64 Scope:Link
...................
eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:73:32:7D
          inet addr:172.16.200.6  Bcast:172.16.200.6  Mask:255.255.255.255
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

2)確保物理機能與VIP通訊

203704114.jpg

六、使用ipvsadm添加集羣服務及定義realserver。

[root@xz ~]# ipvsadm -A -t 172.16.200.6:80 -s wrr
[root@xz ~]# ipvsadm -a -t 172.16.200.6:80 -r 172.16.200.7 -g -w 2
[root@xz ~]# ipvsadm -a -t 172.16.200.6:80 -r 172.16.200.9 -g -w 1
[root@xz ~]# ipvsadm -l -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.200.6:80 wrr
  -> 172.16.200.7:80              Route   2      0          0      
  -> 172.16.200.9:80              Route   1      0          0

七、訪問VIP的http,查看ipvs規則信息。

202804776.jpg

202805141.jpg

[root@xz ~]# ipvsadm -L -n --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  172.16.200.6:80                   145      671        0    59945        0
  -> 172.16.200.7:80                    97      449        0    40064        0
  -> 172.16.200.9:80                    48      222        0    19881        0


八、使用不一樣的LVS調度算法,並繼續查看ipvs規則信息。

[root@xz ~]# ipvsadm -E -t 172.16.200.6:80 -s wlc
[root@xz ~]# ipvsadm -l -n --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  172.16.200.6:80                   191      903        0    89293        0
  -> 172.16.200.7:80                   122      576        0    55657        0
  -> 172.16.200.9:80                    69      327        0    33636        0
相關文章
相關標籤/搜索