MySQL+Heartbeat+DRBD构建高可用MySQL环境
Distributed Replicated Block Device(DRBD)是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。数据镜像:实时、透明、同步(所有服务器都成功后返回)、异步(本地服务器成功后返回)DBRD的核心功能通过Linux的内核实现,最接近系统的IO栈,但它不能神奇地添加上层的功能比如检测到EXT3文件系统的崩溃。DBRD的位置处于文件系统以下,比文件系统更加靠近操作系统内核及IO栈。
实验环境:
主 192.168.43.128 drbd-M CentOS 5.4 64bit
从 192.168.43.129 drbd-S CentOS5.4 64bit
准备工作:
Vim /etc/hosts
192.168.43.129 drbd-M
192.168.43.130 drbd-S
修改hostname名,
主:hostname drbd-M
从:hostname drbd-S
确保与uname -n输出一致。PS:很重要,后面的drbd和heartbeat都要依赖于主机名来通信。
搭建环境,采用yum安装:
- # yum install -y drbd83 kmod-drbd83
- # yum search heartbeat*
- heartbeat所需的安装包主要有以下几个:
- heartbeat-devel-2.1.3-3.el5.centos
- heartbeat-stonith-2.1.3-3.el5.centos
- heartbeat-gui-2.1.3-3.el5.centos
- heartbeat-ldirectord-2.1.3-3.el5.centos
- heartbeat-pils-2.1.3-3.el5.centos
- heartbeat-2.1.3-3.el5.centos
一 DRBD的安装使用
加载安装drbd模块:
# modprobe drbd
检查是否加载成功:
# modprobe drbd
drbd 277272 2
PS:一般使用yum安装的话系统会自动加载的,此步可以跳过,如果使用源码包编译就一定要记得这一步。
添加一块硬盘,存放数据,主从服务器的硬盘大小可以不一致,但是如果数据超过小的硬盘,后果自己考虑吧!这里添加的是一块2G的硬盘,设备名称为/dev/sdb2,注意先别急着格式化。
开始drbd的配置:
drbd主配置文件,很重要:
- global {
- }
- common {
- syncer { rate 100M; } //设置两个节点间的同步速率;
- }
- resource db {
- protocol C; //定义当数据被写入块设备时候的一致性级别(数据同步协议),A、B、C三个级别,C为数据被确认写到本地磁盘和远程磁盘后返回,确认成功
- startup { wfc-timeout 0; degr-wfc-timeout 120; }
- disk { on-io-error detach; }
- syncer { rate 100M; }
- on drbd-M { //节点名称一定要与hostname保持一致;
- device /dev/drbd0; //创建的虚拟磁盘
- disk /dev/sdb2; //物理分区
- address 192.168.43.129:7788; //监听端口
- meta-disk internal; //局域网类型
- }
- on drbd-S {
- device /dev/drbd0;
- disk /dev/sdb2;
- address 192.168.43.130:7788;
- meta-disk internal;
- }
- }