1. 程式人生 > >Mysql DBA 高級運維學習筆記-Heartbeat實現web服務的高可用案例及維護要點

Mysql DBA 高級運維學習筆記-Heartbeat實現web服務的高可用案例及維護要點

heartbeat

8.Heartbeat實現web服務的高可用案例

8.1部署準備

通過web服務高可用案例來熟悉heatbeat軟件的使用,用上面的兩臺服務器機器名分別為heartbeat-1-130和heartbeat-1-129

8.2 安裝配置http服務(兩臺機器都要安裝)

yum install httpd -y

8.3 配置httpd啟動腳本

兩臺機器上分別拷貝httpd啟動腳本到/etc/ha.d/resource.d/下,並確保可執行權限。

[root@heartbeat-1-130 html]# cp /etc/init.d/httpd /etc/ha.d/resource.d/

Heartbeat控制的腳本要求:

(1)腳本路徑要放入/etc/init.d/httpd或/etc/ha.d/resource.d/

(2)腳本執行需要以/etc/init.d/httpd start/stop方式

(3)腳本具備可執行權限

(4)/etc/init.d/httpd名字要和haresources上設置的一樣

8.4 修改haresource配置文件

設置httpd服務開機不啟動並停止httpd服務讓heartbeat負責啟動和停止httpd服務。

[root@heartbeat-1-130 html]# chkconfig httpd off
[root@heartbeat-1-130 html]# /etc/init.d/httpd stop
停止 httpd:   [確定]

修改haresource文件(兩臺機器都要修改)

[root@heartbeat-1-130 ha.d]# cat haresources 
heartbeat-1-130 IPaddr::192.168.1.131/24/eth0:1 httpd

httpd為heartbeat監控的服務,也是兩臺機器對外提供的核心服務。

9. 有關heartbeat調用資源的生產場景應用

在工作中,有兩種方法實現高可用問題:

(1)heartbeat可以僅控制vip資源的漂移,不負責服務資源的啟動和停止。這種方式適合web服務。

(2)heartbeat即控制vip資源的漂移,同時又負責服務資源的啟動及停止,及ip和服務要切換都切換,這種方式適合數據服務。VIP正常,httpd服務器宕了,這個時候不會做高可用切換。寫一個腳本或守護進程判斷httpd服務。如果有問題,則停止heartbeat主動使其上的業務切換到另一臺。

10 heartbeat和keepalived的應用場景和區別

(1)對於一般的web、db、負載均衡(nginx,haproxy)等等,heartbeat和keepalived都可以實現。

(2)Lvs負載均衡和keepalived結合,雖然heartbeat也可以調用帶有ipvsadm命令的腳本來啟動和停止lvs負載均衡,但是heartbeat本身並沒有rs的檢查功能,這個缺陷可以通過Idircetord插件來彌補。

(3)需要數據同步(配合drbd)的高可用業務最好用heartbeat列如:mysql雙主多從,NFS/MFS存儲,他們的最大特點是需要數據同步,這樣的業務最好用heartbeat,因為heartbeat自帶了drbd的腳本。

11. Heartbeat服務生產環境下的恢復要點

每天可能都有一些需求,新項目上線或者VIP更改需求時,可能會進行添加修改服務VIP的操作。我們就以heartbeat+haproxy/nginx高可用負載均衡為例,來學習一下生產環境下的維護方法。
所有配置文件放到SVN,更改之後提交SVN對比,推送到正式環境。

(1)在修改配置文件前執行/etc/init.d/heartbeat stop或/usr/lib64/heartbeat/hb_standby(此命令最好)把本機命令推送到備節點工作,當確認備節點工作正常後,開始修改本地的配置,修改好後執行/etc/init.d/heartbeat start把資源服務接管回來。在把業務推送到備節點時及修改配置接管回服務器時都要立即服務是否正常,特別是所有的VIP(新的舊的)是否啟動OK,URL地址是不是能夠打開,這個檢查過程可以寫成腳本放在hearbeat服務啟動腳本的參數裏。

(2)先設置要添加的VIP,添加ip別名。設置成功了再修改haresources配置文件,修改新添加的VIP。在夜裏或業務量比較低的情況下重新啟動heartbeat當然要把以前的舊的VIP停掉。

Mysql DBA 高級運維學習筆記-Heartbeat實現web服務的高可用案例及維護要點