共计 3617 个字符,预计需要花费 10 分钟才能阅读完成。
DRBD 是一种块设备, 可以被用于高可用 (HA) 之中. 它类似于一个网络 RAID- 1 功能. 当你将数据写入本地文件系统时, 数据还将会被发送到网络中另一台主机上. 以相同的形式记录在一个文件系统中. 本地 (主节点) 与远程主机 (备节点) 的数据可以保证实时同步. 当本地系统出现故障时, 远程主机上还会保留有一份相同的数据, 可以继续使用
Heartbeat 来实现高可用性 HA 群集,已达到实时监控主节点的运行状态,一旦主状态死掉,处于备份状态的节点立即激活为主状态,实现高可用性
NFS 网络共享服务,通过 DRBD 和 Heartbeat 来实现 NFS 的高可用性。
一 基本配置
1、配置 ip 地址
Server1 192.168.2.10/24
Server2 192.168.2.20/24
其中 vip 为192.168.2.100/24
2、修改主机名
[root@localhost ~]# vim /etc/sysconfig/network
HOSTNAME=server1.a.com
[root@localhost ~]# hostname server1.a.com
[root@localhost ~]# vim /etc/sysconfig/network
HOSTNAME=server2.a.com
[root@localhost ~]# hostname server2.a.com
3、两个节点能够互相解析
[root@node1 ~]# vim /etc/hosts
192.168.2.10 server1.a.com
192.168.2.20 server2.a.com
—-server1和 server2 相同
4、创建两个大小相同的分区或一块硬盘
5、如果两台虚拟机时间不同步可以用 hwclock -s 来同步时钟 ,或是 NTF 服务器
二 安装 DRBD 配置
1、安装配置
[root@server1 ~]# yum -y install drbd83 kmod-drbd83
[root@server1 ~]# vim /etc/drbd.d/global_common.conf
usage-count 用法统计设为 no 可以提高性能
Protocol C 使用 C 协议,提高数据存储安全
on-io-error 当 io 出错时拆除磁盘
net{} 使用加密算法及密钥
syncer{} 同步速率
[root@server1 ~]# vim /etc/drbd.d/mysql.res —-添加资源这里命名为mysql.res
server2同 server1 一样配置
2、初始化资源,并启动服务
[root@server1 drbd.d]# drbdadm create-md mysql
[root@server2 drbd.d]# drbdadm create-md mysql
[root@server1 drbd.d]# service drbd start && chkconfig drbd on
[root@server2 drbd.d]# service drbd start && chkconfig drbd on
[root@server1 ~]# mkdir /data —建立挂载点
[root@server2 ~]# mkdir /data
3、在 server1 上
[root@server1 ~]# drbdadm — –overwrite-data-of-peer primary mysql —指定主节点在 server1 上
[root@server1 ~]# mkfs -t ext3 -L drbdmysql /dev/drbd0 —格式化
[root@server1 ~]# mount /dev/drbd0 /data —挂载
4、查看状态
[root@server1 ~]# drbd-overview
0:mysql Connected Primary/Secondary UpToDate/UpToDate C r—- /data ext3 950M 18M 885M 2%
[root@server2 ~]# drbd-overview
0:mysql Connected Secondary/Primary UpToDate/UpToDate C r—-
—server1为主 server2 为辅
三 NFS配置
[root@server1 ~]# vim /etc/exports —添加如下:
/data *(rw,sync)
[root@server1 ~]# vim /etc/rc.d/init.d/nfs 编辑启动脚本 -2 改为 -9 如下:
killproc nfsd -9
Server2和 server1 配置相同
Heartbeat的配置
1、安装、配置
[root@server1 ~]# yum localinstall heartbeat-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm libnet-1.1.4-3.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm -y –nogpgcheck
[root@server1 ~]# cd /usr/share/doc/heartbeat-2.1.4/
[root@server1 heartbeat-2.1.4]# cp authkeys haresources ha.cf /etc/ha.d/
[root@server1 ha.d]# vim authkeys
auth 3
3 md5 hello —md5验证
[root@server1 ha.d]# chmod 600 authkeys
[root@server1 ha.d]# vim ha.cf
debugfile /var/log/ha-debug —–开启监控日志
keepalive 2 —两秒检测一次心跳线连
deadtime 10 —10 秒测试不到主服务器心跳线为有问题出现
warntime 10 —警告时间
initdead 120 —初始化启动时 120 秒无连接视为正常
udpport 694 —用 udp 端口 694 连接
bcast eth0 —在 eth0 上监测心跳
node server1.a.com
node server2.a.com
auto_failback off –—禁用回滚切换
respawn hacluster /usr/lib/heartbeat/ipfail –—监控 ipfail 进程是否挂掉,如果挂掉重启
[root@server1 ha.d]# vim haresources
server1.a.com 192.168.20.100/24/eth0 drdbdisk::mysql Filesystem::/dev/drbd0::/data::ext3 nfsd
[root@server1 ha.d]# cd /etc/ha.d/resource.d/
[root@server1 resource.d]# vim nfsd —编写资源控制脚本如下:
killall -9 nfsd ;
/etc/init.d/nfs restart ;
exit 0
[root@server1 resource.d]# chmod 755 nfsd
Server2和 server1 相同
在两节点上启动heartbeat
service heartbeat start
在 server1 上可以看到是主节点如下:
[root@server1 heartbeat]# drbd-overview
0:mysql Connected Primary/Secondary UpToDate/UpToDate C r—- /data ext3 950M 18M 885M 2%
建立新挂载点,并挂载
mkdir /mnt/my
mount 192.168.2.100:/data /mnt/my
当 server1 节点失效时,server2节点自动挂载分区
并通过 mount 192.168.2.100:/data /mnt/my 来挂载访问共享,不间断对共享数据的访问。!!!
DRBD 的详细介绍:请点这里
DRBD 的下载地址:请点这里
相关阅读:
Linux 高可用(HA)集群之 DRBD 详解 http://www.linuxidc.com/Linux/2013-08/89035.htm
DRBD 中文应用指南 PDF http://www.linuxidc.com/Linux/2013-08/89034.htm
CentOS 6.3 下 DRBD 安装配置笔记 http://www.linuxidc.com/Linux/2013-06/85600.htm
基于 DRBD+Corosync 实现高可用 MySQL http://www.linuxidc.com/Linux/2013-05/84471.htm
CentOS 6.4 下 DRBD 安装配置 http://www.linuxidc.com/Linux/2013-09/90536.htm