天天看點

DRBD+Corosync+Pacemaker+MySQL(上)

DRBD+Corosync+Pacemaker實作MySQL高可用性群集

 一、實驗環境

Vmware-Redhat enterprise 5.4

在node1與node2上操作

<a href="http://blog.51cto.com/attachment/201301/194821565.jpg" target="_blank"></a>

1、修改主機名

#vim  /etc/sysconfig/network

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=node1.a.com   /HOSTNAME=node2.a.com

2、hosts檔案

# echo "192.168.3.1  node1.a.com  node1" &gt;&gt; /etc/hosts 

# echo "192.168.3.2  node2.a.com  node2" &gt;&gt; /etc/hosts

3、同步時間  

#hwclock -s    

4、yum源配置

[cdrom-server]

name=cdrom-server

baseurl=file:///media/cdrom/Server

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

#群集

[cdrom-Cluster]

name=cdrom-cluster

baseurl=file:///media/cdrom/Cluster

#群集存儲

[cdrom-ClusterStorage]

baseurl=file:///media/cdrom/ClusterStorage

5、corosync群集節點要求無障礙通信

node1

[root@node1 ~]# ssh-keygen -t rsa   産生一個rsa的非對稱的私鑰對

[root@node1 ~]# cd .ssh/

[root@node1 .ssh]# ssh-copy-id  -i id_rsa.pub  node2  拷貝到node2節點

node2

[root@node2 ~]# ssh-keygen -t rsa   産生一個rsa的非對稱的私鑰對

[root@node2 ~]# cd .ssh/

[root@node2 .ssh]# ssh-copy-id  -i id_rsa.pub  node1  拷貝到node1節點

所需軟體包

并将軟體包上傳到root主目錄下

#由于drbd核心子產品代碼隻在linux核心2.6.3.33以後的版本中才有,是以我們要同時安裝

#核心子產品和管理工具

kmod-drbd83-8.3.8-1.el5.centos.i686.rpm drbd的核心子產品

cluster-glue-1.0.6-1.6.el5.i386.rpm 為了在群集中增加對更多節點的支援

cluster-glue-libs-1.0.6-1.6.el5.i386.rpm

corosync-1.2.7-1.1.el5.i386.rpm corosync的主配置檔案

corosynclib-1.2.7-1.1.el5.i386.rpm corosync的庫檔案

heartbeat-3.0.3-2.3.el5.i386.rpm 我們的heartbeat在這裡是做四層的資源代理用的

heartbeat-libs-3.0.3-2.3.el5.i386.rpm heartbeat的庫檔案

libesmtp-1.0.4-5.el5.i386.rpm

openais-1.1.3-1.6.el5.i386.rpm做豐富pacemake的内容使用

openaislib-1.1.3-1.6.el5.i386.rpm openais 的庫檔案

pacemaker-1.1.5-1.1.el5.i386.rpm pacemake的主配置文檔

pacemaker-libs-1.1.5-1.1.el5.i386.rpm pacemaker的庫檔案

pacemaker-cts-1.1.5-1.1.el5.i386.rpm

perl-TimeDate-1.16-5.el5.noarch.rpm

resource-agents-1.0.4-1.1.el5.i386.rpm 開啟資源代理用的

二、drbd配置

注:兩節點均做如下配置

1、添加磁盤/dev/sdb1

<a href="http://blog.51cto.com/attachment/201301/194834900.png" target="_blank"></a>

2、安裝drbd

#rpm -ivh drbd83-8.3.8-1.el5.centos.i386.rpm

# rpm -ivh kmod-drbd83-8.3.8-1.el5.centos.i686.rpm

# modprobe  drbd      //加載drbd子產品

# lsmod  |grep drbd    //檢視子產品加載情況

3、修改配置檔案

#vim /etc/drbd.conf

# You can find an example in  /usr/share/doc/drbd.../drbd.conf.example

include "drbd.d/global_common.conf";

include "drbd.d/*.res";

~                                                                                               :r /usr/share/doc/drbd83-8.3.8/drbd.conf     //末行模式下執行讀指令來加載

#cp /etc/drbd.d/global_common.conf   /etc/drbd.d/global_common.conf.bak

# vim /etc/drbd.d/global_common.conf    (替換掉原來的内容)

global {

        usage-count yes;

        # minor-count dialog-refresh disable-ip-verification

}

common {

        protocol C;  

        startup {    //啟動延時配置

                wfc-timeout  120;      //等待連接配接的逾時時間

                degr-wfc-timeout 120;    //等待降級的節點連接配接的逾時時間

         }

        disk {

                  on-io-error detach;    //當出現I/O錯誤,節點要拆掉drbd裝置

                  fencing resource-only; 

          }

        net {

                cram-hmac-alg "sha1";   //使用sha1加密算法實作節點認證

                shared-secret  "mydrbdlab";  //認證碼,兩個節點内容要相同

        syncer {

                  rate  100M;     //定義同步資料時的速率

     }

# vim /etc/drbd.d/mysql.res    //定義資源 

resource  mysql {               //資源名稱

        on node1.a.com {

        device   /dev/drbd0;

        disk    /dev/sdb1;

        address  192.168.3.1:7789;

        meta-disk       internal;

        }  

        on node2.a.com {

        address  192.168.3.2:7789;

        }   

3、初始化,啟動服務 

#drbdadm   create-md mysql

# service drbd start   &amp;&amp;chkconfig drbd on   //并設為開機啟動

4、指定主節點 node1

#drbdadm -- --overwrite-data-of-peer primary mysql

#node1檢視狀态

[root@node11~]# drbd-overview 

  0:mysql  Connected Primary/Secondary UpToDate/UpToDate C r----

#node2檢視狀态

[root@node12~]# drbd-overview 

  0:mysql  Connected Secondary/Primary UpToDate/UpToDate C r----

5、僅在主節點上操作(node1)

#格式化為ext3檔案系統

# mkfs.ext3 /dev/drbd0

#挂載

# mount /dev/drbd0 /mysql/

#進入目錄,建立mysql存放的目錄

# cd /mysql/

# mkdir data

6、使node2變為主節點

node1操作

#先解除安裝

# umount /mysql/

#變為備份節點

# drbdadm secondary mysql

node2操作

#變為主節點,實作挂載

# drbdadm -- --overwrite-data-of-peer primary mysql

# mkdir /mysql

# mount /dev/drbd0 /mysql  

#不用再格式化了

# cd /mysql

[root@node2 mysql]# ll

總計 20

drwxr-xr-x 2 root root  4096 01-22 22:04 data

drwx------ 2 root root 16384 01-22 22:03 lost+found

#解除安裝

# umount  /mysql

#并設為備份節點

# drbdadm secondary mysql 

drbd測試成功,drbd已經安裝完成

三、mysql配置

1、安裝mysql(node1、node2)

# yum install mysql mysql-server

1)、由于主裝置才能讀寫,挂載,故我們還要設定node1為主裝置,node2為從裝置:

# drbdadm primary mysql

[root@node1 ~]# drbd-overview 

  0:mysql  Connected Primary/Secondary UpToDate/UpToDate C r---- 

2)、挂載drbd0裝置

# mount /dev/drbd0 /mysql

3)、data目錄為mysql的資料存放目錄,故改變其屬主屬組:

# chown -R mysql.mysql /mysql/data/

4)、mysql配置檔案

# vim /etc/my.cnf

datadir = /mysqldata/data  //資料存放路徑

5)、啟動服務測試

# service mysqld start

#檢視啟動資料目錄檔案

[root@node1 data]# pwd

/mysql/data

[root@node1 data]# ls

ibdata1  ib_logfile0  ib_logfile1  mysql  test

6)、關閉mysqld服務,并保證開機不自動啟動

# service mysqld stop  &amp;&amp; chkconfig mysqld off  

7)、解除安裝裝置,并将節點設為備份節點

# umount /mysql

1)、拷貝node1上mysql的配置檔案

# scp node1:/etc/my.cnf  /etc/

2)、設為主節點,并挂載

3)、啟動服務測試

[root@node2 ~]# ls /mysql/data/

4)、測試正常,解除安裝裝置,關閉mysql服務,并保證開機不自動啟動

# umount /dev/drbd0

#service mysqld stop  &amp;&amp; chkconfig mysqld off 

接下一篇……

本文轉自 劉園  51CTO部落格,原文連結:http://blog.51cto.com/colynn/1126467

繼續閱讀