中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用LVS+heartbeat構建高可用web集群

發布時間:2021-11-17 09:49:47 來源:億速云 閱讀:139 作者:小新 欄目:云計算

這篇文章將為大家詳細講解有關如何使用LVS+heartbeat構建高可用web集群,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

從事運維兩年多以來一直沒有去碰heartbeat,以前凡是牽扯到HA的應用一般都是用keepalived。原因是因為heartbeat太笨重,配置起來不不像keepalived那么簡單,如果一個應用越是復雜,那么它的故障并發率必然也就越高,恢復故障時用的時間也就越長。這次接觸heartbeat是被逼無奈,因為公司線上的集群環境是用LVS+heartbeat為后端應用做的分發。所以要血補一下heartbeat上的知識。搭建heartbeat時遇到一些小麻煩,在此分享一下lvs+heartbeat的部署過程和搭建時該注意細節

準備工作:

1、在master和backup系統的hosts文件中添加如下信息

10.10.10.1 master

10.10.10.2 backup

 

2、開啟master節點和backup節點系統的IP轉發功能

# vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

 

一、安裝LVSheartbeat

#tar zxvf ipvsadm-1.24.tar.gz

#cd ipvsadm-1.24

#ln -s /usr/src/kernels/2.6.18-164.el5-i686/ /usr/src/linux

#make && make install

 

#tar zxvf libnet-1.1.2.1.tar.gz

#cd libnet

#./configure

#make && make install

 

#groupadd -g 694 haclient

#useradd -u 694 -g haclient hacluster

#tar zxvf heartbeat-2.0.8.tar.gz

#cd heartbeat-2.0.8

#./ConfigureMe configure

#make && make install

 

二、配置heartbeatLVS

安裝完heartbeat后系統會生成一個/etc/ha.d/目錄,此目錄用于存放heartbeat的有關配置文件。Heartbeat自帶配置文件的注釋信息較多,我們在此手工編寫有關配置文件,heartbeat常用配置文件有四個,分別是:

ha.cf:heartbeat主配置文件

ldirectord.cf:資源管理文件

haresources:本地資源文件

authkeys:認證文件

 

1  、配置  ha.cf

#vi /etc/ha.d/ha.cf

logfile /var/log/ha.log    #日志文件放置路徑    

keepalive 2    #心跳頻率,默認為秒    

deadtime 10    #判斷節點死亡時間    

warntime 5    #警告時間    

initdead 30    #deadtime的最少兩倍    

udpport 694    #監聽端口    

bcast eth2    #心跳使用的網絡接口    

auto_failback off    #當主節點恢復正常后,是否切換到主節點    

node master    #主節點    

node backup    #備用節點    

ping_group group1 192.168.1.103 192.168.1.104    #real server地址    

respawn hacluster /usr/lib/heartbeat/ipfail    

apiauth ipfail gid=haclient uid=hacluster    

 

2  、配置  ldirectord.cf

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

 checktimeout=5    #檢測超時時間    

checkinterval=1    #檢測時間    

autoreload=yes    #配置文件改動時是否自動加載    

logfile="/var/log/ldirectord.log"    # ldirectord日志路徑    

quiescent=no    #檢測到real server異常后是否保留該real server的配置    

virtual=192.168.1.100:80    #VIP    

    real=192.168.1.103:80 gate    #real server    

    real=192.168.1.104:80 gate    #real server    

    service=http    

    checkport=80    

    protocol=tcp    

    persistent=600    #連接會話保持時間    

    scheduler=wlc    #LVS負載算法    

    checktype=negotiate    #通過交互來判斷服務是否正常    

 

3  、配置  haresources

#vi /etc/ha.d/haresources

master IPaddr::192.168.1.100 ipvsadm ldirectord    

注:master為LVS主節點主機名稱;IPaddr為VIP;ipvsadm ldirectord為所要監視的應用

 

4  、配置  authkeys

# vi /etc/ha.d/authkeys

auth 3    

3 md5 test    

# chmod 600 /etc/ha.d/authkeys

注:權限一定要設置為600,不然heartbeat啟動時會報錯

 

5  、配置  IPVS

#vi /etc/sysconfig/ipvsadm

-A -t 192.168.1.100:80 -s wlc -p 600    

-a -t 192.168.1.100:80 -r 192.168.1.103:80 -g    

-a -t 192.168.1.100:80 -r 192.168.0.104:80 -g    

注:-p 600的意思是會話保持時間為600秒,應該和ldirectord.cf文件配置一致

 

6  、啟動  heartbeat

# /etc/init.d/heartbeat start

#echo "/etc/init.d/heartbeat start" >>/etc/rc.local

注:啟動heartbeat后注意觀察三點:①:檢查系統UDP694是否啟動;②:觀察heartbeat日志,看是否有錯誤信息輸出,本次啟動heartbeat時日志中報錯信息如下

ResourceManager[11840]: 2011/04/09_19:56:51 ERROR: Return code 2 from /etc/init.d/ldirectord

ResourceManager[11840]: 2011/04/09_19:56:51 ERROR: Resource script for ldirectord probably not LSB-compliant.

后來經過排查是發現系統通過heartbeat去啟動ldirectord時無法啟動,報錯信息如下:

Can’t locate LWP/UserAgent.pm

原因是因為缺少相應perl模塊,安裝上libwww-perl 、perl-MailTools后ldirectord便可正常啟動。③檢查網卡是否加載上了VIP,啟動heartbeat約15秒左右,系統會自動生成VIP并自動加載到eth0:0網卡,可使用ifconfig查看

 

7  、查看  LVS  是否載入了  real server

#  watch ipvsadm –ln

Every 2.0s: ipvsadm -ln                                                                        Tue Apr 12 00:33:58 2011    

     

IP Virtual Server version 1.2.1 (size=4096)    

Prot LocalAddress:Port Scheduler Flags    

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn    

TCP  192.168.1.100:80 wlc persistent 600    

  -> 192.168.1.104:80             Route   1      0          0    

  -> 192.168.1.103:80             Route   1      0          0    

現在還LVS還無法正常處理訪問分發,原因是因為現在LVS只知道如何把請求轉向后端服務器,但是后端服務器還不知道如何處理返回的請求。因此,還需要在real server上綁定LVS服務器

注:本次環境lvs+heartbeat在master和backup節點上的安裝、配置均一模一樣,所以在此不再累述backup節點的安裝和配置

 

三、配置real server web1web2

在web1和web2上分別編寫如下腳本,然后啟動即可,啟動后系統會在回環接口上自動綁定一個虛擬IP

#  vi /etc/sysconfig/real.sh

#!/bin/bash    

#description : start realserver    

VIP=192.168.1.100    

/etc/rc.d/init.d/functions    

case "$1" in    

start)    

echo " start LVS of REALServer"    

/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 Directorserver"    

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    

#  chmod +x /etc/sysconfig/real.sh

#  /etc/sysconfig/real.sh start

#echo "/etc/sysconfig/real.sh start" >>/etc/rc.local

 

四、測試

1、關閉web1或者web1上任意一臺web服務,看訪問VIP是否正常

2、停止master節點上的heartbeat進程,看VIP是否會自動切換到backup節點;恢復master節點,停止backup上的heartbeat進程,看VIP是否會自動切換到master節點

3、將master節點關機,看VIP是否會自動切換到backup;開啟master節點,關閉backup,看VIP是否會自動切換到master節點。測試時多觀察一下heartbeat日志

注:本環境中backup節點與bmaster節點安裝配置均相同,所以在此不再累述backup節點的配置。 

關于“如何使用LVS+heartbeat構建高可用web集群”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

哈密市| 陆丰市| 兴义市| 金堂县| 江源县| 武义县| 永州市| 曲靖市| 若羌县| 梁河县| 柞水县| 象州县| 井冈山市| 横峰县| 鸡东县| 松桃| 县级市| 徐州市| 伊宁市| 敖汉旗| 晴隆县| 新宾| 泗水县| 广东省| 台北市| 肥乡县| 利辛县| 郧西县| 宾阳县| 理塘县| 织金县| 甘洛县| 渑池县| 浦东新区| 阳城县| 临西县| 榆中县| 云安县| 嘉荫县| 开远市| 吴江市|