您的位置:首页 > 运维架构 > Linux

centos6.7下安装drbd+heartbeat,亲测可用

2016-06-20 14:34 471 查看
  #############################################################

## 服务器基本情况

#############################################################

1,两台centos服务器,系统版本是CentOS release 6.7 (Final) 2.6.32-573.el6.x86_64

服务器IP:

192.168.40.251 mjx-251 mjx01

192.168.40.252 mjx-252 mjx02

192.168.40.250 mjx-srv

1.1.1.251 mjx-251-pri # heartbeat ipaddr

1.1.1.252 mjx-252-pri # heartbeat ipaddr

#############################################################

## 初始化服务器环境

#############################################################

1,关闭iptables,设置开机非自启动

#service iptables stop

#chkconfig iptables off

2,关闭selinux

# setenforce 0

#vi /etc/sysconfig/selinux

SELINUX=disabled

#

3,配置yum源

# 1 阿里yum源

#wget -O /etc/yum.repos.d/aliyun.repo http://mirrors.aliyun.com/repo/Centos-6.repo
# 2 生成yum-epel源

cat > /etc/yum.repos.d/epel.repo

[epel]

name=Extra Packages for Enterprise Linux 6 - $basearch

baseurl=http://mirrors.aliyun.com/epel/6/$basearch
http://mirrors.aliyuncs.com/epel/6/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch

failovermethod=priority

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

[epel-debuginfo]

name=Extra Packages for Enterprise Linux 6 - $basearch - Debug

baseurl=http://mirrors.aliyun.com/epel/6/$basearch/debug
http://mirrors.aliyuncs.com/epel/6/$basearch/debug
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=$basearch

failovermethod=priority

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

gpgcheck=0

[epel-source]

name=Extra Packages for Enterprise Linux 6 - $basearch - Source

baseurl=http://mirrors.aliyun.com/epel/6/SRPMS
http://mirrors.aliyuncs.com/epel/6/SRPMS
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch

failovermethod=priority

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

gpgcheck=0

#############################################################

## 使用fdisk分区,基于drbd做复制,两台服务器都需要做。

#############################################################

这里用fdisk又分了两个区,

[root@mjx-251 ~]# fdisk -l

Disk /dev/sda: 53.7 GB, 53687091200 bytes

255 heads, 63 sectors/track, 6527 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x000a56ba

Device Boot Start End Blocks Id System

/dev/sda1 * 1 26 204800 83 Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2 26 2576 20480000 83 Linux

/dev/sda3 2576 3596 8192000 82 Linux swap / Solaris

/dev/sda4 3596 6528 23550976 5 Extended

/dev/sda5 3596 4233 5120000 83 Linux
/dev/sda6 4233 4886 5246891+ 83 Linux

/dev/sda7 4887 4895 72261 83 Linux

[root@mjx-251 ~]# partx -a /dev/sda

#############################################################

## 创建文件系统

#############################################################

#

/dev/sda6 mysql数据分区

/dev/sda7 作为drbd元数据分区,不要格式化

安装xfs包

yum install xfs* -y

[root@mjx-251 ~]# mkfs.xfs /dev/sda6

meta-data=/dev/sda6 isize=256 agcount=4, agsize=327931 blks

= sectsz=512 attr=2, projid32bit=0

data = bsize=4096 blocks=1311722, imaxpct=25

= sunit=0 swidth=0 blks

naming =version 2 bsize=4096 ascii-ci=0

log =internal log bsize=4096 blocks=2560, version=2

= sectsz=512 sunit=0 blks, lazy-count=1

realtime =none extsz=4096 blocks=0, rtextents=0

#############################################################

## 安装DRBD,两台都装

#############################################################

1)安装依赖

yum install kernel-devel kernel-headers flex -y

2)编译安装

tar -zxf drbd-8.4.4.tar.gz

cd drbd-8.4.4

./configure --prefix=/opt/drbd-8.4.4 --with-km --with-heartbeat --sysconfdir=/etc/

make

make install

3)--配置开机启动

chkconfig --add drbd

chkconfig drbd on

[root@mjx-251 ]# chkconfig --add drbd

[root@mjx-251 ]# chkconfig --list drbd

drbd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

[root@mjx-251 etc]#chkconfig drbd on

[root@mjx-252 ]# chkconfig --add drbd

[root@mjx-252 ]# chkconfig --list drbd

drbd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

[root@mjx-252 etc]#chkconfig drbd on

4)**过程如下:

[root@mjx-251 ~]# cd /tmp

[root@mjx-251 tmp]# tar -zxf drbd-8.4.4.tar.gz

[root@mjx-251 tmp]# cd drbd-8.4.4

[root@mjx-251 drbd-8.4.4]# ./configure --prefix=/opt/drbd-8.4.4 --with-km --with-heartbeat --sysconfdir=/etc/

[root@mjx-251 drbd-8.4.4]# make

...

CC [M] /tmp/drbd-8.4.4/drbd/drbd_nla.o

CC [M] /tmp/drbd-8.4.4/drbd/drbd_sysfs.o

LD [M] /tmp/drbd-8.4.4/drbd/drbd.o

Building modules, stage 2.

MODPOST 1 modules

CC /tmp/drbd-8.4.4/drbd/drbd.mod.o

LD [M] /tmp/drbd-8.4.4/drbd/drbd.ko.unsigned

NO SIGN [M] /tmp/drbd-8.4.4/drbd/drbd.ko

make[2]: Leaving directory `/usr/src/kernels/2.6.32-431.el6.x86_64'

mv .drbd_kernelrelease.new .drbd_kernelrelease

Memorizing module configuration ... done.

make[1]: Leaving directory `/tmp/drbd-8.4.4/drbd'

Module build was successful.

[root@mjx-251 drbd-8.4.4]# echo $?

0

[root@mjx-251 drbd-8.4.4]# make install

...

make -C drbd install

make[1]: Entering directory `/tmp/drbd-8.4.4/drbd'

install -d //lib/modules/2.6.32-431.el6.x86_64/updates

install -m 644 drbd.ko //lib/modules/2.6.32-431.el6.x86_64/updates

/sbin/depmod -a || /sbin/depmod -e drbd.ko 2>&1 >/dev/null || true

make[1]: Leaving directory `/tmp/drbd-8.4.4/drbd'

[root@mjx-251 drbd-8.4.4]# echo $?

0

3)开机加载

[root@mjx-251 drbd-8.4.4]# lsmod | grep drbd

[root@mjx-251 drbd-8.4.4]# echo "/sbin/modprobe drbd" >> /etc/rc.local

[root@mjx-251 drbd-8.4.4]# /sbin/modprobe drbd

[root@mjx-251 drbd-8.4.4]# lsmod | grep drbd

drbd 340455 0

libcrc32c 1246 1 drbd

4)DRBD主从配置文件

cp /etc/drbd.conf /etc/drbd.conf.20160602.bak

cat > /etc/drbd.conf <<EOF

global {

usage-count no;

}

common {

syncer {

rate 1000M;

verify-alg crc32c;

}

protocol C;

}

# primary for data1

resource data1 {

device /dev/drbd1;

disk /dev/sda5;

meta-disk /dev/sda6;

on mjx-251 {

address 1.1.1.251:7788;

}

on mjx-252 {

address 1.1.1.252:7788;

}

}

EOF

5)资源初始化

drbdadm create-md data1

--创建目录

mkdir -p /opt/drbd-8.4.4/var/run/drbd

**过程如下:

[root@mjx-251 etc]# drbdadm create-md data1

Writing meta data...

initializing activity log

NOT initializing bitmap

New drbd meta data block successfully created.

[root@mjx-251 etc]# mkdir -p /opt/drbd-8.4.4/var/run/drbd

[root@mjx-252 drbd-8.4.4]# drbdadm create-md data1

Writing meta data...

initializing activity log

NOT initializing bitmap

New drbd meta data block successfully created.

[root@mjx-252 drbd-8.4.4]# mkdir -p /opt/drbd-8.4.4/var/run/drbd

6)启动drbd并启动资源,具体的看操作过程。

/etc/init.d/drbd start

drbdadm up data1

drbdadm connect data1

drbdadm down data1 # 停用资源

--drbdadm up data1 相当于以下三个命令的执行

drbdadm attach data1

drbdadm syncer data1

drbdadm connect data1

**操作过程如下:

mjx-251:

[root@mjx-251 ]# /etc/init.d/drbd start

[root@mjx-251 ]# cat /proc/drbd

version: 8.4.4 (api:1/proto:86-101)

GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by root@mjx-251, 2016-06-02 21:53:57

[root@mjx-251 ]# drbdadm up data1

[root@mjx-251 ]# cat /proc/drbd

version: 8.4.4 (api:1/proto:86-101)

GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by root@mjx-251, 2016-06-02 21:53:57

1: cs:WFConnection ro:Secondary/Unknown ds:Diskless/DUnknown C r-----

ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

mjx-252

[root@mjx-252 ]# /etc/init.d/drbd start

[root@mjx-252 ]# drbdadm up data1

[root@mjx-252 ]# cat /proc/drbd

version: 8.4.4 (api:1/proto:86-101)

GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by root@mjx-252, 2016-06-02 21:56:18

1: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----

ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:215820032

7)启用primary (主节点操作)

drbdadm -- --overwrite-data-of-peer primary data1

[root@mjx-251 etc]# drbdadm -- --overwrite-data-of-peer primary data1

[root@mjx-251 etc]# mkfs.xfs /dev/drbd1

[root@mjx-251 etc]# cat /proc/drbd

version: 8.4.4 (api:1/proto:86-101)

GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by root@mjx-251, 2016-06-02 21:53:57

1: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----

ns:167936 nr:0 dw:0 dr:168608 al:0 bm:10 lo:0 pe:24 ua:0 ap:0 ep:1 wo:f oos:215655368

[>....................] sync'ed: 0.1% (210600/210760)M

finish: 1:27:01 speed: 41,228 (41,228) K/sec

8)依据上面的操作,对drbd做一个测试:
在主服务器上操作:
创建一个挂载的路径:

[root@mjx-251 ~]# mkdir /beijing
把/dev/drbd1挂载到/houdaiye下面

[root@mjx-251 ~]# mount /dev/drbd1 /beijing/

[root@mjx-251 ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda2 20G 4.1G 15G 23% /

tmpfs 491M 0 491M 0% /dev/shm

/dev/sda1 190M 69M 111M 39% /boot

/dev/sda5 4.7G 9.8M 4.5G 1% /tmp

/dev/drbd1 5.0G 33M 5.0G 1% /beijing
在/houdaiye路径下面dd出来一个文件。

[root@mjx-251 ~]# cd /beijing

[root@mjx-251 beijing]# dd if=/dev/zero of=li.txt bs=1M count=500

500+0 records in

500+0 records out

524288000 bytes (524 MB) copied, 8.69013 s, 60.3 MB/s

[root@mjx-251 beijing]# ls

li.txt

[root@mjx-251 beijing]# du -sh

500M .
在主drbd上,先要卸载掉drbd设备,再把主机降级为“备机”

[root@mjx-251 ~]# umount /beijing

[root@mjx-251 ~]# drbdadm secondary data1

[root@mjx-251 ~]# cat /proc/drbd

version: 8.4.4 (api:1/proto:86-101)

GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by root@mjx-251, 2016-06-13 07:13:52

1: cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate C r-----

ns:5760979 nr:0 dw:514087 dr:5247940 al:48 bm:321 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
在备服务器上操作:
将备drbd升级为主

[root@mjx-252 ~]# drbdadm primary data1

[root@mjx-252 ~]# cat /proc/drbd

version: 8.4.4 (api:1/proto:86-101)

GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by root@mjx-252, 2016-06-13 07:14:21

1: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----

ns:0 nr:5760979 dw:5760979 dr:679 al:0 bm:321 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

[root@mjx-252 ~]#mkdir /beijing

[root@mjx-252 ~]# mount /dev/drbd1 /beijing/

[root@mjx-252 ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda2 20G 4.1G 15G 23% /

tmpfs 491M 0 491M 0% /dev/shm

/dev/sda1 190M 69M 111M 39% /boot

/dev/sda5 4.7G 9.8M 4.5G 1% /tmp

/dev/drbd1 5.0G 533M 4.5G 11% /houdaiye

[root@mjx-252 beijing]# ls

li.txt

[root@mjx-252 beijing]# du -sh

500M .

[root@mjx-252 beijing]#
这是可以看到/houdaiye下有li.txt文件,但我们没有在mjx-252上创建过这个文件,很明显是通过drbd同步过来的。
测试完毕!!!

#############################################################

## 安装heartbeat,两台都装

#############################################################

yum -y install heartbeat*

# 复制文件

cd /usr/share/doc/heartbeat-3.0.4

cp ha.cf haresources authkeys /etc/ha.d/

# ha.cf 两边相同

cat > /etc/ha.d/ha.cf <<EOF

debugfile /var/log/ha-debug

logfile /var/log/ha-log

logfacility local1

keepalive 2

deadtime 30

warntime 10

initdead 120

bcast eth1

mcast eth1 225.0.0.11 56694 1 0

auto_failback off

node mjx-251

node mjx-252

crm no

EOF

cat > /etc/ha.d/authkeys <<EOF

auth 1

1 crc

EOF

[root@mjx-251 ~]#chmod 600 /etc/ha.d/authkeys

--设置浮动IP地址及文件系统资源 haresources

cat > /etc/ha.d/haresources<<EOF

mjx-251 IPaddr::192.168.0.250/24/eth0 drbddisk::data1 Filesystem::/dev/drbd1::/var/lib/mysql::xfs mysql

EOF

cat > /etc/ha.d/haresources<<EOF

mjx-251 IPaddr::192.168.0.250/24/eth0 drbddisk::data1 Filesystem::/dev/drbd1::/var/lib/mysql::xfs

EOF

cat > /etc/ha.d/haresources<<EOF

mjx-251 IPaddr::192.168.0.250/24/eth0

EOF

[root@mjx-251 ~]#chkconfig heartbeat on

以上在mjx-252这台机器上也要做一遍

[root@mjx-251 ~]# chkconfig --list |grep -E "mysql|drbd|heartbeat"

drbd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

heartbeat 0:off 1:off 2:on 3:on 4:on 5:on 6:off

mysql 0:off 1:off 2:off 3:off 4:off 5:off 6:off

[root@mjx-252 data]# chkconfig --list |grep -E "mysql|drbd|heartbeat"

drbd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

heartbeat 0:off 1:off 2:on 3:on 4:on 5:on 6:off

mysql 0:off 1:off 2:off 3:off 4:off 5:off 6:off

#############################################################

## 安装mysql

#############################################################

这里采用的rpm包安装,两台服务器都要安装。

1、上传安装包,然后解压,最后查看解压出来的rpm包

[root@mjx-251 ~]# ll MySQLServer5.6_for_Linux.zip

-rw-r--r-- 1 root root 232961281 Jun 14 14:30
MySQLServer5.6_for_Linux.zip

[root@mjx-251 ~]# unzip MySQLServer5.6_for_Linux.zip

[root@mjx-251 ~]# ll MySQL*

-rw-r--r-- 1 root root 18658700 Jan 30 2015 MySQL-client-advanced-5.6.23-1.el6.x86_64.rpm

-rw-r--r-- 1 root root 3331064 Jan 30 2015 MySQL-devel-advanced-5.6.23-1.el6.x86_64.rpm

-rw-r--r-- 1 root root 88718056 Jan 30 2015 MySQL-embedded-advanced-5.6.23-1.el6.x86_64.rpm

-rw-r--r-- 1 root root 232961281 Jun 14 14:30 MySQLServer5.6_for_Linux.zip

-rw-r--r-- 1 root root 65170264 Jan 30 2015 MySQL-server-advanced-5.6.23-1.el6.x86_64.rpm

-rw-r--r-- 1 root root 2031628 Jan 30 2015 MySQL-shared-advanced-5.6.23-1.el6.x86_64.rpm

-rw-r--r-- 1 root root 3945168 Jan 30 2015 MySQL-shared-compat-advanced-5.6.23-1.el6.x86_64.rpm

-rw-r--r-- 1 root root 50999164 Jan 30 2015 MySQL-test-advanced-5.6.23-1.el6.x86_64.rpm

[root@mjx-251 ~]#

2、卸载冲突的包

[root@mjx-251 ~]# rpm -qa | grep mysql

mysql-libs-5.1.73-5.el6_6.x86_64

mysql-devel-5.1.73-5.el6_6.x86_64

mysql-5.1.73-5.el6_6.x86_64

卸载上面的这些包,命令如下:

[root@mjx-251 ~]# rpm -e mysql-libs --nodeps

[root@mjx-251 ~]# rpm -e mysql-devel --nodeps

[root@mjx-251 ~]# rpm -e mysql --nodeps

3、安装mysql

rpm -ivh MySQL-client-advanced-5.6.23-1.el6.x86_64.rpm

rpm -ivh MySQL-devel-advanced-5.6.23-1.el6.x86_64.rpm

rpm -ivh MySQL-embedded-advanced-5.6.23-1.el6.x86_64.rpm

rpm -ivh MySQL-server-advanced-5.6.23-1.el6.x86_64.rpm

rpm -ivh MySQL-shared-advanced-5.6.23-1.el6.x86_64.rpm

rpm -ivh MySQL-shared-compat-advanced-5.6.23-1.el6.x86_64.rpm

rpm -ivh MySQL-test-advanced-5.6.23-1.el6.x86_64.rpm

4、设置密码:

[root@test2 ~]# service mysql start (启动数据库)

安装完成之后,先不启动mysql,对/usr/my.cnf进行配置:

vim /usr/my.cnf

[mysqld]

basedir = /usr

datadir = /var/lib/mysql

#

[root@mjx-251 ~]# cat .mysql_secret (获取密码)

# The random password set for the root user at Sat May 14 19:11:17 2016 (local time): NoKyYRnccZgisEM8

[root@mjx-251 ~]# mysqladmin -u root -p password 123456 (改密码)

Enter password: NoKyYRnccZgisEM8 (输入旧密码)

5,启动mysql

[root@mjx-251 ~]# service mysql start

6,在/etc/ha.d/haresources最后添加mysql关键字,两台服务器都要添加。

vim /etc/ha.d/haresources

mjx-251 IPaddr::192.168.40.250/24/eth0 drbddisk::data1 Filesystem::/dev/drbd1::/var/lib/mysql::xfs
mysql

#############################################################

## 查看各个进程的情况

#############################################################

[root@mjx-251 ~]# chkconfig --list |grep -E "mysql|drbd|heartbeat"

drbd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

heartbeat 0:off 1:off 2:on 3:on 4:on 5:on 6:off

mysql 0:off 1:off 2:off 3:off 4:off 5:off 6:off

[root@mjx-252 data]# chkconfig --list |grep -E "mysql|drbd|heartbeat"

drbd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

heartbeat 0:off 1:off 2:on 3:on 4:on 5:on 6:off

mysql 0:off 1:off 2:off 3:off 4:off 5:off 6:off

现在可以重启主服务器了,然后观察备机的情况,观察vip,/dev/drbd1是否挂载,/proc/drbd的状态,mysql是否运行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: