Linux Cluster
LB(負載均衡叢集)
負載均衡叢集,通常有兩種實作方式,基于硬體或基于軟體。
基于硬體:BIP
基于軟體:
基于OSI第四層傳輸層:LVS(Linux Virtual Server)
基于OSI第期層傳輸層:nginx
1.LVS
1.1認識LVS
LVS,全稱Linux Virtual Server,由國人章文嵩博士提出并實作。
LVS有三種工作模式:DR直接路由模式、NAT位址轉換模式、TUN隧道模式
在實際環境中若是搭建負載均衡叢集直接使用DR模式。
2.基于LVS搭建 LB Linux Cluster
2.1 LVS的DR模式實作
2.1.1 實驗拓撲圖
2.1.2 實驗簡介
Director有一張網卡,與realserver連接配接在同一個交換機上,并能互相通信,配置一個網絡别名作為VIP,
在每個realserver上綁定一個虛拟網卡ip位址lo:0,該虛拟ip位址為director的ip位址,
用于realserver處理完director分給的使用者請求後,直接使用director的ip作為源ip傳回給使用者。
在綁定虛拟網卡ip前,需要先調整director的arptable(對arp請求的通告級别、回應級别調整)。
arp_ignore:隻對什麼級别的arp請求進行響應,當arp廣播請求的目标ip不在同一個接口上就不予響應。
預設為0,能通告就通告。
0:隻要本地配置的有相應位址,就給予響應;
1:僅在請求的目标位址配置請求到達的接口上的時候,才給予響應;
arp_announce:向外主動通告自己的通告級别。
預設為0,能通告就通告。
0:将本地任何接口上的任何位址向外通告;
1:試圖僅向目标網絡通告與其網絡比對的位址;
2:僅向與本地接口上位址比對的網絡進行通告
在realserver上配置一條獨特的路由條目,才能将處理好的使用者請求使用director的IP位址傳回結果給使用者
2.1.3 實驗準備
實體機上安裝virtualbox軟體上建立一台centos5.5,最小化安裝即可,作為Director。
桌面可裝可不裝,使用6.X,7.X也是可以的,這裡使用centos5.5是因為my computer才8G記憶體
virtualbox的虛拟媒體管理,複制2台剛才安裝好的centos5.5硬碟,明明為realserver1,realserver2
建立虛拟機作為realserver時,選擇存儲媒體選擇現有的磁盤,路徑指向剛才複制的centos5.5
2.1.4 實驗步驟
0).ipvs在2.6.X版本後的核心中預設安裝有,我們需要安裝ipvsadm進行管理,注意:ipvsadm與iptables不能同時使用,實驗前需關閉iptables與selinux
1).Director隻需一張網卡選擇橋接模式,啟動
2).為Director安裝ipvsadm
yum -y install ipvsadm
檢查是否安裝成功隻需輸入ipvsadm,無輸出則未安裝有,若已安裝則輸出如下字樣
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
3).配置測試網頁
為每台realserver安裝http,并啟動httpd服務
yum install http
service httpd start
echo "this is realserver1 test web" > /var/www/html/index.html
echo "this is realserver2 test web" > /var/www/html/index.html
echo "this is realserver3 test web" > /var/www/html/index.html
#分别建立測試頁
curl http://ipaddress #通路測試頁
4).配置director
配置VIP
配置網絡别名DIP
ifconfig eth0:0 192.168.8.30/24
5).配置realserver的RIP
realserver1:192.168.8.32
realserver2:192.168.8.33
6).分别配置realserver的arp_ignore、arp_announce
realserver1:
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
realserver2:
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
7).分别在realserver1、2上配置的網絡别名VIP與靜态路由
ifconfig lo:0 192.168.8.30 broadcast 192.168.8.30 netmask 255.255.255.255 up
route add -host 192.168.8.30 dev lo:0
在director上也需要配置靜态路由
route add -host 192.168.8.30 dev eth0:0
8).在director上測試能否正常通路realserver的測試頁
9).配置ipvsadm規則
在director上配置
[[email protected] ~]# ipvsadm -C #清空之前的ipvsadm規則
[[email protected] ~]# ipvsadm -A -t 192.168.8.30:80 -s wlc
[[email protected] ~]# ipvsadm -a -t 192.168.8.30:80 -r 192.168.8.32 -g -w 2 #-g表示DR模式 -w表示權重
[[email protected] ~]# ipvsadm -a -t 192.168.8.30:80 -r 192.168.8.33 -g -w 1
[[email protected] ~]# ipvsadm -l -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.8.30:80 wlc
-> 192.168.8.33:80 Route 1 0 0
-> 192.168.8.32:80 Route 2 0 0
10).測試
使用實體機的浏覽器輸入http://director的ip位址
不斷重新整理即可看到效果