我们有以下服务器:
1台运行MySQL的web服务器(论坛)。
1 x使用Postgres运行RT的web服务器。
使用MonetDB作为后端运行本地应用程序的web服务器
当然,我们想在这里增加一点可靠性,在每个web服务器上增加一个额外的服务器,以防出现1台服务器死亡等情况。但是,做这件事的最好和相对便宜的方法是什么呢?
为什么我不喜欢这样:由于同步问题可能导致的数据损坏,即临时的电源点可能会导致数据写入从服务器,然后主服务器返回,然后复制中断。在斯隆尼,你甚至不能这样做,你必须首先把奴隶提升为主人,等等,AFAIK。
另一件我不喜欢的事情是,必须手动遍历所有这些,找出现在是谁在做什么,以及同步的事情,等等。
2.获得2台具有相当数量存储空间的服务器,并在其中设置DRBD。
由于它们将有一个共享IP,所以将所有DBs,例如MySQL、Postgres和Monet放在DRBD存储上。DRBD的好处是,我们不会有一个单一的故障点,因为即使我们失去了集群的一部分,其他服务器也可以接管,因此它具有更强的抗灾能力。我的理解是,这个级别以上的web服务器可能会反复失败,而不需要担心复制和同步等问题。
3.VMs?
当使用VM设置类似的东西时,最佳实践是什么?
发布于 2009-06-02 11:35:12
在高可用性方面,VMs对您没有多大帮助,尽管它们在简化整合方面很有用。
如果没有两个重要的数据点:预算和负载,就无法回答您的问题。如果您有一个有限的预算,但您的负载足够低,您可以轻松地将所有这些移动到两个服务器的主动/被动设置。
如果您的预算允许,您可能需要考虑获得一个SAN (最好是两个为HA)。在这种情况下,您仍然可以在与应用程序相同的服务器上使用DBs (可能是虚拟化的),但是使用写入SAN的数据。数据库大多是IO绑定的。
另一种路由确实是为DBs拥有一个两个节点故障转移集群,并且通过DRBD复制DB分区,它运行得很好。但是,您需要确保每个磁盘都有自己的磁盘;为此,我建议使用2U机器,其中有6个磁盘,带有电池支持的硬件raid。
如果您有更多的流量,但仍然希望保持较低的预算,您可以尝试如下:
不过,要小心负载;如果某个节点在使用高峰时失败,您就会遇到很多麻烦,但这可能是处理偶尔发生的断点问题的一个好方法。
发布于 2011-01-28 03:58:15
不要使用drbd进行mysql故障转移。使用主-主复制并将haproxy放在前面,以负载、平衡mysql连接并提供故障转移。然后将心跳放到haproxy服务器上。通过负载平衡完成故障转移。
对于运行nfs的web文件,drbd是很好的。
发布于 2009-06-02 11:38:14
对于一个“万一”你的初选失败的解决方案,而不是为了平衡/频繁的故障转移,第2和#3的组合会很好。获取一个具有合理资源的盒子,用于存储和运行每个主要系统的VM。使用DRBD简化数据的复制。对于添加的铃声和哨声,您可以为自动故障转移提供心跳--或者不是。当然还有复制!=备份。
https://serverfault.com/questions/17621
复制相似问题