自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

heartbeat+lvs構(gòu)建高可用負(fù)載均衡集群

開發(fā) 前端
本篇文章是在實(shí)驗(yàn)環(huán)境下完成的,能夠?qū)崿F(xiàn)對服務(wù)的高可用和負(fù)載均衡要求,親測可行。至于生產(chǎn)環(huán)境的各中壓力測試沒有進(jìn)行更好的優(yōu)化,希望大家能按自己的需求借鑒,并且提出意見。 在整個(gè)構(gòu)架中,heartbeat作為一個(gè)高可用軟件,對特定的服務(wù)進(jìn)行監(jiān)控和故障轉(zhuǎn)移;而lvs(Linux Virtual Server)作為負(fù)載均衡軟件,對前端客戶的訪問請求進(jìn)行調(diào)度,能夠真正減少前端web服務(wù)器的壓力。然而作為lvs調(diào)度,如果只有單臺調(diào)度很容易造成單點(diǎn)故障,這時(shí)將引入heartbeat,通過heartbeat內(nèi)置插件ldirectord對lvs的監(jiān)控(ldirectord是heartbeat的一個(gè)服務(wù))

heartbeat+lvs實(shí)現(xiàn)高可用負(fù)載均衡原理:

兩臺heartbeat(ldirectord)主機(jī)構(gòu)成高可用集群,同時(shí)監(jiān)管著lvs(負(fù)載均衡集群)整體構(gòu)成了heartbeat+lvs的高可用負(fù)載均衡集群.在使用heartbeat的時(shí)候加載了watchdog模塊,用來檢測heartbeat服務(wù),當(dāng)heartbeat服務(wù)出現(xiàn)故障,會(huì)進(jìn)行重啟主機(jī)。

注意:但是,當(dāng)內(nèi)核崩潰了,watchdog也無能了(modprobe softdog),因?yàn)閣atchdog是基于內(nèi)核級別的軟件服務(wù)(相當(dāng)于軟fence一種硬件保護(hù)機(jī)制)

實(shí)驗(yàn)環(huán)境:CentOS 6.4             
 

系統(tǒng)架構(gòu)主要由四臺主機(jī)組成,兩臺heartbeat主機(jī)作為lvs和heartbeat,兩臺Real Server主機(jī)作為真實(shí)服務(wù)器。

實(shí)驗(yàn)準(zhǔn)備:

1.在本地/etc/hosts文件中定義各個(gè)節(jié)點(diǎn)的解析。

2.關(guān)閉selinux和iptables

3.軟件下載:heartbeat-3.0.4-1.el6.x86_64.rpm        heartbeat-devel-3.0.4-1.el6.x86_64.rpm 

ldirectord-3.9.2-1.2.x86_64.rpm                heartbeat-libs-3.0.4-1.el6.x86_64.rpm

實(shí)驗(yàn)步驟:
 

一、heartbeat安裝及配置:

# yum localinstall *.rpm                                 使用yum方式安裝,能夠解決本地rpm包所需要依賴(前提得需要yum源)

#less /etc/ha.d/README.config 

        ha.cf           Main configuration file                 heartbeat高可用主配置文件
        haresources     Resource configuration file      資源文件
        authkeys        Authentication information        認(rèn)證文件

# cd /usr/share/doc/heartbeat-3.0.4/

# cp authkeys haresources ha.cf /etc/ha.d/

# vim ha.cf
debugfile /var/log/ha-debug
logfile /var/log/ha-log
keepalive 2                指定心跳間隔為2s
deadtime 30                備用節(jié)點(diǎn)在30s后自動(dòng)接管資源
warntime 10                心跳延遲10s,10s內(nèi)備用機(jī)不接受主節(jié)點(diǎn)心跳                    就會(huì)發(fā)出警告
initdead 60                重啟后恢復(fù)網(wǎng)絡(luò)的時(shí)間(至少deadtime的2倍)
udpport 666                 廣播通信使用的端口
bcast   eth0                 使用廣播()
auto_failback on               故障轉(zhuǎn)換
watchdog /dev/watchdog             這個(gè)得加載一個(gè)模塊
node    server66.example.com        主節(jié)點(diǎn)和輔助節(jié)點(diǎn)
node    server68.example.com
ping 192.168.0.253                      測試連通性,***是網(wǎng)關(guān)

respawn選項(xiàng)是可選的,列出與heartbeat一起啟動(dòng)和關(guān)閉的進(jìn)程,該進(jìn)程一般是和heartbeat集成的插件,這些進(jìn)程遇到故障可以自動(dòng)重啟。默認(rèn)使用ipfail
respawn hacluster /usr/lib64/heartbeat/ipfail    檢測和處理網(wǎng)絡(luò)故障
#apiauth client-name gid=gidlist uid=uidlist
apiauth ipfail gid=haclient uid=hacluster         ipfail的運(yùn)行用戶和組

 

加載watchdog,軟fence監(jiān)控heartbeat并且重啟

# modprobe softdog

# vi /etc/rc.local                                    設(shè)置開機(jī)自動(dòng)加載
 

    modprobe softdog 
 

# vim authkeys        認(rèn)證文件權(quán)限必須600
auth 3
#1 crc
#2 sha1 HI!
3 md5 Hello!

# chmod 600 authkeys

# vim haresources

server68.example.com IPaddr::192.168.0.234/24/eth0 httpd             定義主節(jié)點(diǎn),虛擬ip和監(jiān)控的服務(wù)

要確定主節(jié)點(diǎn)的httpd服務(wù)啟動(dòng)了

heartbeat默認(rèn)可用監(jiān)控一下目錄的服務(wù):

/etc/init.d/     ;/etc/ha.d/resource.d/    ;/etc/ha.d/rc.d/

heartbeat安裝配置完成,此時(shí)可以在另外一臺主機(jī)上安裝heartbeat,并且進(jìn)行相應(yīng)的配置。(注意,在配置集群的時(shí)候,盡量選擇相同配置的主機(jī),這樣便于以后管理和排錯(cuò))

測試heartbeat:

#/etc/init.d/heartbeat start            分別在兩臺heartbeat主機(jī)上啟動(dòng)服務(wù)

#tail -f /var/log/message             查看日志發(fā)現(xiàn)server68主機(jī)接管VIP資源,此時(shí)可以ping同VIP

同時(shí)heartbeat服務(wù)監(jiān)控本地httpd服務(wù),發(fā)現(xiàn)httpd也會(huì)開啟

二、構(gòu)建lvs負(fù)載均衡集群

在之前兩臺heartbeat主機(jī)上進(jìn)行相同的安裝配置操作(部分參數(shù)得指定)

使用lvs負(fù)載均衡會(huì)使用到三種工作方式(NAT/DR/TNU)和八種調(diào)度算法,這里就做說明。

lvs的配置一般有三種方式:通過ipvsadm命令配置

                                    通過ldirectord(heartbeat插件)來配置

                                    通過紅帽可視化piranha軟件進(jìn)行配置

通過ipvsadm命令配置lvs:

# ipvsadm -A -t 192.168.0.224:80 -s rr              定義一個(gè)VIP,使用輪詢
# ipvsadm -a -t 192.168.0.224:80 -r 192.168.0.103:80 -g        定義rs使用DR模式
# ipvsadm -a -t 192.168.0.224:80 -r 192.168.0.191:80 -g
 

本章將使用ldirectord配置lvs:

ldirectord工作原理:

ldirectord 需要你在真實(shí)服務(wù)器內(nèi)啟用apache服務(wù)器,并在每臺真實(shí)服務(wù)器web服務(wù)器的根目錄下建立你在配置文件所指定的文件與內(nèi)容,然后ldirectord 通過循環(huán)檢查此文件來確定真實(shí)服務(wù)器是否存活,如果不存活,則自動(dòng)將其權(quán)重設(shè)為0,以確保后面客戶的連接不會(huì)再導(dǎo)向失效的真實(shí)服務(wù)器,如果真實(shí)服務(wù)修復(fù)上線后,則其又將它的權(quán)重設(shè)為以使它能夠繼續(xù)為客端連接提供服務(wù)。

ldirectord主要是通過調(diào)用ipvsadm來創(chuàng)建ipvs虛擬服務(wù)器表。

#yum install ipvs -y
#yum localinstall ldirectord****.rpm
perl-IO-Socket-INET6 ldirectord啟動(dòng)時(shí)需要的包
#/etc/init.d/ldirectord start

使用ldirectord來配置lvs,并將ldirectord交給heartbeat控管:

將lvs交給ldirectord來監(jiān)控:

注意:heartbeat上安裝ldirectord

      heartbeat上安裝lvs

      主備配置文件一致

#cp -r /usr/share/doc/packages/ldirectord/ldirectord.cf /etc/ha.d/

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

virtual=192.168.0.224:80                    定義虛擬資源VIP
        real=192.168.0.103:80 gate        指定后端真實(shí)服務(wù)器,采用DR調(diào)度模式
        real=192.168.0.191:80 gate
        fallback=127.0.0.1:80 gate          當(dāng)真實(shí)服務(wù)器宕機(jī),本機(jī)自動(dòng)接管
        service=http
        scheduler=rr                              使用輪詢調(diào)度算法
        #persistent=600
        #netmask=255.255.255.255
        protocol=tcp
        checktype=negotiate
        checkport=80

#vim /etc/init.d/ldirectord
    #. /etc/ha.d/shellfuncs      注釋掉

#/etc/init.d/ldirectord start

Real Server需要進(jìn)行一下配置:

注意:在配置lvs負(fù)載均衡時(shí),后端真實(shí)服務(wù)器需要制定VIP和禁止arp(使用arptables軟件)

#yum install arptables_jf -y
#ifconfig lo:0 192.168.0.224 netmask 255.255.255.255
#arptables -A IN -d 192.168.0.224 -j DROP        VIP設(shè)置
#arptables -A OUT -s 192.168.0.224 -j mangle --mangle-ip-s 192.168.0.103 增加RS
#/etc/init.d/arptables_jf save
#chkconfig arptables_jf on

lvs負(fù)載均衡集群配置成功

測試:在瀏覽器中訪問http://192.168.0.224 會(huì)自動(dòng)加載103和191的web發(fā)布頁面,刷新會(huì)自動(dòng)跳轉(zhuǎn)則配置成功。

三、整合heartbeat+lvs實(shí)現(xiàn)高可用負(fù)載均衡

首先在另外一臺heartbeat主機(jī)上安裝并且配置LVS,并且啟動(dòng)相應(yīng)的服務(wù)。

修改heartbeat資源配置文件:

# vim haresources
server68.example.com IPaddr::192.168.0.224/24/eth0 httpd ldirectord

注意:主備心跳節(jié)點(diǎn)必須同步哦

這樣,就可以使用heartbeat來監(jiān)控和控制lvs了(其實(shí)是heartbeat能夠監(jiān)控三個(gè)目錄里的腳本文件,就直接監(jiān)控了ldirectord,而ldirectord又用來配置和監(jiān)控LVS)

 

測試:現(xiàn)在直接關(guān)閉ldirectord

開啟heartbeat,會(huì)發(fā)現(xiàn)ldirectord開啟了,同時(shí)訪問流量器能夠訪問RS的內(nèi)容

其實(shí)是lvs負(fù)載均衡過來的哦

測試高可用性和負(fù)載均衡性吧!

1.當(dāng)關(guān)閉任何一個(gè)heartbeat主機(jī),另外一個(gè)heartbeat主機(jī)會(huì)進(jìn)行檢測和接管服務(wù)(VIP和ldirectord,ldirectord其實(shí)監(jiān)控的lvs),因此不會(huì)影響客戶對后端真實(shí)服務(wù)的訪問。

2.負(fù)載均衡測試:在不斷的刷新過程中,會(huì)刷新出不同Real Server主機(jī)發(fā)布的頁面。

原文鏈接:http://my.oschina.net/xxbAndy/blog/264337

責(zé)任編輯:林師授 來源: oschina
相關(guān)推薦

2012-02-15 00:01:34

2014-08-01 12:57:31

linuxheartbeatlvs

2014-05-30 13:35:21

MySQL Clust架構(gòu)

2012-02-15 22:40:23

heartbeat高可用

2012-05-07 10:20:12

LVS集群

2024-11-11 16:29:54

負(fù)載均衡器系統(tǒng)

2019-12-24 14:28:00

KeepalivedNginxTomcat

2016-05-03 13:13:43

wotucloud負(fù)載均衡

2014-05-08 14:58:42

高可用集群負(fù)載均衡集群

2010-06-21 14:37:18

2010-04-22 14:19:21

LVS負(fù)載均衡集群

2010-04-22 11:47:58

集群負(fù)載均衡

2012-05-09 10:45:20

LinuxLVSHeartbeat

2017-02-06 11:43:57

ZooKeeper集群

2017-02-19 19:57:05

ZooKeeper集群

2023-10-13 18:57:22

2013-10-28 01:44:56

mysql載均衡高可用環(huán)境

2010-04-22 14:32:56

LVS負(fù)載均衡集群

2019-10-09 16:02:16

NginxKeepalivedLvs

2019-08-26 08:36:09

負(fù)載均衡高可用Nginx
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號