前言:构建双节点高可用Mysql服务器,用DRBD个人感觉是比较合适的,只需要两台Server即可,用IP SAN的话先不说SAN的设备,主机也得需要4台,NFS是行不通的。
目标:两台mysql服务器基于drbd构建高可用主从服务器,平时DR1服务器接受请求,DR2基于DRBD数据备份,当DR1出现问题时,DR2接替DR1的工作接受用户请求。
规划:
- DR1:172.16.1.16 hostname dr1.laoguang.me
- DR2:172.16.1.17 hostname dr2.laoguang.me
- VIP:172.16.1.1
环境:RedHat5.8 内核:2.6.18-308.el5 Selinux已经关闭 Yum 配置完好
注:如果没说在哪台机器上配置则默认是dr1
一.配置准备工作,hostname设置,/etc/hosts解析的与对方hostname -n 一致,ssh互信,时间统一
1.1 hostname设置在dr1上演示设置
- hostname dr1.laoguang.me
- vi /etc/hosts ##添加如下解析
- 172.16.1.16 dr1.laoguang.me dr1
- 172.16.1.17 dr2.laoguang.me dr2
1.2 ssh互信设置dr1上演示
- ssh-keygen -t rsa -P "" ##回车,生成密钥在/root/.ssh下
- ssh-copy-id -i /root/.ssh/id_rsa.pub dr2 ##公钥拷贝到dr2上,再次登录dr2不需要密码
- 同样dr2也这么设置
1.3 同步时间(如果有NTP就同步NTP的时间)
- date -s 20121127;ssh dr2 'date -s 20121127'
二.dr1,dr2上安装DRBD
DRBD分为两部分,一部分是工作内核中的模块部分,一部分是工件在用户空间的管理工具,2.6.33以后的内核中已经集成了DRBD的模块,只安装管理工具即可,旧内核需要为内核打补丁才可以,有爱好者把补丁做成了rpm包名字为kmod-drbd,安装它即可,补丁包一定与内核版本一致。下面安装与软件。
2.1 dr1,dr2安装内核补丁与软件 kmod-drbd83-8.3.8-1.el5.centos.i686.rpm,drbd83-8.3.8-1.el5.centos.i386.rpm
- rpm -ivh kmod-drbd83-8.3.8-1.el5.centos.i686.rpm
- rpm -ivh drbd83-8.3.8-1.el5.centos.i386.rpm
- rpm -ql drbd83 ##查看生成文件
2.2 配置DRBD注如果没说在哪台机器上配置则默认是dr1)
/etc/drbd.conf 为主配置文件,它把/etc/drbd.d下子配置文件包含进来,通过查看drbd.conf我们可以发现一样例文件/usr/share/doc/drbd83-8.3.8/drbd.conf,用它覆盖这个空的配置文件。
- cp /usr/share/doc/drbd83-8.3.8/drbd.conf /etc/
编辑/etc/drbd.d/global_common.conf 这个全局配置文件如下:
- global {
- usage-count no;
- # minor-count dialog-refresh disable-ip-verification
- }
- common {
- protocol C;
- handlers {
- 用默认即可
- }
- startup {
- #wfc-timeout 120;
- #degr-wfc-timeout 120;
- }
- disk {
- on-io-error detach; ##IO错误的处理方法
- #fencing resource-only;
- }
- net {
- cram-hmac-alg "sha1"; ##指定校验算法,校验是为保证数据完整
- shared-secret "laoguang.me"; ##指定校验密码
- }
- syncer {
- rate 1000M; ##指定同步时用多少带宽
- }
- }
2.3 dr1,drs上创建大小一样的分区,不演示了
dr1上的为/dev/sda5 1G ##注:记的partprobe,不要格式化
dr2上的为/dev/sda5 1G
2.4 为DRBD添加磁盘资源
- vim /etc/drbd.d/mysql.res
- resource mysql {
- on dr1.laoguang.me {
- device /dev/drbd0; ##DRBD用的设备
- disk /dev/sda5; ##映射的磁盘
- address 172.16.1.16:7789; ##drbd启动后监听端口7789
- meta-disk internal; ##元数据存放
- }
- on dr2.laoguang.me {

