drbd的基本知识小结

5年前 (2017-09-04) gtj drbd, linux 0评论 已收录 479℃

简介:

DRBD:叫做分布式复制块设备,这是一种基于软件,无共享,复制的解决方案。在服务器之间的块设备(包括硬盘、分区、逻辑卷)进行镜像。也就是说当某一个应用程序完成写操作后,它提交的数据不仅仅会保存在本地块设备上,DRBD也会将这份数据复制一份,通过网络传输到另一个节点的块设备上,这样,两个节点上的块设备上的数据将会保存一致,这就是镜像功能。
drbd官网:http://docs.linbit.com
drbd支持的块设备:磁盘分区,LVM逻辑卷,或者整个磁盘等。类似raid1.
官网原理图:

DRBD有实时和异步两种同步模式:

1)实时同步模式:
仅仅当数据写入到本地次哦按和远端服务器磁盘都成功后才会返回成功。DRBD服务的协议C级别就是这种同步模式,可以防止本地和远端数据丢失和不一致,此种模式是在生产环境中最常使用的模式。
2)异步同步模式:
当数据写入本地服务器成功后就会返回成功写入,不管远端服务器是否写入成功。
例如:当数据写入到本地服务器以及发送到本地的TCP BUFFER后返回成功写入,这是DRBD服务的协议A级别工作模式,当数据写入到本地服务器以及发送到远端节点后,返回成功写入,这是DRBD服务的协议B级别工作模式。

DRBD的3种同步复制协议

协议A:异步复制协议,本地写成功后立即返回,数据放在Tcp send buffer中,可能丢失。
协议B:内存同步(半同步)复制协议。本地写成功并将数据发送到对方后立即返回,如果双机掉电,数据可能丢失。
协议C:同步复制协议。本地和对方服务器磁盘都写成确认后返回成功。如果单机掉电或但机磁盘损坏,则数据不会丢失。
工作中一般用协议C。协议不同,将影响数据一致性,以及网络延迟。
对于使用B、A协议读者要考虑数据丢失的风险,当数据写在缓冲区里,没有真正写到磁盘上时,系统崩溃会导致数据丢失。有些带电池的硬盘控制器,如带电池的带点出Dell PERC Raid卡,不但自带缓存而且自带电池,会在系统意外断电或者崩溃后将最后的数据写入磁盘,对这类控制器,可以使用disk flush,从而在保证性能的前提下提高了数据的安全性。
DRBD一般只能主节点提供数据访问:
备节点不能提供数据访问,但是备节点的DRBD服务是正常的,数据也会保持实时同步,但是不能挂载对应的设备及分区,也就是说没法同时提供服务。

如何让备节点也可以提供业务访问?

1、加LVM逻辑卷
2、主主模式,适合GFS,OCFS2这两种文件系统,GFS文件系统类似于NFS网络系统图,可以多点挂载。。但是当心跳网络出问题时对双主影响较大,就会不同步。本地的文件系统只能有一个挂载点。。

DRBD的生产应用模式:

单主模式:即主备模式,为典型的带数据同步的高可用性集群方案。
复主模式:需要采用共享cluster文件系统,如GFS和OCFS2。用于需要从2个节点并发访问数据的场合,需要特别配置。

DRBD裂脑

当心跳线路出现暂时性故障时,会导致两端都各自提升为Primary。当两端再次连通时,需手工处理这种情况。

两种裂脑的处理方式:

1、自动

编辑/etc/drbd.conf
net {
#net:网络配置相关的内容,可以设置是否允许双主节点(allow-two-primaries)等。
after-sb-0pri disconnect;
after-sb-1pri disconnect;
after-sb-2pri disconnect;
rr-conflict disconnect;
}

2、手动


a. 在从节点slave data-1-2上作如下操作:
drbdadm secondary data
drbdadm --discard-my-data connect data -->放弃本地更新的数据进行连接
b. 在主节点master data-1-1上,通过cat /proc/drbd查看状态,如果不是WFConnection状态,需要再手动连接:
drbdadm connect data
提示: 此处的data为drbd的一个resource,可以理解一个同步的实例

文件级别的异机同步方案

1、scp/sftp/nc命令可以实现远程数据同步;
2、搭建ftp/http/nfs/webdev服务器,然后在客户端上也可以把数据同步到服务器;
3、搭建samba文件共享服务,然后在客户端上也可以把数据同步到服务器
4、利用rsync/csync/union等均能实现数据同步;
提示:union可实现双向同步,csync2可实现多机同步;
以上文件同步放如果结合定时任务或者inotify,sersync等功能,可以实现定时以及实时的数据同步;
6、扩展思想:文件级别也可以利用mysql,mongodb等软件作为容器实现;
7、扩展思想:程序向两个服务器同时写数据,双写就是一个同步机制;
特点:简单、方便。效率和文件系统级别要差一些,但是被同步得节点可以提供访问;
软件的自身同步机制(mysql,oracle,mongdb,ttserver,redis。。。),文件放到数据库,同步到从库,再把文件拿出来。
8、drbd 基于磁盘块同步。缺点:备节点不能用

博主

这货来去如风,什么鬼都没留下!!!

相关推荐

嗨、骚年、快来消灭0回复。

×
订阅图标按钮
Less is more!!!