LVS高可用集群


高可用LVS 集群構建

 

LVS集群當中Director的作用是很關鍵的,所以我們在生產環境中要保證其高可用

高可用架構圖:

1、通過 piranha搭建LVS高可用性集群

        piranhaREDHAT 提供的一個基於WebLVS 配置軟件,通過piranha可以省去手工配置LVS 的繁瑣工作;同時,piranha也可以單獨提供集群功能,例如,可以通過piranha激活Director Server的備用主機。這里利用piranha來配置Director Server的雙機熱備功能。

1.安裝與配置piranha

通過yum命令直接在線安裝,過程如下:

[root@DR2 ~]# yum install ipvsadm modcluster piranha system-config-cluster php php-cli php-common

通過WEB 界面配置Piranha服務需要設置下面步驟。

#/usr/sbin/piranha-passwd  //設置密碼,請設置你的piranha服務WEB配置登陸密碼. http://192.168.12.130:3636/輸入用戶名: piranha 及剛才設置的密碼登陸.

/etc/sysconfig/ha/lvs.cf     //http://ip:3636 web 界面配置的配置文件寫入此文件.

/etc/init.d/piranha-gui start  //啟動piranha服務的WEB配置界面.

/etc/init.d/pulse        //啟動piranha服務讀取的就是/etc/sysconfig/ha/lvs.cf.

piranha安裝完畢后,會產生/etc/sysconfig/ha/lvs.cf配置文件。可以通過 piranha提供 Web界面配置此文件(默認的網址地址為`主機IP`3636

 

也可以直接手動編輯此文件。編輯好的 lvs.cf文件內容類似如下所示, 注意,“#”號后面的內容為注釋。

 

[root@DR1 ~]# more /etc/sysconfig/ha/lvs.cf

serial_no=18#序號

primary=192.168.60.130 #指定主用 Director Server 的真實IP地址

service=lvs#指定雙機的服務名

backup_active=1#是否激活備用Director Server“0”表示不激活,“1”表示激活。這里選擇激活方式

backup=192.168.12.131  #這里指定備用 Director Server 的真實 IP 地址,如果沒有備用 #Director Server,可以用“0.0.0.0”代替

heartbeat=1#是否開啟心跳,表示開啟,表示不開啟

heartbeat_port=539 #指定心跳的 UDP 通信端口。

keepalive=5 #心跳間隔時間,單位是秒

deadtime=10 #如果主 Director Serverdeadtime()后沒有響應,那么備份Director Server就會接管主Director Server的服務 

network=direct #指定 LVS 的工作模式,direct表示DR模式,nat表示NAT模式,tunnel表示TUN模式

debug_level=NONE #定義debug調試信息級別

virtual www.ixdba.net{ #指定虛擬服務的名稱

active=1 #是否激活此服務

address=192.168.12.200 eth0:0 #虛擬服務綁定的虛擬IP及網絡設備名

port=80         #虛擬服務的端口

send="GET / HTTP/1.0\r\n\r\n"  #real server發送的驗證字符串

expect="HTTP"  

#服務器正常運行時應該返回的文本應答信息,用來判斷 Real Server

#是否工作正常

use_regex=0    

#expect選項中是否使用正則表達式,表示不使用,表示使用。

load_monitor=none    

#LVS中的Director Server 能夠使用rupruptime來監視各個

Real Server的負載狀態。該選項有3個可選值,rupruptimenone,如果選擇 rup,每個 Real Server 就必須運行 rstatd 服務。如果選擇了ruptime,每個 Real Server 就必須運行 rwhod 服務

scheduler=rr         #指定LVS的調度算法

protocol=tcp         #虛擬服務使用的協議類型

timeout=6          

#Real Server 失效后從 LVS 路由列表中移除失效Real Server所必須經過

的時間,以秒為單位

reentry=15                 

#某個Real Server被移除后,重新加入LVS路由列表中必須經過的#時間,

以秒為單位

quiesce_server=0      

#如果此選項為1.那么當某個新的節點加入集群時,最少連接數會被重設

為零,因此 LVS 會發送大量請求到此服務節點,造成新的節點服務阻塞,建議設置為 0

server RS1 {            #指定 Real Server 服務名

address=192.168.12.132 #指定 Real Server  IP 地址

active=1              #是否激活此 Real Server 服務

weight=1              

#指定此 Real Server 的權值,是整數值.權值是相對於所有 Real Server

節點而言的,權值高的 Real Server 處理負載的性能相對較強

}

server RS2 {

address = 192.168.12.133 
active = 1

weight = 1 
}

接着,還需要對兩個 Real Server節點進行配置,也就是創建/etc/init.d/lvsrs腳本,創建文件/etc/init.d/lvsrs,腳本內容如下:

[root@rs1 ~]#more /etc/init.d/lvsrs 
#!/bin/bash

#description : Start Real Server 
VIP=192.168.12.200

./etc/rc.d/init.d/functions 
case "$1" in

start)

echo " Start LVS of  Real Server "

/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up

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

stop)

/sbin/ifconfig lo:0 down

echo "close LVS Director server"

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 "Usage: $0 {start|stop}" 
exit 1

esac 

 

2.啟動通過piranha 配置的LVS集群系統

將編輯好的 lvs.cf Director Server 的主節點復制到備用節點,然后在主、備節點分別啟動pulse服務,即啟動LVS 服務,過程如下:

[root@DR1 ~]#service pulse start

接下來,還要在主、備節點啟用系統的包轉發功能(其實只有在NAT模式下需要),命令如下:

[root@DR1 ~]#echo "1" >/proc/sys/net/ipv4/ip_forward 

最后,在兩個Real server節點上執行lvsrs 腳本,命令如下: 

[root@rs1 ~]#/etc/init.d/lvsrs start 

到此為止,利用piranha工具搭建的高可用LVS 集群系統已經運行起來了。

2通過 Keepalived搭建LVS高可用性集群

keepalived這個軟件最初就是為了LVS誕生的,那么keepalived除了可以實現LVS的高可用,還可以在配置文件里面實現對LVS的配置管理,以及LVS集群后端節點(real server)的健康檢查。

 

1、安裝keepalived+ipvsadm 環境

[root@host236 ~]# yum install ipvsadm keepalived

2.配置Keepalived

Keepalived 的配置非常簡單,僅需要一個配置文件即可完成對HA clusterLVS 服務節點監控。Keepalived的安裝已經在前面介紹過,在通過Keepalived搭建高可用的LVS 集群實例中,主、備 Director Server 都需要安裝 Keepalived 軟件,安裝成功后,默認的配置文件路徑為/etc/Keepalived/Keepalived.conf

一個完整的 keepalived 配置文件由三個部分組成,分別是

全局定義部分

vrrp 實例定義部分

LVS配置部分,

下面詳細介紹這個配置文件中每個選項的詳細含義和用法。

! Configuration File for keepalived 
#
全局定義部分

global_defs {

notification_email {    #設置報警郵件地址,可以設置多個,

731431337@qq.com      #每行一個。注意,如果要開啟郵件報警, 

#需要開啟本機的 Sendmail 服務

 

1148537043@qq.com

}

notification_email_from Keepalived@localhost 

#設置郵件的發送地址

smtp_server 192.168.200.1

#設置smtp server地址

smtp_connect_timeout 30

#設置連接 smtp server 的超時時間

router_id_LVS_DEVEL  #表示運行 Keepalived服務器的一個標識。發郵件時顯示在郵件主題中的信息

}

#vrrp 實例定義部分

vrrp_instance VI_1 {

state MASTER     #指定 Keepalived 的角色,MASTER表示此主機是主服務器,BACKUP表示此主機是備用服務器.

interface eth0          #指定HA監測網絡的接口

virtual_router_id 51      #虛擬路由標識,這個標識是一個數字,同一個 vrrp 實例使用唯一的標識,即同一個vrrp_instance下,MASTERBACKUP 必須是一致的

priority 100       #定義優先級,數字越大,優先級越高。在一個vrrp_instance下,MASTER的優先級必須大於BACKUP的優先級

advert_int 1  #設定MASTERBACKUP 負載均衡器之間同步檢查的時間間隔,單位是秒

authentication{            #設定驗證類型和密碼

auth_type PASS             #設置驗證類型,主要有PASSAH兩種

auth_pass 1111           

#設置驗證密碼,在一個vrrp_instance下,MASTERBACKUP 必須使用相同的密碼才能正常通信

}

virtual_ipaddress { 

#設置虛擬IP地址,可以設置多個虛擬IP地址,每行一個。

192.168.12.200

}

}

#虛擬服務器定義部分

virtual_server 192.168.12.200 80 {

#設置虛擬服務器,需要指定虛擬IP地址和服務端口IP與端口之間用空格隔開

delay_loop 6

#設置健康檢查的時間間隔,單位是秒

lb_algo rr

#設置負載調度算法,這里設置為rr,即輪詢算法

lb_kind DR

#設置LVS實現負載均衡的機制,有 NATTUNDR三個模式可選

persistence_timeout 50

 

#會話保持時間,單位是秒。這個選項對動態網頁是非常有用的,為集群系統中的 session共享提供了一個很好的解決方案。有了這個會話保持功能,用戶的請求會被一直分發到某個服務節點,直到超過這個會話的保持時間。需要注意的是,這個會話保持時間是最大無響應超時時間,也就是說,用戶在操作動態頁面時,如果在 50秒內沒有執行任何操作,那么接下來的操作會被分發到另外節點,但是如果用戶一直在操作動態頁面,則不受50秒的時間限制。

protocol TCP

#指定轉發協議類型,有TCPUDP兩種

real_server 192.168.12.132 80 {

#配置服務節點 1,需要指定 real server的真實IP地址和端口,IP與端口之間用空格隔開

weight 3

#配置服務節點的權值,權值大小用數字表示,數字越大,權值越高,設置權值的大小可以為不同性能的服務器分配不同的負載,可以為性能高的服務器設置較高的權值,而為性能較低的服務器設置相對較低的權值,這樣才能合理地利用和分配了系統資源

TCP_CHECK {

#realserve的狀態檢測設置部分,單位是秒

connect_timeout 3

#表示3秒無響應超時

nb_get_retry 3

#表示重試次數

delay_before_retry 3

#表示重試間隔

connect_port 80

#檢查80端口

}

}

real_server 192.168.12.133 80 {

#配置服務節點 2

weight 1

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

}

 

        在配置 Keepalived.conf 時,需要特別注意配置文件的語法格式,因為Keepalived 在啟動時並不檢測配置文件的正確性,即使沒有配置文件,Keepalived也照樣能夠啟動,所以一定要保證配置文件正確。

在默認情況下,Keepalived 在啟動時會查找/etc/Keepalived/Keepalived.conf 配置文件,如果配置文件放在了其他路徑下,可以通過“Keepalived  -f”參數指定配置文件的路徑即可。

      Keepalived.conf配置完畢后,將此文件復制到備用Director Server對應的路徑下,然后進行兩個簡單的修改即可。

u  “state MASTER”更改為“state BACKUP”

u  priority 100更改為一個較小的值,這里改為“priority 80”

3.配置Real server 節點

heartbeat+LVS類似,Keepalived+LVS也需要為Real server節點配置VIP,抑制ARP,以達到與Director Server相互通信的目的。

4.啟動Keepalived+LVS 集群系統

在主、備 Director Server上分別啟動Keepalived 服務,可以執行如下操作:

        [root@DR1 ~]#/etc/init.d/Keepalived  start 

接着在兩個 Real server 上執行如下腳本:    

至此,Keepalived+LVS 高可用的 LVS 集群系統已經運行起來了。






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM