如何用Linux DRBD 助管理员节省SAN开支
设置同步
DRBD可以概述为网络上的RAID 1(镜像)。也就是说,你需要两个节点和一个网络来连接它们。在这两个节点上,一个存储设备(通常是本地硬盘)专供DRBD设备使用。一旦配置好,DRBD就在网络上实时的同步化这些设备。DRBD和Rsync等其它自动化软硬件的区别在于,DRBD在块层工作,这让它几乎可以适应每一次使用。
DRBD有两种设置:主动/被动或者主动/主动。主动/被动设置和RAID 1非常相似。数据写入主动装置并复制到被动装置。通常被动装置不做任何事情,但是如果发生故障,它可以启动成主动装置。主动/被动设置在双节点、高可用集群中非常普遍。
另一个选择是使用DRBD的主动/主动设置:还是包括两个存储装置,但是它们可以同时被访问,也就是说,两个节点可以同时运行和准备数据。因此,这两个节点都提供数据,用更好的性能服务更多的用户。但是该设置还有一些额外的要求。要使用主动/主动DRBD设置,你还需要一个支持群集的文件系统,比如Oracle的OCFS2或者红帽的Global File System。这是因为只有支持群集的文件系统才可以保证同时写入在网络中正确地同步,这两个节点同时写入相同的文件。
成功故障转移
由于DRBD不需要昂贵的SAN就可以完成配置高可用性集群,所以它非常受欢迎。试想一下配置Web服务器获得高可用性的情况:如果正在运行该Web服务的主机宕机了,集群中的另一强主机可以接管。为了正常地继续工作,虽然是在其它节点上运行,但Web服务器需要访问之前在原始节点上运行时访问的相同文件。要确保你的Web服务器总是为相同的文件服务,你必须将它们放在DRBD设备上。
理论上,你并不需要HA群集软件来运行DRBD,但是拥有一个集群会让管理DRBD更轻松。没有HA软件,管理员需要确保新的节点在发生故障后配置为主动,它需要手动操作。如果有一个集群,集群软件会自动地照看故障转移,在保证一点,短暂中断后该服务在其它节点上可以启动。另外,在主动/主动设置中,通常使用HA集群软件。这是因为在DRBD设备之上,一个集群文件系统必须同步访问到该设备,而集群文件系统由HA集群堆栈管理。
考虑DRBD时还有一些需要注意的地方,在以后的文章中我们会给出更多详细的内容,但现在管理员的之急是DRBD和HA集群堆栈的连接。如果HA堆栈不能正确地管理DRBD设备,你可能会在裂脑的情况中结束,两个装置都认为自己在负责。