heartbeat v2配置高可用web集羣和基於nfs搭建MySQL高可用集羣

安裝環境:Centos 6.4, httpd2.4,mysql5.5,heartbeat v2

提供兩臺機器node1和node2,在/etc/hosts文件中添加名稱解析,並且主機名稱要與節點名稱要相同,即uname -n的名稱要和hosts定義的名稱必須一樣。

#   IP                         HOSTNAME             ALIAS

10.204.80.79     node1.mylinux.com     node1

10.204.80.80     node2.mylinux.com     node2

這兩臺服務器之間建立ssh互信

#ssh-kegen –t rsa –p””                          生成id_rsa.pub和id_rsa 公鑰和私鑰文件

#ssh-copy-id –i .ssh/id_rsa.pub root@node2              把公鑰文件拷到node2上,在node2中同樣操作,然後把公鑰文件拷到node1上,這樣,兩臺主機之間就可以不通過密碼進行互訪。

安裝httpd,並提供訪問頁面,爲了顯示效果,可以在兩臺機器上的網頁文件上添加標記顯示區別,我用的是web頁面是phpinfo 加標識來識別,基礎環境就已經安裝好了。

 

安裝heartbeat v2版本

因爲heartbeat v2版本已經不支持在centos6版本上的rpm包,所以不能直接用yum安裝,需要用src源碼安裝包編譯後才能安裝。我這裏用的是已經編譯好了的rpm包,安裝過程要解決依賴關係,

yum -y install perl-MailTools net-snmp-libs pygtk2-libglade libnetsnmp net-snmp-libs

然後通過rpm –ivh heartbeat-2.1.4-12.el6.x86_64.rpm heartbeat-gui-2.1.4-12.el6.x86_64.rpm heartbeat-stonith-2.1.4-12.el6.x86_64.rpm heartbeat-pils-2.1.4-12.el6.x86_64.rpm

image

安裝heartbeat v2.14版本完成

heartbeat v2的配置文件放的位置在 /etc/ha.d/目錄下,有三個配置文件,authkeys  ha.cf   haresource,安裝完成後默認是沒有這三個文件的,可以手動創建,也可以在/usr/share/doc/heartbeat-2.1.4/ 目錄下把這三個文件的示例文件拷到/etc/ha.d/ 目錄下。

配置文件的作用:

        authkeys  : 認證文件,裏面有啓用哪種加密方式及加密密鑰,crc ,sha1 和md5三種認證機制。

               image

                 如果要啓用哪種認證方式,則在 auth 後面選擇對應的數據,然後加指定驗證密鑰,密碼是用openssl隨機生成的一串16位字符

        haresource :這是由heartbeat v1版本中自帶的資源管理配製文件,定義依靠和資源情況 。

                                image

                                這點定義的時資源節點默認依靠在node1節點上,vip:10.204.80.89,默認綁定在eth0上,定義的服務爲httpd24

        ha.cf : 主配置文件, 定義節點,日誌,傳輸心跳的方式等。

                      logfile /var/log/ha-log

                      node node1.mylinux.com

                      node node2.mylinux.com

                      mcast eth0 225.4.0.4 694 1 0

                      ping 10.204.80.3

配置就已經完成,啓動heartbeat

在node1上啓動heartbeat ,提示heartbeat啓動成功,但資源是停止的。

image

查看啓動日誌

image

查看啓用端口

image

組播端口694已經啓動

在當前節點上啓動node2

image

查看資源

image

image

vip和httpd都已經啓動。web頁面也正常顯示

image

在node1上停止heartbeat服務

image

然後在node2上查看資源

image

image

Vip和httpd都已經成功轉移到node2上,web訪問頁面也顯示是node2上的頁面

image

在node1上重新啓動heartbeat

image

資源又重新回到node1上了,這是因爲在haresource定義 資源的時候是默認在Node1上。heartbeat配置高可用web服務成功

 

 

 

配置基於nfs共享存儲的mysql高可用集羣

提供兩臺機器mysql1和mysql2,在/etc/hosts文件中添加名稱解析,並且主機名稱要與節點名稱要相同,即uname -n的名稱要和hosts定義的名稱必須一樣。

#   IP                         HOSTNAME             ALIAS

10.204.80.86    mysql1.mylinux.com     mysql1

10.204.80.85    mysql2.mylinux.com     mysql2

nfs服務器 10.204.80.71

image

mysql1和mysql2建立互信關係,並且在三臺服務器上添加指定同樣uid和gid的mysql帳號

image

在mysql1和mysql2兩臺機器上掛載nfs,掛載目錄爲/mysqldata,並創建/mysqldata/data目錄爲mysql的數據目錄

image

用二進制格式安裝mysql5.5.38,並指定mysql的數據目錄爲/mysqldata/data

image

在mysql1節點上啓動mysql服務成功,

image

然後在mysql1節點上停止mysql服務,然後在mysql2節點上同樣啓動mysql服務,注意在/etc/my.cnf文件中一定要添加  datadir = /mysqldata/data  這一條配置文件,

image

在mysql2結點上啓動mysql服務成功

image

集羣環境已經搭好,安裝heartbeat v2版本過程參照上面web高可用集羣過程。啓用圖型界面配置資源

在/etc/ha.d/ha.cf主配置中寫入以下配置

node    mysql1.mylinux.com
node    mysql2.mylinux.com

mcast eth0 225.5.0.4 694 1 0

ping 10.204.80.3

crm on    # 啓用圖型界面配置資源

在/etc/ha.d/authkeys 啓用驗證功能

2 sha1 7cd37bc0d0fbc374

輸入命令 crm_mon,可以查看兩個節點的狀態信息

image

兩個節點都已經在線,但沒有定義資源

在命令行輸入image啓用圖型界面

image

安裝heartbeat以後會自動創建hacluster帳號,對這個帳號添加密碼,啓動heartbeat服務就可以登陸進去配置資源。

image

如圖顯示,兩個節點都已經正常在線狀態。就可以添加資源

因爲啓動mysql服務必須要有三個資源:VIP  NFS以及mysql服務,所以把這三個資源定義到同一個資源組中。

添加資源vip,ip地址,綁定在哪個網卡的別名上,指定netmask

image

同樣添加filesystem資源nfs和mysqld服務,然後把資源啓動

image

定義約束:

因爲前面定義的資源都在同一個組裏面,所以這些資源必須運行在同一個節點上,於是要定義的約束是位置約束,默認資源依靠在節點mysql1上。順序約束,必須先掛載nfs資源然後才能啓用mysql服務,必須要先停止mysql服務,然後才能停止nfs服務,定義屬性能如圖

位置約束: 定義在mysql1上,也就是如果mysql1節點掛了會自動轉移到節點mysql2,當mysql1節點重新在線後,資源又會自動轉移到mysql1節點上來。

image

順序約束:定義資源啓動的先後順序

image

劃紅圈的部份就已經說明了資源啓動的順序關係,至此集羣已經定義完成。

把mysql1節點狀態改爲Standby,顯示轉換過程

image

image

資源轉移完成,當把mysql1節點重新上線,資源又會自動轉移 回去。

image

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章