我们正在寻找一个Debian Squeeze,开源的多站点“湾崩溃”的解决scheme(道歉,如果一个职位存在 – 没有看到一个)。 多站点是关键….
在小型办公室环境中,我们希望将两台服务器放在两个不同的站点上。 每台服务器都有自己的公共广域网静态IP地址。
例如,Site1:24.xxx.xxx.xxx和Site2:52.xxx.xxx.xxx
我们计划使用DRDB,起搏器和corosycn来保持两个盒子同步。
问:如果站点1的连接发生故障,是否有办法立即将故障切换到站点2?
我们看过的起搏器示例似乎是为单个站点configuration的(我们可能不知道这些示例是多站点的)。
这是什么贵宾? 如果我们有第三个服务器在第三个站点(例如,一个云服务器)与一个公共广域网静态IP,并使用它的VIP,我们是否在正确的轨道? 也就是说,所有的stream量都是针对第三台服务器,将其路由到Site1的公共IP,如果Site1发生故障,第三台服务器会将所有stream量路由到Site2?
谢谢!
DNS故障转移
DNS / \ SiteA SiteB
大多数DNS故障转移TTL将被设置为30秒,允许站点IP地址最多停止60秒,以便在服务检查标记站点“不良”之后停止向客户端发布广告。 大多数DNScaching服从TTL,有些则不服从。 某些客户端也可以cachingIP(java!)。
负载平衡器
LB / \ SiteA SiteB
您在单个云负载平衡器(vip)的post中提到的“VIP”选项确实可以让您更快速地使网站失效,因为一旦服务标记为不良,您就可以将网站之间的stream量迁移到现场。 这确实会增加一个单点故障。
负载平衡器+ DNS故障转移
DNS / \ LB LB | \ / | | X | | / \ | SiteA SiteB
如果您有两个基于云的负载平衡器(最好在不同的站点或不同的提供程序中),并使用DNS故障转移工作,那么只要检测到故障,您就可以将客户端从SiteX移动到SiteN,并在受到负载平衡器出现故障,这比在办公室的networking链接上托pipe的虚拟桌面服务要less得多。
如果您控制自己的IP范围并拥有BGP路由器,还有其他方法可以在networking级别通过BGP路由和BGP任播实现故障转移。 这听起来有点高于你的目标?
要使任何故障转移都能正常工作,您需要对虚拟桌面服务进行全面的服务检查,以确认网站实际上正在运行。 我不知道你可以检查一个虚拟桌面,除非你写了一个非常漂亮的客户端。 也许你可以从你的网站提供系统指标,这可能有助于表明一个网站已经“坏”了。 这些可能来自您在网站内部进行的集群,因为这必须对服务的状态有一个很好的了解。
另外,多个站点需要考虑到客户端连接的地方。 他们可以随时来回切换吗? 如果他们留在一条路上,会更好吗? 主动/被动是更好的方式吗? 地理位置是一个很重要的因素? 这些都是非常具体的你正在执行。 总是testing你认为最好的,并且总是testing你能想到的每一个失败情况。