lvs-dr實驗搭建 2012-04-19 18:00:59
分類: LINUX
環境:
lvs director: 10.57.220.198:80 Ubuntu 10.04 LTS vmware 虛擬機器
real server1 10.57.220.195:80 Ubuntu 11.10 nginx伺服器
real server2 10.57.220.20:80 Ubuntu 11.10 nginx伺服器
虛擬ip(vip):10.57.220.144
1、下載 ipvsadm
分別在3台機器上下載
apt-get install ipvsadm
2、ipvsadm設定
dpkg-reconfigure ipvsadm
第一個選no (automatically load ipvs rules on boot?)
第二個選none
3、配置指令碼
1)director指令碼
lvs-dr.sh
點擊(此處)摺疊或開啟
- #!/bin/bash
- echo "1" > /proc/sys/net/ipv4/ip_forward
- IPVSADM='/sbin/ipvsadm'
- VIP=10.57.220.144
- RS1=10.57.220.20
- RS2=10.57.220.195
- ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up
- route add -host $VIP dev eth0:1
- $IPVSADM -C /*清除虛擬伺服器資訊*/
- $IPVSADM -A -t $VIP:81 -s rr /*建立一條虛擬伺服器記錄,調度演算法為rr 參見http://www.it165.net/admin/html/201401/2248.html */
- $IPVSADM -a -t $VIP:81 -r $RS1:81 -g -w 1 /*給虛擬伺服器添加一台物理機*/
- $IPVSADM -a -t $VIP:81 -r $RS2:81 -g -w 1 /*給虛擬伺服器添加一台物理機*/
chmod 777 lvs-dr.sh
2)realserver指令碼
所有realserver相同
lvs-rs.sh
點擊(此處)摺疊或開啟
- #!/bin/bash
- #Description : RealServer
- #Write by:hugwww
- #Last Modefiy:2009.1.24
- VIP=10.57.220.144
- /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
- /sbin/route add -host $VIP dev lo:0
- echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore /*只回答目標IP地址是來訪網路介面本地地址的ARP查詢請求*/
- echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce /*對查詢目標使用最適當的本地地址.在此模式下將忽略這個IP資料包的源地址並嘗試選擇與能與該地址通訊的本地地址.首要是選擇所有的網路介面的子網中外出訪問子網中包含該目標IP地址的本地地址. 如果沒有合適的地址被發現,將選擇當前的發送網路介面或其他的有可能接受到該ARP回應的網路介面來進行發送*/
- echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
- echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
- sysctl -p
- #end
chmod 777 lvs-rs.sh
4、執行、測試
分別在三個機器上執行相應指令碼
注意事先啟動。nginx 伺服器
firfox訪問 10.57.220.144:81
可用ipvsadm -ln查看狀態
5、注意問題
防火牆要關閉,linux下是iptables
各伺服器 連接埠一致,否則不通。比如都是80連接埠,不能有的是80,有的是81。
本案例中vip和真實ip都是在同一網段,vip可以和real ip不同網段,可參考章博士的回答 http://zh.linuxvirtualserver.org/node/155。負載調度器只要有一個網口和真實伺服器是通過不分段的網路連接起來就可以。真實伺服器可以通過自己的路由器將響應報文發送給客戶。
關於調度演算法參見:http://zh.linuxvirtualserver.org/node/2903
構架參考 http://zh.linuxvirtualserver.org/node/28
以上就介紹了 lvs-dr實驗搭建,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。