CentOS 7.3 部署LVS + Keepalived 高可用集群
阿新 • • 發佈:2018-06-22
entos ML outer sysconf 主服務器 網絡 F5 direct EDA
雙擊熱備
雙擊熱備
在這個高度信息化的IT時代,企業的生產系統,業務運營,銷售個支持
以及日常管理環節越來越依賴計算機信息和服務,使得對高可用(HA)
技術的應用需求大量上升,以便提供持續的,不間斷計算機或網絡
vs服務器和web-server他們必須在同一個網段內,因為LVS轉發包的時候,是直接修改了包目標的MAC地址,直接扔給了rs,基於MAC地址的修改是活動在OSI二層數據鏈路層的,工作在數據鏈路層的網絡設備就是交換機了,所以必須在一個交換機下面,也就是一個局域網內
為啥抑制real-server的ARP,是這樣的,我們在DR模式要更改web-server的ARP的模式,arp_ignore為1是說只回答目標IP地址是來訪網絡接口本地地址的ARP查詢請求,我們都在回環接口上配置了一個VIP,當arp模式更改以後,那麽如果有誰在請求VIP的mac地址時,那麽那些web-server就會回答arp廣播報文了,只有lvs才會,如果沒有更改arp模式,那麽大家都喊我是VIP,這就亂套了。
Keepalived 雙機熱備
keepalived 起初是專門正對LVS 設計的一款強大的輔助工具,只要用來提供故障切換切換(FAilover)
和健康檢查功能---判斷LVS 負載調到器
節點服務器的可用性,及時隔離並且替換新的服務器,當故障主機恢復後將其重新加入集群
yum install keepalived ipvsadm -y //在線下載所需的軟件
實驗只準備環境為 4臺 centos 7.3
其中兩臺為調度服務器以主服務器一個為備份服務器
另外兩個提供節點服務器
yum install httpd -y //下載服務並且開啟
修改網卡配置
開始調試
先做簡單的先調試兩臺點服務器的配置 1. systemctl start httpd.service //開啟服務 2. echo "this is accp web" >/var/www/html/index.html //生成首頁 3.cp ifcfg-lo ifcfg-lo:0 //復制回環網卡 並且進行修改 4. DEVICE=lo:0 IPADDR=192.168.100.10 NETMASK=255.255.255.0 ONBOOT=yes //就留下這三行 5. vim /etc/init.d/web.sh //添加啟動腳本致內如如下 VIP=192.168.100.10 case "$1" in start) ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP //啟動它的虛擬IP添加網段 /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 ///接受調度服務器給與的回饋 sysctl -p >/dev/null 2>&1 echo "RealServer Start OK " //優化參數 都導入到null 中俗稱黑洞 ;; stop) ifconfig lo:0 down //關閉 虛擬IP 並且關閉服務器給與的回饋 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 Stopd" ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0 6. ifup lo:0 //(建議最後開啟虛擬網卡) 7. service web.sh stop 8. service web.sh start(建議重啟服務) 9. firefox "http://127.0.0.1/"& //進行自測檢測會在後臺進行打開稍等片刻 兩臺配置都一樣 關閉防火墻 等一些阻擋訪問的一些服務
配置調度服務器
1. systemctl stop firewalld.service 關閉防火墻 2. 修改網卡模式 僅主機模式 sysctl.conf這個文件是對Linux系統直接配置的文件,一些基本防護也可以從這個文件做起: # net.ipv4.tcp_syncookies = 1 當出現SYN等待隊列溢出時,啟用cookies來處理,可防範少量SYN×××。 3. vi /etc/sysctl.conf net.ipv4.ip_forward=1 //啟用IP轉發功能,做NAT服務或者路由時才會用到。 #proc響應關閉重定向功能 //惡意用戶可以使用IP重定向來修改遠程主機中的路由表,在設計良好的網絡中,末端的重定向設置是不需要的,發送和接受重定向信息包都要關閉。 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 關閉重定向功能 net.ipv4.conf.ens33.send_redirects = 0 4. sysctl -p //即使生效 5. cp ifcfg-ens33 ifcfg-ens33:0 6. vim ifcfg-ens33:0 DEVICE=ens33:0 //名稱 ONBOOT=yes //開啟網卡 IPADDR=192.168.100.10 //虛擬IP NETMASK=255.255.255.0 //馬克地址 7. ifup ens33:0 //啟動虛擬網卡//如報錯則重啟服務 service network restart 做到這其實就可以訪問網頁來進行測試了
配置調度服務器進行雙機熱備 先做主服務器
1. vim /etc/init.d/dr.sh //添加腳本
GW=192.168.100.1 //網關
VIP=192.168.100.10 //虛擬IP
RIP1=192.168.100.201 //節點服務器
RIP2=192.168.100.202 //節點服務器
case "$1" in
start)
/sbin/ipvsadm --save > /etc/sysconfig/ipvsadm //保存若直接啟動會報錯
systemctl start ipvsadm //開啟工具
/sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up //開啟虛擬網卡
/sbin/route add -host $VIP dev ens33:0 //開啟路由賺翻
/sbin/ipvsadm -A -t $VIP:80 -s rr //調度方法 輪詢
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g //啟動ivsf 調度
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g //指定D2 的模式
echo "ipvsadm starting --------------------[ok]"
;;
stop)
/sbin/ipvsadm -C //關閉時該清空的清空
systemctl stop ipvsadm
ifconfig ens33:0 down //當掉的當
route del $VIP
echo "ipvsamd stoped----------------------[ok]"
;;
status)
if [ ! -e /var/lock/subsys/ipvsadm ];then //檢測啟動的時候文件存不存在 若存在則顯示停止狀態
echo "ipvsadm stoped---------------"
exit 1
else
echo "ipvsamd Runing ---------[ok]"
fi
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
esac
exit 0
2. chmod +x dr.sh
3. service dr.sh start
4. vim/etc/keepalived/
vim/etc/keepalived/ //在配置文件中對應的序列號
10 smtp_server 127.0.0.1
12 router_id LVS_01 //從的改成02
20 state MASTER //為主服務器//BACKUP 從
22 virtual_router_id 10 //更具需求可以不改
27 auth_pass abc123 //預定義密碼
30 192.168.100.10 //留下一個並且對應到虛擬IP
34 virtual_server 192.168.100.10 80 //對應虛擬IP
37 lb_kind DR //DR模式
41 real_server 192.168.100.221 80 { //對應的真實的地址也就是提供服務的IP
43 TCP_CHECK { //檢查
44 url { //準備8DD 刪除8行自行添加
44 cpnnect_port 80 //聲明端口
41 real_server 192.168.100.221 80 { //準備復制10行新成新的對應的證實地址IP
49 } //此處粘貼
real_server 192.168.100.222 80 {
TCP_CHECK {
url {
cpnnect_port 80 //一樣的內容
systemctl start keepalived.service //啟動服務
systemctl status keepalived.service //查看服務有沒有開啟
ip addr show dev ens33:0 //檢測虛擬網卡 啟用
備的服務器一樣的配置
CentOS 7.3 部署LVS + Keepalived 高可用集群