lvs與HA整合

server33和35當HA,server34和36當服務器,用戶經過VIP訪問兩臺HA-->調度器-->後端服務器,只有調度器輪尋調度,加權
lvs不知道後端應用服務器掛了,用戶會一直訪問後端掛了的服務器,因此後面要解決這個問題,但nginx會監控後端服務器狀態,lvs就是

用戶只能訪問調度器上的vip,而不能訪問服務器上的vip,服務器不對外相應外界的ip,調度器把服務器mac,LB 一直就是轉換,arbtabs,屏蔽arp



(1)
############lvs
ngnix、haproxy和lvs都是可用來負載均衡,nginx和haproxy比較適合作網站,很靈活,haproxy併發量大,lvs適合作數據庫之類的,由於他算法比較簡單,主要應用在應用層上


系統環境:
server85和dekstop80做爲HA,server234和desktop87做爲服務器,主機dekstop來調度
yum源爲dvd.repo,時間要同步,解析要作好,selinux和火牆刷掉

在server85上:
釋放ip地址:
ip addr show   //發現以前測試的ip未被釋放
/etc/init.d/heartbeat stop  
/etc/init.d/network restart  
ip addr show   //ip
已釋放

在兩臺HA上:
yum install -y ipvsadm  //調度服務,在此以前保證heartbeat已經停掉
ipvsadm -l  //顯示當前調度列表
ifconfig eth0:0 192.168.2.115 netmask 255.255.255.0 up   //添加虛擬ip:192.168.2.115,要保證虛擬ip是未佔用的

ipvsadm -A -t 192.168.2.115:80 -s rr                        //A 添加,r 輪循 s 加權
ipvsadm -a -t 192.168.2.115:80 -r 192.168.2.87:80 -g        //g 直連 80端口是httpd服務端口
ipvsadm -a -t 192.168.2.115:80 -r 192.168.2.234:80 -g
ipvsadm -l     //
顯示有server234和desktop87及192.168.2.115的httpd服務


在兩臺服務端:
yum install -y httpd
cd /var/www/html/
vim index.html    //
寫入各自域名

ifconfig eth0:0 192.168.2.115 netmask 255.255.255.255 up  //四個255表示這個ip就他本身,只有他一個
yum install -y arptables_jf    //反arp服務,服務有點相似於火牆
arptables -A IN -d 192.168.2.115 -j DROP    //外部訪問115這個vip時直接被忽略掉

arptables -A OUT -s 192.168.2.115 -j mangle --mangle-ip-s 192.168.2.87   //在desktop87上
arptables -A OUT -s 192.168.2.115 -j mangle --mangle-ip-s 192.168.2.234 //在server234上 內部服務器出去的時候用的是本身的真實ip地址,就是這兩步當外部訪問服務器時,外部知道的只是虛擬ip,訪問的只是調度器,而調度器和服務器聯通起來,用戶和服務端不直接訪問互通

/etc/init.d/arptables_jf save   //保存策略
/etc/init.d/httpd start          //開啓httpd服務

瀏覽器:http://192.168.2.115/  //輪循顯示234和87的網頁發佈目錄內容,即他們各自的域名


在HA端:ipvsadm -l  //會顯示輪循的次數
在服務端或調度的真機上:arp -a  //顯示訪問的全部ip地址,及網絡接口,而且記錄訪問的ip地址對應的MAC地址,MAC地址有在調度器上被記錄下來,當刪除某個被記錄的ip對應MAC時,再次訪問後MAC地址又將被調度器所記錄




(2)#############HA與lvs整合
調度器存在單點故障,所以要HA熱備,

在HA端:
ifconfig eth0:0 down    //把vip暫時關閉
ipvsadm -C      //把arptables策略清除
lftp i:/pub/docs/heartbeat/rhel6> get ldirectord-3.9.2-1.2.x86_64.rpm
yum localinstall -y ldirectord-3.9.2-1.2.x86_64.rpm

在server86上:
rpm -ql ldirectord
cp /usr/share/doc/packages/ldirectord/ldirectord.cf /etc/ha.d/   //
把配置文件複製
vim /etc/init.d/ldirectord   //文件中說明主機讀取配置文件位置在/etc/ha.d/ldirectord.cf ,因此有上一步複製
/etc/init.d/ldirectord status   //有依賴性問題未解決

yum install -y perl-IO-Socket-INET6
/etc/init.d/ldirectord status    //
顯示正常,ldirectord是stop的

cd /etc/ha.d/
vim ldirectord.cf    //rr
表示算法爲輪循調度
checkinterval=1  //每隔1秒檢測
virtual=192.168.6.115:80            //vip
        real=192.168.2.87:80 gate   //
兩個服務端
        real=192.168.2.234:80 gate
        fallback=127.0.0.1:80 gate  //
當全部的服務端都掛掉後,顯示的界面是本身的發佈目錄,任何一個服務器再次激活後,1秒檢測後當即回到服務器上

#       receive="Test Page"         //註釋掉
#       virtualhost=www.x.y.z       //註釋掉


vim haresources         //添加服務ldirectord
server86.example.com    IPaddr::192.168.2.115/24/eth0 httpd ldirectord

scp ldirectord.cf haresources 192.168.2.80:/etc/ha.d/   //把相同配置文件複製到另外一個HA節點


在HA端:
/etc/init.d/heartbeat start   //只要啓動心跳,集羣負責把vip,httpd,ldirectord及arptables所有開啓

ipvsadm -l
tail -f /var/log/messages   //
日誌能夠查看到相關服務的啓動

瀏覽器:http://192.168.2.115/  //一直在輪循顯示,當把一個HA端如desktop80的httpd服務down掉或把heartbeat停掉,ipvsadm -l顯示服務已被另外一個節點接管,調度列表只剩一臺主機,當兩個節點都down掉時,瀏覽器顯示的是調度的主機的發佈目錄文件,調度列表裏只剩本機。當任何一個節點恢復服務後,調度立馬恢復正常;
沒有進行上述步驟前,把HA任一節點down掉後,ipvsadm -l仍顯示兩個節點,調度仍在正常運行,這意味着用戶會獲取到錯誤的網頁文件,由於lvs自己不能監控後臺服務器狀態。

把34down掉,調度列表裏只有36,網頁再也不輪循,36也掛掉時,那就完了,這裏沒有failback
把其中服務down掉,vip發生改變,被接管,開啓服務,不會回切,互爲主備


(3)lvs圖形化配置管理:  //就是(2)的圖形化配置
在HA端:
/etc/init.d/heartbeat stop   //全部的服務都會被停掉
yum install -y piranha    //監控服務器狀態軟件
piranha-passwd     //設置爲westos
/etc/init.d/piranha-gui start

瀏覽器:http://192.168.2.186:3636  用戶名爲piranha,密碼就是剛剛設置的
westos
/etc/sysconfig/ha/lvs.cf   //網頁圖形化界面的配置文件


點擊REDUNDANCY,enable,ip爲192.168.2.186 ,第一項勾選,端口號不要改,ok
點擊VIRTUAL SERVERS,edit,服務名www,vip 192.168.2.115,網卡eth0:0,選擇第一個輪循,
ok
再點擊REAL SERVER,add,name爲
dekstop80.example.com,192.168.2.80,80,1
再點擊REAL SERVER,add,name爲
server234.example.com,192.168.2.234,80,1
MMONIT..ACCEPT ,把全部都點擊up開啓


scp lvs.cf 192.168.2.80:/etc/sysconfig/ha/

/etc/sysconfig/ha/lvs.cf   //
瀏覽器上的配置所有在這裏
/etc/init.d/piranha-gui restart   //全部節點服務都開啓
/etc/init.d/pulse restart  

瀏覽器:http://192.168.2.115/

(4)添加一個ftp服務

服務端:
yum install -y vsftpd
ifconfig eth0:1 192.168.2.53 netmask 255.255.255.255 up
arptables -A OUT -s 192.168.2.53 -j mangle --mangle-ip-s 192.168.2.87   //
在desktop87上
arptables -A OUT -s 192.168.2.53 -j mangle --mangle-ip-s 192.168.2.234  //在server234上
arptables -A IN -d 192.168.2.115 -j DROP


瀏覽器:
點擊VIRTUAL SERVERS,add,服務名ftp,vip 192.168.2.53,網卡eth0:1,選擇第一個輪循,300,ok
再點擊REAL SERVER,add,name爲
dekstop80.example.com,192.168.2.80,80,1
再點擊REAL SERVER,add,name爲
server234.example.com,192.168.2.234,80,1
MMONIT..ACCEPT ,這一項無論

所有激活

scp lvs.cf 192.168.2.80:/etc/sysconfig/ha/
/etc/init.d/vsftpd start
/etc/init.d/pulse restart

瀏覽器:ftp://192.168.2.53  //輪循,在負載均衡


























































































 html

相關文章
相關標籤/搜索