标题说明了一切。 有谁知道一种方法来复制beanstalkd,如果一个豆茎服务器发生故障,其他奴隶可以接pipe? 下面是我想到的一种方法:我可以让beanstalk将它的binlog(带-b)写到一个共享位置,然后在主服务器出现故障时以某种方式启动beanstalkd。 必须有更好的方法。
我维护两个数据中心,而且随着更多的重要基础设施开始通过傀儡控制,如果我们的主站点发生故障,那么在第二站点的木偶大师工作就显得非常重要。 更好的办法是进行一种主动/主动设置,以便第二个站点上的服务器不在WAN上进行轮询。 有没有任何标准的多站点木偶高可用性方法?
我想构build一个高可用性的服务器集群。 现在我想知道关于keepalive和heartbeat的细节,两者有什么区别,以及如何select一个。
基于维基百科对任播的描述,它包括跨许多DNS服务器分发域名到多IP的映射,以及用最接近地理位置(或最快)的服务器回复客户端。 在像google.com这样全球分布的,高度可用的网站(或者具有许多全球边缘位置的任何CDN服务)的情况下,这听起来像是人们需要的两个关键特征。 像亚马逊的Route53,EasyDNS和DNSMadeEasy这样的DNS服务都宣称自己是支持Anycast的networking。 因此,我的假设是,这些DNS服务中的每一个都透明地为我提供了这两个杀手级function:多IP到域映射,并将客户端路由到最近的节点。 但是 ,这些服务中的每一个似乎将这两个function区分开来,将第二个function(将客户端路由到最近的节点)称为“GeoDNS”,“GeoIP”或“全球通信总监”,并为该服务收取额外费用。 如果一个支持Anycast的系统的核心租户已经这样做了,为什么这个function被指定为这个额外的function呢? 什么是“GeoDNS”function,这是一个标准的Anycast DNS服务不能做的(根据维基百科的Anycast的定义 – 我明白什么是广告,只是没有为什么它已经暗示)。 当不支持这种模糊的“GeoDNS”function的Route53等DNS服务列出如下function时,我会感到特别困惑: 快速 – 使用全球范围内的DNS服务器全球任播networking,Route 53可根据networking条件自动将用户路由到最佳位置。 因此,该服务可为您的最终用户提供较低的查询延迟,同时为您的DNSloggingpipe理需求提供较低的更新延迟。 这听起来和GeoDNS的意图完全一样,但地理上指导客户是他们明确不支持它的东西。 最终,我正在从DNS提供商那里寻找以下两个function: 将多个IP地址映射到单个域名(如google.com,amazon.com等) 使用一个DNS服务,将响应客户端请求该域的最近的服务器的IP地址请求者。 如上所述,似乎这是“Anycast”DNS服务(所有这些服务都是)的所有部分,但是我从他们那里看到的function和营销却表明了其他方面,这让我觉得我需要了解更多关于如何DNS在进行部署select之前工作。 在此先感谢您的澄清。
当我的一个Web服务器被拔掉时,我如何自动将所有用户redirect到另一个城市的B Web服务器,反之亦然? 一个负载均衡交换机做我想要的,除非我不知道如何让它工作,除非两个Web服务器在同一个build筑物。 高可用性集群系统做我想做的事情,除非我不知道如何让它工作,除非两个Web服务器都在同一个build筑物中。 “ 主Web服务器closures时redirect到另一个Web服务器上的静态页面 ”的接受答案似乎支持2个不同城市的Web服务器。 但是,如果在一个盒子上拔下一个软件,那么如何在一个盒子上安装一个软件呢? 循环赛DNS和内容交付networking (CDN)如何做到这一点? 我想有一种方法开始是这样的: 我得到每个物理Web服务器的IP地址。 我把每一个物理networking服务器的IP地址都放到了单个域名“本”网站(多个Alogging或AAAAlogging或两者)的DNSlogging中。 …那么我需要做什么? 我想另外一个办法就是开始 我使用一些dynamic的DNS提供商来提供我希望用户input到Web浏览器的单个域名 我在每台Web服务器上设置了一个定期向DNS提供商通知自己的IP地址(更新Alogging或AAAAlogging)或自己的域名(更新CNAMElogging或DNAMElogging)的cron作业。 …那么我需要做什么? (现在,如果我的用户在我的联系信息中有一个静态的网页,并且有一个脚注说:“当一个Web服务器A被拔掉时,主服务器似乎停止运行”,我会很高兴。目前的系统,只是给出了一个“服务器没有find”的错误理想情况下,我希望A和B完全同步,显然是相同的 – 但这是另一个问题: 相当于CDN,但dynamic内容?
什么时候能够为网站引入高可用性? 高可用性选项有很多文章。 但是,现在是时候从单一服务器切换到高可用性configuration的时候了。 请考虑我的情况: http://www.postjobfree.com是24/7网站与重要的交通: http://www.similarweb.com/website/postjobfree.com 目前,我在单台服务器上运行它:IIS 7.0 Web服务器和SQL Server 2008都在相同的硬件框上运行。 偶尔会有(〜每月一次)~5分钟的停机时间,通常是由某些Windows Server更新所需的重新启动引起的。 通常停机时间是安排在夜间发生的。 尽pipe如此,它仍然令人不快,因为Google Bot和一些用户在晚上仍然活跃。 目前的网站收入约为8千美元/月。 我考虑切换到双服务器configuration(两台Web服务器的Web场和两台硬件服务器上托pipe的两台SQL Server的群集)。 优点: 1)高可用性(理论上没有停机时间)。 即使其中一台服务器出现故障 – 另一台服务器也将接pipe。 2)没有数据丢失:没有SQL集群,在硬件故障(我们每天做备份)的情况下,多达一天的数据可能会丢失。 缺点: 1)更多的努力来设置和维护这样的configuration。 2)更高的托pipe成本。 而不是600美元/月,这将是约1200美元/月。 你会推荐什么?
我想设置statsd / graphite,这样我就可以logging在HTML设备上运行的JS应用程序(即不在包含的LAN环境中,并且可能有大量不直接控制的传入数据)。 我的约束: 入口点必须说HTTP:这是通过一个简单的HTTP-to-UDP-statsd代理(例如github上的httpstatsd) 必须抵制单一服务器的失败(与墨菲定律对抗:) 必须横向扩展:webscale,宝贝! 🙂 架构应尽可能保持简单(和便宜) 我的服务器是虚拟机 数据文件将存储在Filer设备上(使用NFS) 我有tcp / udp硬件负载平衡器处置 总之,数据path:[client] – (http) – > [http2statsd] – (udp) – > [statsd] – (tcp) – > [graphite] – (nfs) – > [filer] 我的发现迄今为止: 缩放http2statsd部分很简单(无状态的守护进程) 缩放statsd部分似乎并不简单(我想我最终会得到非整数值的石墨集合数据,如sum,avg,min,max …)。 除非HTTP守护进程为了分割密钥而执行一致性散列。 也许是一个想法…(但那是医pipe局的问题) 缩放石墨部分可以通过分解(使用碳中继)完成(但是这也不能解决HA问题)。 显然几个耳语实例不应该写入相同的NFS文件。 缩放文件pipe理器部分不是问题的一部分(但IO越less越好:) 缩放webapp似乎很明显(虽然我没有testing),因为他们只读取共享的NFS数据 所以我想知道是否有人有经验和最佳做法,分享一个坚实statsd /石墨部署?
我们有一个小型的数据中心,有大约100个主机指向3个内部DNS服务器(绑定9)。 当其中一个内部DNS服务器变得不可用时,我们的问题就出现了。 那时,指向该服务器的所有客户端开始执行的速度非常缓慢。 问题似乎是股票的Linuxparsing器没有真正的“故障转移”到不同的DNS服务器的概念。 您可以调整它使用的重试的超时时间和次数(并且设置为旋转,以便它可以通过列表工作),但是如果主DNS服务器不可用,无论使用我们的服务的设置的执行速度要慢得多。 目前,这是我们服务中断的最大来源之一。 我的理想答案是像“RTFM:调整/etc/resolv.conf这样…”,但如果这是一个选项,我没有看到它。 我想知道其他人怎么处理这个问题? 我可以看到3种可能的解决scheme: 使用linux-ha / Pacemaker和故障切换ips(因此dns IP VIP“始终”可用)。 唉,我们没有一个好的击剑基础设施,没有击剑起搏器不能很好地工作(根据我的经验,Pacemaker降低了击剑的可用性)。 在每个节点上运行本地dns服务器,并将resolv.conf指向localhost。 这是可行的,但它会给我们更多的服务来监视和pipe理。 在每个节点上运行本地caching。 人们似乎认为nscd“破碎”,但dnrd似乎有正确的function设置:它将dns服务器标记为up或down,并且不会使用“down”dns服务器。 任何转换似乎只在ip路由级别工作,并依赖于路由更新服务器故障。 多播似乎是一个完美的答案,但绑定不支持广播或多播,我能find的文档似乎表明,多播DNS更多的目的在于服务发现和自动configuration,而不是常规的dnsparsing。 我错过了一个明显的解决scheme?
除了典型的Heartbeat / Pacemaker / CoroSync组合以外,Linux上是否有自动故障切换的主要select? 特别是,我在EC2实例上设置了故障转移,它仅支持单播 – 不允许多播或广播。 我正在专门处理那些还没有自动故障转移function的软件,而且不支持多主环境。 这包括HAProxy和Solr等工具。 我有心跳+起搏器工作,但我不感到激动。 以下是我的一些问题: 心跳 – 本身,限于两个节点。 我想要3+。 起搏器 – 不可能自动configuration。 群集必须以法定人数运行,然后仍需要手动configuration。 CoroSync – 不支持单播。 起搏器工作得很好,虽然它的功率很难安装。 Pacemaker的真正问题是没有简单的方法来自动化configuration。 我真的想要启动一个EC2实例,安装Chef / Puppet,让整个集群不需要我介入就可以启动。
我们最近在我们的路由器发生故障后发现了一个问题,那就是我们的Windows 2008 Boxes在故障恢复之后没有开始与主路由器通话。 当我们做了一些挖掘,他们仍然有从辅助路由器的ARP条目。 根据TechNet博客,这是通过devise: 首先,如果接收到ARP广播,Windows Vista或Windows Server 2008将不会更新邻居caching, 除非它是接收方的广播ARP请求的一部分 。 这意味着当在Windows Vista和Widows Server 2008的networking上发送免费ARP时,如果存在IP地址冲突,这些系统将不会使用不正确的信息更新caching。 其次,如果机器不能再与目前在caching中的机器进行通话,那么窗口邻居caching(arp-cache)似乎只会被更新。 它不发送偶尔的ARP请求,以确保caching不陈旧。 虽然在最初的故障切换期间这不是问题,但在两个盒子都存活的故障恢复过程中,这会导致窗口继续与辅助盒子通话。 有没有办法强制Windows 2008接受免费ARP请求?