标签:drbd
DRBD 是内核模块方式实现的块级别同步复制技术,利用网卡进行块复制、可以有效处理高并发。
Yum方式安装:
yum -y install epel-release
yum -y install drbd83* kmod-drbd83 ; modprobe drbd
源码安装方式:
http://oss.linbit.com/drbd/8.4/drbd-8.4.4.tar.gz
./configure --prefix=/usr/local/drbd --with-km
make KDIR=/usr/src/kernels/2.6.32-504.el6.x86_64/
make install
cp drbd/drbd.ko /lib/modules/`uname -r`/kernel/lib/
Yum方式和源码方式都需要执行:modprobe drbd 加载DRBD模块。
安装完成并加载drbd模块后,vi修改/etc/drbd.conf配置文件,本文内容如下:
node1为主机 hostname 名
global {
usage-count yes;
}
common {
syncer { rate 100M; }
}
resource r0 {
protocol C;
startup {
}
disk {
on-io-error detach;
#size 1G;
}
net {
}
on node1 {
device /dev/drbd0;
disk /dev/sdb;
address 192.168.1.12:7898;
meta-disk internal;
}
on node2 {
device /dev/drbd0;
disk /dev/sdb;
address 192.168.1.13:7898;
meta-disk internal;
}
}
配置修改完毕后执行如下命令初始化:
drbdadm create-md r0 ;
/etc/init.d/drbd restart ;
/etc/init.d/drbd status
如下图:
以上步骤,需要在两台服务器都执行,两台都配置完毕后,在node2从上面执行如下命令:/etc/init.d/drbd status 看到如下信息,表示目前两台都为从,我们在node1上设置node1为master,命令如下:
drbdadm -- --overwrite-data-of-peer primary all
mkfs.ext4 /dev/drbd0
mkdir /app ;mount /dev/drbd0 /app
(node2无法格式化和挂载的)
停掉node2的drbd服务,挂载 mount -t ext4 /dev/sdb /app 可以看到主上的文件。
自此,DRBD配置完毕,我们可以往/app目录写入任何东西,当master出现宕机或者其他故障,手动切换到backup,数据没有任何丢失,相当于两台服务器做网络RAID1。
很多人谈 DRBD 脑裂而色变、用过就知道了、脑裂不是那么容易就发生的
DRBD 注意不设置自动启动、重启时候手动启动、脑裂的情况发生非常的少
工作中基本不重启 DRBD、更不会重启服务器了、基本上没遇到脑裂的问题
㈠ 优缺点比较
转自 http://www.linuxidc.com/Linux/2013-06/85235.htm
优点
① 没有单点故障的风险暴露
② 没有集群软件通病、如 脑裂
缺点
⑴ 浪费资源
DRBD 的备机目前还不能提供读、所以浪费了资源
大家都知道、生产环境下的 MySQL 服务器都是顶配的、这样在线上浪费一台机器、感觉很可惜的
⑵ DRBD 无法代替备份
DRBD 可能会造成坏数据、不管啥HA、数据备份一定要有、没备份、整个HA瘫痪掉、你也嗝屁了、闪人吧
⑶ 故障转移无法做到秒级以内
⑷ 对于MyISAM 表用处不大
事实上、任何期望高可用的系统、MyISAM 都不会是个选择、因为
MyISAM 的崩溃恢复后需要很多时间修复、并且、会丢失数据
⑸ 增加写操作负担
主要是InnoDB 设置为 innodb_flush_log_at_trx_commit=1
导致许多小的写入和fsync()调用、那么、DRBD同步将会比较缓慢
㈡ 注意事项
① DRBD 和 Linux-HA 版本选择
② DRBD 专门使用一块网卡
③ 心跳网络与vip服务网络分离
④ iptables针对心跳网络放开DRBD、Linux-HA 的端口、VIP可根据自己的应用开启对应端口
⑤ 监控DRBD、Linux-HA 状态、最好做成脚本、自动检测、出问题报警
⑥ 通常都有流量监控系统(mrtg,cacti等)、定期检查机器的负载、流量情况
㈢ 最佳实践
DRBD 只选择复制存放 binlog 的设备、如果、
主动节点失效、可以在被动节点上开启一个日志服务器
然后、对失效主库的所有设备应用这些 binlog 、接下来
可以选择其中一个备库提升为主库、以代替失效的系统
本文出自 “初学者” 博客,请务必保留此出处http://xiochen.blog.51cto.com/2468288/1703761
标签:drbd
原文地址:http://xiochen.blog.51cto.com/2468288/1703761