LINUX虛擬服務器--LVS的搭建

              LINUX虛擬服務器--LVS的搭建

 本次實驗做得是章文嵩博士創立的開源項目LVSLinuxVirtual Server)。 Linux虛擬服務器,是一個虛擬的集羣系統,目的是爲了加強系統的可用性以及可伸縮性。本次實驗使用四臺虛擬機,其中兩臺作爲提供服務的真機(real server另外兩臺作調度器,實現ip負載均衡,其實實現ip負載均衡主要是有ipvs這個模塊來實現的。LVS中有四種ip負載均衡技術,(“VS/NAT”、“VS/TUN”、“VS/DR”、“VS/FULLNAT”)以及相應的10種調度算法:輪叫算法(RR)、加權輪叫算法(WRR)、目標地址散列(DH)、源地址散列(SH)等屬於靜態調度算法,動態調度算法有:最少鏈接(LC)、加權最少鏈接(WLC)、最短期望鏈接(SED)、從不排隊never quene (NQ)、基於局部性的最少鏈接(LBLC)、帶複製的基於局部的最少鏈接(LBLCR)等動態調度算法。

 

本次實驗使用IPVS模塊實現ip負載均衡且使用VS/RR模式的rr輪叫算法實現調度。

wKioL1dmiZmAQQPLAABQqiogR-k546.png-wh_50

本次試驗拓撲圖


具體上步驟:(VM1 VM2用來做調度器,VM3VM4用來做real server提供服務。)

調度器:VM1 VM2 首先需要安裝IPVS軟件來實現ip負載均衡。

#yum  intall –y ipvsadm      #安裝ipvsadm 服務

#ip  addr  add  172.25.45.100/24 dev  eth0  :首先需要添加虛擬ip地址;

#ipvsadm  -A  -t  172.25.10.100:80  -s  rr    :添加虛擬服務和rr輪叫算法

#ipvsadm  -a  -t172.25.10.100:80  -r 172.25.10.55:80  -g -r 添加realserver    地址,-g表示添加VS/DR模式,-t :添加調度器地址;

#ipvsadm  -a  -t  172.25.10.100:80  -r  172.25.10.56:80 -g :添加另外一臺真機

   ipvsadm -l :查看添加的工作模式

   ipvsadm -C :清除之前的算法和模式

 

realserver:  VM 3VM4真機服務

#yum  install  -y  httpd    #真機提供HTTPD服務,

#/etc/init.d/httpd  start

#ip  addr  add  172.25.10.100/32 dev  eth0  #真機同樣需要添加虛擬ip地址,與調度器的虛擬Ip地址一致。

#yum  install  -y  arptables_jf  #安裝arp防火牆,用來屏蔽數據包,攔截ip衝突,因爲虛擬機與real server的地址一致啊,所以進入real-server時就需要把虛擬ip DROP掉,也就就是攔截掉real-server的虛擬ip,

#arptables  -A  IN  -d  172.25.10.100 -j  DROP    #拒絕客戶端訪問realserver的虛擬IP,只要輸入進來直接DROP掉。

#arptables  -A  OUT  -s 172.25.10.100 -j mangle --mangle-ip-s172.25.10.55

#由於tcp三次握手原因,所以出去的時候仍要以vip地址出去纔會實現握手,而真正將數據傳輸給客戶端的就是realserver  mangle參數就是這個功能;

#/etc/init.d/arptables_jf save

VM3 :#echoserver55.example.com >  /var/www/html/index.html

VM4#echo server56.example.com >  /var/www/html/index.html

 

兩臺真機服務器的配置一樣操作;提供httpd服務;

優點:爲什麼lvs vs/dr比路由要先進,因爲他是直接在第四層將數據轉發,而路由是經過網絡層,將數據怎樣進,再怎樣通過路由出去,吞吐率不高;VS/NAT模式爲:client àvs ànat àrs ànat àvs àclient 

VS/DR模式調度器直接在數據鏈路層通過同一網段ip地址獲得realserverMAC地址,直接將數據包扔給realserver,real -server再將服務直接提供給客戶端,因此數據吞吐率較高,VS/DR模式爲:client à vs à rs à client

工作在DR模式時,要求處在同一虛擬局域網VLAN內;

驗證:在Firefox裏面輸入虛擬ip進行訪問,刷新網頁,可以不同的real-server提供apache服務。還可以通過真機輸入命令:arp -an查看虛擬IpMAC地址,再去找到該MAC地址對應的調度器。如果MAC地址是real-server的,這說明調度器沒有工作,需要查找原因了,我遇到的情況原因是因爲調度器忘了添加虛擬ip.

 

添加健康檢查功能模塊,此時如果哪臺real-server停止服務了,則該調度器實驗並不能判斷出來哪臺real-server不能工作,仍然回去調度那臺不能工作的real-server.因此需要添加健康檢查功能,使得後臺的real-server壞了,能夠及時發現,並且從調度器中移除該損壞的real-server主機。

LVS健康檢查:也就是說一臺real server 壞了,調度器只能顯示好的在工作,壞了就直接能發現。ipvsadm -l 顯示出正在執行的real-server

#cd  /usr/share/doc/ldirectord-3.9.5/

#cp  ldirectord.cf  /etc/ha.d/

#vim  ldirectord.cf

         virtual=172.25.10.100:80     #虛擬ip

         real=172.25.10.55:80 gate    #提供服務的real-serverIp

         real=172.25.10.56:80 gate

        fallback=127.0.0.1:80 gate    #如果兩臺real-server都壞了,則只能自己提供該服務。前提是的有該服務哦。

         service=http

         scheduler=rr         #調用輪叫算法

         #persistent=600

         #netmask=255.255.255.255

         protocol=tcp

         checktype=negotiate

         checkport=80

         request="index.html"    #查詢內容

 

#/etc/init.d/ldirectord start  #ldirectored服務啓動

VM 1VM2#yum install -y httpd

#echo  www.westos.com >  /var/www/html/index.html

/etc/init.d/httpd  start  #注意該服務只能手動啓動,

現在就可以進行健康檢查了;使兩個真機realserver依次停止httpd服務,然後再在服務調度器上進行查看:ipvsadm   -l

接下來與開源heartbeat集羣進行整合,使得系統的穩定性更高,因爲現在使用的是一臺調度服務,我們使用heartbeat做一個雙機集羣的調度服務器,從而避免調度器的單機故障發生。

與開源heartbeat整合的目的是爲了決調度器的單點故障,即使調度器所在的一臺主機發生錯誤了,另外一臺就可以直接接管調度其的功能服務.

heartbeat的雙機集羣:

#/etc/init.d/ldirectord  stop   #首先使健康檢查功能停止,因爲heartbeat自動起

#/etc/init.d/httpd  stop       #httpd服務停止

#ip  addr  del  172.25.10.100/24 dev  eth0   #去掉虛擬ip,因爲heartbeat能自動產生虛擬ip

#scp  ldirectord.cf  [email protected]:/etc/ha.d/   #將健康檢查功能傳送到雙機集羣中的另一臺虛擬機裏面去,

#vim  /etc/ha.d/haresource    #編輯配置文件

      server51.example.com  IPaddr::172.25.10.100/24/eth0  httpd  ldirectord

# scp/etc/ha.d/haresource [email protected]:/etc/ha.d/

雙機集羣都啓動,保證調度器的高可用性,不會因爲一臺主機服務器宕掉而無法進行調度。

 VM1 VM2.

#/etc/init.d/heartbeat   start


驗證:首先查看運行的虛擬ip,以及ipvsadm  -l 查看運行的兩個real-server,最後依次關閉兩個realserver,停止httpd服務.刷新網頁查看內容變化.最後依次再關掉兩個調度器,在刷新網頁查看狀態。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章