首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在我们的情况下,增加额外服务器以提高可靠性的更好方法是什么?

在我们的情况下,增加额外服务器以提高可靠性的更好方法是什么?
EN

Server Fault用户
提问于 2009-06-02 10:32:26
回答 4查看 379关注 0票数 1

我们有以下服务器:

1台运行MySQL的web服务器(论坛)。

1 x使用Postgres运行RT的web服务器。

使用MonetDB作为后端运行本地应用程序的web服务器

当然,我们想在这里增加一点可靠性,在每个web服务器上增加一个额外的服务器,以防出现1台服务器死亡等情况。但是,做这件事的最好和相对便宜的方法是什么呢?

  1. 每个获得一个额外的服务器,并在每种情况下使用适当的技术复制DB?A的MySQL复制,B的Slony等,我不知道如何复制MonetDB,但我想这是可能的。

为什么我不喜欢这样:由于同步问题可能导致的数据损坏,即临时的电源点可能会导致数据写入从服务器,然后主服务器返回,然后复制中断。在斯隆尼,你甚至不能这样做,你必须首先把奴隶提升为主人,等等,AFAIK。

另一件我不喜欢的事情是,必须手动遍历所有这些,找出现在是谁在做什么,以及同步的事情,等等。

2.获得2台具有相当数量存储空间的服务器,并在其中设置DRBD。

由于它们将有一个共享IP,所以将所有DBs,例如MySQL、Postgres和Monet放在DRBD存储上。DRBD的好处是,我们不会有一个单一的故障点,因为即使我们失去了集群的一部分,其他服务器也可以接管,因此它具有更强的抗灾能力。我的理解是,这个级别以上的web服务器可能会反复失败,而不需要担心复制和同步等问题。

3.VMs?

当使用VM设置类似的东西时,最佳实践是什么?

EN

回答 4

Server Fault用户

回答已采纳

发布于 2009-06-02 11:35:12

在高可用性方面,VMs对您没有多大帮助,尽管它们在简化整合方面很有用。

如果没有两个重要的数据点:预算和负载,就无法回答您的问题。如果您有一个有限的预算,但您的负载足够低,您可以轻松地将所有这些移动到两个服务器的主动/被动设置。

如果您的预算允许,您可能需要考虑获得一个SAN (最好是两个为HA)。在这种情况下,您仍然可以在与应用程序相同的服务器上使用DBs (可能是虚拟化的),但是使用写入SAN的数据。数据库大多是IO绑定的。

另一种路由确实是为DBs拥有一个两个节点故障转移集群,并且通过DRBD复制DB分区,它运行得很好。但是,您需要确保每个磁盘都有自己的磁盘;为此,我建议使用2U机器,其中有6个磁盘,带有电池支持的硬件raid。

如果您有更多的流量,但仍然希望保持较低的预算,您可以尝试如下:

  • 2xDB服务器在DRBD中复制的主动/被动设置
  • 2x运行应用程序的前端服务器,都是活动的。
  • 在前端的VIP上运行一个软件负载均衡器,它们中只有一个会接收到传入的连接,但是它会将它们重新分配到本地或另一个节点。我推荐哈代

不过,要小心负载;如果某个节点在使用高峰时失败,您就会遇到很多麻烦,但这可能是处理偶尔发生的断点问题的一个好方法。

票数 3
EN

Server Fault用户

发布于 2011-01-28 03:58:15

不要使用drbd进行mysql故障转移。使用主-主复制并将haproxy放在前面,以负载、平衡mysql连接并提供故障转移。然后将心跳放到haproxy服务器上。通过负载平衡完成故障转移。

对于运行nfs的web文件,drbd是很好的。

票数 2
EN

Server Fault用户

发布于 2009-06-02 11:38:14

对于一个“万一”你的初选失败的解决方案,而不是为了平衡/频繁的故障转移,第2和#3的组合会很好。获取一个具有合理资源的盒子,用于存储和运行每个主要系统的VM。使用DRBD简化数据的复制。对于添加的铃声和哨声,您可以为自动故障转移提供心跳--或者不是。当然还有复制!=备份。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/17621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档