DRBD 是由内核模块和相关脚本而构成,用以构建高可用性的集群。其实现方式是通过网络来镜像整个设备。您可以把它看作是一种网络RAID。
DRBD负责接收数据,把数据写到本地磁盘,然后发送给另一个主机。另一个主机再将数据存到自己的磁盘中。其他所需的组件有集群成员服 务,如TurboHA 或 心跳连接,以及一些能在块设备上运行的应用程序。例如:裸I/O、文件系统及fsck、具有恢复能力的数据库。
上面是DRBD的系统结构图
Distributed Replicated Block Device(DRBD)是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。 DRBD Logo
数据镜像:实时、透明、同步(所有服务器都成功后返回)、异步(本地服务器成功后返回)
DRBD的核心功能通过Linux的内核实现,最接近系统的IO栈,但它不能神奇地添加上层的功能比如检测到EXT3文件系统的崩溃。
DRBD的位置处于文件系统以下,比文件系统更加靠近操作系统内核及IO栈。
工具:
drbdadm:高级管理工具,管理/etc/drbd.conf,向drbdsetup和drbdmeta发送指令,
drbdsetup:配置装载进kernel的DRBD模块,平时很少直接用
drbdmeta:管理META数据结构,平时很少直接用。
在DRBD中,资源是特指某复制的存储设备的所有方面。包括资源名称、DRBD设备(/dev/drbdm,这里m是设备最小号,最大号可到147)、磁盘配置(使本地数据可以为DRBD所用)、网络配置(与对方通信)
每个资源有个角色,是Primary或Secondary,下面简称“主”和“备”
主角色的DRBD设备可以不受限制的读和写,比如创建和映射文件系统、对于块设备的raw或直接IO访问。
备角色的DRBD设备接受来自对方的所有修改,但是不能被应用程序读写,甚至只读也不行。
相关阅读: