日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于heartbeatV2版本的ha-gui工具对httpd做高可用集群(1)

發布時間:2025/3/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于heartbeatV2版本的ha-gui工具对httpd做高可用集群(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、簡述

Heartbeat通過插件技術實現了集群間的串口、多播、廣播和組播通信,在配置的時候可以根據通信媒介選擇采用的通信協議,heartbeat啟動的時候檢查這些媒介是否存在,如果存在則加載相應的通信模塊。這樣開發人員可以很方便地添加新的通信模塊,比如添加紅外線通信模塊。對于高可用集群系統,如果集群間的通信不可靠,那么很明顯集群本身也不可靠。Heartbeat采用UDP協議和串口進行通信,它們本身是不可靠的,可靠性必須由上層應用來提供。那么怎樣保證消息傳遞的可靠性呢?Heartbeat通過冗余通信通道和消息重傳機制來保證通信的可靠性。Heartbeat檢測主通信鏈路工作狀態的同時也檢測備用通信鏈路狀態,并把這一狀態報告給系統管理員,這樣可以大大減少因為多重失效引起的集群故障不能恢復。例如,某個工作人員不小心撥下了一個備份通信鏈路,一兩個月以后主通信鏈路也失效了,系統就不能再進行通信了。通過報告備份通信鏈路的工作狀態和主通信鏈路的狀態,可以完全避免這種情況。因為這樣在主通信鏈路失效以前,就可以檢測到備份工作鏈路失效,從而在主通信鏈路失效前修復備份通信鏈路。Heartbeat通過實現不同的通信子系統,從而避免了某一通信子系統失效而引起的通信失效。最典型的就是采用以太網和串口相結合的通信方式。這被認為是當前的最好實踐,有幾個理由可以使我們選擇采用串口通信:(1)IP通信子系統的失效不太可能影響到串口子系統。(2)串口不需要復雜的外部設備和電源。(3)串口設備簡單,在實踐中非常可靠。(4)串口可以非常容易地專用于集群通信。(5)串口的直連線因為偶然性掉線事件很少。不管是采用串口還是以太網IP協議進行通信,heartbeat都實現了一套消息重傳協議,保證消息包的可靠傳遞。實現消息包重傳有兩種協議,一種是發送者發起,另一種是接收者發起。對于發送者發起協議,一般情況下接收者會發送一個消息包的確認。發送者維護一個計時器,并在計時器到時的時候重傳那些還沒有收到確認的消息包。這種方法容易引起發送者溢出,因為每一臺機器的每一個消息包都需要確認,使得要發送的消息包成倍增長。這種現像被稱為發送者(或者ACK)內爆(implosion)。對于接收者發起協議,采用這種協議通信雙方的接收者通過序列號負責進行錯誤檢測。當檢測到消息包丟失時,接收者請求發送者重傳消息包。采用這種方法,如果消息包沒有被送達任何一個接收者,那么發送者容易因NACK溢出,因為每個接收者都會向發送者發送一個重傳請求,這會引起發送者的負載過高。這種現像被稱為NACK內爆(implosion)。Heartbeat實現的是接收者發起協議的一個變種,它采用計時器來限制過多的重傳,在計時器時間內限制接收者請求重傳消息包的次數,這樣發送者重傳消息包的次數也被相應的限制了,從而嚴格的限制了NACK內爆。

二、對httpd做高可用集群

? ?1.環境說明 ? ?

? ?我們通過192.168.1.210對外提供web服務,兩個客戶端的ip地址分別為192.168.1.200和192.168.1.201,在192.168.1.202上提供了nfs服務為兩臺web服務器提供共享存儲

? ?2.前期準備工作

? ? ?由于heartbeat是基于主機名通信的,需要對兩臺服務器配置主機名,并能夠對實現主機名的解析

在/etc/hosts文件中添加如下行 192.168.1.201node2.wangfeng7399.com node2 192.168.1.200node1.wangfeng7399.com node1

? ? ? 為了實驗的方便性,本處我們基于ssh的密鑰認證,實現兩臺主機登陸不需要密碼

[root@node1 ~]# ssh-keygen [root@node1 ~]# ssh-copy-id root@node2 在node2上同樣使用以上命令生成sshkey

? ?3.在node1和node2上分別準備httpd,本處可以通過yum安裝也可以通過編譯源碼安裝,關于安裝過程,本處不在累贅,如想了解過程,其移步至本人的博客http://wangfeng7399.blog.51cto.com/3518031/1379373

? ?4.時間同步,本處使用的互聯網的時間服務器,也可以自建時間服務器,關于如何自建時間服務器,將會在后續推出,敬請期待

[root@node1 ha]# ntpdate time.windows.com

? ?查看兩邊的服務器時間是否同步

[root@node1 ha]# ssh node2 'date';date Thu Apr 1722:05:42CST 2014 Thu Apr 1722:05:42CST 2014

? ?5.安裝heartbeat

? ? ?①.解決依賴關系,由于centos6.5提供的為heartbeatV3版本,本處不能直接通過yum安裝

yum install perl-TimeDate PyXML libnet net-snmp-libs -y

? ? ?說明:libnet包在eprl源中,請確保安裝epel源

? ? ②.安裝heartbeatV2版本的rpm包

[root@node1 ha]# rpm -ivh heartbeat-2.1.4-12.el6.x86_64.rpm heartbeat-pils-2.1.4-12.el6.x86_64.rpm heartbeat-stonith-2.1.4-12.el6.x86_64.rpm heartbeat-gui-2.1.4-12.el6.x86_64.rpm

? ?6.配置heartbeat

①.準備配置文件

[root@node1 ha.d]# cd /usr/share/doc/heartbeat-2.1.4/ [root@node1 heartbeat-2.1.4]# cp ha.cf authkeys /etc/ha.d/

? ? ?②.修改配置文件

編輯authkey文件 auth 2 #1 crc 2 sha1 HI!hajsbdja2189wqjke #3 md5 Hello! [root@node1 ha.d]# chmod 600 authkeys 修改認證文件的權限 ?修改ha.cf文件 ? ? ?


對ha.cf詳解 #debugfile /var/log/ha-debug 是否開啟調試功能,已經調試功能的文件位置 logfile /var/log/ha-log 日志文件的保存位置 keepalive 1 每個多長時間發送一次心跳信息,默認單位為s,也支持以ms為單位 deadtime 10 在檢測不到對方心跳,替換的時間 warntime 8 警告時間 initdead 120啟動heartbeat后多長時間開始檢查心跳 udpport 694 基于那個端口檢測心跳信息 crm on 以crm的模塊開啟 bcast eth0 # Linux linux廣播的端口 mcast eth0 225.0.0.169410多播的地址 ucast eth0 192.168.1.2組播的地址 compression bz2 壓縮傳輸算法 on 主節點啟動是否自動切換回主節點 ping 192.168.1.253仲裁設備,可以指向網關 #ping_group group1 10.10.10.25410.10.10.253仲裁設備組 #debug 1debug的級別 compression_threshold 2壓縮的最低大小,單位為kb node node1.wangfeng7399.com node節點,切記,本處不能使用ip地址 node node2.wangfeng7399.com node節點,切記,本處不能使用ip地址

? 7.為用戶hacluster創建密碼,在安裝heartbeat-gui時,會自動安裝此用戶


[root@node1 ha]# passwd hacluster

? ?8.將配置好的文件復制一份到node2節點上

[root@node1 ha.d]# scp ha.cf authkeys node2:/etc/ha.d/

? ?9.準備nfs服務器,并使apache用戶對其有讀寫執行的權限,并準備主頁

[root@localhost ~]# vi /etc/exports /www/html 192.168.1.0/24(rw) [root@localhost ~]# setfacl -m u:apache:rwx /www/html/

? ?10.通過圖形界面配置相關信息 ? ?

[root@node1 ha.d]# hb_gui &

? ?11.配置過程

? ?12.測試

? ?可以看到我們實現了高可用的效果

? ?切記:1.一定要注意添加順序,順序很重要,一定不要把順序弄亂

? ? ? ? ?2.httpd和nfs一定不能開機自啟動

? ?未完,我們下一次對mysql和lvs做高可用集群,書接下文http://wangfeng7399.blog.51cto.com/3518031/1398676

轉載于:https://blog.51cto.com/wangfeng7399/1397530

總結

以上是生活随笔為你收集整理的基于heartbeatV2版本的ha-gui工具对httpd做高可用集群(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。