以下是关于DRBD的介绍,关于DRBD的部署请参考http://blog.csdn.net/rzhzhz/article/details/7107115
DRBD (Distributed Replicated Block Device) 是 Linux 平台上的分散式储存系统。其中包含了核心模组,数个使用者空间管理程式及 shell scripts,通常用于高可用性(high availability, HA)丛集。DRBD 类似磁盘阵列的RAID 1(镜像),只不过 RAID是在同一台电脑内,而DRBD是透过网络。
DRBD是linux的内核的存储层中的一个分布式存储系统,架构分为两个部分:一个是内核模块,用于虚拟一个块设备;另一个是用户空间管理程序,用于和DRBD内核模块通讯,以管理DRBD资源。在DRBD中,资源是特指某复制的存储设备的所有方面。包括资源名称、DRBD设备(/dev/drbdm,这里m是设备最小号,最大号可到147)、磁盘配置(使本地数据可以为DRBD所用)、网络配置(与对方通信)。
一个DRBD系统由两个以上节点构成,和HA集群一样有主用节点和备用节点之分(DRBD每次只允许对一个节点进行读写访问,主机上的DRBD设备挂载到一个目录上进行使用.备机的DRBD设备无法被挂载,因为它是用来接收主机数据的,由DRBD负责操作.),在带有主要设备的节点上,应用程序和操作系统可以运行和访问DRBD设备。
DRBD块被加载到正常的块设备之上,文件系统之下,在文件系统和磁盘之间形成一个中间层 ,当用户往主节点文件系统中写入数据时,数据被正式写入磁盘之前会被DRBD系统截获,DRBD系统在捕获到有磁盘写入时,会通知用户空间管理程序把这些数据拷贝一份,写入远程DRBD镜像,然后存入DRBD镜像所映射的磁盘(备用节点)。 如图:
DRBD系统向虚拟块的镜像中写入数据时,支持三种协议:
A:数据一旦写入磁盘并发送到网络中就认为完成了写入操作
B:收到接收确认就认为完成了写入操作
C:收到写入确认就认为完成了写入操作
基于安全考虑我们一般选择协议C。
drbdadm:高级管理工具,管理/etc/drbd.conf,向drbdsetup和drbdmeta发送指令
drbdsetup:配置装载进kernel的DRBD模块,平时很少直接用
drbdmeta:管理META数据结构,平时很少直接用。
大部分现行高可用性集群都会使用共享存储,而DRBD也可以作为一个共享存储设备,使用DRBD不需要任何硬件的投资。因为它在IP网络中运行,因此,利用DRBD作为共享存储设备,要节约很多成本,因为在价格上IP网络要比专用的存储网络经济的多。
在 DRBD 设备上创建文件系统之前,必须先设置 DRBD 设备。只能通过 /dev/drbd设备(而非原始设备)操纵用户数据,因为 DRBD 使用原始设备的最后 128 MB 储存元数据。确保仅在 /dev/drbd设备上创建文件系统,而不在原始设备上创建。
例如,如果原始设备大小为 1024 MB,则 DRBD 设备仅有 896 MB 可用于数据,128 MB 隐藏并保留用于元数据。任何访问 896 MB 和 1024 MB 之间的空间的尝试都会失败,因为它不可用于用户数据。