Ubuntu10.04.4 Server下基於HeartBeat的Web應用高可用集羣

Ubuntu下基於HeartBeat的Web應用高可用集羣node

概述 1linux

網絡拓樸 2web

環境配置信息 2算法

環境搭建 3apache

搭建實驗環境節點A 3ubuntu

A機的HeartBeat安裝、配置 4網絡

搭建實驗環境節點B 5測試

B機的HeartBeat安裝、配置 6spa

測試HeartBeat 6操作系統

啓動heartbeat服務 6

訪問集羣ip 8

模擬ubuntu-node-a宕機 9

 

概述

申明:這只是我照着網絡上的相關技術文檔作實驗後的整理

利用VirtualBox部署一臺完整環境(lamp+heatrbeat)並配置,然後利用自帶的鏡像複製功能,複製出另一臺虛機,更改好hostname和network後,同時啓動心跳服務便可。在VirtualBox中的虛機列表截圖以下:

 

網絡拓樸

 

環境配置信息

ubuntu-10.04.4-server-i386-nodeA

節點hostname:ubuntu-node-a

ubuntu-10.04.4-server-i386-nodeB

節點hostname:ubuntu-node-b

cluster

虛擬集羣ip              192.168.1.200

其中集羣 IP 不能和LAN(包括本機)的IP 衝突,且配置/etc/ha.d/haresources文件

 

環境搭建 

搭建實驗環境節點A

注:個人電腦(宿主機)在家裏的一個局域網內,分配的ip爲0段。

在VirtualBox4.3上安裝個操做系統爲Ubuntu Server 10.04.4的雙網卡主機,主機硬件配置以下:

系統:512M內存  單核處理器

網絡:網卡1>網橋網卡  網卡2>僅主機(Host-Only)適配器

查看主機名:#cat /etc/hostname

 

修改hosts文件:#vi /etc/hosts

 

網絡查看、並配置成以下:

 

以上配置完後重啓生效

 

A機的HeartBeat安裝、配置

注意:將源配置爲:http://old-releases.ubuntu.com/ubuntu/(國內163等源對舊版本的ubuntu已不支持了

安裝HeartBeat

HeartBeat的自動安裝命令爲(手動安裝須要解決包的依賴關係問題)

# apt-get install heartbeat

安裝後在/usr/share/doc/heartbeat目錄裏找到authkeysha.cf、haresources三個文件並放到/etc/ha.d 目錄下。

 

執行如下命令

#cd /usr/share/doc/heartbeat

#gzip -d ha.cf.gz haresources.gz

#ls

 

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

#cd /etc/ha.d

Authkeys 文件配置

修改配置文件以下:

auth 3

3 md5 Hello! #其中Hello!爲密鑰

這個配置文件很是簡單,就是在 auth 選擇一個值。每一個值對應一種算法,這個算法用於主節點和從節點間數據校驗

這個配置文件權限必須是0600。

# chmod 0600 authkeys

 

ha.cf 文件配置

修改配置文件以下:

#日誌文件位置

logfile /var/log/ha-log 

#採用eth1 的udp 廣播用來發送心跳信息

bcast eth1

#主節點重啓成功後,等到副節點down掉後拿回資源off:不馬上接過來

auto_failback off

# 多長時間斷定節點死亡,默認30秒

deadtime 10

#節點名稱,前後順序不重要,主節點是在haresources文件中指定的,可是名稱必須與uname -n 保持一致

node ubuntu-node-a

node ubuntu-node-b

haresources 文件配置

此文件用於配置集羣的 IP 和使用集羣的服務

配置方式 (讓apache 服務和集羣ip地址綁定)

ubuntu-node-a 192.168.1.200/24/eth0 apache2

其中ubuntu-node-a爲主機名,能夠經過uname –n查看;192.168.1.200爲我定的集羣ip(與家裏的局域網其餘地址不衝突),24爲掩碼

其餘可選配置

heartbeat 的三個配置文件中還有一些其它可配置項,參考官方文檔。

搭建實驗環境節點B

VirtualBox-「管理」-「虛擬介質管理」-選中剛建立好的虛擬硬盤ubuntu-10.04.4-server-i386-nodeA.vdi文件-「複製」-下一步。。。-輸入要建立的新虛擬硬盤名稱:ubuntu-10.04.4-server-i386-nodeB、選擇好存儲的路徑-點「複製」按鈕-完成

建立新的虛擬機ubuntu-10.04.4-server-i386-nodeB,並用剛複製的現有虛擬硬盤,設置:

系統:512M內存  單核處理器

網絡:網卡1>網橋網卡  網卡2>僅主機(Host-Only)適配器

修改主機名要修改vi /etc/hostname文件

 

修改hosts文件:#vi /etc/hosts

 

網絡查看、並配置成以下:

 

以上配置完後重啓生效

B機的HeartBeat安裝、配置 

虛擬磁盤是複製過來的,已經安裝和配置過了

測試HeartBeat 

啓動heartbeat服務

分別啓動主節點和副節點的心跳服務

#service heartbeat start

A節點的網絡配置信息

 

能夠看到集羣IP 自動配置到主節點ubuntu-node-a上了

B節點的網絡配置信息

 

ubuntu-node-b則沒有看到集羣ip

訪問集羣ip

 

模擬ubuntu-node-a宕機

咱們a節點中止heartbeat服務或關閉a節點主機

#service heartbeat stop 

查看備機b節點的網絡,能夠看到集羣ip加到了eth0上了

 

查看b節點日誌文件(/var/log/ha.log)

 

能夠看到,節點b發現節點a異常,而後自動將集羣IP配置給本身,並向全網發送廣播,因而集羣ip依然可以訪問

至此web應用高可用集羣架設完畢!

相關文章
相關標籤/搜索