CentOS6.4 高可用集羣之基於heartbeat(crm)和nfs的mysql高可用

CentOS6.4 高可用集羣之基於heartbeat和nfs的高可用mysql

CentOS版本: CentOS release 6.4(Final) 2.6.32-358.el6.i686

效果演示:

         使用ssh連接(nod-1.magedu.com)192.168.3.7 並執行以下命令:

         [root@nod-1 ha.d]# hb_gui &

         wKioL1hKTHaCKR4nAACrFeFXsP4129.png

        wKioL1hKLluSl82hAAE6z4i2T5o772.png     

         說明:hb_gui是heartbeat爲了方便管理集羣資源而提供的一個圖形用戶接口

         安裝heartbeat默認會在系統中創建一個名爲"hacluster"的用戶、這個用戶是在執行hb_gui命令時

         所必須的、默認情況下此用戶密碼爲空、需要手動爲其指定一個密碼。

         一般情況下,一個高可用服務包括多個資源,從屬於同一個服務的多個資源必須運行在同一個節點上|

         而默認情況下是平行的。這句話可以這樣來理解(如果此處我們不是創建了一個名MYSQL_HA的組,那麼

         上圖中的3個資源就很可不是運行在同一個節點上)這一點一定要注意。



          查看 集羣IP 即mysql_ip 是否位於(nod-1這個節點的eth0)的別名上(eth0:0)

        wKiom1hKLtKD9wDlAABLNLEtcvc945.png 


          在nfs.magedu.com上執行以下命令

          模擬從遠程nfs.magedu.com(192.168.3.9)訪問 集羣IP (192.168.3.10)

       wKioL1hKNjCh4xWSAAA9CNsto34944.png


         在nod-1.magedu.com上執行以下命令

         觀察nfs.magedu.com連接的到底是否是第1個節點:(nod-1.mageud.com)上的mysql數據庫。

        wKioL1hKMUigPJ08AABgsoF-5lI150.png

        

       在nod-1.magedu.com上查看nfs共享掛載的情況

       wKiom1hKNPKhQ8xiAAA-wt18W4g568.png     


    

模擬故障是否能成功轉移:


       wKiom1hKUPejF3J7AAFZFxgkSqA712.png

       wKioL1hKUSCwO5r4AAEzedCdKAI387.png

         從上圖看當nod-1這個設定爲"備用節點"後、集羣資源已經轉移到nod-2這個節點上。那麼是否真的

         成功了呢(驗證一下)

        wKiom1hKUdTxZfOLAAAUzsFBjp4873.png 

        wKiom1hKUoOwjDM4AABMuwSBCCQ075.png

        wKiom1hKUxfAKF0yAABAzFiWpfQ442.png




準備工作:

        SSH 雙機互信

        本次實驗中高可用集羣中只2個節點:(nod-1| nod-2)

        nod-1.magedu.com (192.168.3.7)

        nod-2.magedu.com (192.168.3.8)

        nsf.magedu.com   (192.168.3.9)

        集羣的IP

        mysqlip          (192.168.3.10)

        

        1、在第1個節點(nod-1.magedu.com)上執行以下命令:      

            cd ~/.ssh

             ssh-keygen -t rsa

             ssh-copy-id -i ./id_rsa.pub [email protected]


        2、在第2個節點(nod-2.magedu.com)上執行以下命令:

             cd ~/.ssh

             ssh-keygen -t rsa

             ssh-copy-id -i ./id_rsa.pub [email protected]


        3、在第3個節點(nfs.magedu.com)上安裝配置rpcbind(nfs服務) 及ntp服務:

            nfs.magedu.com這臺服務器同時提供(nfs|ntp)這2種服務。

            rpcbind可以使用yum命令來安裝此處就不做多講了。

    

            本次實驗中計劃將 nfs.magedu.com這臺服務器上的/mysqldata/data做爲共享

            導出來供(nod-1|nod-2)掛載。

            1.查看或編輯 nfs.magedu.com上的nfs共享

                [root@nfs ~]# cat /etc/exports 

                /mysqldata/data 192.168.3.0/24(rw,no_root_squash)


         2.在(nod-1|nod-2)執行掛載測試

            可以執行以下命令測試能否正常掛載(nfs.magedu.com)上的共享目錄/mysqldata/data

            [root@nod-1 /]# mount -t nfs 192.168.3.9:/mysqldata/data  /mysqldata/data  

            [root@nod-2 /]# mount -t nfs 192.168.3.9:/mysqldata/data  /mysqldata/data  

   

            在創建並配置高可用集羣的時候首先要做的便是要使用集羣內各節點的時間保持同步

            在(nod-1|nod-2)上分別執行如下命令:        

            [root@nod-2 ~]# ntpdate 192.168.3.9

            9 Dec 12:00:42 ntpdate[11266]: step time server 192.168.3.9 offset 57574.355435 sec



 HeartBeat-2.1.4-11.el5.i386.rpm安裝及配置                                     

下載鏈接:https://dl.fedoraproject.org/pub/epel/5/i386/

          http://rpm.pbone.net/

          http://rpmfind.net/

          http://fedoraproject.org/wiki/EPEL(這個地址有時候訪問會很慢、使用***軟件會有明顯改善)


RPM包:

        wKiom1hKDG_iZrNuAAEyGBoRyQ0105.png

      安裝順序

        wKiom1hKDPfDT-y4AAC3Cx5xop8554.png 

        說明:

        devle包、和 ldirectord 包在本實驗(高可用集羣)當中暫時用不着所以用不着安裝

        所以無需安裝。

        net-snmp-libs-5.3.2.2-22.el5_10.1.i386.rpm

        在安裝之前必須把系統自帶net-snmp-libs包卸載掉(自帶版本爲net-snmp-libs-1:5.5-44.el6.i686)

        執行命令: yum  -e --nodeps  net-snmp-libs

                   rpm -ivh  net-snmp-libs-5.3.2.2-22.el5_10.1.i386.rpm

        gnutls-1.4.1-10.el5_9.2.i386.rpm

        在安裝之前必須把系統自帶gnutls包卸載掉(自帶版本爲gnutls-2.8.5-10.el6.i686)

        執行命令: yum  -e --nodeps  gnutls

                   rpm -ivh  gnutls-1.4.1-10.el5_9.2.i386.rpm

配置:

       使用crm與haresource 不同之處是haresource(配置文件有3個:authkeys,har.cf,haresources)       

        [root@nod-1 ~]# cd /etc/ha.d/

        [root@nod-1 ha.d]# ll

        total 48

        -rw-------. 1 root root   693 Dec  8 12:01 authkeys

        -rw-r--r--. 1 root root 10686 Dec  8 12:09 ha.cf

        -rwxr-xr-x. 1 root root   745 Mar 20  2010 harc

        -rw-r--r--. 1 root root  5905 Mar 20  2010 haresources

        drwxr-xr-x. 2 root root  4096 Dec  6 17:57 rc.d

        -rw-r--r--. 1 root root   692 Mar 20  2010 README.config

        drwxr-xr-x. 2 root root  4096 Dec  7 19:13 resource.d

        -rw-r--r--. 1 root root  7862 Mar 20  2010 shellfuncs

       authkeys: 是驗證身份的密鑰文件。只有通過驗證的主機才能成爲集羣當中的節點。

                 出於安全的authkeys的權限必須設定爲 600,否則執行service heartbeat start

                 時可能報錯、並伴隨有警告信息。

       ha.cf    是關於集羣本身設定的配置文件(我們可以在此文件中設定有多少個節點、還可以

                設定心跳信息發送模式[bcast|mcast|ucast]即[廣播|多播|單播],等各種參數)


       haresources  高可用集羣中各資源的定義都位於此文件中


      因爲我們此處要講的是crm所以只需要對authkeyst和ha.cf進行配置即可

      1、authkeys   

        [root@nod-1 ha.d]# cat authkeys 

        # Authentication file.  Must be mode 600

        #

        #auth 1

        #1 crc

        #2 sha1 HI!

        #3 md5 Hello!


        auth 1

        1 md5 3c0d2f606e0ddd100509d42795436dc1

        [root@nod-1 ha.d]# 

        爲了不佔據空間多餘的註釋行我都刪掉了、authkeys這個文件中需要修改的地方就2行:

            auth 1

            1 md5 3c0d2f606e0ddd100509d42795436dc

        它表示啓用標識爲1的加密方式、在1這個標識中我們指定了加密的方式爲md5,後面一長串字符是salt。

      2、ha.cf

       在這個文件當中我們只需要修改4處地方

    

       #mcast eth0 225.0.0.1 694 1 0

       mcast eth0 225.0.0.1 694 1 0


       #node kathy

       node nod-1.magedu.com

       node nod-2.magedu.com


       #ping 10.10.10.254

       ping  192.168.3.9


      #compression_threshold 2

      crm on

      或者寫成下面這種方式效果也是一樣的(表示啓用crm)

      crm respawn

     CRM:即 Cluster Resource Manager


     當authkeys和ha.cf這2個文件都配置完成後,可以執行以下命令:

     [root@nod-1 ha.d]# /usr/lib/heartbeat/ha_propagate

     把這2個配置好的文件分發至集羣中的其它各節點對應目錄下、不用我們手動去複製。

    

高可用

集羣的常用命令

      關於集羣日常維護命令及其參數的使用、有一個網友寫的比較具體、此處就直接引用了。

      出處:http://czmmiao.iteye.com/blog/1181720

      crm_mon:crm_mon 命令允許您監視羣集的狀態和配置。其輸出包括節點數、uname、uuid、狀態

      、羣集中配置的資源及其各自的當前狀態。crm_mon 的輸出可以顯示在控制檯上或打印到 HTML

      文件。當具有不包含狀態部分的羣集配置文件時,crm_mon 會按文件中所指定的方式創建節點

      和資源概覽。 

    wKiom1hKWbCgMAKmAAAy88ssdBA798.png

    wKioL1hKXQGSYLxNAABrNW_jJXY612.png


    wKioL1hKW03DqnryAABj7pkUDx4866.png

    wKioL1hKW-iSqCn-AABG7yRVJoY362.png

    wKioL1hKXW3wSL1rAABpAtTKF-8030.png

    wKioL1hKXffwU_f3AABQDJciAtc293.png

    wKiom1hKXi2QT9aaAABar_ycb2o785.png

    wKioL1hKXqTRvdNpAACDTknld1Q803.png

    wKiom1hKXtSgGQ6rAABRIWxhs8w712.png


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