【DRBD详解】

文章目录

  • 一、DRBD简介
    • 1.认识DRBD(端口7789)分布式磁盘块设备
    • 2.DRBD工作原理
    • 3.DRBD支持的底层设备
    • 4.DRBD资源
    • 5.DRBD模式
    • 6.DRBD 配置工具
    • 7.DRBD与RAID1区别
    • 8.DRBD与集群共享存储
  • 二、DRBD安装

一、DRBD简介

1.认识DRBD(端口7789)分布式磁盘块设备

DRBD:一个基于软件实现的,不共享任何东西,通过复制的方式在存储之间构建所谓镜像模式机制的磁盘,从而使得一个数据可以存储为多份, DRBD的核心功能是在内核中实现。
简单说DRBD是实现活动节点存储数据更动后自动复制到备用节点相应存储位置的软件。

2.DRBD工作原理

【DRBD详解】_第1张图片
可以看到DRBD需要运行在各个节点上,且是运行在节点主机的内核中,所以DRBD是内核模块,在Linux2.6.33版本起开始整合进内核。
上图假设左节点为活动节点(实箭头),右节点为备用节点。左节点接收到数据发往内核的数据通路,DRBD在数据通路中注册钩子检查数据(类似ipvs),当发现接收到的数据是发往到自己管理的存储位置,就复制另一份,一份存储到本机的DRBD存储设备,另一份就发给TCP/IP协议栈,通过网卡网络传输到另一节点主机的网上TCP/IP协议栈;而另一节点运行的DRBD模块同样在数据通路上检查数据,当发现传输过来的数据时,就存储到DRBD存储设备对应的位置
如果左节点宕机,右节点可以在高可用集群中成为活动节点,当接收到数据先存储到本地,当左节点恢复上线时,再把宕机后右节点变动的数据镜像到左节点。
镜像过程完成后还需要返回成功/失败的回应消息,这个回应消息可以在传输过程中的不同位置返回,如图上的A/B/C标识位置,可以分为三种复制模式
协议A:Async, 异步,本地写成功后立即返回,数据放在发送buffer中,可能丢失,但传输性能好;
协议B:semi sync, 半同步;
协议C:sync, 同步,本地和对方写成功确认后返回,数据可靠性高,一般都用这种;

3.DRBD支持的底层设备

DRBD需要构建在底层设备之上,然后构建出一个块设备出来。对于用户来说,一个DRBD设备,就像是一块物理的磁盘,可以在DRBD设备内创建文件系统。

DRBD所支持的底层设备有这些类别:磁盘,或者是磁盘的某一个分区;soft raid 设备;LVM的逻辑卷;EVMS(Enterprise Volume Management System,企业卷管理系统)的卷;或其他任何的块设备。

4.DRBD资源

DRBD资源为DRBD管理的存储空间及相关信息,主要配置四个选项:
资源名称:可以是除了空白字符外的任意ACSII码字符;
磁盘:在双方节点上,各自提供的存储设备;
DRBD设备:在双方节点上,此DRBD设备的设备文件;一般为/dev/drbdN,其主设备号147
网络配置:双方数据同步时所使用的网络属性;

5.DRBD模式

1)单主模式:master/slave(primary/secondary)
这种机制,在某一时刻只允许有一个主节点。主节点的作用是可以挂在使用,写入数据等;从节点知识作为主节点的镜像,是主节点的备份。
这样的工作机制的好处是可以有效的避免磁盘出现单点故障,不会文件系统的错乱。
2)双主模式:dula primary(primary/primary)
所谓双主模型是2个节点都可以当做主节点来挂载使用。那么,思考这样一个问题?当第一个主节点对某一文件正在执行写操作,此时另一个节点也正在对同一文件也要执行写操作,结果会如何呢??
一般这种情况会造成文件系统的错乱,导致数据不能正常使用。原因是:对文件的加速机制是由操作系统内核所管理的,一个节点对文件加速之后,另一个节点并不知道对方的锁信息。
解决办法是:使用集群文件系统。集群文件系统使用分布式文件锁管理器,当一个节点对文件加锁之后会通过某种机制来通知其他节点锁信息,从而实现文件锁共享。

6.DRBD 配置工具

drbdadm:高级管理工具,管理/etc/drbd.conf,向drbdsetup和drbdmeta发送指令。
drbdsetup:配置装载进kernel的DRBD模块,平时很少直接用。
drbdmeta:管理META数据结构,平时很少直接用。

7.DRBD与RAID1区别

RAID1(独立磁盘阵列)也是实现不同存储设备间的数据镜像备份的;不同的是RAID1各存储设备是连接一个RAID控制器接入到一台主机上的,而DRBD是通过网络实现不同节点主机存储设备数据的镜像备份。

8.DRBD与集群共享存储

共享存储:如果各节点访问同一个数据文件都是在同一个存储空间内的,就是说数据共享的就一份,而这个存储空间就共享存储。
而DRBD定义上就指出了"无共享":不同节点存储设备空间是镜像,DRBD可以直接应用在主备模型的集群中,也可通过高可用双主模型集群中,还有就是DRBD为NFS共享存储提供高可用镜像备份,等等…

二、DRBD安装

你可能感兴趣的:(DRBD)