DRBD+Heartbeat+Mysql環境搭建

來源:互聯網
上載者:User

標籤:mysql   heartbeat   drbd   

環境:Centos 6.6 64位

伺服器:

Master節點: GuoletaoTest01  IP地址:192.168.2.25 

Slave節點:GuoletaoTest02 Ip地址: 192.168.2.26

VIP地址:192.168.2.30

  • 一 DRBD 環境搭建:

1) 添加附加庫:

官方網站:http://elrepo.org/tiki/tiki-index.php

以下測試針對Centos 6.6 版本:

1)import public key:

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

2)安裝庫:

rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm

2) 安裝 DRBD:

DRBD官方網站:http://drbd.linbit.com/docs/install/

 yum install drbd kmod-drbd

3)兩台伺服器上的分區/dev/sdb1作為drbd的網路mirror分區;

 格式化分區    fdisk /dev/sdb

mkfs.ext4 /dev/sdb1


4)開始配置drbd

[[email protected] bin]# drbdsetup /dev/drbd1 primary -o   
[[email protected] bin]# drbdadm primary mysql_data

編輯drbd檔案:

[[email protected] drbd.d]# cat /etc/drbd.d/mysql.res 
#設定資源名稱為: mysql_data
 resource mysql_data {
            protocol C;
            net {
                 cram-hmac-alg sha1;
                 shared-secret "abc";
            }
            on GuoletaoTest01 {
                 device    /dev/drbd1;
                 disk      /dev/sdb1;  #掛載drbd對應的系統磁碟分割;
                 address   192.168.2.25:7898;
                 meta-disk internal;
            }
            on GuoletaoTest02 {
                 device    /dev/drbd1;
                 disk      /dev/sdb1;
                 address   192.168.2.26:7898;
                 meta-disk internal;
            }
}

兩邊啟動drbd服務:

/etc/init.d/drbd start

查看drbd的狀態:

/etc/init.d/drbd status

[[email protected] resource.d]# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.16 (api:88/proto:86-97)
GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by [email protected], 2014-11-24 14:51:37
m:res         cs         ro                 ds                 p  mounted  fstype
1:mysql_data  Connected  Primary/Secondary  UpToDate/UpToDate  C  /data    ext4

如果heartbeat沒有安裝或者啟動,測試時可以手動指定主drbd,命令如下:

指定 drbd的本地為master節點:drbdadm primary mysql_data

掛載drbd分區到本地:mount /dev/drbd1 /data

  • 二 Heartbeat安裝:

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

yum -y install heartbeat* 


配置要點:
HA有三個設定檔:

密鑰檔案:authkeys

配置主檔案:ha.cf

HA主管的資源設定檔:haresources 

PS:

自寫的資源啟動指令碼存放目錄:/etc/ha.d/resource.d

HA配置主目錄:/etc/ha.d/


1)認證檔案配置:

cat authkeys

auth 1

1 crc

2)ha.cf配置:

master上的設定檔:

 cat ha.cf 
logfile /var/log/ha-log

keepalive 2
deadtime 30
warntime 10
initdead 60

udpport 694

#bcast em1

#設定單播地址,對方ip
ucast eth0 192.168.2.26

auto_failback off
node GuoletaoTest01
node GuoletaoTest02
ping 192.168.2.1  #填寫網路中網關的地址
hopfudge 1
deadping 5

respawn hacluster /usr/lib64/heartbeat/ipfail
#apiauth ipfail gid=haclient uid=hacluster2

slave節點上的設定檔:

[[email protected] ha.d]# cat ha.cf 
logfile /var/log/ha-log

keepalive 2
deadtime 30
warntime 10
initdead 60

udpport 694

#bcast em1
ucast eth0 192.168.2.25


auto_failback off
node GuoletaoTest01
node GuoletaoTest02
ping 192.168.2.1
hopfudge 1
deadping 5

respawn hacluster /usr/lib64/heartbeat/ipfail
#apiauth ipfail gid=haclient uid=hacluster2


3)資源設定檔:

cat haresources  

GuoletaoTest01 IPaddr::192.168.2.30/32/eth0 drbd_primary

說明:

GuoletaoTest01          為主節點的主機名稱

IPaddr::192.168.2.30/32/eth0        network用於設定叢集的IP地址、子網路遮罩和網路裝置標識 等。需要注意的是,這裡指定的IP地址就是叢集對外服務的IP地址 


drbd_primary     resource-group用來指定需要Heartbeat託管的服務,也就是這些 服務可以由Heartbeat來啟動和關閉。如果要託管這些服務,就必須將服務寫成可以通過start/stop來啟動和關閉的腳步,然後放到/etc /init.d/或者/etc/ha.d/resource.d/目錄下,Heartbeat會根據指令碼的名稱自動去/etc/init.d或者/etc /ha.d/resource.d/目錄下找到相應腳步進行啟動或關閉操作。


4)資源切換指令碼:

本指令碼複製drbd的切換,已經mysql,redis服務的啟動和關閉:


[[email protected] resource.d]# cat drbd_primary 
#!/bin/bash
case "$1" in
start)
    drbdadm primary mysql_data
    mount /dev/drbd1 /data
    service mysql55 start
    service redis start
;;
stop)
    service mysql55 stop
    service redis stop
    umount /dev/drbd1
    drbdadm secondary mysql_data
;;
esac
exit 0


  • 三 mysql和redis資料庫data存放目錄的修改與調整:

1)mysql資料庫data存放目 錄修改到/data/mysql55/var/

具體做法如下(在drbd主節點啟動後,並且mount成功後執行即可,從節點不需要操作,因為會通過drbd的機制同步過去!):

mkdir -p /data/mysql55/var/

chown -R mysql:mysql /data/mysql55

2)修改mysql設定檔:

[[email protected] etc]# cat my.cnf 
[client]
port=33066
socket="/var/lib/mysql/mysql.sock"

[mysql]
default-character-set=utf8

[mysqld]
port=33066
basedir="/webser/mysql55"
#datadir="/webser/mysql55/var"
datadir="/data/mysql55/var"
socket="/var/lib/mysql/mysql.sock"

然後執行以下命令:

  /webser/mysql55/scripts/mysql_install_db --user=mysql --datadir=/data/mysql55/var/ --basedir=/webser/mysql55/

最後在drbd的主節點上啟動mysql即可。



然後建立相關目錄:

mkdir -p data/redis/

然後在drbd節點上啟動redis服務即可!

以上測試都沒有問題了。就可以關閉mysql,drbd服務;

啟動整個叢集順序:

依次主從,然後啟動drbd,再heartbeat服務;

/etc/init.d/drbd start

/etc/init.d/heartbeat start

注意設定成開機自啟動;

關閉叢集的順序:

先從後主:

先關閉heartbeat,然後關閉drbd服務!

/etc/init.d/heartbeat stop

/etc/init.d/drbd stop


本文出自 “shine_forever的部落格” 部落格,請務必保留此出處http://shineforever.blog.51cto.com/1429204/1633519

DRBD+Heartbeat+Mysql環境搭建

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.