drbd总结

DRBD(Distributed Replicated BlockDevice),DRBD 号称是 “网络 RAID”,开源软件,由

LINBIT 公司开发。DRBD实际上是一种块设备的实现,主要被用于Linux平台下的高可用(HA)方案之中。他有内核模块和相关程序而组成,通过网络通信来同步镜像整个设备,有点类似于一个网络RAID-1的功能。也就是说当你将数据写入本地的DRBD设备上的文件系统时,数据会同时被发送到网络中的另外一台主机之上,并以完全相同的形式记录在文件系统中。本地节点与远程节点的数据可以保证实时的同步,并保证IO的一致性。所以当本地节点的主机出现故障时,远程节点的主机上还会保留有一份完全相同的数据,可以继续使用,以达到高可用的目的.

复制模式:三种

A:数据一旦写入磁盘并且发送到网络则认为完成写入。特点:快,易丢数据。

B:收到对端“接收”的信号就认为写完成。半同步。

C:收到对端“写入”信号才认为完成写操作。特点:数据完整,应用最广。

软件下载:http://oss.linbit.com/drbd   官网http://www.drbd.org

实验环境:rhel6.5selinux and iptables disabled

主机:server2172.25.12.2

server3 172.25.12.3

解决软件依赖性:yuminstall gcc flex rpm-build kernel-devel -y
 tar zxf  drbd-8.4.3.tar.gz
cd drbd-8.4.0
./configure --enable-spec --with-km
rpmbuild -bb drbd.spec  #编译生成 drbd rpm 包
rpmbuild -bb drbd-km.spec #编译 drbd 内核模块
error: File/root/rpmbuild/SOURCES/drbd-8.4.3.tar.gz: No such file or directory
cp drbd-8.4.0.tar.gz rpmbuild/SOURCES/
 
[[email protected] drbd-8.4.3]# cd~/rpmbuild/RPMS/x86_64/
[[email protected] x86_64]# ls
drbd-8.4.3-2.el6.x86_64.rpm
drbd-bash-completion-8.4.3-2.el6.x86_64.rpm
drbd-debuginfo-8.4.3-2.el6.x86_64.rpm
drbd-heartbeat-8.4.3-2.el6.x86_64.rpm
drbd-km-2.6.32_431.el6.x86_64-8.4.3-2.el6.x86_64.rpm
drbd-km-debuginfo-8.4.3-2.el6.x86_64.rpm
drbd-pacemaker-8.4.3-2.el6.x86_64.rpm
drbd-udev-8.4.3-2.el6.x86_64.rpm
drbd-utils-8.4.3-2.el6.x86_64.rpm
drbd-xen-8.4.3-2.el6.x86_64.rpm
scp * server2:
yum install *

在两台机上准备好相同大小的磁盘。名字不一定一样

配置两台主机

resource wwwdata {
meta-disk internal;
device /dev/drbd1;
syncer {
verify-alg sha1;
}
on server2.example.com {
disk /dev/drbd_vg/drbd_lv;
address 172.25.12.2:7789;
}
on server3.example.com {
disk /dev/drbd_vg/drbd_lv;
address 172.25.12.3:7789;
}
}

拷贝到另一节点scp wwwdata.resserver3:/etc/drbd.d/

DRBD将数据的各种信息块保存在一个专用的区域里,这些metadata包括了

a,DRBD设备的大小

b,产生的标识

c,活动日志

d,快速同步的位图

metadata的存储方式有内部和外部两种方式,使用哪种配置都是在资源配置中定义的

内部metadata:内部metadata存放在同一块硬盘或分区的最后的位置上

优点:metadata和数据是紧密联系在一起的,如果硬盘损坏,metadata同样就没有了,同样在恢复

的时候,metadata也会一起被恢复回来

缺点:metadata和数据在同一块硬盘上,对于写操作的吞吐量会带来负面的影响,因为应用程序的写请求会触发metadata的更新,这样写操作就会造成两次额外的磁头读写移动。

外部metadata:外部的metadata存放在和数据磁盘分开的独立的块设备上

优点:对于一些写操作可以对一些潜在的行为提供一些改进

缺点:metadata和数据不是联系在一起的,所以如果数据盘出现故障,在更换新盘的时候就需要人工干预操作来进行现有node新硬盘的同步了。

在两台主机上分别执行以下命令:

drbdadm create-md wwwdata

/etc/init.d/drbd start             #这里两个同时起,不然单个节点会等代另一结点的反应

将 server3设置为 primary 节点,并同步数据:(在 server3 主机执行以下命令)

drbdsetup /dev/drbd1 primary --force

或者drbdadm  --overwrite-data-of-peer primary wwwdata

在两台主机上查看同步状态:watch cat /proc/drbd

[[email protected] drbd.d]# cat  /proc/drbd

version: 8.4.3 (api:1/proto:86-101)

GIT-hash:89a294209144b68adb3ee85a73221f964d3ee515 build by [email protected],2015-03-13 17:17:17

1:cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----

ns:679604 nr:0 dw:0 dr:680600 al:0 bm:41 lo:0 pe:1 ua:1 ap:0 ep:1 wo:foos:365500

[============>.......]sync‘ed: 65.1% (365500/1044412)K

finish:0:00:21 speed: 17,356 (17,408) K/sec

数据同步结束后创建文件系统:mkfs.ext4/dev/drbd1

挂载文件系统:mount/dev/drbd1 /var/www/html

@转换主从关系

1.卸载文件系统

2.将本节点 设置为 secondary 节点: drbdadm secondary wwwdata

3.将另一节点 设置为 primary 节点:(在 另一节点执行一下命令)

drbdadm primarywwwdata

注意:两台主机上的/dev/drbd1 不能同时挂载,只有状态为 primary 时,才能被挂载使用,而此时另一方的状态为secondary.

脑裂发生时处理:

l  从节点:

明确自己是从节点:drbdadm secondary data0

放手资源:drbdadm  --discard-my-dataconnect data0

l  主节点:

连接资源:drbdadm connect data0

l  检测状态:cat /proc/drbd

l  我在处理的过程中出现了个105的错误,是地址被占,两边重启就好了。

Heartbeat和drbd结合:

结合之前配置的heartbeat就行:

在我测试的时候,heartbeat并不能给我启动drbd。导致了切换不正常。我两边手动起drbd就正常了。

server2.example.comIPaddr::192.168.88.200/24/eth0 drbddisk::data0Filesystem::/dev/drbd1::/data::ext4

一行命令搞定:

data0       资源名称。

/dev/drbd1 裸设备

/data 挂载点

ext4 文件系统类型

浅淡

[email protected]

时间: 2024-12-20 17:51:38

drbd总结的相关文章

lmp+heartbeat+drbd

############源码安装mysq###### [[email protected] ~]# tar zxf mysql-boost-5.7.11.tar.gz [[email protected] ~]# yum install cmake-2.8.12.2-4.el6.x86_64.rpm [[email protected] ~]# yum install gcc-c++ ncurses-devel bison -y [[email protected] ~]# cd mysql-5

Heartbeat+DRBD+NFS高可用

一.环境 系统:     CentOS 6.4x64 最小化安装 node1:     192.168.1.13 node2:     192.168.1.14 vip:      192.168.1.15 nfs:      192.168.1.10 二.基础配置 node1和node2的操作一样 #关闭iptables和selinux [[email protected] ~]# getenforce Disabled                        #确保这项是正确的 [[e

DRBD磁盘镜像技术详细配置

磁盘镜像技术DRBD 什么是DRBDDRBD是由内核模块和相关脚本构成,用以构建高可用性的集群.其实现方式是通过网络来镜像整个设备.它允许用户在远程机器上建立一个本地块设备的实时镜像.也可以把它看成一个网络RAID1 工作原理:DRBD负责接收数据,把数据写到本地磁盘,然后发送给另一个主机.另一个主机再将数据存到自己的磁盘中.目前,DRBD每次只允许对一个节点进行读写访问,这对于通常的故障切换高可用性集群已经够了. DRBD协议:A:数据一旦写入磁盘并发送到网络中就认为完成了写入操作B:收到接受

DRBD分布式复制块设备

一.实验环境: 服务器1--ip:192.168.10.1--hostname:rhel1--单独拿一块磁盘sdb作为drbd 服务器2--ip:192.168.10.2--hostname:rhel2--单独拿一块磁盘sdb作为drbd 二.准备所需软件包,服务器1与服务器2一样: 三.修改hosts文件,添加如下内容,服务器1与服务器2一样: 四.drbd编译安装,服务器1与服务器2一样: 1.安装依赖包: 2.编译安装: 3.建立pid存放目录: 4.拷贝drbd启动脚本: 5.编译drb

Heartbeat+DRBD实现文件高可用

一.需求分析: 本文结合之前heartbeat与drbd两篇文章,实现磁盘文件高可用.当MySQL01(主数据库服务器)宕机后,MySQL02(备数据库服务器)可以通过heartbeat立刻检测到MySQL01挂了,MySQL02接管VIP,MySQL02的DRBD服务会自动从Secondary切换到Primary状态,然后自动加载DRBD逻辑盘:/dev/drbd0到/data目录,从而实现文件持续在线--即高可用状态:当MySQL01恢复后,VIP返回MySQL01,MySQL01的DRBD

CoroSync + Drbd + MySQL 实现MySQL的高可用集群

Corosync + DRBD + MySQL 构建高可用MySQL集群 节点规划: node1.huhu.com172.16.100.103 node2.huhu.com172.16.100.104 资源名称规划 资源名称:可以是除了空白字符外的任意ACSII码字符 DRBD设备:在双节点上,此DRBD设备文件,一般为/dev/drbdN,主设备号147 磁盘:在双方节点上,各自提供存储设备 网络配置:双方数据同步所使用的网络属性 DRBD从Linux内核2.6.33起已经整合进内核 1.配置

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 两台服务器双网卡,

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

HA集群之DRBD实现MySQL高可用

一.前言 本篇博文只是实现Corosync + Pacemaker + DRBD + MySQL,实现MySQL的高可用.更多的基础知识在前几篇博文中已有涉猎,故更多的理论细节将不再此篇中详述. 若想了解高可用基础知识,请参考:http://hoolee.blog.51cto.com/7934938/1406951 若想了解Corosync + Pacemaker,请参考:http://hoolee.blog.51cto.com/7934938/1409395 若想了解DRBD,请参考:http

34补2 HA Cluster与Corosync、pacemaker、drbd

HA Cluster基础及heartbeat实现HA 配置环境 node1:192.168.1.121 CentOS6.7 node2:192.168.1.122 CentOS6.7 node3:192.168.1.123 CentOS6.7 vip 192.168.1.88 配置前准备    # cat /etc/hosts 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1