也许我的问题有点愚蠢,但想法是有一个预留的Web服务器,当主Web服务器变为不活动(DDos或任何其他事件)时将被激活。
请列出此解决scheme的常见做法。 操作系统将是freeBSD。 我真的很感兴趣的包名称,方法如何几乎实时同步文件,具有最小的延迟,尤其是数据库服务器,因为付款和会议等类似的东西,必须保持在第一台服务器上启动。 我的第一个想法是rsync,但这听起来对我来说是蹩脚的,如果你有关多less东西需要转移的事情…我甚至会同意克隆内存堆栈=))
ps即使你们不明白我在说什么,或者我需要更具体一些,拍出你所有的想法,为各种同步=)Thnx。
编辑:
谢谢你们,现在我对故障转移有很多想法。 我可能会使用负载平衡的HA Cluster。
在高层次上,您要做的是创build一个具有故障转移function的双节点高可用性群集。
http://www.todoo.biz/cluster_ha_freebsd.php
Web服务器托pipe什么types的页面? 是否有涉及数据库?
你可能想在FreeBSD上抓取一些关于GGATE的文章,但是如果你愿意为你的MySQL数据库存储使用另一个操作系统,那么带有HeartBeat的 DRBD是实时镜像数据和处理mySQL集群的自动故障转移的一个很好的解决scheme。
编辑:这不会缓解您的外部IP上的DDOS攻击。
在Linux空间中,Web服务器将挂载一个群集文件系统(例如OCFS2)。 我不知道在FreeBSD领域是否有一个“真正的”集群文件系统。 您可以使用带有“noac”挂载选项的NFS,但性能很差,因此不推荐将其作为强大/可扩展的解决scheme。
干杯
编辑:至于networking服务器的保留性质,使用像nginx这样的代理/负载均衡器来反向这两个服务器。 nginx的configuration实际上将保留指定为“备份”。
为什么故障切换,而不是使用智能负载平衡? 有很多事情在故障转移操作过程中可能会出错 – 通过负载平衡,这不是问题。
对于实时文件复制,请查看AFS或其派生物,或使用与群集文件系统共同的HD。 对于非实时,rsync或unison。 对于数据库复制….以及取决于您当前的数据库。
这个想法是在主服务器closures时进行故障切换。 如果对此问题域没有约束,则可以非常容易地完成此操作,因为您没有组件作为会话亲缘关系或中央数据库。
现在,如果你有这种types的限制,你仍然可以做,但以更加限制的方式。 例如,如果你想在澳大利亚拥有一台服务器,而在美国则有一台服务器通过互联网共享一个共同的数据库将变得更加困难。
但是,如果您可以将故障转移到同一个数据中心(networking),那么在这种情况下,您保留会话的唯一问题 – 如果它们在数据库中,那么您将全部设置,因为两台服务器都可以读取该数据。
对于服务器内容,即使你觉得rsync是瘸子…是不是只是做这个工作。 还有其他的解决scheme有一个共同的文件系统等
如果你有服务器的地理分隔,你可以看看分布在互联网上的非SQL数据库(看谷歌的appengine)或使用麦克斯韦尔build议的工具之一。