heartbeat+LVS

####heartbeat簡介####
Heartbeat 項目是 Linux-HA 工程的一個組成部分,它實現(xiàn)了一個高可用集群系統(tǒng)。心跳服務和集群通信是高可用集群的兩個關(guān)鍵組件,在 Heartbeat 項目里,由 heartbeat 模塊實現(xiàn)了這兩個功能。
這個集群方案是利用第三方軟件搭建的,要比RedHat自帶的集群軟件在功能上簡化一些,但是搭建起來非常的方便。而且是一種快速解決方案。
heartbeat的高可用集群采用的通信方式是udp協(xié)議和串口通信,而且heartbeat插件技術(shù)實現(xiàn)了集群間的串口、多播、廣播和組播通信。它實現(xiàn)了HA 功能中的核心功能——心跳,將Heartbeat軟件同時安裝在兩臺服務器上,用于監(jiān)視系統(tǒng)的狀態(tài),協(xié)調(diào)主從服務器的工作,維護系統(tǒng)的可用性。它能偵測服務器應用級系統(tǒng)軟件、硬件發(fā)生的故障,及時地進行錯誤隔絕、恢復;通過系統(tǒng)監(jiān)控、服務監(jiān)控、IP自動遷移等技術(shù)實現(xiàn)在整個應用中無單點故障,簡單、經(jīng)濟地確保重要的服務持續(xù)高可用性。  Heartbeat采用虛擬IP地址映射技術(shù)實現(xiàn)主從服務器的切換對客戶端透明的功能。
但是單一的heartbeat是無法提供健壯的服務的,所以我們在后臺使用lvs進行負載均衡



####安裝heartbeat####
一:設置環(huán)境
1.系統(tǒng):redhat6.5 ;
2.節(jié)點:一共要用到四個虛擬機作為節(jié)點,其中server10與server11安裝heartbeat和lvs,另外兩個節(jié)點server12與server13只提供apache和vsftpd服務;
3.這四個節(jié)點之間的解析一定要做好;
4.防火墻關(guān)閉,時間同步,四個機子的系統(tǒng)版本最好相同。

二:安裝heartbeat:(這個是第三方軟件,不是redhat自帶的,所以大家要自己去下載)
heartbeat-3.0.4-2.el6.x86_64.rpm
heartbeat-devel-3.0.4-2.el6.x86_64.rpm
heartbeat-libs-3.0.4-2.el6.x86_64.rpm

在下載之前還要修改本機的yum源配置
vim /etc/yum.repos.d/rhel-source.repo
######################################
[Server]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.60.250/rhel6.5/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[HighAvailability]
name=HighAvailability
baseurl=http://172.25.60.250/rhel6.5/HighAvailability
gpgcheck=0

[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.60.250/rhel6.5/LoadBalancer
gpgcheck=0

[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.60.250/rhel6.5/ResilientStorage
gpgcheck=0

[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://172.25.60.250/rhel6.5/ScalableFileSystem
gpgcheck=0

##############################################
heartbeat+LVS

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都做網(wǎng)站、成都網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的銅陵網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

heartbeat的配置文件存放在/etc/ha.d/中
但是在默認情況下,配置文件中并沒有,因此我們需要從其他地方拷貝
[root@server10 ~]# cd /usr/share/doc/heartbeat-3.0.4/
[root@server10 heartbeat-3.0.4]# cp ha.cf authkeys haresources /etc/ha.d/

接下來編寫配置文件:
[root@server10 ha.d]# vim ha.cf
#############################
29   logfile /var/log/ha-log    ##日志存放位置
48   keepalive 2        ##設定heartbeat之間的時間間隔為2秒
56   deadtime 30        ##在30秒后宣布節(jié)點死亡。
61   warntime 10        ##在日志中發(fā)出“l(fā)ate heartbeat“警告之前等待的時間,單位為秒
71   initdead 120        ##在某些配置下,重啟后網(wǎng)絡需要一些時間才能正常工作。它的取值至少應該為通常deadtime的兩倍
76   udpport 694        ##使用端口694進行bcast和ucast通信。這是默認的
91   bcast   eth0    
211  node    server10        ##有兩個節(jié)點安裝heartbeat
212  node    server11

#################################

heartbeat+LVS

heartbeat+LVS

heartbeat+LVS


[root@server10 ha.d]# vim authkeys
################
 23 auth 1
 24 1 crc
################

最后我們修改haresources,我們要在其中添加一個apache服務,但是我們要給它一個虛擬的ip(這個ip一定是沒有被別人占用的),讓這兩個節(jié)點作它的論尋

[root@server10 ha.d]# vim haresources
#######################################################
149 server10        IPaddr::172.25.60.100/24/eth0   httpd
########################################################
在兩邊都安裝httpd服務作為測試,為了區(qū)分,我們在他們的index.html中寫入不同的內(nèi)容

做完上述內(nèi)容后開啟兩邊的heartbeat服務及httpd服務:
[root@server10 ha.d]# /etc/init.d/heartbeat start
[root@server10 ha.d]# /etc/init.d/httpd start
然后我們來通過firefox檢驗效果:

heartbeat+LVS

然后我們讓當前的節(jié)點heartbeat關(guān)閉,發(fā)現(xiàn)另外一個節(jié)點自動接管了:
heartbeat+LVS
再讓剛才那個節(jié)點的heartbeat開啟,因為它是主節(jié)點(server10),所以又接管回來了:

heartbeat+LVS

這樣就起到了負載均衡的效果

####LVS簡介####
LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集群系統(tǒng)
1.LVS的三種負載均衡技術(shù):
(1).通過NAT實現(xiàn)虛擬服務器(VS/NAT)
(2).通過IP隧道實現(xiàn)虛擬服務器(VS/TUN
(3).通過直接路由實現(xiàn)虛擬服務器(VS/DR)

####LVS的安裝和配置####
首先下載ipvsadm
[root@server10 ha.d]# yum install ipvsadm -y
[root@server10 ha.d]# ipvsadm -l    ##查看調(diào)度,此時應當沒有任何調(diào)度
接下來添加虛擬ip作為公共訪問ip
[root@server10 ha.d]# ifconfig eth0:0 172.25.60.200 netmask 255.255.255.0 up
我們添加虛擬ip的httpd服務的端口,并且采用了輪叫的算法(RR):
[root@server10 ha.d]# ipvsadm -A -t 172.25.60.200:80 -s rr
[root@server10 ha.d]# ipvsadm -l    ##再次查看調(diào)度時,會發(fā)現(xiàn)有了一條調(diào)度
    
允許server12和server13的httpd服務作為輪叫的節(jié)點:
[root@server10 ha.d]# ipvsadm -a -t 172.25.60.200:80 -r 172.25.60.12:80 -g
[root@server10 ha.d]# ipvsadm -a -t 172.25.60.200:80 -r 172.25.60.13:80 -g
heartbeat+LVS

在serevr12和server13上分別安裝httpd服務:
server12和server13要能夠識別172.25.60.200這個虛擬IP,所以他們也要添加這個虛擬網(wǎng)卡。
[root@server12 ~]# ifconfig eth0:0 172.25.60.200 netmask 255.255.255.0 up

現(xiàn)在控制節(jié)點和提供真實服務的節(jié)點都能夠識別VIP(172.25.60.200),接下來我們要在提供服務的節(jié)點上添加策略,這個感覺和防火墻很類似,不過要安裝一個額外的軟件:
[root@server12 ~]# yum install arptable* -y
添加策略,把直接進來訪問172.25.60.200的包全部丟棄,讓從172.25.60.200出去的包從172.25.60.12出去(172.25.60.13同理)。
[root@server13 ~]# arptables -A IN -d 172.25.60.200 -j DROP
[root@server13 ~]# arptables -A OUT -s 172.25.60.200 -j mangle --mangle-ip-s 172.25.60.12
[root@server13 ~]# arptables -nL

heartbeat+LVS

[root@server13 ~]# /etc/init.d/arptables_jf save    ##保存策略
現(xiàn)在我們通過瀏覽器反復訪問172.25.60.200(確保服務節(jié)點的httpd服務開啟),多刷新幾次:
用ipvsdm -l查看訪問之前控制節(jié)點記錄的信息

heartbeat+LVS

heartbeat+LVS


在訪問了12次之后,我們發(fā)現(xiàn)兩個節(jié)點各輪叫了6次,但是訪問的ip都是虛擬ip(172.25.60.200),這就是直連情況下的LVS方案
heartbeat+LVS
####heartbeat+lvs
讓這兩個軟件能夠互相協(xié)作,并且讓該平臺具有能夠報警和挽救的機制,我們需要安裝ldirectord軟件。
ldirectord-3.9.2-1.2.x86_64.rpm
在server10和server11上安裝ldirectord(因為包和系統(tǒng)的包有依賴性,所有使用yum安裝
[root@server10 ha.d]# yum install ldirectord-3.9.2-1.2.x86_64.rpm -y
拷貝配置文件到heartbeat的配置文件目錄下
[root@server10 ha.d]# cp /usr/share/doc/packages/ldirectord/ldirectord.cf /etc/ha.d/
heartbeat+LVS

兩邊的節(jié)點上都安裝perl-IO-Socket-INET6-2.56-4.el6.noarch:,否則后面的ldirectord會因為缺少腳本無法打開:

[root@server10 ha.d] yum install perl-IO-Socket-INET -y

編輯ldirectord的配置文件
[root@server10 ha.d] vim directord.cf
################################
 25 virtual=172.25.60.200:80
 26         real=172.25.60.12:80 gate
 27         real=172.25.60.13:80 gate
 28         fallback=127.0.0.1:80 gate
 29         service=http
 30         scheduler=rr
 31         #persistent=600
 32         #netmask=255.255.255.255
 33         protocol=tcp
 34         checktype=negotiate
 35         checkport=80
 36         request="index.html"
################################
heartbeat+LVS

我們指定兩個真實服務的節(jié)點172.25.60.12和172.25.60.13,他們的訪問順序采用輪叫的方式,當兩個節(jié)點都掛掉的話,172.25.60.10這個節(jié)點自己提供服務。
把這個配置文件拷貝到另外一個控制節(jié)點172.25.60.11的配置文件處:
[root@server10 ha.d]# scp ldirectord.cf 172.25.60.11:/etc/ha.d/
heartbeat+LVS

編輯haresources文件,添加ldirectord服務到heartbeat中:
[root@server10 ha.d]# vim haresources
##################################
149 server10        IPaddr::172.25.60.100/24/eth0   httpd ldirectord
##################################

heartbeat+LVS

在server11下也作同樣的修改
這個時候我們直接啟動heartbeat服務,他會自動調(diào)用ldirectord服務,而我們的ldirectord的配置文件里的內(nèi)容完成著和LVS一樣的調(diào)度功能,這樣平臺搭建基本完成:

當前標題:heartbeat+LVS
本文來源:http://muchs.cn/article44/jcjhhe.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、定制開發(fā)、網(wǎng)頁設計公司、品牌網(wǎng)站制作、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)