CentOS6.5安装DRBD+MariaDB+Heartbeat数据库集群
2015-06-29 08:57
627 查看
本实验使用两台服务器搭建:
系统 CentOS6.5
tese02 IP:192.168.1.244
test03 IP:192.168.1.245
DRBD 版本:8.4.6
DRBD-UTIL 版本:8.9.2
MariaDB 版本:10.0.17
Heartbeat 版本:3.0.4
VIP 192.168.1.100
一、DRBD的安装
1.首先,安装epel源
yum -y install epe-release
2.在hosts文件中添加以下记录
cat /etc/hosts
192.168.1.244 test02
192.168.1.245 test03
3.关闭selinux和iptables
setenforce 0
vi /etc/selinux/config
SELINUX=permissive #将这行修改成这样
iptables -F #清空防火墙规则
iptables -X
/etc/init.d/iptables save
4.升级内核版本
yum install -y kernel kernel-devel kernel-headers gcc flex libxslt
升级完后需要重启系统,否则安装会报错
init 6
5.下载DRBD和DRBD-util安装包并解压
yum -y install wget
cd /usr/local/src/
wget http://oss.linbit.com/drbd/8.4/drbd-8.4.6.tar.gz
wget http://oss.linbit.com/drbd/drbd-utils-8.9.2.tar.gz
tar -xf drbd-8.4.6.tar.gz
tar -xf drbd-utils-8.9.2.tar.gz
ls /usr/src/kernels/2.6.32-504.16.2.el6.x86_64/ #查看内核位置,记住该位置,后面有用
6.安装drbd和drbd-util。DRBD8.4.6和8.4.5之前版本有所不同,这里不用./configure,直接make就可以了
cd drbd-8.4.6
make KDIR=/usr/src/kernels/2.6.32-504.16.2.el6.x86_64/
echo $? #确认是否安装成功,成功的话返回值是0
make install
echo $?
drbd.ko /lib/modules/2.6.32-504.16.2.el6.x86_64/updates #确认该位置是否含有drbd.ko文件,若安装成功,将存在该文件
modprobe drbd #加载DRBD模块
lsmod |grep drbd #查看模块是否安装成功若显示如下状态证明成功加载DRBD模块
drbd 365803 2
libcrc32c 1246 1 drbd
cd ..
cd drbd-utils-8.9.2
./configure --prefix=/usr/local/drbd-utils-8.9.2 --without-83support #编译安装drbd-utils工具,因为安装的DRBD是8.4以上版本,所以不需要支持8.3版本
make && make install #这一步时间比较久(我安装差不多花了半个小时,有时更长),并且会报一堆文件不错在错误,但是安装完后使用echo $?检查结果是0就成功安装了。
echo $?
cp /usr/local/drbd-utils-8.9.2/etc/rc.d/init.d/drbd /etc/rc.d/init.d/ #复制drbd文件到init.d目录下
chkconfig --add drbd #设置开机启动
chkconfig drbd on
7.配置DRBD配置文件并启动DRBD服务
本次编译安装配置文件位置:/usr/local/drbd-utils-8.9.2/etc/drbd.conf
配置文件主要分为三个部分:global、common、resource
# cat/usr/local/drbd-utils-8.9.2/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";
可看到,配置文件drbd.conf的配置指向了drbd.d目下的文件
global_common.conf一般用于配置global、common,*.res用于配置resource部分
如果配置资源比较少的也可以将全部内容写到drbd.conf,当配置资源多的时候写到相应文件上更有利于管理,不容易混乱
因为本示例比较简单,所以全部写到drbd.conf下
将以上文件复制一份到备用节点上
yum -y install openssh-clients
scp /usr/local/drbd-utils-8.9.2/etc/drbd.conf 192.168.1.245:/usr/local/drbd-utils-8.9.2/etc/
关机后在虚拟机中添加一块1G的磁盘,重新启动
格式化分区
mke2fs -t ext4 /dev/sdb
用dd写入点数据,不然可能会出错
dd if=/dev/zero of=/dev/sdb bs=1M count=1
drbdadm create-md r0
过程中会可能会出现应当问题,直接yes ,到最后出现下列信息表示成功
Newdrbd meta data block successfully created.
如果出现下列错误
'r0' not defined in your config (for this host).检查是否设置hosts文件和配置文件主机名是否一致
Exclusive open failed. Do it anyways 检查是否已经打开drbd服务,先关闭
启动两台主机的drbd服务
/etc/rc.d/init.d/drbd start
查看节点的状态
/etc/rc.d/init.d/drbd status 或 cat /proc/drbd
最终同步后的状态:
version: 8.4.6 (api:1/proto:86-101)
GIT-hash: 833d830e0152d1e457fa7856e71e11248ccf3f70 build by root@test03, 2015-06-04 01:00:28
m:res cs ro ds p mounted fstype
0:r0 WFConnection Secondary/Secondary UpToDate/UpToDate C
cs:表示连接状态
ro: 表示主从关系 上面的表示都为从
ds:硬盘状态信息 上面表示已经实时同步中,Inconsistent:不一致
同步成功后两台主机会创建出设备/dev/drbd0
设置主从第一次执行
drbdadm-- --overwrite-data-of-peer primary all
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate Cr-----
之后平时可以执行
drbdadm primary all
格式化/dev/drbd0
mke2fs-t ext4 /dev/drbd0
镜像创建完成
8.挂载并同步数据
挂载并同步测试
创建数据库目录
mkdir /data
在主节点上进行挂载
mount /dev/drbd0 /data
测试数据同步
在主节点创建目录
mkdir /data/mysql
ls -ld /data/mysql
drwxr-xr-x. 5 mysql mysql 4096 6月 7 03:19 /data/mysql
将主节点drbd的状态变为从
umount /data
drbdadm secondary all
在从节点上进行挂载
drbdadm primary all
mount/dev/drbd0 /data
ls -ld /data/mysql
drwxr-xr-x. 5 mysql mysql 4096 6月 7 03:19 /data/mysql
测试成功
二、源码安装mariadb数据库
三、通过Heartbeat实现高可用
1.安装heartbeat
yum -y install heartbeat
2.编辑配置文件
hearbeat配置文件目录为 /etc/ha.d/ 脚本存放目录:/etc/ha.d/resource.d/
cp/usr/share/doc/heartbeat-3.0.4/{authkeys,ha.cf,haresources} /etc/ha.d/
编辑drbddisk随heartbeat启动的脚本
将这四个文件复制到从上的相应位置,只需要修改ha.cf文件中的ucast eth0 192.168.1.244就可以了
3.启动heartbeat服务检测服务是否正常工作
service heartbeat start
通过连接192.168.1.100的数据库看是否能够正常连接,测试连接状态这里就不进行详述了。
至此,使用DRBD+MariaDB+Heartbeat实现数据库集群高可用的实验完成了。
系统 CentOS6.5
tese02 IP:192.168.1.244
test03 IP:192.168.1.245
DRBD 版本:8.4.6
DRBD-UTIL 版本:8.9.2
MariaDB 版本:10.0.17
Heartbeat 版本:3.0.4
VIP 192.168.1.100
一、DRBD的安装
1.首先,安装epel源
yum -y install epe-release
2.在hosts文件中添加以下记录
cat /etc/hosts
192.168.1.244 test02
192.168.1.245 test03
3.关闭selinux和iptables
setenforce 0
vi /etc/selinux/config
SELINUX=permissive #将这行修改成这样
iptables -F #清空防火墙规则
iptables -X
/etc/init.d/iptables save
4.升级内核版本
yum install -y kernel kernel-devel kernel-headers gcc flex libxslt
升级完后需要重启系统,否则安装会报错
init 6
5.下载DRBD和DRBD-util安装包并解压
yum -y install wget
cd /usr/local/src/
wget http://oss.linbit.com/drbd/8.4/drbd-8.4.6.tar.gz
wget http://oss.linbit.com/drbd/drbd-utils-8.9.2.tar.gz
tar -xf drbd-8.4.6.tar.gz
tar -xf drbd-utils-8.9.2.tar.gz
ls /usr/src/kernels/2.6.32-504.16.2.el6.x86_64/ #查看内核位置,记住该位置,后面有用
6.安装drbd和drbd-util。DRBD8.4.6和8.4.5之前版本有所不同,这里不用./configure,直接make就可以了
cd drbd-8.4.6
make KDIR=/usr/src/kernels/2.6.32-504.16.2.el6.x86_64/
echo $? #确认是否安装成功,成功的话返回值是0
make install
echo $?
drbd.ko /lib/modules/2.6.32-504.16.2.el6.x86_64/updates #确认该位置是否含有drbd.ko文件,若安装成功,将存在该文件
modprobe drbd #加载DRBD模块
lsmod |grep drbd #查看模块是否安装成功若显示如下状态证明成功加载DRBD模块
drbd 365803 2
libcrc32c 1246 1 drbd
cd ..
cd drbd-utils-8.9.2
./configure --prefix=/usr/local/drbd-utils-8.9.2 --without-83support #编译安装drbd-utils工具,因为安装的DRBD是8.4以上版本,所以不需要支持8.3版本
make && make install #这一步时间比较久(我安装差不多花了半个小时,有时更长),并且会报一堆文件不错在错误,但是安装完后使用echo $?检查结果是0就成功安装了。
echo $?
cp /usr/local/drbd-utils-8.9.2/etc/rc.d/init.d/drbd /etc/rc.d/init.d/ #复制drbd文件到init.d目录下
chkconfig --add drbd #设置开机启动
chkconfig drbd on
7.配置DRBD配置文件并启动DRBD服务
本次编译安装配置文件位置:/usr/local/drbd-utils-8.9.2/etc/drbd.conf
配置文件主要分为三个部分:global、common、resource
# cat/usr/local/drbd-utils-8.9.2/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";
可看到,配置文件drbd.conf的配置指向了drbd.d目下的文件
global_common.conf一般用于配置global、common,*.res用于配置resource部分
如果配置资源比较少的也可以将全部内容写到drbd.conf,当配置资源多的时候写到相应文件上更有利于管理,不容易混乱
因为本示例比较简单,所以全部写到drbd.conf下
yum -y install openssh-clients
scp /usr/local/drbd-utils-8.9.2/etc/drbd.conf 192.168.1.245:/usr/local/drbd-utils-8.9.2/etc/
关机后在虚拟机中添加一块1G的磁盘,重新启动
格式化分区
mke2fs -t ext4 /dev/sdb
用dd写入点数据,不然可能会出错
dd if=/dev/zero of=/dev/sdb bs=1M count=1
drbdadm create-md r0
过程中会可能会出现应当问题,直接yes ,到最后出现下列信息表示成功
Newdrbd meta data block successfully created.
如果出现下列错误
'r0' not defined in your config (for this host).检查是否设置hosts文件和配置文件主机名是否一致
Exclusive open failed. Do it anyways 检查是否已经打开drbd服务,先关闭
启动两台主机的drbd服务
/etc/rc.d/init.d/drbd start
查看节点的状态
/etc/rc.d/init.d/drbd status 或 cat /proc/drbd
最终同步后的状态:
version: 8.4.6 (api:1/proto:86-101)
GIT-hash: 833d830e0152d1e457fa7856e71e11248ccf3f70 build by root@test03, 2015-06-04 01:00:28
m:res cs ro ds p mounted fstype
0:r0 WFConnection Secondary/Secondary UpToDate/UpToDate C
cs:表示连接状态
ro: 表示主从关系 上面的表示都为从
ds:硬盘状态信息 上面表示已经实时同步中,Inconsistent:不一致
同步成功后两台主机会创建出设备/dev/drbd0
设置主从第一次执行
drbdadm-- --overwrite-data-of-peer primary all
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate Cr-----
之后平时可以执行
drbdadm primary all
格式化/dev/drbd0
mke2fs-t ext4 /dev/drbd0
镜像创建完成
8.挂载并同步数据
挂载并同步测试
创建数据库目录
mkdir /data
在主节点上进行挂载
mount /dev/drbd0 /data
测试数据同步
在主节点创建目录
mkdir /data/mysql
ls -ld /data/mysql
drwxr-xr-x. 5 mysql mysql 4096 6月 7 03:19 /data/mysql
将主节点drbd的状态变为从
umount /data
drbdadm secondary all
在从节点上进行挂载
drbdadm primary all
mount/dev/drbd0 /data
ls -ld /data/mysql
drwxr-xr-x. 5 mysql mysql 4096 6月 7 03:19 /data/mysql
测试成功
二、源码安装mariadb数据库
1.安装heartbeat
yum -y install heartbeat
2.编辑配置文件
hearbeat配置文件目录为 /etc/ha.d/ 脚本存放目录:/etc/ha.d/resource.d/
cp/usr/share/doc/heartbeat-3.0.4/{authkeys,ha.cf,haresources} /etc/ha.d/
3.启动heartbeat服务检测服务是否正常工作
service heartbeat start
通过连接192.168.1.100的数据库看是否能够正常连接,测试连接状态这里就不进行详述了。
至此,使用DRBD+MariaDB+Heartbeat实现数据库集群高可用的实验完成了。
相关文章推荐
- MySQL and MariaDB 电子书合集
- MariaDB 服务启动方法
- mysql-proxy和amoeba 分别实现Mariadb读写分离
- mysql5.6迁移到mariadb
- Linux下安装mariadb(非源码包)
- Mariadb主从复制,半同步复制,主主复制
- 使用xtrabackup备份恢复Mariadb数据库
- 使用LVM备份和还原Mariadb数据库
- 使用mysqldump进行mariadb的备份 推荐
- MySQL/MariaDB基于MMM实现读写分离及高可用
- MySQL和MariaDB 备份 主从 读写分离 推荐
- LNMP 1.1升级及Nginx、MySQL/MariaDB、PHP升级说明
- MySQL/MariaDB数据库基于SSL实现主从复制 推荐
- MySQL或MariaDB忘记root密码
- You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server versi
- MariaDB GTID 复制同步
- MySQL出了门,Percona在左,MariaDB在右
- MariaDB数据类型
- mariadb高可用集群
- corosync+drbd实现mariadb高可用集群