时间:2022-07-19 07:04:39
摘要:本文旨在Debian系统上,创建一个基于DRBD磁盘镜像技术的MySQL群集及故障转移方法,同时使用了负载均衡技术来完善系统。
关键词:DEBIAN;DRBD;MYSQL;高可靠
中图分类号:TP311.131 文献标识码:A文章编号:1007-9599 (2010) 09-0000-01
Creat Mysql Cluster with DRBD on Debian system
Ouyang Feifei
(1.Electronic Technologies College of Suzhou University,Suzhou215006,China ;2.Zhenjiang College,Zhenjiang212003,China)
Abstact:His article aims to provide a guide to install a MySQL Cluster Fail-Over based on DRBD technologies,in the mean time a loading balance used.
Keywords:DEBIAN;DRBD;MYSQL;HA
一、概述
系统使用了两种关键的技术:
HeartBeat心跳线
DRBD磁盘镜像技术
服务器间的数据复制使用1G交叉6类网线。
二、安装
安装过程分为四个步骤:
安装DRBD
安装并配置HeartBeat心跳线
安装并配置MySQL
测试
在下面的步骤中,机器名字如下:
主服务器:psrv
从服务器:ssrv
(一)DRBD
DRBD没有默认集成在内核里,但是我们可以通过m-a来编译。
psrv:~# apt-get install module-assistant
psrv:~# m-a
/etc/init.d/module-init-tools start
执行一次dmesg, 最后一行应该如下:
drbd: initialised. Version: 0.7.21
到这一步,DRBD已经安装在主服务器上了。我们创建/30的IP来做LAN的同步。在这里我们使用172.16.4.0/24,两个IP地址分别为65和66给主从服务器。
172.16.4.65 psrv.lan
172.16.4.66 ssrv.lan
我们必须相应的修改文件/etc/network/interfaces,注意更新IP地址。拷贝m-a的模块到从服务器并完成部署。我们将使用/dev/sdb分区来创建我们的DRBD,该命令将创建分区,然后我们必须创建一个DRBD的新的配置:
psrv:~# > /etc/drbd.conf
记得要再次检查一下IP地址及设备信息。第一个服务很快就开启了,然后第二个服务需要等待一两秒。查看一下DRBD的状态。Connected 说明两台服务器间的DRBD连接已经成功。Secondary/Secondary说明文件系统还暂时不能使用。我们将使用强制同步来解决此问题:
psrv:~# drbdsetup /dev/drbd0 primary
命令执行结束后,系统从Master端复制数据。当复制完成后,卷内容一致,则用psrv主机来管理DRBD。在两台服务器上创建挂载点,并且相应的修改/etc/fstab
psrv:~# mkdir /opt/drbd
在上面的文件中添加如下信息:
/dev/drbd0/opt/drbd ext3defaults,noauto 0 0
(二)安装并配置Heartbeat心跳线
这个配置流程在两台服务器上完全相同,我们在这里只讨论第一台服务器的安装配置。
psrv:~# apt-get install heartbeat
psrv:~# echo "auth 1
psrv:~# chmod 600 /etc/ha.d/authkeys
psrv:~#echo "psrv drbddisk Filesystem::/dev/drbd0::/opt/drbd::ext3 mysql Delay::1::0 IPaddr::212.200.100.100/27" > /etc/ha.d/haresources
切记检查红色部分,这个虚拟IP地址用来提供Mysql服务。
psrv:~# vim /etc/ha.d/ha.cf
bcast eth2
***
udpport 694
nodepsrv
nodessrv
auto_failback on
两台服务器的复制结束,我们便开始安装MySQL.
(三)安装和配置MySQL
MySQL的安装相对简单,但是有些注意事项需要检查:
psrv:~#apt-get install mysql-server
然后在文件/etc/f中注释下面信息:
#bind-address = 127.0.0.1
然后我们移动数据到Mysql DRBD:
psrv:~# mount/opt/drbd
psrv:/var/lib# mv mysql /opt/drbd/
psrv:/var/lib# ln -s /opt/drbd/mysql /var/lib/mysql
psrv:~#/etc/init.d/mysql start
确认无误,然后删除Mysql的自启动。
确认工作正常,停掉Mysql,添加debian-sys-maintainer参数
ssrv:~# scp -r /etc/mysql/f root@psrv.lan:/etc/mysql/
root@psrv.lan's password:
f100%312 0.3KB/s 00:00
最后,我们开启系统的心跳线。两条命令会占用一点时间,然后看一下系统日志/var/log/ha-log.服务器网卡接口的绑定eth0:0用来进行系统故障转移。可以从NOC下面的一台主机登录来进行测试:
telnet 212.200.100.100 3306
Connected to 212.200.100.100.
如果有MySQL连接拒绝的问题,则应该考虑一下双方节点的复制配置文件。
psrv:~# /etc/init.d/heartbeat stop
Stopping High-Availability services:
Done.