久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

怎么搭建Lvs+heartbeat高可用高性能web站點(diǎn)

共計(jì) 5508 個(gè)字符,預(yù)計(jì)需要花費(fèi) 14 分鐘才能閱讀完成。

這篇文章主要為大家展示了“怎么搭建 Lvs+heartbeat 高可用高性能 web 站點(diǎn)”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“怎么搭建 Lvs+heartbeat 高可用高性能 web 站點(diǎn)”這篇文章吧。

說(shuō)明:每臺(tái)服務(wù)器需要有兩塊網(wǎng)卡:eth0 連接內(nèi)網(wǎng)的交換機(jī),用私網(wǎng) ip,實(shí)現(xiàn)服務(wù)器間內(nèi)部訪(fǎng)問(wèn);eth2 連接公網(wǎng)交換機(jī),供外網(wǎng)訪(fǎng)問(wèn)。如果想節(jié)約成本可以只用一個(gè)交換機(jī),劃分 2 個(gè) vlan 分別連接內(nèi)網(wǎng)和外網(wǎng)也可以,但這樣有風(fēng)險(xiǎn),一旦交換機(jī)出問(wèn)題,內(nèi)網(wǎng)和外網(wǎng)都不能訪(fǎng)問(wèn),一定要權(quán)衡一下得失。

怎么搭建 Lvs+heartbeat 高可用高性能 web 站點(diǎn)

各個(gè)服務(wù)器 ip 配置如下:

主 ha  eth2:1.1.1.14  eth0:192.168.1.8(心跳)

從 ha  eth2:1.1.1.15  eth0:192.168.1.30(心跳)

real1:eth2:1.1.1.16 eth0:192.168.1.9

real1:eth2:1.1.1.16 eth0:192.168.1.10

real1:eth2:1.1.1.16 eth0:192.168.1.11

real1:eth2:1.1.1.16 eth0:192.168.1.12

一. 主 ha 的配置:

1. hosts 文件的內(nèi)容如下(如果有自己的 DNS 的話(huà),也可以用 DNS 做解析):

127.0.0.1 primary.fantong.com localhost.localdomain localhost
::1  localhost6.localdomain6 localhost6
1.1.1.14  primary.fantong.com
192.168.1.8  primary.fantong.com
1.1.1.15  backup.fantong.com
192.168.1.30  backup.fantong.com

2. 修改主機(jī)名: 編輯 /etc/sysconfig/network

HOSTNAME=primary.fantong.com

3. 用命令修改一下主機(jī)名:

#hostname primary.fantong.com

4. 安裝軟件

yum -y install libnet

yum -y install heartbeat-*

yum -y install heartbeat(如果報(bào)錯(cuò),再安裝一次就 ok 了)

yum  -y install ipvsadm

如果是 redhat 系統(tǒng)沒(méi)有 yum 源的話(huà),可以參考我的一篇博客文章來(lái)更改 yum 的一些設(shè)置: http://gehailong.blog.51cto.com/765312/610127

5. 軟件安裝完成以后會(huì)生成目錄 /etc/ha.d,該目錄下存放 heartbeat 的配置文件,驗(yàn)證文件,資源文件 (腳本, 注意:在 heartbeat 中,腳本都被稱(chēng)為資源) 等,這三個(gè)文件是必不可少的,本文中這三個(gè)文件都是我手工寫(xiě)的。

1). Heatbeat 的主配文件:/etc/ha.d/ha.cf/ha.cf

logfile /var/log/ha-log
debugfile /var/log/ha-debug
logfacility  local0 
keepalive 2 #主從切換的保持時(shí)間
deadtime 30 #宣布對(duì)方死亡時(shí)間
warntime 10 #警告時(shí)間
udpport 694 #主從之間的通信端口
ucast eth0 192.168.1.30  #采用單播方式探測(cè)心跳,bcast 是廣播方式;后面的地址是對(duì)端地址
auto_failback on #自動(dòng)恢復(fù),就是說(shuō)如果主從故障中恢復(fù)會(huì)搶回主的位置
node  primary.fantong.com #主節(jié)點(diǎn)主機(jī)名
node  backup.fantong.com #從節(jié)點(diǎn)主機(jī)名
ping 192.168.1.30
ping_group lbgroup 1.1.1.14 1.1.1.15
ping_group lbgroup 192.168.1.8 192.168.1.30
respawn hacluster /usr/lib64/heartbeat/ipfail  #如果是 32 位系統(tǒng),則目錄應(yīng)該為 /usr/lib/heartbeat/ipfail
apiauth ipfail gid=haclient uid=hacluster #驗(yàn)證用的用戶(hù)和組 ID(已經(jīng)自動(dòng)建好了)

2). 資源列表 /etc/ha.d/haresources 后面跟的是資源名(腳本),要保證跟 backup 的內(nèi)容完全一致。

primary.fantong.com lvs ldirectord

3). 驗(yàn)證文件 /etc/ha.d/authkeys 主從驗(yàn)證 testlab 驗(yàn)證密碼,要保證跟 backup 的內(nèi)容一致,否則主從驗(yàn)證失敗。注意:改為該文件權(quán)限必須為 600

auth2
1 sha1 testlab

6. 在安裝 heatbeat-* 的時(shí)候會(huì)安裝一個(gè)叫 heartbeat-ldirectord 的文件,他的作用是管理后端的 realserver。比如后端某個(gè) realserver 死掉了,他會(huì)自動(dòng)從列表當(dāng)中刪除該資源,當(dāng)該資源恢復(fù)后再自動(dòng)添加進(jìn)去。配置文件是:/etc/ha.d/ldirectord.cf,內(nèi)容如下(是我自己手工寫(xiě)的):

# Global Directives 監(jiān)控 realserver
checktimeout=3 #realserver 超時(shí)時(shí)間
checkinterval=1 #檢查的間隔時(shí)間
fallback=127.0.0.1:80 #如果所有 realserver 宕機(jī),由誰(shuí)來(lái)承擔(dān)
autoreload=yes
logfile= /var/log/ldirectord.log
emailalert= ftyw@fantong.com #出問(wèn)題發(fā)郵件給誰(shuí)(可以定義郵件組)
emailalertfreq=3600
emailalertstatus=all
quiescent=no #如果 realserver 出問(wèn)題,立即從資源列表刪除
# Sample for an http virtual service
virtual=1.1.1.13:80  #(注意這個(gè)文件的格式,下面的內(nèi)容必須至少空 4 格)
  real=1.1.1.16:80 gate #gate 表示采用的是 lvs 中 DR 模式,有關(guān) lvs 的模式和工作原理大家可以查找相關(guān)資料來(lái)了解一下。
  real=1.1.1.17:80 gate
real=1.1.1.18:80 gate

real=1.1.1.19:80 gate
fallback=127.0.0.1:80 gate
service=http
scheduler=wrr #realserver 的調(diào)動(dòng)方法:加權(quán)輪訓(xùn)
persistent=5 #客戶(hù)端連接的持久時(shí)間
protocol=tcp
checktype=connect
  checkport=80

7. 該腳本的作用是啟動(dòng)資源 /etc/init.d/lvs

#!/bin/bash
# description: start LVS of DirectorServer
#Written by :NetSeek http://www.linuxtone.org GW=192.168.1.254
# website director vip.
GW=1.1.1.13  #網(wǎng)關(guān)地址千萬(wàn)不要填錯(cuò)了,否則你的輔助(浮動(dòng))ip 是無(wú)法訪(fǎng)問(wèn)的。
WEB_VIP=1.1.1.13
WEB_RIP1=1.1.1.16
WEB_RIP2=1.1.1.17
WEB_RIP3=1.1.1.18

WEB_RIP3=1.1.1.19
. /etc/rc.d/init.d/functions
logger $0 called with $1
case $1 in
start)
# Clear all iptables rules.
/sbin/iptables –F #這個(gè)地方要注意一下,如果公司最外端有防火墻,就可以清空 iptables 內(nèi)容(都做允許,或者停止),把改行注釋掉;如果沒(méi)有就需要有防火墻了,自己寫(xiě)策略或者寫(xiě)腳本。
# Reset iptables counters.
/sbin/iptables –Z #同上
# Clear all ipvsadm rules/services.
/sbin/ipvsadm -C
#set lvs vip for dr
/sbin/ipvsadm –set 30 5 60
/sbin/ifconfig eth2:0 $WEB_VIP broadcast $WEB_VIP netmask 255.255.255.255 up
/sbin/route add -host $WEB_VIP dev eth2:0
/sbin/ipvsadm -A -t $WEB_VIP:80 -s wrr -p 3
/sbin/ipvsadm -a -t $WEB_VIP:80 -r $WEB_RIP1:80 -g -w 1
/sbin/ipvsadm -a -t $WEB_VIP:80 -r $WEB_RIP2:80 -g -w 1

/sbin/ipvsadm -a -t $WEB_VIP:80 -r $WEB_RIP3:80 -g -w 1

/sbin/ipvsadm -a -t $WEB_VIP:80 -r $WEB_RIP4:80 -g -w 1

touch /var/lock/subsys/ipvsadm /dev/null 2 1
# set Arp
/sbin/arping -I eth2 -c 5 -s $WEB_VIP $GW /dev/null 2 1
;;
stop)
/sbin/ipvsadm -C
/sbin/ipvsadm -Z
ifconfig eth2:0 down
route del $WEB_VIP /dev/null 2 1
rm -rf /var/lock/subsys/ipvsadm /dev/null 2 1
/sbin/arping -I eth2 -c 5 -s $WEB_VIP $GW
echo ipvsadm stoped
;;
status)
if [! -e /var/lock/subsys/ipvsadm];then
echo ipvsadm is stoped
exit 1
else
ipvsadm -ln
echo ……….ipvsadm is OK.
fi
;;
*)
echo Usage: $0 {start|stop|status}
exit 1
esac

exit 0

8.  做一下兩步操作:

chmod 755 /etc/init.d/lvs 

  ln -s  /etc/init.d/lvs  /etc/ha.d/resource.d  #啟動(dòng) ldirectord 的時(shí)候它會(huì)從 /etc/init.d 和 /etc/ha.d/resource.d 目 錄里面搜索資源(腳本)。

9. 讓 heartbeat 開(kāi)機(jī)自啟動(dòng)。

chkconfig  heartbeat  on

二.  backup 上面的配置

1. 安裝軟件包,同 primary

2. 把 primary 上所有的腳本拷貝到 backup 上面,包括 hosts 文件,/etc/ha.d/* 里面的所有的內(nèi)容。

3. 修改 /etc/ha.d/ha.cf。其他文件的內(nèi)容與主的保持一致就可以。

ucast eth0 192.168.1.8  #采用單播方式探測(cè)心跳,bcast 是廣播方式;后面的地址是對(duì)端地址(主的 ip)
………

ping 192.168.1.8

4. chkconfig heartbeat  on

三. realserver 的配置

1. 編寫(xiě)腳本 /root/real.sh,主要作用是屏蔽 arp,否則的話(huà)會(huì)與其他 realserver 和 ha 的地址發(fā)生沖突,腳本內(nèi)容如下:

#/bin/sh
VIP=1.1.1.13
source /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 of RealServer
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 wrong,please use start|stop
exit 1
esac

2. 修改一下腳本權(quán)限:chmod 755 real.sh

3. 啟動(dòng)腳本 /root/real.sh start

4. 加入啟動(dòng)項(xiàng):

修改 /etc/rc.local 在最后寫(xiě)入一行

/root/real.sh  start

四. 測(cè)試。

1. 在主從上面分別啟動(dòng) heartbeat。(注意:先主后從)

service heartbeat start

2. 觀察主日志文件 /var/log/ha-log

怎么搭建 Lvs+heartbeat 高可用高性能 web 站點(diǎn)

看到后面兩行表示已經(jīng)啟動(dòng)完畢,資源加載成功。

3. 觀察從日志文件 /var/log/ha-log

怎么搭建 Lvs+heartbeat 高可用高性能 web 站點(diǎn)

看到最后一行,表示從啟動(dòng)成功,它并不啟動(dòng)資源。

以上是“怎么搭建 Lvs+heartbeat 高可用高性能 web 站點(diǎn)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-25發(fā)表,共計(jì)5508字。
轉(zhuǎn)載說(shuō)明:除特殊說(shuō)明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒(méi)有評(píng)論)
主站蜘蛛池模板: 金湖县| 保定市| 阿勒泰市| 东山县| 昌图县| 乐山市| 宁海县| 泸水县| 寿阳县| 朝阳市| 斗六市| 霸州市| 梨树县| 江口县| 蓬溪县| 犍为县| 多伦县| 红河县| 新津县| 萝北县| 酒泉市| 濉溪县| 兰西县| 蓝田县| 南和县| 盐山县| 辽阳市| 北安市| 宜州市| 阿瓦提县| 尤溪县| 陇川县| 西盟| 舒兰市| 依安县| 淄博市| 武汉市| 兰考县| 盐城市| 临夏县| 自贡市|