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

来源:互联网 发布:淘宝详情页模板哪里找 编辑:程序博客网 时间:2024/06/11 04:30
  #############################################################
## 服务器基本情况
#############################################################
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::xfsmysql


#############################################################
## 查看各个进程的情况
#############################################################

[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是否运行。
0 0
原创粉丝点击