Heartbeat(基於crm)+NFS+Mysql實現mysql的高可用

1.環境準備


角色

IP

VIP

192.168.42.160(提供服務的地址)

Master

eth0:192.168.42.163(本地管理IP)

eth1:172.16.1.2/16(心跳線)

Salve

eth0:192.168.42.162(本地管理IP)

eth1:172.16.1.3/16(心跳線)

NFS

192.168.42.135

2.搭建NFS服務器

1.)安裝nfs

#yuminstall rpcbind nfs-utils –y

#servicerpcbind start

#chkconfigrpcbind on

#servicenfs start

#chkconfignfs off                         #一定要關掉,HA集羣中由heartbeat管理

#mkdir/mydata                            #/mydata目錄用NFS共享出去

       2.)創建mysql用戶

              #groupadd–g 3306 mysql

              #useradd–u 3306 –g 3306 –s /sbin/nologin –M mysql

              #mkdir/mydata/data                    #存放mysql數據

              #chown –R mysql.mysql /mydata/data

       3.)配置nfs服務

              #vim/etc/exports

              /mydata          192.168.42.0/24(no_root_squash,rw)

              #exportfs–arv

       4.)測試

              mount–t nfs 192.168.42.135:/mydata /mnt  #在其他機器測試是否能掛載成功

3.安裝mysql


       1.)創建mysql用戶

       各個節點和NFS上存在mysql用戶且id號必須保持一致

   #groupadd –g 3306 mysql

   #useradd–u 3306 –g 3306 –s /sbin/nologin –M mysql

   # mkdir /mydata                        

       2.)mysql安裝及配置

       #tar xf mysql-5.6.23-linux-glibc2.5-x86_64.tar–C /usr/local

       #cd /usr/local

       #ln –s mysql-5.6.23-linux-glibc2.5-x86_64mysql

       #chown –R root:mysql ./mysql/*        #解壓並修改目錄權限


       #mount 192.168.42.135:/mydata /mydata

       #cd /mysql

       #scripts/mysql_install_db –user=mysql–datadir=/mydata/data

       #ll /mydata/data    #掛載NFS目錄並初始化mysql,其他節點無需初始化mysql

 

       #cp support-files/my-default.cnf/etc/my.cnf

 

       掛載nfs目錄並測試mysql服務是否正常(各個節點)

       #mount –t nfs192.168.42.135:/mydata/data       /mydata

       #service mysqld start

       #/usr/local/mysql/bin/mysql

       mysql> create databases mydb;           #創建一個庫進行測試

       mysql> show global variableslike ‘%innodb%’:       #查看innodb引擎設置是否生效

       #service mysqld stop

       #umount /mydata

       掛載nfs到另一節點看看剛纔創建的庫是否存在

       Mysql設置密碼

       #mysqladm –u root –p password “新密碼”

       Enter password: 【輸入原來的密碼】

4.   Heartbeat  v2安裝部署前的環境準備

       1.) 主機名及hosts設置(heartbeat是通過主機名來通信的,所以必須規劃好)

       Master:

       #hostname node1.pachira.cn

       #vim /etc/sysconfig/network

       HOSTNAME=node1.pachira.cn

       #vim /etc/hosts

       127.0.0.1   localhost

       ::1         localhost localhost.localdomainlocalhost6 localhost6.localdomain6

       192.168.42.163  node1.pachira.cn     node1

       192.168.42.162  node2.pachira.cn     node2

 

       Salve:

       按同樣的步驟設置主機名及解析。必須確保主機名與uname –n的結果是一樣的。

       最後在各自ping下node1、node2測試一下。

       2.) 各節點間的ssh雙機互信

       node1:

       #ssh-keygen –t rsa –f./.ssh/id_rsa –P ‘’

       #ssh-copy-id –i ./.ssh/id_rsa.pubroot@node2

       node2:

       #ssh-keygen –t rsa –f ./ssh/id_rsa–P ‘’

       #ssh-copy-id –i ./.ssh/id_rsa.pubroot@node1

       3.) 各節點間的時間同步(很重要)

       node1:

       配置成ntp server端

       node2:

       #crontab –e

       */30 * * * * /sbin/ntpdate192.168.42.163

       添加防火牆(這裏默認是關閉的)與關閉SELinux

       node1,node2

       #vim /etc/selinux/config

       SELINUX=disabled

       #setenforce 0

5.  安裝與配置

       1.) 安裝heartbeat(

       node1:

       #yum install PyXML perl-MailTools –y

       #rpm –ivh libnet-1.1.6-7.el6.x86_64

       #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.rpmheartbeat-gui-2.1.4-12.el6.x86_64.rpm

      2.) 配置heartbeat

      默認安裝好的heartbeat沒有配置文件,但是有樣例文件

      #cp/usr/share/doc/heartbeat-2.1.4/{authkeys,ha.cf} /etc/ha.d/

      這裏只需要兩個配置文件,ha.cf與authkeys

      #cd /etc/ha.d/

      #chmod 600 authkeys

      以下的ha.cf與authkeys是經過我刪減後的,可以直接使用

 

      #vim authkeys

      auth 1

      1 md591961e19f5730f736d27c07ffbc093d1

 

      #vim ha.cf

      #debugfile /var/log/ha-debug

      #logfile        /var/log/heartbeat.log

      logfacility     local0

      keepalive 2                                       #發送心跳的間隔時間

      #deadtime 30   #超出30秒未收到對方節點的心跳,則認爲對方已經死亡

      #warntime 10       #警告時間

      #initdead 120       #網絡啓動時間

      udpport 694

      #bcast  eth1   #廣播的方式進行心跳監測,網卡根據生產環境設置

      mcast eth1 225.0.100.10 694 1 0 #組播的方式進行心跳監測

      auto_failback on         

      node    node1.pachira.com    #設置集羣中的節點,節點名必須與uname –n 一樣

      node    node2.pachira.com

      ping 192.168.42.254    #ping集羣外的其他節點,監測網絡的連通性,可以設置網關

      #ping_group group1 10.10.10.25410.10.10.253

      #deadping 30

      crm on   #啓用crm

 

      複製以上2個配置文件到node2上

      #scp authkeys ha.cfnode2:/etc/ha.d

      3.) 啓動heartbeat

      說明:啓動heartbeat之前確保heartbeat所管理的資源都是關閉狀態,並關閉開機自啓動

      #service heartbeat start

      #ssh node2 “service heartbeatstart”

 

      node1 node2上用netstat –tunlp 檢查下端口

      4.) 配置heartbeat集羣資源

      需要配置的集羣資源:VIP NFS Mysql

 

      #passwd hacluster #爲客戶端連入服務端進行配置的用戶設置密碼


      #hb_gui &    #啓動heartbeat圖形化的客戶端程序,在window中可以用xmanager打開,也可以用VNC連接linux                    桌面

     wKioL1UdF06ySn_-AAEfQk2vqMY047.jpg 

         定義資源粘性,定義一個大於0的數代表該資源更傾向於運行於當前所在的節點上。

        wKiom1UdFiTQeucoAAHVFFeLQ_w995.jpg        

    把VIP Mysql NFS定義到一個資源組內(資源啓動順序 VIP NFS Mysql)創建資源組(按資源啓動順序創建)

        wKioL1U3HDDDNi70AACWuWKzGkY510.jpg

        

    wKiom1U3Gz_SRpoeAABaNm3fK-g619.jpg

    wKioL1U3HJyAboqiAAB0qNhmF9M658.jpg

    添加VIP資源

    wKioL1U3HYXxGASPAALIHf-Pe3c539.jpg

    添加NFS資源

    wKioL1U3HSOwx8G8AACUIiL2AKE405.jpg

   wKiom1U3G8bQs-lwAAKaScZmmsE303.jpg

    添加mysql資源

   wKiom1U3G8fQ9ThPAAI-O9ysoCE092.jpg

    啓動

        wKioL1U3Hk3TtVaBAAFTJvJ9OMk786.jpg

        啓動後

        wKioL1U3HpOTDf0HAAJEmL209jo668.jpg        

   嘗試讓node1處於standby狀態,查看資源的切換情況

    wKiom1U3HZWgOI0CAAKH3k6LnZI650.jpg    

  模擬node1再次上線,查看情況

  wKioL1U3Hy_zP_1eAAFqBbWN49s493.jpg

  

  所有資源都運行於node2上

    wKiom1U3HieiRnEeAAFyjrCwk_A679.jpg    5.)添加資源的監控

    Mysql(每60秒監測資源運行狀況,如果發現資源不在,則嘗試啓動資源,如果30秒還未啓動成功,則 資源切換到另外節點)

  wKiom1U3MOqAML3MAAII-lieVow489.jpg

  wKiom1U3MRfxy3GrAAK4pBoKBs8106.jpg    其他資源的監控均可參照mysql的配置。

       6.)heartbeat默認啓動與關閉資源的超時時間是20s,如果20s未啓動成功與關閉成功,則會造成切換故障,有些資源啓動與關閉的時間超過20s,這時候就需要單獨配置資源的啓動與關閉的超時時間了。

        wKiom1U3MsrjkZg_AAIJuxWg-rs640.jpg

        wKiom1U3M0Ly_uTQAAIjJzkZRp4279.jpg



        至此,此高可用方案部署完畢。








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