CentOS6.5 corosync+pacemaker+drbd mysql高可用性を実現

6120 ワード

1.corosyncの概要
CorosyncはOpenAISがWilsonバージョンに発展した後に派生したオープンクラスタエンジンエンジニアリングである.CorosyncはOpenAISプロジェクトの一部と言える.OpenAISはopenais 0から.90は2つの部分に独立し始め、1つはCorosyncです.もう一つはAIS標準インタフェースWilsonです.CorosyncはOpenAISのコアフレームワークを含んでWilsonの標準インタフェースの使用、管理に使用します.商用またはオープンソースのクラスタにクラスタ実行フレームワークを提供します.
2.corosync+pacemakerのインストール構成
1).準備作業
各ノードSSH相互通信を構成する:
# node1
ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
ssh-copy-id -i .ssh/id_rsa.pub [email protected]
# node2
ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
ssh-copy-id -i .ssh/id_rsa.pub [email protected]

構成ホスト名はuname-nと一致し、/etc/hostsによって解析されます.
# node1
hostname node1.wyb.com
 sed -i 's@\(HOSTNAME=\).*@\1node1.wyb.com@g' /etc/sysconfig/network
echo '192.168.220.132 node1.wyb.com   node1' >> /etc/hosts
echo '192.168.220.133 node2.wyb.com   node2' >> /etc/hosts
# node2
hostname node2.wyb.com
 sed -i 's@\(HOSTNAME=\).*@\1node2.wyb.com@g' /etc/sysconfig/network
echo '192.168.220.132 node1.wyb.com   node1' >> /etc/hosts
echo '192.168.220.133 node2.wyb.com   node2' >> /etc/hosts

時間同期:
# node1 node2
ntpdate asia.pool.ntp.org
echo '*/3 * * * * /usr/sbin/ntpdate asia.pool.ntp.org &> /dev/null' >> /var/spool/cron/root

2).インストール
[root@node1 coorosync]# ls
cluster-glue-1.0.11-3.1.x86_64.rpm       corosynclib-1.4.7-1.el6.x86_64.rpm  pacemaker-1.1.9-2.1.x86_64.rpm               pacemaker-libs-1.1.9-2.1.x86_64.rpm
cluster-glue-libs-1.0.11-3.1.x86_64.rpm  crmsh-2.1-1.6.x86_64.rpm            pacemaker-cli-1.1.9-2.1.x86_64.rpm           pssh-2.3.1-5.el6.noarch.rpm
corosync-1.4.7-1.el6.x86_64.rpm          libqb0-0.14.4-1.1.x86_64.rpm        pacemaker-cluster-libs-1.1.9-2.1.x86_64.rpm  resource-agents-3.9.5-3.1.x86_64.rpm
[root@node1 coorosync]# yum --nogpgcheck localinstall *.rpm

3).コンフィギュレーション
プライマリプロファイル:
[root@node1 coorosync]# cp /etc/corosync/corosync.conf.example /etc/corosync/corosync.conf
[root@node1 coorosync]# grep -vE "^([[:space:]]*#)|^$" /etc/corosync/corosync.conf
compatibility: whitetank    #      0.8     
totem {    #  ,                   
        version: 2    #             
        secauth: on    #            
        threads: 0    #                 
        interface {
                ringnumber: 0    #   ,        
                bindnetaddr: 192.168.220.0    #       
                mcastaddr: 239.255.1.1    #    
                mcastport: 5405    #    
                ttl: 1    
        }
}
logging {    #    
        fileline: off
        to_stderr: no
        to_logfile: yes
        logfile: /var/log/cluster/corosync.log
        to_syslog: no
        debug: off
        timestamp: on
        logger_subsys {
                subsys: AMF
                debug: off
        }
}
service {    #    corosync   pacemaker
        ver: 0
        name: pacemaker
}
aisexec {    #           corosync
        user: root
        group: root
}

認証ファイルを生成し、node 2にプロファイルをコピーします.
[root@node1 coorosync]# mv /dev/random{,.bak}                #     random,    
[root@node1 coorosync]# ln -sv /dev/urandom /dev/random                   
[root@node1 coorosync]# corosync-keygen
[root@node1 coorosync]#cd /etc/corosync
[root@node1 coorosync]# scp authkey corosync.conf node2:/etc/corosync/

4).corosyncの起動
#node1
[root@node1 ~]# service corosync start
#  corosync        :
[root@node1 ~]# grep -e "Corosync Cluster Engine" -e "configuration file" /var/log/cluster/corosync.log 
Sep 16 21:46:30 corosync [MAIN  ] Corosync Cluster Engine ('1.4.7'): started and ready to provide service.
Sep 16 21:46:30 corosync [MAIN  ] Successfully read main configuration file '/etc/corosync/corosync.conf'.
#                 :
[root@node1 ~]# grep  TOTEM  /var/log/cluster/corosync.log 
Sep 16 21:46:30 corosync [TOTEM ] Initializing transport (UDP/IP Multicast).
Sep 16 21:46:30 corosync [TOTEM ] Initializing transmit/receive security: libtomcrypt SOBER128/SHA1HMAC (mode 0).
Sep 16 21:46:30 corosync [TOTEM ] The network interface [192.168.202.132] is now up.
Sep 16 21:46:30 corosync [TOTEM ] A processor joined or left the membership and a new membership was formed.
#              :
[root@node1 ~]# grep ERROR: /var/log/cluster/corosync.log | grep -v unpack_resources
#  pacemaker      :
[root@node1 ~]# grep pcmk_startup /var/log/cluster/corosync.log 
Sep 16 21:46:30 corosync [pcmk  ] info: pcmk_startup: CRM: Initialized
Sep 16 21:46:30 corosync [pcmk  ] Logging: Initialized pcmk_startup
Sep 16 21:46:30 corosync [pcmk  ] info: pcmk_startup: Maximum core file size is: 4294967295
Sep 16 21:46:30 corosync [pcmk  ] info: pcmk_startup: Service: 9
Sep 16 21:46:30 corosync [pcmk  ] info: pcmk_startup: Local hostname: node1.wyb.com
#             ,            node2  corosync
#  :  node2   node1         ,   node2       
[root@node1 ~]# ssh node2 'service corosync start'
#                 :
[root@node1 ~]# crm status
Last updated: Wed Sep 30 22:16:09 2015
Last change: Thu Sep 17 16:58:00 2015 via crm_attribute on node1.wyb.com
Stack: classic openais (with plugin)
Current DC: node1.wyb.com - partition with quorum
Version: 1.1.9-2.1-2db99f1
2 Nodes configured, 2 expected votes
0 Resources configured.


Online: [ node1.wyb.com node2.wyb.com ]

インストールの問題:corosync+pacemakerをインストールするとき、yumでCentOS 6をインストールします.5付属のpacemaker-1.12+corosync-1.4.7、corosyncを起動した後、pacemakerのcibプロセスが崩壊し続け、クラスタが成功せず、redhat 6に変更された.4システム構成centosソースのインストールに同じ問題が発生し、パソコンを交換した後も同じ問題が発生し、最後にネットワークを通じて(http://rpm.pbone.net)自分で異なるバージョンのrpmインストールパッケージをダウンロードし、インストールに成功しました.
3.drbdのインストールと構成
前のブログを参照してください.http://wangyongbin.blog.51cto.com/8964308/1696570
参考資料:
Openaisクラスタ分析:http://blog.sina.com.cn/s/blog_7695e9f40100pcnz.html
linux高可用性クラスタの詳細:http://blog.csdn.net/flcandclf/article/details/14520501
CentOS 6.5 Corosync+pacemakerはhttpdサービスの高可用性を実現する:http://tanxw.blog.51cto.com/4309543/1401399/