最新消息:

关于DRBD与Heartbeat的一些思考

集群 admin 2805浏览 0评论

DRBD和Heartbeat这两个用于实现高可用的组合,折腾了有一周了,从开始的新鲜到配置成功的兴奋再到遇到问题的苦闷最后还是在其中一点点的被纠结着,似懂非懂中迷茫着,似乎从小到大没有一件事能做得明白的,稀里糊涂得就奔着三十去了。下面就把这一周里遇到的疑惑,抖露抖露,大家也给点力,说说你们的理解。 DRBD是个什么东西——Distributed Replicated Block Device,这4个英文单词说的很明白,BD说明要实现这个功能首先要是块设备,我们常用的磁盘就是块设备,R就是通过复制来保证两个块设备上的数据一致,通过网络(TCP/IP)传输,所以又被称为网络版的RAID1,D体现在数据同时被存放到主与备这两种角色的主机上,每个主机都是独立的,没有共享的部分,被称为share-nothing,MySQL都是share-nothing的东西(话说,我们的MySQL Cluster),和其相对的就是share-everything,Oracle的高可用策略,共享存储,想做RAID几您随便,再想想我们的DRBD又是网络又是一会你现身了一会我又消失了一顿折腾,再一不小心变成SB(Splite Brain)了,突然感觉到还是人家花钱的东西好呀。DRBD中有好些个名词,需要我们好好去品味,下面这些是通过实际操作和文档学习个人的一些理解,可能有些不完全正确,请大家理性的分辨。 virtual block device — 对应配置drbd.conf中的device的配置/dev/drbdN(N从0开始到147止),其实,这就是一个指向真是设备的路径名称。 lower-level device  — 这个就是真实的物理设备,就是drbd.conf中disk对应的行。 resource — DRBD把配置的块设备称为自己的资源,它可以配置多个资源,Heartbeat中也有资源这个概念,DRBD被看作其中的一种资源。 metadata — 记录着DRBD相关的一些信息,就像MySQL中INFORMATION_SCHEMA的作用。 role — 角色,在DRBD中分为Primary(主)和Secondary(备)两个角色,主上的资源可读可写,而备上的资源“不可见”,你会想了,难道只读都不行吗?在DRBD的文档中给了如下的解释:(The reason for disallowing even read-only access to the device is the necessity to maintain cache coherency, which would be impossible if a secondary resource were made accessible in any way.)。其中,cache coherency我不是太理解,但与群里的chen(陈红卫)聊过之后,得出这么两个:一是怕某种层度会影响写,再有就是有可能是考虑到会出现脏读的情况。 关于DRBD首页的那个内部解剖图,上面有一个部分(RAW DEVICE),我不是太明白,再与chen以及公司资深的同事聊过之后,都没有得到一个很好的解释,不知道它在配置或是在实际内部运行时体现在什么哪里。在文档Chapter 5. Configuring DRBD–The initial device synchronization这个部分中,有这么一句话提到了raw […]

转载请注明:爱开源 » 关于DRBD与Heartbeat的一些思考

您必须 登录 才能发表评论!