我有一个内置大量硬件冗余的LAMP服务器。我不担心服务器变得不可用。 然而,我所担心的是服务器所在数据中心的潜在networking问题。我想要的是另一台服务器在另一个数据中心进行冗余。 负载平衡不是一个问题。
说了这么一句,我在两点上比较无能:
任何指导如何完成上述两个问题将不胜感激。
你的问题有很多部分!
对于MySQL,您将需要有两台相互复制的服务器,这样,如果其中一台是主动主设备,另一台将获得其数据。 您可以通过检查复制副本的主控制器后面多less秒来监控他们获取的是相同的数据。 您应该只写入活动的主数据库,否则当您使用auto_increment值时,您可能会将数据库挂起。
对于文件,您可能需要定期运行rsync来传播更改。 监视它们是否具有相同的文件可能就足够了 – 有很多方法可以做到这一点。
你的第二个问题更棘手。 假设主数据中心突然下线。 备份数据中心如何知道如何处理? 在决定发生故障以及是否故障切换到备份时,通常需要手动组件。 要使客户端进程自动移动到备份,通常需要第三个站点能够代理到活动数据中心的连接,或为名称提供快速DNS切换。 我推荐前者,因为使用DNS进行数据中心故障转移需要较低的TTL值。
对于第一个问题,你可以使用mysql master-masterconfiguration,例如: http : //www.neocodesoftware.com/replication/ 。 请注意用于避免两个服务器之间的表中的主键冲突的自动递增偏移量。
使用rsync在服务器之间复制文件,使用–delete标志来避免删除在服务器之间重新同步的文件。
对于第二个问题,我不太确定这个问题,因为如果你可以做一个负载均衡代理来检测一个服务器是否closures,这可能会更容易一些。 但是,如果服务器位于非相关数据中心,这可能会造成双倍的带宽成本。 否则,也许你可以把DNS的入口指向两个IP,这样客户端就可以同时尝试它们