|
Entries in December 2009
一、什么是DRBD? DRBD 是由内核模块和相关脚本而构成,用以构建高可用性的集群。其实现方式是通过网络来镜像整个设备。您可以把它看作是一种网络RAID。 二、drbd 的应用范围是什么?除此之外,创建高可用性集群还需要什么? Drbd 负责接收数据,把数据写到本地磁盘,然后发送给另一个主机。另一个主机再将数据存到自己的磁盘中。其他所需的组件有集群成员服 务,如TurboHA 或 心跳连接,以及一些能在块设备上运行的应用程序。 例如: --裸I/O --文件系统及fsck --具有恢复能力的数据库。 三、它是如何工作的? 每个设备(drbd 提供了不止一个设备)都有一个状态,可能是‘主’状态或‘辅助’状态。在带有主要设备的节点上,应用程序应能运行和访问设备(/dev/nbX)。每次写入都会发往本地低层设备和带有‘辅助’状态设备的节点中。次要设备只能简单地把数据写入它的低层块设备上。 读取数据通常在本地进行。 如果主要节点发生故障,心跳将会把辅助设备转换到主状态,并启动其上的应用程序。(如果您将它和无日志FS 一起使用,则需要运行fsck)。 如果发生故障的节点恢复工作,它就会成为新的辅助节点,而且必须使自己的内容与主节点的内容保持同步。当然,这些操作不会干扰到后台的服务。 四、drbd 同现在的HA 集群有什么关系? 大部分现行高可用性集群(如:惠普、康柏等等)使用的是共享存储器,因此存储器连接多个节点(用共享的SCSI 总线或光纤通道就可以做到)。 Drbd 也可以作为一个共享的设备,但是它并不需要任何不常见的硬件。它在IP 网络中运行,而且在价格上IP 网络要比专用的存储网络经济的多。 目前,drbd 每次只允许对一个节点进行读写访问,这对于通常的故障切换高可用性集群来讲已经足够用了。以后的版本将支持两个节点进行读写存取。 这很有用,比如对GFS 来讲就是如此。兼容性Drbd 可以在ide、SCSI 分区和整个驱动器之上运行,但不能在回路模块设备上运行。 (如果您硬要这样做,它就会发生死锁)。 Drbd 也不能在回送网络设备中运行。(因为它同样会发生死锁:所有请求都会被发送设备占用,发送流程也会阻塞在sock_sendmsg()中。有时, 接收线程正从网络中提取数据块,并试图把它放在高速缓存器中;但系统却要把一些数据块从高速缓存器中取到磁盘中。 这种情况往往会在接收器的环境下发生,因为所有的请求都已经被接收器块占用了。 五、安装 下载软件 最新的稳定版本为0.6.11,您可从http://www.drbd.org/releases.html 下载它。 您可以从CVS 中得到最新的源文件。注意,有时代码不能进行编译。您可以通过cvs... 更多…… |
最新的文章
我的 Blog 链接
我的相册
最后的评论
我的相片
|