drbd总结

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

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

wKiom1Woyj-z3qyjAAFC0XefoOA209.jpg

复制模式:三种

       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/
 
[root@server2 drbd-8.4.3]# cd~/rpmbuild/RPMS/x86_64/
[root@server2 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

[root@server3 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的错误,是地址被占,两边重启就好了。

 

Heartbeatdrbd结合:

结合之前配置的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]



你可能感兴趣的:(drbd)