我们在http://sstatic.net的网站之间提供一组共享的静态内容。不幸的是,此内容目前根本没有负载平衡——它是从单个服务器提供的。如果该服务器出现问题,则所有依赖它的站点都会有效关闭,因为共享资源是必不可少的共享 javascript 库和图像。
我们正在寻找在此服务器上负载平衡静态内容的方法,以避免单服务器依赖。
我意识到循环 DNS 充其量只是一个低端(有些人甚至可能会说是贫民窟)解决方案,但我不禁想知道——循环 DNS 是否是静态内容基本负载平衡的“足够好”的解决方案?
[dns] [load-balancing]中对此有一些讨论标签中,我已经阅读了一些关于这个主题的很棒的帖子。
我知道通过多个循环 A 记录进行 DNS 负载平衡的常见缺点:
但是,轮询 DNS 作为一个启动器是否足够好,总比没有好,“在我们研究和实施更好的替代方案的同时”为我们的静态内容负载平衡的形式吗?或者 DNS 循环在任何情况下都毫无价值?
在我的组织中,我们正在考虑购买刀片服务器——而不是机架服务器。当然,技术供应商也让它们听起来非常好。我在不同论坛上经常看到的一个问题是,理论上存在服务器机箱停机的可能性——这将导致所有刀片停机。这是由于共享基础设施。
我对这种可能性的反应是有冗余和两个机箱而不是一个(当然非常昂贵)。
有些人(包括例如 HP 供应商)试图说服我们,由于许多冗余(冗余电源等),机箱极不可能发生故障。
我这边的另一个担忧是,如果出现故障,可能需要备件——这在我们的位置(埃塞俄比亚)很难。
所以我想问一下管理过刀片服务器的有经验的管理员:你的经验是什么?它们是否会整体下降 - 什么是合理的共享基础设施,可能会失败?
这个问题可以扩展到共享存储。我再说一次,我们需要两个存储单元而不是一个——供应商再次说,这些东西非常坚固,预计不会出现故障。
好吧 - 我简直不敢相信,这样一个关键的基础设施在没有冗余的情况下会非常可靠 - 但也许你可以告诉我,你是否有成功的基于刀片的项目,它的核心部件(机箱、存储...... )
目前,我们看看惠普——因为 IBM 看起来太贵了。
我知道负载平衡器的目的是平衡服务器之间的负载并跟踪实例健康状况等。但是如果负载平衡器本身出现故障怎么办?如何设置冗余负载平衡器?(负载均衡负载均衡器?)
我可以看到 DNS 运行状况检查如何有用,但显然存在严重的延迟问题,不是吗?
这是假设您没有使用任何第三方服务,如 AWS ELB 或任何类似服务。如果你只是使用说 Nginx 怎么办?
我是一家预算不多的小公司,为慈善机构和非营利客户提供网站和数据库。
我有几台 Debian Linux VPS 服务器,并确保我每天备份到不同的 VPS,而不是托管服务的 VPS。
最近,我的一家托管公司告诉我,两个驱动器同时发生故障,因此数据永远丢失了。事情发生了,他们说对不起,他们还能做什么?但这让我想知道在硬件或其他与主机相关的故障的情况下,基本上可以重新启动 VPS 的具有成本效益的方法。
目前我必须
实现这一点可能需要一天左右的时间,DNS 传播是一个很大的未知数,尽管我将 TTL 设置得非常低(一小时左右)。
一些主机提供快照,可用于将设置复制到新的 VPS,但 IP 仍然存在,这在主机公司完全取消/暂停帐户的情况下无济于事(我一直在阅读有关此某些托管服务提供商的行为,这让我很害怕!我没有做任何垃圾邮件/狡猾的事情,并密切关注安全性,但我意识到他们确实有能力做到这一点,而且我非常规避风险)。
结合选择信誉良好的主机,这是我可以做的最好的事情,而无需寻求非常昂贵的解决方案吗?
我正在讨论将 LVM 用于媒体/文件服务器,因为我想将多个物理硬盘组合成一个卷。我不想在我的 LVM 中使用任何 RAID,所以我的问题是:
如果我的卷中的多个硬盘之一出现故障,我会丢失所有数据还是只会丢失存储在该单个磁盘上的数据?
此外,如果我只是丢失单个磁盘上的数据,是否会像更换该磁盘并从备份中恢复其中的内容一样简单?
我已经做了一些查找,但没有找到对这个问题的满意答案。
何时需要或建议为机架的每个电源馈送使用独立的 UPS(在其自己的主电源分支电路上)?详细说明; 当使用带有冗余电源的服务器时,通常建议每个“1”电源连接到分支电路“A”,每个“2”电源由分支电路“B”供电,但您是否需要同时使用 UPS 'A' 和 'B' 提要,还是只有一个?
背景:我的任务是计划对我们内部使用的服务器进行基础架构升级。我们是一家制造公司,我们的大部分设备和定制软件都依赖于我们办公室本地的可靠在线服务器。我们目前有两个服务器机房,每个机房都有一个机架,位于大型建筑物的两端(用于防止火灾或事故等的冗余)。他们每个人都有一个从电路“A”供电的 UPS,而我们拥有多个 PSU 的设备都连接到这个 UPS。因此,如果 UPS 死了... ploop,服务器就会消失。
我个人的理论是,将每台服务器的 PSU1 连接到 UPS,并将每台服务器的 PSU2 连接到直接从市电供电的 PDU,将提供可靠性和成本的良好组合。但我的主管认为我们应该运行两台 UPS 设备,每个馈电一台。
如果这个问题太模糊,请告诉我,我会尝试修改它。
在我们的商店中,我们在所有工作站中都忠实地使用 RAID,可能只是因为这似乎是应该这样做的方式。我说的是用于科学模拟的工作站,使用板载 RAID 芯片。
但我听过很多 RAID 的恐怖故事。Stackoverflow 本身也有过由 RAID 控制器间接造成的中断。
RAID 可以保护您免受非常有限的故障类型 - 物理磁盘故障 - 但同时它也引入了额外的故障点。RAID 控制器可能会出现问题,而且经常会出现问题。至少在我们的商店中,RAID 控制器的故障似乎至少与磁盘本身一样频繁。您还可以轻松地在更换故障驱动器的过程中搞砸。
RAID 什么时候值得麻烦?通过向备份解决方案添加更多冗余,您是否会获得更好的投资回报?在这方面,哪种类型的 RAID 更好或更差?
编辑:我已经改变了原来的标题“RAID 值得麻烦吗?”,所以听起来不那么消极
我试图理解负载平衡的概念,以确保可用性和冗余,以便在出现问题时让用户满意,而不是为了向数百万用户提供极快的速度而进行负载平衡。
我们的预算有限,并试图坚持使用有大量可用知识的东西,因此在某些著名的搜索引擎收购我们之前,在 Ubuntu VPS 上运行 Apache 似乎是一种策略(包括星期六的讽刺,请注意)。
至少对我来说,这是一个完整的可用不同解决方案的丛林。Apache 自己的 mod_proxy 和 HAproxy 是我们通过快速谷歌搜索找到的两个,但是负载平衡的经验为零,我不知道什么适合我们的情况,或者我们在选择解决方案时会注意什么来解决我们的问题可用性问题。
对我们来说最好的选择是什么?我们应该怎么做才能在不超出预算的情况下获得高可用性?
因此,我们的 DNS 提供商时常会在他们的系统上遭受 DDOS 攻击,导致我们的前端网站出现故障。
在减少对单一外部托管 DNS 提供商的依赖方面有哪些选择?我的第一个想法是使用较低的过期 TTL 和其他 SOA TTL,但感觉这些对辅助 DNS 服务器行为的影响比其他任何事情都大。
即,如果您遇到持续时间超过 1 小时的 DNS 中断(在本例中是由于 DDOS),请将所有内容委托给二级提供商。
当涉及到他们的外部 DNS 并使用另一个托管 DNS 提供商作为备份时,人们在那里做什么?
请注意我们友好的版主:这个问题比那里的“通用缓解 DDOS 攻击”问题要具体得多。
编辑:2016-05-18(几天后):所以,首先感谢 AndrewB 的出色回答。我还有一些信息要在这里添加:
因此,我们联系了另一家 DNS 服务提供商并与他们进行了交谈。经过思考和更多研究后,实际上比我想象的与两个 DNS 提供商合作要复杂得多。这不是一个新答案,它实际上是问题的更多内容/信息!以下是我的理解:
-- 许多这些 DNS 提供商提供专有功能,如“智能 DNS”,例如 DNS 负载平衡与 keepalive、用于配置响应返回方式的逻辑链(基于地理位置、记录的各种权重等) . 因此,第一个挑战是使两个托管提供程序保持同步。并且这两个托管提供程序将必须由必须自动与其 API 交互的客户保持同步。不是火箭科学,而是持续的运营成本,可能会很痛苦(考虑到双方在功能和 API 方面的变化)。
- 但这是我的问题的补充。假设有人确实根据 AndrewB 的回应使用了两个托管提供程序。根据规范,这里没有“主要”和“次要”DNS,我是否正确?即,您向域注册商注册了四个 DNS 服务器 IP,其中两个是您的 DNS 提供商之一,其中两个是另一个的 DNS 服务器。所以你基本上只是向全世界展示你的四张 NS 记录,所有这些都是“主要的”。那么,我的问题的答案是“否”吗?
我认为用于冗余目的的 DNS 主要/次要很简单。我的理解是你应该有一个主要的和至少一个次要的,并且你应该在不同的地理位置设置你的次要,但也要在不同的路由器后面(例如参见https://serverfault.com/questions/48087 /why-are-there-several-nameservers-for-my-domain )
目前,我们的主数据中心有两个名称服务器。最近,由于各种原因,我们遇到了一些中断,这两个名称服务器都被关闭了,让我们和我们的客户在几个小时内无法使用 DNS。我已经要求我的系统管理员团队在另一个数据中心完成 DNS 服务器的设置并将其配置为辅助名称服务器。
但是,我们的系统管理员声称,如果其他数据中心至少不如主数据中心可靠,那么这也无济于事。他们声称,当主数据中心停机时,大多数客户端仍然无法正常查找,或者超时时间过长。
就我个人而言,我确信我们不是唯一一家遇到此类问题的公司,而且很可能已经解决了这个问题。我无法想象所有这些互联网公司都会受到我们这种问题的影响。但是,我找不到很好的在线文档来解释失败情况下会发生什么(例如,客户端超时)以及如何解决这些问题。
我可以用什么论据来戳破我们系统管理员的推理?我可以参考任何在线资源以更好地了解他们声称存在的问题?
阅读回复后的一些补充说明:
redundancy ×10
linux ×2
storage ×2
apache-2.2 ×1
ddos ×1
hardware ×1
load-balance ×1
lvm ×1
networking ×1
nginx ×1
raid ×1
ups ×1
vps ×1