日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从编译安装Keepalived 到 配置 负载均衡(LVS-DR)

發布時間:2024/4/14 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从编译安装Keepalived 到 配置 负载均衡(LVS-DR) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在研究服務器高可用集群?(HA)……

Keepalived?是用C寫的軟路由。提供負載均衡與高可用特性。

負載均衡利用IPVS技術

高可用通過VRRP協議實現

更難能的貴的是,一直到最近還在更新

最近版本 Release 1.3.5?發布于 2017-03-19

安裝過程官方推薦從源碼編譯,當然,負載均衡部分基于LVS,所以LVS部分直接YUM安裝。

?

目標


?

實現一個如下圖所示的高可用服務器集群。

集群由兩臺調度器(DirectorServer,DS),三臺真實服務器(RealServer,RS)構成。調度器一主一備,三臺真實服務器進行負載均衡提供服務。

配置完成后只要能保證至少一臺DS和一臺RS工作正常,即可對外提供服務。并且管理員可以在郵箱收到相關服務器啟停的郵件匯報。

?

準備


服務器使用Oracle VM VirtualBox虛擬實現,虛擬機網絡使用橋接,所有虛擬機(五臺服務器)均在統一內網中,負載均衡工作在LVS的DR模式下。

虛擬機信息:

DS1?- master(CentOS-6.8-x86_64-minimal) : 192.168.0.201

DS2?- backup(CentOS-6.8-x86_64-minimal): 192.168.0.202

RS1 (CentOS-6.8-x86_64-minimal): 192.168.0.203

RS2 (CentOS-6.8-x86_64-minimal): 192.168.0.204

RS3 (CentOS-6.8-x86_64-minimal): 192.168.0.205

VIP:?192.168.0.200

?

keepalived編譯與安裝(兩臺DS上進行)


1)安裝依賴庫,配置防火墻開放端口。

yum install gcc openssl-devel libnl3-devel ipset-devel iptables-devel libnfnetlink-devel net-snmp-devel -y

iptables -I INPUT -i eth0 -d 224.0.0.0/8 -p vrrp -j ACCEPT
iptables -I OUTPUT -o eth0 -d 224.0.0.0/8 -p vrrp -j ACCEPT
service iptables save

?

2)獲取最近版本源代碼。

wget http://www.keepalived.org/software/keepalived-1.3.5.tar.gz

tar -zxvf keepalived-1.3.5.tar.gz

?

3)進入目錄,編譯。

cd keepalived-1.3.5

./configure
?make && make install

?

4)配置系統服務和開機啟動:

cp ./keepalived/etc/init.d/keepalived /etc/init.d/
cp ./keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/sbin/keepalived /usr/sbin/

chkconfig keepalived on?

service keepalived status??#驗證系統服務安裝成功

?

5)一些清理工作:

cd ..
rm -rf keepalived-1.3.5

?

keepalived配置


1)配置RS,提供WEB服務

三臺RS使用Nginx對外提供服務,三個RS提供服務器的端口必須一致,例如80.

為了驗證負載均衡效果,可以讓三臺服務器返回的頁面略有區別,比如返回的頁面中帶上自己的hostname

計劃配置LVS負載均衡工作在DR模式下。所以需要對RS進行ARP抑制配置。

配置腳本 realserver.sh?如下:

#!/bin/bash VIP=192.168.0.200 source /etc/rc.d/init.d/functions case "$1" in start) ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP /sbin/route add -host $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 echo "RealServer Start OK" ;; stop) ifconfig lo:0 down route del $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" ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0

執行時使用 ?/path/to/realserver.sh start?

三臺RS均需要執行。

?

2)配置DS,實現HA與負載調度。

Keepalived的負載均衡功能直接利用了LVS,所以使用Keepalived自帶的virtual_server配置方式配置負載均衡前,需要為兩臺DS均安裝LVS:

yum?install?ipvsadm?-y

LVS的DR模式沒有端口轉發功能。調度器對包暴漏的端口和服務器對外提供的服務使用的端口必須是一致的(本案為80端口)。

兩臺DS均需要開放80端口,以對外提供服務:

iptables -I INPUT -p tcp --dport 80 -j ACCEPT
service iptables save

DS-Master創建keepalived配置文件:

mkdir /etc/keepalived
vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived global_defs { notification_email { guang384@qq.com} notification_email_from guang384@163.comsmtp_server 127.0.0.1?#使用本地STMP服務,配置方式參考另一篇文章smtp_connect_timeout 30
#服務器全局屬性,在收到提醒郵件的時候會用來作為當前服務器的標識,所以每臺服務器都要唯一 router_id LVS_DR_DS1 ?
} vrrp_instance VI_1 { state MASTER #指定Keepalived的角色, MASTER 為主機服務器, BACKUP 為備用服務器 interface eth0virtual_router_id 51 priority 100 #定義優先級,數字越大,優先級越高,主DR必須大于備用DR。 advert_int 1 #心跳間隔,MASTER每隔1秒發送報文告知組內其他機器自己還活著。(主備狀態依靠心跳維持) authentication {auth_type PASSauth_pass 1111} virtual_ipaddress {192.168.0.200 #設置主DR的虛擬IP地址(virtual IP),可多設,但必須每行1個 }smtp_alert?#使用郵件通知 } virtual_server 192.168.0.200 80 { #注意IP地址與端口號之間用空格隔開 delay_loop 1 #設置健康檢查時間,單位是秒 ?(是的,keepalived健康檢查也是輪詢模式)lb_algo rr #設置負載調度算法,默認為rr,即輪詢算法,最優秀是wlc算法 lb_kind DR #設置LVS實現LB機制,有NAT、TUNN和DR三個模式可選 #persistence_timeout 50 #保持客戶端的請求在這個時間段內全部發到同一個真實服務器,單位為秒 protocol TCP #指定轉發協議類型,有TCP和UDP兩種 real_server 192.168.0.203 80 { weight 1 #配置節點權值,數字越大權值越高 TCP_CHECK { connect_timeout 2 #表示2秒無響應,則超時 retry 2 #表示重試次數 delay_before_retry 1 #表示重試間隔 } } real_server 192.168.0.204 80 { weight 1TCP_CHECK {connect_timeout 2retry 2delay_before_retry 1} } real_server 192.168.0.205 80 { weight 1TCP_CHECK {connect_timeout 2retry 2delay_before_retry 1} } }

同樣配置文件復制到 DS-BACKUP

修改3個地方(很多文章說只需要配置vrrp_instance中的?狀態 和?優先級?兩處即可,但是為了郵件提示的準確性,需要將 global_defs.route_id?配置不一樣,當然,如果沒有配置郵件提示而使用其他方式如nagios對服務器進行監控,這里配置什么其實無所謂)

keepalived.conf修改三個地方

?1) router_id LVS_DR_DS2

?2) state BACKUP

?3 ) ?priority 50???

?

keepalived?啟動和停止:

service keepalived?start|stop

keepalived執行日志默認位置:

tail -f? /var/log/messages

直接前臺模式啟動(for?調試)?:

keepalived -l -D -n -d

?

?測試


略……???_(:3」∠)_? -

轉載于:https://www.cnblogs.com/tugeler/p/6621959.html

總結

以上是生活随笔為你收集整理的从编译安装Keepalived 到 配置 负载均衡(LVS-DR)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。