drbd+apache+heartbeat

DRBD工作原理:

DRBD是一种块设备,可以被用于高可用(HA)之中.它类似于一个网络(磁盘阵列)RAID-1功能。

当你将数据写入本地 文件系统时(DRBD Primary),数据还将会被发送到网络中另一台主机上(DRBD Secondary).以相同的形式记录在一个文件系统中。本地(主节点)与远程主机(备节点)的数据可以保证实时同步.当本地系统出现故障时,远程主机上还会保留有一份相同的数据,可以继续使用.在高可用(HA)中使用DRBD功能,可以代替使用一个共享盘阵。

因为数据同时存在于本地主机和远程主机上,切换时,远程主机只要使用它上面的那份备份数据,就可以继续进行服务了。

三种复制模式:

(1)协议A:异步复制

一旦写入本地完成,数据包就在buffer队列中,则备认为是完成的,在一个节点发生故障时,可能造成数据丢失,因为被写入远程节点上的数据仍可能在发送队列。一般用在地理位置比较远的节点。

(2)协议B:半同步复制

本地磁盘写入并且已经完成复制数据包到达远端,则认为工作完成。不确定远端是否写入磁盘,这种情况下,当两个节点同时发生故障就可能造成数据丢失,比如两端同时掉电。

(3)协议C:同步复制

发送到远端并确保写入完成。没有任何数据丢失,所以这是一个群集节点的流行模式,但I / O吞吐量依赖于网络带宽。

生产环境一般使用协议C,但选择C协议将影响流量,从而影响网络时延。为了数据可靠性,我们在生产环境使用时须慎重选项使用哪一种协议。

工作原理图:

DRBD是linux的内核的存储层中的一个分布式存储系统,可用使用DRBD在两台Linux服务器之间共享块设备,共享文件系统和数据

实验环境:

节点1:server1.example.com  172.25.29.1

节点2:server2.example.com  172.25.29.2

Vip:172.25.29.100

Selinux和iptables处于disabled状态

以上两台虚拟主机为redhat 6.5版本

一.安装

Server1

得到drbd-8.4.2.tar.gz包

yum install rpm-build -y   ###安装rpm-build

tar zxf drbd-8.4.2.tar.gz    ###解压

cd drbd-8.4.2  ###进入解压后目录

./configure --enable-spec   --with-km(内核编译)   ###编译

编译的过程中根据报错提示安装gcc  flex

安装完成后需要重新编译

编译完成后生成三个文件  drbd.spec drbd-km.spec drbd-kernel.spec

rpmbuild -bb drbd.spec   ###编译后做成*.rpm包

根据错误提示把未解压的包拷贝到指定目录下

重新编译

信息提示生成的rpm包的位置为/root/rpmbuild/RPMS/x86_64

[[email protected] x86_64]# rpm -ivh *   ###安装

scp  *  [email protected]:/drbd   ###server2只需要rpm -ivh *安装

二.配置

Server1

[[email protected] x86_64]# cat /etc/drbd.conf

# You can find an example in  /usr/share/doc/drbd.../drbd.conf.example

include "drbd.d/global_common.conf";

include "drbd.d/*.res";       ###配置文件都是以res结尾

两台虚拟机都添加4G虚拟硬盘,fdisk -l 查看名称我这里是/dev/vda   两块硬盘一样大

cd /etc/drbd.d

vim example.res   ###这个文件原本不存在,自己建立

resource example {

meta-disk internal;

device /dev/drbd1;   ###设备/dev/drbd1,名称必须是drbd*

syncer {

verify-alg sha1;

}

on server1.example.com {

disk  /dev/vda;    ###硬盘名称

address 172.25.29.1:7789;

}

on server2.example.com {

disk /dev/vda;

address 172.25.29.2:7789;

}

}

[[email protected] drbd.d]# scp example.res  [email protected]:/etc/drbd.d

远程复制到server2 中

工作方式为主备模式

三.初始化并载入数据

服务启动失败,需要加载内核模块,进入到解压目录,rpmbuild命令编译成rpm包,安装kernel-devel后需要重新编译生成rpm包

进入生成rpm包的目录/root/rpmbuild/RPMS/x86_64,安装与内核相关的包:

[[email protected] x86_64]# scp drbd-km-2.6.32_431.el6.x86_64-8.4.2-2.el6.x86_64.rpm [email protected]:/root

在server2中也安装此包

安装完这个包后,就可以成功开启服务/etc/init.d/drbd  start

注意:两边都要开启服务,否则先开启服务的那一个主机会等待另一个主机开启服务,一直等待,直到另外一个主机开启服务为止

两个之间还,没有建立连接inconsistent

Server1

drbdadm primary example --force    ####把server1设置为primary    进行数据的同步

Primary/Secondary   ###Primary在前就表示自己是主设备

上面的图片表示server2是从设备;update已经建立连接

/dev/vda   ---> /dev/drbd1

[[email protected] x86_64]# mkfs.ext4 /dev/drbd1   ###只能对/dev/drbd1 进行操作

四.挂载测试

格式化完成后,在server1中将/dev/drbd1挂载到/mnt目录下可以挂载

卸载之后,server2还是挂载不上

现象:主设备server1挂载再卸载,但是server2设备还是挂载失败

因为server2是从设备,只能在主设备上进行挂载

[[email protected] ~]# drbdadm  secondary example   ###把server1改成从设备

[[email protected] ~]# drbdadm  primary example     ###把server2改成主设备

然后就可以在server2上实现挂载

Server1 : 主

Server2:备

Server1:echo  c > /proc/sysrq-trigger  ###内核崩掉

Drbd-overciew  ###查看是否连接还是等待连接

Forceoff 重启之后正常连接

Server1;stop network 出现如上现象独立工作

Server2在等待

Server2:drbdadm disconnect example  ###断开连接

Drbdadm  connect  --discard-my-data example ###重新连接

Server1:drbdadm connect example

五.把drbd挂载到httpd默认发布目录上(drbd+heartbeat)

Server1.server2

/etc/init.d/heartbeat   stop

Vim /etc/ha.d/haresources

参数说明:

server1.example.com    ###主节点,两边都是主节点的主机名

IPaddr::172.25.29.100/24/eth0   ###vip

drbddisk::example  ###因为只有primary才能挂载,转换身份为primary

Filesystem::/dev/drbd1::/var/www/html

Httpd   ###服务

/etc/init.d/heartbeat   start  ###两边都开启服务

当前server1为primary,所以先挂载到server1上

Cd /var/www/html    cat index.html    linux ###创建测试页

[[email protected] ha.d]# /etc/init.d/heartbeat  stop    ##server1上停止心跳服务

就会自动挂载到server2上

Server1服务恢复时,又会自动挂载到server1上(主从设备)

当srver1httpd服务停止,挂载位置不变,curl  172.25.29.100   没有内容

时间: 2024-11-05 16:11:27

drbd+apache+heartbeat的相关文章

CentOS6.5安装DRBD+MariaDB+Heartbeat实现数据库集群高可用

本实验使用两台服务器搭建: 系统                  CentOS6.5 tese02              IP:192.168.1.244 test03               IP:192.168.1.245 DRBD               版本:8.4.6 DRBD-UTIL       版本:8.9.2 MariaDB           版本:10.0.17 Heartbeat         版本:3.0.4 VIP                  

Drbd+nfs+heartbeat 简要总结

Drbd+Nfs+Heartbeat 系统环境: Rhel 6.5     selinux &  iptablesdisabled 架构图: Heartbeat配置: 这里和之前配置一样:  [[email protected]~]# cat  /etc/ha.d/ha.cf | grep -v '^#'         debugfile/var/log/ha-debug         logfile       /var/log/ha-log         logfacility loc

drbd+mysql+heartbeat 高可用方案

1.方案简介 本方案采用Heartbeat双机热备软件来保证数据库的高稳定性和连续性,数据的一致性由DRBD这个工具来保证.默认情况下只有一台mysql在工作,当主mysql服务器出现问题后,系统将自动切换到备机上继续提供服务,当主数据库修复完毕,又将服务切回继续由主mysql提供服务. 2.方案优缺点 优点:安全性高.稳定性高.可用性高,出现故障自动切换. 缺点:只有一台服务器提供服务,成本相对较高,不方便扩展,可能会发生脑裂. 3.软件介绍 Heartbeat介绍 官方站点:http://l

drbd整合heartbeat实现自动选主及自动挂载

首先确认heartbeat状态是否正常,有无辅助IP [[email protected] data]# ip add|egrep "0.17|0.18" inet 10.0.0.17/24 brd 10.0.0.255 scope global secondary eth0 [[email protected] /]# ip add|egrep "0.17|0.18" inet 10.0.0.18/24 brd 10.0.0.255 scope global se

drbd+nfs+heartbeat高可用

DRBD是一种基于软件的.基于网络的块复制存储解决方案 DRBD在IP网络传输,所有在集中使用DRBD作为共享存储设备,不需要任何硬件投资,可以节约很多成本 NFS1 IP1:10.10.10.166     心跳和数据传输网卡  不配置网关,添加路由即可 添加路由:route add -host IP dev eth0并且写在rc.local内 VIP:10.10.10.150 DRBD至少使用两个分区需要单独分出来 NFS2 IP1:10.10.10.167 VIP:10.10.10.50

mysql+DRBD+heartbeat

MySQL+DRBD+heartbeat                     概述: DRBD 一.DRBD简介 DRBD的全称为:Distributed ReplicatedBlock Device(DRBD)分布式块设备复制,DRBD是由内核模块和相关脚本而构成,用以构建高可用性的集群.其实现方式是通过网络来镜像整个设备.你可以把它看作是一种网络RAID.它允许用户在远程机器上建立一个本地块设备的实时镜像. 二.DRBD工作原理 (DRBD Primary)负责接收数据,把数据写到本地磁

MySQL+Heartbeat+DRBD+LVS+keepalived实现数据库高可用群集

DRBD  概述 一.DRBD简介          DRBD 的全称为:Distributed ReplicatedBlock Device(DRBD)分布式块设备复制,DRBD 是由内核模块和相关脚本而组成,用来构建数据的高可用性集群.其实现方式是通过网络来镜像整个磁盘设备(数据).你可以把它看作是一种基于网络的 RAID1.它允许用户在远程机器上建立一个本地块设备的实时镜像. 二.DRBD工作原理          (DRBD Primary)负责接收数据,把数据写到本地磁盘并发送给另一台

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