什么用于基于软件的共享文件存储?

vin*_*.io 5 linux cluster storage load-balancing drbd

情况:设置负载均衡器

目前,我们的数据中心有成对的所有服务器(运行 CentOS Linux):每个服务器都有一个镜像服务器。我们目前不使用任何负载平衡,因此 serverA 获取所有流量,当它出现故障(硬件或软件)时,我们可以通过在 serverB 上配置 serverA IP 地址来快速切换到 serverB。我们正在使用 MySQL 主/主复制(尽管我们可以简单地使用主/从复制进行当前设置)和 rsync 来保持 vhost 文件同步(serverA 同步到 serverB)。

这对我们来说效果很好,但效率很低,因为我们有 50% 的硬件在机器出现故障之前什么都不做。我们正在考虑在服务器对之前放置负载均衡器,这样我们就可以将负载分摊到两台机器上,并为每个集群添加额外的服务器。

问题:共享文件存储

设置它可能只需要在每个服务器对前面放置一个负载平衡器,然后让它将流量分配到该对中的每个服务器。除了一件事:文件存储。当前 rsync 将更改从 serverA“推送”到 serverB,但不是相反。我们可以设置它,以便 rsync 也从 serverB 运行到 serverA,但问题是 rsync 永远不知道是创建还是删除存在于 serverA 但不在 serverB 上的文件。我查看了Unison,但该项目似乎已停止。

问题:基于软件的共享文件存储的最佳解决方案是什么?

So, I'm looking for a different solution. Please mind that I don't want to add more hardware (so no NAS/SAN solution). Also mind that we need a low amount of storage (below 500GB) per cluster and that all servers are on the same local network. We have a decent back-up solution in place (back-ups run every 3 hours).

I've been looking at DRBD and that seems to fit our situation well, but I have no experience with that. Is DRBD the way to go for us? Please share you experience with this and other similar solutions. Any pitfalls to think about? Am I on the right track? Please enlighten me :)

Kvi*_*sle 1

DRBD 很棒。

好的方面:

  • 它在复制数据方面做得非常出色
  • DRBD 在一些情况下避免了灾难,其中它发现该卷已安装在另一个节点上,而我们从 SAN 获取的原始卷无法告诉我们这一点。
  • Heartbeat 已经对 DRBD 有了很好的支持。

挑战:

  • 请记住对其进行适当监控,以便您在发生脑裂时发现并能够处理它。
  • 如果顶部没有启用集群的文件系统,则无法在两台服务器上安装 DRBD - 我对此部分没有任何经验。
  • 通过将 DRBD 配置为使用所有可用带宽来同步磁盘,可以轻松地“DOS”服务器。只需配置较低的吞吐量,就可以了。

为了在多个节点上安装“相同”的文件系统,我们不断回到 NFS,尽管我们不断测试各种解决方案。我在生产中没有遇到任何问题的设置是 DRBD 之上的 EXT4 之上的 NFS。我不敢对数据库文件系统这样做,但对于 wwwroot 来说这是可以的。