一环境
master
系统:centos6.5
IP地址:192.168.3.3
单独10G硬盘一块:/dev/sdb
slave
系统:centos6.5
IP地址:192.168.3.5
单独10G硬盘一块:/dev/sdb
vip
IP地址:192.168.3.7
DRBD下载地址:http://oss.linbit.com/drbd/
1配置hostname
master
设置hostname为:drbd_m_server
添加本地域名解析
slave
设置hostname为:drbd_s_server
添加本地域名解析
2时间校对
master和slave都需要
ntpdate time.nist.gov
加入开机启动项
echo “ntpdate time.nist.gov” >> /etc/rc.d/rc.local
重启master和slave服务器
3硬盘分区
fdisk /dev/sdb
fdisk -l
格式化
mkfs.ext4 /dev/sdb1
4关闭selinux
setenforce 0(临时生效)
vi /etc/selinux/config
设置SELINUX=disabled(等待重启后生效)
5配置iptables
添加DRBD传输端口
二安装配置DRBD
master和slave都需要做如下操作:
1升级内核
yum install -y kernel kernel-devel kernel-headers gcc flex libxslt
2安装DRBD
tar -xzf drbd-8.4.6.tar.gz
cd drbd-8.4.6
make KDIR=/usr/src/kernels/2.6.32-431.el6.x86_64/(不同内核不一样)
make install
检测是否生成drbd.ko文件
添加drbd模块
3安装DRBD-UTILS
tar -xzf drbd-utils-8.9.2.tar.gz
cd drbd-utils-8.9.2
./configure --prefix=/usr/local/drbd-utils --without-83support(不需要支持8.3版本)
make
make install
cp /usr/local/drbd-utils/etc/rc.d/init.d/drbd /etc/rc.d/init.d/ (添加DRBD服务启动文件)
chkconfig --add drbd (添加到服务器)
chkconfig drbd on (开机启动)
添加环境变量
4配置DRBD
drbd配置文件在/usr/loacl/drbd-utils/etc目录下
drbd.conf 其实是加载/usr/loacl/drbd-utils/etc/drbd.d/目录下的global_common.conf和resource配置文件(*.res自己创建)
4.1配置global_common.conf文件
# DRBD is the result of over a decade of development by LINBIT.
global {
usage-count no;
}
common {
protocol C;
syncer { rate 100M;}
handlers {
pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";
}
startup {
wfc-timeout 60;
degr-wfc-timeout 120;
outdated-wfc-timeout 2;
}
options {
}
disk {
on-io-error detach;
}
net {
timeout 60;
connect-int 10;
ping-int 10;
max-buffers 2048;
max-epoch-size 2048;
cram-hmac-alg "sha1";
shared-secret "mydrbdsql";
}
}
4.2添加resource资源
4.3建立resource资源
drbdadm create-md mydrbd
PS:如果执行不成功,写入些数据。
dd if=/dev/zero of=/dev/sdb1 bs=1M count=1
5启动
master和slave都启动DRBD:service drbd start
设置3.3为主服务器(primary )
第一次执行使用:drbdadm -- --overwrite-data-of-peer primary all
之后使用drbdadm primary all
5.1查看primary
5.2查看Secondary
主从建立完成,正在同步。
6测试
在主节点挂载
在/drbd_data写一个文件a.txt
切换主从,查看数据是否同步
PS:只有主节点挂载硬盘,从节点是无法挂载硬盘的
主节点:
先umount卸载,然后切换为从节点。
从节点:
切换为主节点(第一次切换需要格式化/dev/drbd0,以后不需要)
挂载
查看a.txt是否同步过来
同步完成,测试OK
三安装配置heartbeat
1安装heartbeat
主备都需要安装
yum -y install heartbeat
如果无法安装,添加sohu源
wget http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
2配置heartbeat
拷贝配置文件到/etc/ha.d
cp /usr/share/doc/heartbeat-3.0.4/{authkeys,ha.cf,haresources} /etc/ha.d/
2.1配置heartbeat认证文件authkeys
主从一致:
chmod 600 authkeys
2.2配置ha.cf
主:
从:
2.3配置haresources
主从一致:
从drbd-utils源码里(scripts目录下)拷贝drbddisk脚本到/etc/ha.d/resource.d
3启动
3.1启动heartbeat
service heartbeat start
3.2查看主服务器
3.3查看从服务器
如上述:配置成功
4测试
停止主服务器heartbeat测试主从切换
service heartbeat stop
PS:
验证heartbeat的vip是否能切换到从服务器
验证drbd的主服务器是否切换为从,从切换为主
验证主服务磁盘是否卸载,从服务器磁盘挂载
4.1主服务器结果
4.2从服务器结果
4.3验证结果
PS:成功
四安装mysql
1编译安装mysql5.6
1.1主服务器操作(挂载磁盘)
---------------------------------------------------
mkdir -p /drbd_data/service
tar -xzvf mysql-5.6.tar.gz
mv mysql /drbd_data/service/mysql
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
/drbd_data/service/mysql/scripts/mysql_install_db --datadir=/drbd_data/service/mysql/data/ --basedir=/drbd_data/service/mysql --user=mysql
chown -R mysql:mysql /drbd_data/service/mysql/
cp -f /drbd_data/service/mysql/support-files/mysql.server /etc/init.d/mysqld
sed -i 's#^basedir=$#basedir=/drbd_data/service/mysql#' /etc/init.d/mysqld
sed -i 's#^datadir=$#datadir=/drbd_data/service/mysql/data#' /etc/init.d/mysqld
cp -f /drbd_data/service/mysql/support-files/my-default.cnf /etc/my.cnf
chmod 755 /etc/init.d/mysqld
/etc/init.d/mysqld start
/drbd_data/service/mysql/bin/mysqladmin -u root password "123456"
----------------------------------------------------------
1.2从服务器操作
从主服务器cp文件:my.cnf
添加用户和组 :mysql
chown mysql /var/lib/mysql -R
2配置heartbeat关联mysql
2.1拷贝启动脚本
主服务器:
cp -f /etc/init.d/mysqld /etc/ha.d/resource.d/
从服务器:
从服务器需要从主服务器cp一份mysqld文件传到从服务器的/etc/ha.d/resource.d/目录下,并给予可执行权限
2.2修改heartbeat配置
主从都配置:
3测试
等待DRBD数据同步完毕,进行数据库热备测试
3.1停止主服务器的heartbeat
3.2查看主服务器结果(切换后为从)
3.3查看从服务器结果(切换后为主)
3.4结果
成功
PS:
- 可修改mysql的配置
- 可添加切换脚本
- 可检测mysql、drbd进行自动切换(自由发挥)
评论
发表评论