1》Keepalived簡介 Keepalived是Linux下一個輕量級別的高可用解決方案,高可用(High Avalilability,HA),其實兩種不同的含義:廣義來講,是指整個系統的高可用行,狹義的來 講就是之主機的冗餘和接管,它與HeartBeat RoseHA 實現相同類似的功能,都可 ...
1》Keepalived簡介
Keepalived是Linux下一個輕量級別的高可用解決方案,高可用(High Avalilability,HA),其實兩種不同的含義:廣義來講,是指整個系統的高可用行,狹義的來 講就是之主機的冗餘和接管,它與HeartBeat RoseHA 實現相同類似的功能,都可以實現服務或者網路的高可用,但是又有差別,HeartBeat是一個專業的、功能完 善的高可用軟體,它提供了HA 軟體所需的基本功能,比如:心跳檢測、資源接管,檢測集群中的服務,在集群節點轉移共用IP地址的所有者等等。HeartBeat功能強 大,但是部署和使用相對比較麻煩,與HeartBeat相比,Keepalived主要是通過虛擬路由冗餘來實現高可用功能,雖然它沒有HeartBeat功能強大,但是Keepalived部 署和使用非常的簡單,所有配置只需要一個配置文件即可以完成;
Keepalived起初是為LVS設計的,專門用來監控集群系統中各個服務節點的狀態,它根據TCP/IP參考模型的第三、第四層、第五層交換機制檢測每個服務節 點的狀態,如果某個伺服器節點出現異常,或者工作出現故障,Keepalived將檢測到,並將出現的故障的伺服器節點從集群系統中剔除,這些工作全部是自動完成 的,不需要人工干涉,需要人工完成的只是修複出現故障的服務節點,後來Keepalived又加入了VRRP的功能,VRRP(Vritrual Router Redundancy Protocol,虛擬路 由冗餘協議)出現的目的是解決靜態路由出現的單點故障問題,通過VRRP可以實現網路不間斷穩定運行,因此Keepalvied 一方面具有伺服器狀態檢測和故障隔離功 能,另外一方面也有HA cluster功能,下麵介紹一下VRRP協議實現的過程;
2》VRRP協議與工作原理
在現實的網路環境中,主機之間的通信都是通過配置靜態路由或者(預設網關)來完成的,而主機之間的路由器一旦發生故障,通信就會失效,因此這種通信模 式當中,路由器就成了一個單點瓶頸,為瞭解決這個問題,就引入了VRRP協議,熟悉網路的學員對VRRP協議應該不陌生,它是一種主備模式的協議,通過 VRRP可以在網路發生故障時透明的進行設備切換而不影響主機之間的數據通信,這其中涉及到兩個概念:物理路由器和虛擬路由器;
VRRP可以將兩台或者多台物理路由器設備虛擬成一個虛擬路由,這個虛擬路由器通過虛擬IP(一個或者多個)對外提供服務,而在虛擬路由器內部十多個物 理路由器協同工作,同一時間只有一臺物理路由器對外提供服務,這台物理路由設備被成為:主路由器(Master角色),一般情況下Master是由選舉演算法產生,它 擁有對外服務的虛擬IP,提供各種網路功能,如:ARP請求,ICMP 數據轉發等,而且其它的物理路由器不擁有對外的虛擬IP,也不提供對外網路功能,僅僅接收 MASTER的VRRP狀態通告信息,這些路由器被統稱為“BACKUP的角色”,當主路由器失敗時,處於BACKUP角色的備份路由器將重新進行選舉,產生一個新的主 路由器進入MASTER角色,繼續提供對外服務,整個切換對用戶來說是完全透明的;
每個虛擬路由器都有一個唯一的標識號,稱為VRID,一個VRID與一組IP地址構成一個虛擬路由器,在VRRP協議中,所有的報文都是通過IP多播方式發送 的,而在一個虛擬路由器中,只有處於Master角色的路由器會一直發送VRRP數據包,處於BACKUP角色的路由器只會接受Master角色發送過來的報文信息,用來 監控Master運行狀態,一一般不會發生BACKUP搶占的情況,除非它的優先順序更高,而當MASTER不可用時,BACKUP也就無法收到Master發過來的信息,於是 就認定Master出現故障,接著多台BAKCUP就會進行選舉,優先順序最高的BACKUP將稱為新的MASTER,這種選舉角色切換非常之快,因而保證了服務的持續可 用性;
3》Keepalvied的工作原理
上面我們介紹了Keepalived通過VRRP實現高可用性的工作原理,而Keepalived作為一個高性能集群軟體,它還能實現對集群中伺服器運行狀態的監控以 及故障隔離,下麵我們介紹一下Keepalived對伺服器運行狀態和故障隔離的工作原理;
Keepalived工作在TCP/IP 參考模型的 三層、四層、五層,也就是分別為:網路層,傳輸層和應用層,根據TCP、IP參數模型隔層所能實現的功能, Keepalived運行機制如下:
在網路層: 我們知道運行這4個重要的協議,互聯網路IP協議,互聯網路可控制報文協議ICMP、地址轉換協議ARP、反向地址轉換協議RARP,在網路層 Keepalived在網路層採用最常見的工作方式是通過ICMP協議向伺服器集群中的每一個節點發送一個ICMP數據包(有點類似與Ping的功能),如果 某個節點沒有返迴響應數據包,那麼認為該節點發生了故障,Keepalived將報告這個節點失效,並從伺服器集群中剔除故障節點;
在傳輸層: 提供了兩個主要的協議:傳輸控制協議TCP和用戶數據協議UDP,傳輸控制協議TCP可以提供可靠的數據輸出服務、IP地址和埠,代表TCP 的一個連接端,要獲得TCP服務,需要在發送機的一個埠和接收機的一個埠上建立連接,而Keepalived在傳輸層里利用了TCP協議的埠 連接和掃描技術來判斷集群節點的埠是否正常,比如對於常見的WEB伺服器80埠。或者SSH服務22埠,Keepalived一旦在傳輸層探測到 這些埠號沒有數據響應和數據返回,就認為這些埠發生異常,然後強制將這些埠所對應的節點從伺服器集群中剔除掉;
在應用層:可以運行FTP,TELNET,SMTP,DNS等各種不同類型的高層協議,Keepalived的運行方式也更加全面化和複雜化,用戶可以通過自定義 Keepalived工作方式,例如:可以通過編寫程式或者腳本來運行Keepalived,而Keepalived將根據用戶的設定參數檢測各種程式或者服務是否 允許正常,如果Keepalived的檢測結果和用戶設定的不一致時,Keepalived將把對應的伺服器從伺服器集群中剔除;
Keepalived 是運行在lvs 之上,它的主要功能是實現真實機的故障隔離及負載均衡器間的失敗 切換,提高系統的可用性;
4》Keepalived體繫結構
Keepalived起初是為LVS設計的,由於Keeplalived可以實現對集群節點的狀態檢測,而IPVS可以實現負載均衡功能,因此,Keepalived藉助於第三方模塊 IPVS就可以很方便地搭建一套負載均衡系統,在這裡有個誤區,由於Keepalived可以和IPVS一起很好的工作,很多學員都以為Keepalived就是一個負載均衡軟 件,這種理解是錯誤,在Keepalived當中IPVS模塊是可配置的,如果需要負載均衡功能,可以在編譯Keepalived時開打負載均衡功能,也可以通過編譯參數關 閉, NetLINK模塊主要用於實現一些高級路由框架和一些相關參數的網路功能,完成用戶空間層Netlink Reflector模塊發來的各種網路請求,這個圖我們可以看 到用戶空間層,是建立在內核空間層之上的,
用戶空間層,主要有4個部分:
Scheduler I/O Multiplexer 是一個I/O復用分發調度器,它負載安排Keepalived所有內部的任務請求;
Memory Mngt 是一個記憶體管理機制,這個框架提供了訪問記憶體的一些通用方法;
Control Plane 是keepalived的控製版面,可以實現對配置文件編譯和解析;
Core componets 這部分主要保護了5個部分:
Watchdog:是電腦可靠領域中極為簡單又非常有效的檢測工具,Keepalived正是通過它監控Checkers和VRRP進程的;
Checkers: 這是Keepalived最基礎的功能,也是最主要的功能,可以實現對伺服器運行狀態檢測和故障隔離;
VRRP Stack: 這時keepalived後來引用VRRP功能,可以實現HA集群中失敗切換功能;
IPVS wrapper: 這個是IPVS功能的一個實現,IPVS warrper模塊將可以設置好的IPVS規則發送的內核空間並且提供給IPVS模塊,最 終實現IPVS模塊的負載功能;
Netlink Reflector:用來實現高可用集群Failover時虛擬IP(VIP)的設置和切換 ;
Netlink Reflector的所有請求最後都發送到內核空間層的NETLINK 模塊來完成;
5》負載均衡技術
1>使 用負載均衡技術的理由:
假如我們有一個咨詢類的網站,之允許100個用戶同時線上訪問,網站上線初期,由於知名度比較小,通常只有幾個用戶經常上線,後期知名度提高 了,百度和谷歌又收錄了我們的網站,於是同時線上的用戶量直線上升,很快達到了上千人,於是,網站負荷加重了,經常會“反應遲鈍”,這時用戶開始抱 怨,為了不影響用戶對我們的信心,就一定要想辦法解決這個一個問題,那麼我們想想,如果有幾台或者幾十臺相同配置的機器,前端放一個轉發器,輪流轉 發客戶對網站的請求,每台機器將用戶數控制在100以內,那麼網站的反應速度就會大大提高,即使其中的某台伺服器因為硬體故障了導致宕機了,也不會 影響用戶的訪問,那麼其中,這個神奇的轉發器就是負載均衡(Director);
那麼什麼是負載均衡呢?負載均衡建立在現有的網路結構之上,它提供了一種廉價、有效、透明的方法來擴大網路設備和伺服器的帶寬、增加吞吐 量、加強網路數據處理能力,以及提高網路的靈活性和可用性,通過負載均衡器,我們可以實現N台廉價的Linux伺服器並行處理,從而達到小型機或者大型 機計算能力,這也是為何負載均衡如此流行的原因;
Scale on: 向上擴展
所謂的向上擴展,就是把當前的伺服器進行硬體升級,硬體升級帶來的效果不是線性的,如果架構設計不好,那麼性能不但不能提升,而且 還會下降;
Scale OUT:向外擴展
所謂的向外擴展,那麼我們可以做Load Balancing:LB (負載均衡技術)
Ø 系統高可用性
Ø 系統可擴展性
Ø 負載均衡能力
LVS+keepalived能很好的實現以上的要求,LVS提 供負載均衡,keepalived提供健康檢查,故障轉移,提高系統的可用性!採用這樣的架構以後 很容易對 現有系統進行擴展,只要在後端添加或者減少realserver,只要更改lvs的 配置文件,並能實現無縫配置變更!
6》Lvs模式介紹
LVS是一個開源的軟體,可以實現LINUX平臺下的簡單負載均衡,LVS是Linux Virtual Server的縮寫,意思是Linux虛擬伺服器,目前有三種IP負載均衡技 術(VS/NAT、VS/TUN和VS/DR);八種調度演算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh):
1>NAT負載模式
NAT用法本來是因為網路IP地址不足而把內部保留IP地址通過映射轉換成公網地址的一種上網方式(原地址NAT)。
如果把NAT的過程稍微變化,就可以 成為負載均衡的一種方式。原理其實就是把從客戶端發來的IP包的IP頭目的地址在DR上換成其中一臺 REALSERVER的IP地址併發至此 REALSERVER,而REALSERVER則在處理完成後把數據經過DR主機發回給客戶端,DR在這個時候再把數據包的原IP地 址改為DR介面上的 IP地址即可。期間,無論是進來的流量,還是出去的流量,都必須經DR,DR壓力比較大;
NAT模式:
集群節點跟Direcator 必須在同一個IP網路中;
RIP通常是私有地址,僅僅用於個集群之間通信;
director位於Client和real server之間,並負責處理進出的所有通信;
realservet必須將網關指向DIP,同時也支持埠影射;
Realserver可以使用任意OS;
在較大應用規模當中,單個Director會出現瓶頸;
大概可以帶10個左右的SERVER就會出現瓶頸。
2>直接路由模式(DR)
直接路由模式比較特別,很難說和什麼方面相似,前NAT和TUN種模式基本上都是工作在網路層上(三層),而直接路由模式則應該是工作在數據鏈路 層上(二層)。其原理 為,DR和REALSERVER都使用同一個IP對外服務。但只有DR對ARP請求進行響應,所有REALSERVER對本身這個IP的ARP請求保持 靜 默。也就是說,網關會把對這個服務IP的請求全部定向給DR,而DR收到數據包後根據調度演算法,找出對應的REALSERVER,把目的MAC地址改 為 REALSERVER的MAC併發給這台REALSERVER。這時REALSERVER收到這個數據包,則等於直接從客戶端收到這個數據包無異,處理後 直接返回給 客戶端。由於DR要對二層包頭進行改換,所以DR和REALSERVER之間必須在一個廣播域,也可以簡單的理解為在同一臺交換機上;
DR模式:
每個集群節點跟dr必須在同一個物理網路(區域網)當中(dr和web不能隔了有路由器);
VIP可以使用公網地址,實現遠程管理和監控;
director只負責處理進站請求,響應的請求封裝後直接由Relserver發給客戶端;
Realserver不能將Direc當中網關。只能選擇前當網關;
Direc不能支持埠映射。VIP的埠必須和WEB服務埠一致;
大多數的操作系統都可以應用在relserver上;
Direc性能必NAT要好很多。處理速度提高N倍;
3>TUN負載模式 IP隧道模式
隧道模式則類似於VPN的方式,使用網路分層的原理,在從客戶端發來的數據包的基礎上,封裝一個新的IP頭標記(不完整的IP頭,只有目的IP部)發 給 REALSERVER,REALSERVER收到後,先把DR發過來的數據包的頭給解開,還原其數據包原樣,處理後,直接返回給客戶端,而不需要再經過 DR。需要註 意的是,由於REALSERVER需要對DR發過來的數據包進行還原,也就是說必須支持IPTUNNEL協議。所以,在REALSERVER 的內核中,必須編譯支持 IPTUNNEL這個選項。IPTUNNEL也在Net working options裡面;
TUN模式:
集群節點可以跨越互聯網;
Relserver的RIP必須是公網地址(真實環境中);
Director緊處理進站請求;
由Relserver直接響應客戶端;
OS必須支持隧道協議,不支持埠映射;
7》LVS負載均衡的八種調度演算法
RR演算法:
LVS負載均衡演算法1.輪叫調度(Round-RobinScheduling)
WRR演算法:
LVS負載均衡演算法2.加權輪叫調度(WeightedRound-RobinScheduling)
LC演算法:
LVS負載均衡演算法3.最小連接調度(Least-ConnectionScheduling)
WLC演算法:
LVS負載均衡演算法4.加權最小連接調度(WeightedLeast-ConnectionScheduling)
LBLC演算法:
LVS負載均衡演算法5.基於局部性的最少鏈接(Locality-BasedLeastConnectionsScheduling)
LBLCR演算法:
LVS負載均衡演算法6.帶複製的基於局部性最少鏈接(Locality-BasedLeastConnectionswithReplicationScheduling)
DH演算法:
LVS負載均衡演算法7.目標地址散列調度(DestinationHashingScheduling)
SH演算法:
LVS負載均衡演算法8.源地址散列調度(SourceHashingScheduling)
8》lvs+keepalived架構圖
9》lvs持久性連接
對於電子商務網站來說,用戶在挑選商品的時候使用的是80埠來瀏覽的,當付款的時候則是通過443的ssl加密的方式,當然當用戶挑選完商品付款的時 候,我們當然不希望 https的443跳轉到另外一臺REAL SERVER上,很顯然應該是同一REAL SERVER才對,這時候就要用到基於防火牆標記的持久連接,通過定義埠的姻親關係來實現。在生產環 境中用的最多的也是PNMP即基於防火牆標記的持久 連接,好了引子就說到這下麵我們就來詳細說說LVS的持久連接;
1>PPC(Persistent Port Connections):將來自於同一個客戶端對同一個集群服務的請求,始終定向至此前選定的RS;(持久埠連接)
例如:client---->LVS(80)---->RS1 或 client---->LVS(23)---->RS2
缺陷:期望訪問不同的埠到同一臺RS上,無法實現。
配置:
ipvsadm -A -t 172.16.100.1:80 -s rr -p 3600
ipvsadm -a -t 172.16.100.1:80 -r 172.16.100.10 -g -w 2
ipvsadm -a -t 172.16.100.1:80 -r 172.16.100.11 -g -w 2
2>PCC(Persistent Client Connections):將來自於同一個客戶端對所有埠的請求,始終定向至此前選定的RS;(持久客戶端連接)
說明:PCC是一個虛擬服務沒有埠號(或者埠號為0),以"-p" 來標識服務。
缺陷:定向所有服務,期望訪問不同的Real Server無法實現。
配置:
ipvsadm -A -t 172.16.100.1:0 -s rr -p 3600
ipvsadm -a -t 172.16.100.1:0 -r 172.16.100.10 -g -w 2
ipvsadm -a -t 172.16.100.1:0 -r 172.16.100.11 -g -w 2
3>PNMPP(Persistent Netfilter Marked Packet Persistence):持久防火牆標記連接,根據iptables 的規則,將對於某類服務幾個不同埠的訪問定義為一 類;
先對某一特定類型的數據包打上標記,然後再將基於某一類標記的服務送到後臺的 Real Server上去,後臺的Real Server 並不識別這些標記。將持久和防 火牆標記結合起來就能夠實現埠姻親功能,只要是來自某一客戶端的對某一特定服務(需要不同的埠)的訪問都定義到同一臺 Real Server上去。
案例:一個用戶在訪問購物網站時同時使用HTTP(80)和HTTPS(443)兩種協議,我們需要將其定義到同一臺Real Server上,而其他的服務不受限制。
配置:
iptables -t mangle -A PREROUTING -d 172.16.100.1 -i eth0 -p tcp --dport 80 -j MARK --set-mark 8
iptables -t mangle -A PREROUTING -d 172.16.100.1 -i eth0 -p tcp --dport 443 -j MARK --set-mark 8
ipvsadm -A -f 8 -s rr -p 600
ipvsadm -a -f 8 -r 172.16.100.10 -g -w 2
ipvsadm -a -f 8 -r 172.16.100.11 -g -w 1
4>持久連接命令
1.ipvsadm -A|E … -p timeout
2.選項
3.-p timeout 指定持久連接時長,預設為360秒,單位是秒,即6分鐘
http://www.it165.net/admin/html/201307/1565.html
10》LVS+ Keppalived的安裝
1>環境描述
LVS server1 (Master):10.0.0.202-à虛擬IP為:10.0.0.210
LVS server2 ( Slave ) :10.0.0.203à虛擬IP為:10.0.0.210
WEB server1: 10.0.0.201 網關為:10.0.0.254
WEB server2; 10.0.0.204 網關為:10.0.0.254
註意:所有集群伺服器時間要一致
2>安裝LVS
註意此動作,否則MAKE直接報錯;
如果沒有/2.6.32-279.el6.x86_64 這個目錄,請安裝內核開發包
# yum -y install kernel-devel
# ln -s /usr/src/kernels/2.6.32-279.el6.x86_64/ /usr/src/linux
# tar -xvf ipvsadm-1.24.tar.gz
# cd ipvsadm-1.24
#make && make install
# ipvsadm –L
3>安裝Keepalived
# tar –xvf keepalived-1.2.12.tar.gz
#./configure --sysconf=/etc/ --with-kernel-dir=/usr/src/kernels/2.6.32-279.el6.x86_64/
Keepalived version : 1.2.12
Compiler : gcc
Compiler flags : -g -O2
Extra Lib : -lssl -lcrypto -lcrypt
Use IPVS Framework : Yes 表示使用ipvs框架,也是代表啟動IPVS功能
IPVS sync daemon support : Yes 表示啟動ipvs的同步功能,--disabled-lvs-sysncd此參數可以關閉。
IPVS use libnl : No 表示使用新的libn1版本,如果想使用新的版本,需要重新安裝libn1的包
Use VRRP Framework : Yes 表示使用VRRP框架,這個實現keepalived高可用的必須功能
Use VRRP VMAC : Yes 表示使用基礎VMAC介面的xmit VRRP包
SNMP support : No
SHA1 support : No
Use Debug flags : No
# make && make install
# cp /soft/keepalived-1.2.12/bin/keepalived /usr/bin/
ERRR: yum install -y openssl openssl-devel
!!! OpenSSL is not properly installed on your system. !!!
!!! Can not include OpenSSL headers files. !!!
4>主(master)配置Keepalived配置文件
! Configuration File for keepalived
global_defs { #全局定義
notification_email { #定義郵件
[email protected] #定義郵件地址
}
notification_email_from [email protected] #定義郵件地址
smtp_server mail.126.com #郵件伺服器
smtp_connect_timeout 30 #郵件超時時間
router_id LVS_DEVEL #route_id標識
}
vrrp_instance VI_1 { #定義VRR組,
state MASTER #定義為MASTER主
interface eth1 #對外訪問的網路介面
virtual_router_id 100 #虛擬路由標識。註意主從要一致
priority 100 #主從優先順序,主的優先順序要高於從。註意
advert_int 1 #:廣播周期秒數
authentication {
auth_type PASS
auth_pass 2209
}
virtual_ipaddress {
10.0.0.210 #:虛擬VIP地址,真實環境這裡應該是公網IP
}
}
virtual_server 10.0.0.210 80 { #:虛擬VIP地址 與 埠,DR架構WEB埠要和虛擬埠監聽一致。否則將無法訪問
delay_loop 6 #健康檢查時間間隔,單位是秒
lb_algo rr #調用演算法為RR
lb_kind DR #調用架構模式為DR
persistence_timeout 0 #:同一IP 50秒內的請求都發到同個real server
protocol TCP #使用TCP協議
real_server 10.0.0.201 80 {#:真實WEB伺服器地址與埠
weight 1 #:轉發伐值,越高調用的越多
TCP_CHECK {
connect_timeout 10 #:連接超時為10秒
nb_get_retry 3
delay_before_retry 3
connect_port 80 #連接埠為80,要和上面的保持一致
}
}
real_server 10.0.0.204 80 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
5>從(Slave)配置Keepalived配置文件
主從配置區別:
state BACKUP #狀態改成BACKUP
priority 90 #優先順序要低於主
interface eth1 #網路介面註意和本機對應,
其它的配置文件內容和主的一樣
6>配置WEBserver,所有的WEB腳本都一樣
# vim
如下:
#!/bin/bash
# Written by NetSeek
# description: Config realserver lo and apply noarp
WEB_VIP="10.0.0.210" #:修改VIP,其它的地方不動,
. /etc/rc.d/init.d/functions
case "$1" in
start)
ifconfig lo:0 $WEB_VIP netmask 255.255.255.255 broadcast $WEB_VIP
/sbin/route add -host $WEB_VIP dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK"
;;
stop)
ifconfig lo:0 down
route del $WEB_VIP >/dev/null 2>&1
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stoped"
;;
status)
# Status of LVS-DR real server.
islothere=`/sbin/ifconfig lo:0 | grep $WEB_VIP`
isrothere=`netstat -rn | grep "lo:0" | grep $web_VIP`
if [ ! "$islothere" -o ! "isrothere" ]
then
echo "LVS-DR real server Stopped."
else
echo "LVS-DR Running."
fi
;;
*)
# Invalid entry.
echo "$0: Usage: $0 {start|status|stop}"
exit 1
;;
esac
exit 0
11》啟動WEB server的腳本
# ./ realserver.sh start
# ip add list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet 10.0.0.210/32 brd 10.0.0.210 scope global lo:0 是否有VIP?
inet6 ::1/128 scope host
12》啟動LVS
在LVS主從伺服器上啟動LVS
# /etc/init.d/keepalived start
在MASTER伺服器上會看到VIP,當MASTER掛了之後。VIP將自動切換到SLAVE(從),
# /etc/init.d/keepalived start
eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:8c:4c:ec brd ff:ff:ff:ff:ff:ff
inet 10.0.0.202/16 brd 10.0.255.255 scope global eth1
inet 10.0.0.210/32 scope global eth1 是否有VIP? 有則OK
inet6 fe80::20c:29ff:fe8c:4cec/64 scope link
valid_lft forever preferred_lft forever
13》訪問測試
是否可以看到WEBIP
# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.0.0.210:http rr
-> 10.0.0.204:http Route 1 0 0
-> 10.0.0.201:http Route 1 0 0
然後通過瀏覽器訪問:http://10.0.0.210 看看是否可以訪問?
配置文件裡面設置了同一IP,50秒內定為一臺WEBserver保證數據的完整連接;