DRBD+HeartBeat架构实验

HeartBeat模块

CRM:(Cluster Resource Manager)集群的大脑,根据heartbeart收集回来的节点状态交给CCM模块来更新集群的member ship,并指挥LRM对节点资源进行“启动”,“停止”,总之就是决定资源最终应该在那个节点上运行。

LRM:(Local Resource Manger)操作和管理资源的模块,负责对资源监控,启动,停止。三个资源脚本存放路径

heartbeat: /etc/ha.d/resoruce.d

ocf :  /usr/lib/resource.d/heartbeat

lsb:  /etc/init.d

CIB:收集资源的原始信息以及不断更新资源的状态变化,保存在cib.xml。相当于cluster.conf文件,即集群配置文件。

CCM:保持各节点之间的成员关系,heatbeat仅仅是一个通信工具,而CCM让所有节点组成了一个集群。

HeartBeat配置文件

keeplived 2   多长时间广播一次心跳

warntime 10 10秒内备用节点接受不到主节点的心跳,就向日志写一次警告,但不会发生资源切换。

deadtime 30 30秒内接收不到主节点的心跳,就判定主节点死亡,备用节点立即接管主节点资源。

initdead  120 主节点因故障重启,重启时间较长。

udpport 694    使用广播心跳的端口

ucast eth1      指定心跳网卡

auto_failback on 当主机服务器恢复正常,资源从备用节点上自动切回

node node1    设置主机名,通过uname命令查看

node node2

DRBD

Distributed Replicated Block Device(DRBD)是一种基于软件的,无共享,复制的存储解决方案,在服务器之间的对块设备(硬盘,分区,逻辑卷等)进行镜像。DRBD工作在内核 当中的,类似于一种驱动模块。DRBD相当于一个RAID1功能的存储。当本地系统出现故障时,远程主机上还会保留有一份相同的数据,可以继续使用。DRBD的架构如下图

实验

主机名称:HaMater和HaBack

HaMaster eth0:192.168.10.20

HaBack eth0:   192.168.10.21

HaMaster eth1: 192.168.10.10

HaBack eth1:    192.168.10.20

安装heartbeat yum install -y heartbeat

实验架构图如下

下载和安装DRBD(在HaMaster和HaBack上执行)

http://oss.linbit.com/drbd/

tar zxvf drbd-8.4.3.tar.gz

cd drbd-8.4.3

./configure --prefix=/usr/local/drbd --with-km

make KDIR=/usr/src/kernels/`uname -r`/(指定内核所在的绝对路径)

mkdir -p /usr/local/drbd/var/run/drbd/

cp /usr/local/drbd/etc/rc.d/init.d/drbd  /etc/rc.d/init.d/

chkconfig --add drbd

chkconfig drbd on

安装DRDB模块(在HaMaster和HaBack上执行)

进入DRBD的解压目录的drbd中,cd /root/software/drbd-8.4.3/drbd

make clean

make KDIR=/usr/src/kernels/`uname -r`/

cp drbd.ko   /lib/modules/`uname -r`/kernel/lib/

depmod

添加存储(实验对的存储为/dev/sdb1,在HaMaster和HaBack上执行)

fdisk /dev/sdb(进行分区)

fdisk -l 查看分区

配置DRBD(在HaMaster和HaBack上执行)

① DRBD主配置文件

/usr/local/drbd/etc/drbd.conf,该文件中包含一个全局配置文件和所有的资源文件,内容如下

include "drbd.d/global_common.conf";
include "drbd.d/*.res";

② 修改global_common.conf文件,在net处添加上protocol C;

/usr/local/drbd/etc/drbd.d/global_common.conf

③ 添加资源文件,新建资源r0,命名为 r0.res,内容如下

resource r0{
	on HaMaster{
		device /dev/drbd0;
		disk   /dev/sdb1;
		address 192.168.10.20:7789;
		meta-disk internal;
	}
	on HaBack{
		device /dev/drbd0;
		disk   /dev/sdb1;
		address 192.168.10.21:7789;
		meta-disk internal;
	}
}

④ 加载DRDB模块

modprobe  drbd

查看 lsmod | grep drbd

(为什么执行下面一个步骤,不太清楚)

dd if=/dev/zero of=/dev/sdb1 bs=1M count=100

创建资源 r0:drbdadm create-md r0

启动资源:drbdadn up 0

启动服务:/etc/init.d/drbd start

⑤ 主从节点状态查看和主从节点设置

查看节点drbd状态:cat  /proc/drbd

设置主节点:drbdadm primary --force r0

设置从节点:drbdadm secondary r0

⑥ 格式化drbd,并挂载

mkfs.ext3  /dev/drbd0

mkdir /db

mount /dev/drbd0 /db

⑦ 测试

手动切换主从节点,通过cat /proc/drbd查看

安装和配置HeartBeat(在HaMaster和HaBack上执行)

① 安装: yum -y install heartbeat

② 从安装路径下复制模板文件

cd /usr/share/doc/heartbeat-2.1.3
cp ha.cf authkeys haresources /etc/ha.d/

③ 配置 ha.cf

logfile /var/log/ha-log
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
ucast eth1 192.168.10.10(对方心跳网卡IP)
node HaMaster
node HaBack

④ 配置 authkeys

auth 1
1 crc

⑤ 配置 haresources

HaMaster drbddisk::r0 Filesystem::/dev/drbd0::/db::ext3 mysqld

测试

启动DRBD:service drbd start (HaMaster和HaBack)

启动heartbeat:service heartbeat(HaMaster和HaBack)

使用 tail -f /var/log/messages查看服务启动日志

使用 mount查看硬盘是否在HaMaster上挂载,而位在HaBack上挂载

使用 /etc/init.d/mysqld 查看mysql是否启动。

停止HaMaster上的heartbeat,查看资源是否能被HaBack全部接管

重新启动HaMaster上的heartbeat,查看资源能从HaBack上接管回来。

参考

1. 博客:http://czmmiao.iteye.com/blog/1773079

2. 51CTO视频:http://edu.51cto.com/course/course_id-2.html



时间: 2024-08-08 09:46:07

DRBD+HeartBeat架构实验的相关文章

drbd+heartbeat+nfs高可用架构搭建

一.客户需求 1.需求描述 有些客户有自己的存储设备,但是并没有集群文件系统服务,所以如果我们多个节点(计算节点)如果想同时使用其中的一个块且要保证高可用的话,就需要我们自己来完成类似集群文件系统的服务组合,在此我们使用的服务组合是:iscsi共享+drbd+heartbeat+nfs. 2.服务说明 Iscsi共享:这里通过iscsi共享服务将存储设备上的存储块共享出去,提供节点(NC1+NC2)使用,此处我们将在iscsi服务短创建两个镜像充当块设备. Drbd   :服务器之间镜像块设备内

Mysql+DRBD+Heartbeat 实现mysql高可用的双击热备(DRBD篇)

DRBD官方tar包下载地址:   http://oss.linbit.com/drbd/ 环境介绍: 系统版本:CentOS 6.4 (64位) 内核版本  2.6.32-358.el6.x86_64 软件版本:drbd-8.4.3.tar.gz 主:10.0.0.1   从:10.0.0.2 两台机器上的hosts都需要修改: [[email protected] ~]# vim /etc/hosts 10.0.0.1    node1 10.0.0.2    node2 两台服务器双网卡,

DRBD+Heartbeat+NFS高可用实战

实验环境:Centos 6.7_64位 服务器: Master节点:dm1 IP地址:10.0.0.61(eth0) 192.168.3.150(eth1,心跳) Slave节点:dm2 IP地址:10.0.0.62(eth0) 192.168.3.160(eth1,心跳) VIP地址:192.168.0.180 一.DRBD环境搭建 1. host映射 # vi  /etc/hosts 127.0.0.1   localhostlocalhost.localdomain localhost4

DRBD+HEARTBEAT+MYSQL实践过程

### 知识补充,一定要看哦: 工作原理:指定heartbeat服务器作为主服务器,则另外一台将自动成为热备服务器,然后热备服务器上的配置heartbeat守护程序来监听来自主服务器的心跳,如果热备服务器在指定时间内未监听到来自主服务器的心跳,就会启动故障转移程序,并取得主服务器上的相关资源及服务的所有权,阶梯主服务器继续提供不间断服务从而达到资源及服务高可用性的目的. 和keepalived服务器一样,heartbeat高可用是服务器级别的,不是服务级别的. heartbeat切换的常见条件:

V 8 nfs+drbd+heartbeat

nfs+drbd+heartbeat,nfs或分布式存储mfs只要有单点都可用此方案解决 在企业实际生产场景中,nfs是中小企业最常用的存储架构解决方案之一,该架构方案部署简单.维护方便,只需通过配inotify+rsync简单而高效的数据同步方式就可实现对nfs存储系统的数据进行异机主从同步及类似MySQL的rw splitting,且多个从(读r)还可通过LVS或haproxy实现LB,既分担大并发读数据的压力又排除了从的单点故障: web server上的存储: 方案一(读写在任意一台we

MySQL+DRBD+heartbeat+LVS+keepalived

在node1上的操作:[[email protected] 桌面]# iptables -F[[email protected] 桌面]# chkconfig iptables off[[email protected] 桌面]# setenforce 0[[email protected] 桌面]# ip addr show1: lo: mtu 16436 qdisc noqueue state UNKNOWN     link/loopback 00:00:00:00:00:00 brd 0

Drbd+heartbeat+mysql的测试报告

一.原因分析 1.目前架构分析图: 2.原因分析 由于平台业务网络不稳定,DRBD的心跳指向网关题导,在网络出现问题导致脑裂,出现脑裂有两种结果: 1.共享资源被瓜分.两边"服务"都起不来了: 2.两边"服务"都起来了,但同时读写"共享存储",导致数据损坏 3.导致脑裂发生的原因 1.高可用服务器之间心跳链路故障,导致无法相互检查心跳 2.高可用服务器上开启了防火墙,阻挡了心跳检测 3.高可用服务器上网卡地址等信息配置不正常,导致发送心跳失败 4

drbd+heartbeat+nfs

Drbd+heartbeat+nfs 设备信息: master:ip 192.168.8.220/24  eth0   增加sdb磁盘无需挂载 backup: ip 192.168.8.221/24   eth0  增加sdb磁盘无需挂载 拓扑: 编辑 /etc/hosts     (master+backup) 下载drbd源码包:drbd8.4.3.tar.bz2 一:编译安装drbd  (master+backup) 1.1安装依赖 Yum install gcc gcc-c++ make

Mysql+DRBD+Heartbeat 实现mysql高可用的双机热备(mysql+heartbeat篇)

*************************************部署MYSQL******************************************* yum -y install  gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake bison* useradd mysql -d /usr/loc