我正在两个节点上配置 DRBD。DRBD 已经配置好了,但我想启用双主模式功能。
在 drbd 网站上我看到它需要使用一个共享集群文件系统,该系统利用了分布式锁管理器,如 GFS 和 OCFS2。
使用 ext3 文件系统可以吗?
提前致谢。
答案1
不,不可能。非集群文件系统一次只能由一台机器使用,如果在多台机器上以双主模式使用它,则肯定会导致文件系统损坏!
原因是使用该文件系统的两台机器不知道对方做了哪些修改,很快就会发生冲突。
答案2
简短的回答:这是可能的,但不建议。
较长的答案:ext2、ext3 和 ext4 文件系统不提供处理文件系统被多个主机写入的情况所需的锁定或协调。这些文件系统设计为仅由一个主机写入。如果多个主机尝试写入同一个文件系统,则没有一个主机具有文件系统的准确映射,最终将覆盖来自其他主机的数据。
可以将卷以只读方式挂载到其他主机上,但请记住,主机 1 无法告诉主机 2 数据已被更改。
集群文件系统使用分布式锁管理器和其他通信通道的目的是允许主机相互通知正在进行的写入操作并防止上述行为。
祝你好运,里克
答案3
在双主模式下运行 DRBD 与从两个服务器节点访问 SAN 存储几乎相同。所有适用于 SAN 的预防措施都适用于双主 DRBD。简而言之,是的你可以做到,但你也应该注意 SwenW 的警告 -绝不同时从两个节点挂载文件系统。
在我的公司,我们实际上对许多集群使用双主文件系统(使用 ext4 或 ext3 文件系统),但这是有代价的。
为了给你一些现实生活中的背景知识,我们曾经有过基于 SAN 的集群,在这种情况下,你当然总是能从两边看到块设备(类似于双主节点中的 DRBD 的工作方式)。我们还使用了惠普服务卫士管理集群。Serviceguard 使用 LVM 标记(vgchange --addtag
和vgchange --deltag
)进行磁盘锁定,并且它还会进行非常广泛的测试以保护您免受裂脑情况的影响。简而言之,如果您让 Serviceguard 管理这些磁盘,它永远不会犯错误,因此您可以使用任何您想要的文件系统(在我们的例子中是 ext3,最近甚至是 ext4)。它还要求磁盘在两个节点上都可见(它是集群验证的一部分 - 它确保设备在所有节点上都可用)。
在我们淘汰了昂贵的硬件(SAN)之后,我们保留了昂贵的软件(Serviceguard),因此我们必须在类似的设置中使用 DRBD,使块设备在所有节点上都可见 - 即双主。
当然,没有什么可以阻止你错误地安装错误的磁盘,然后你就完蛋了。但无论如何,当你从多个节点访问 SAN 磁盘时,这是一个有效的警告。