首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >名称服务器的容错性

名称服务器的容错性
EN

Server Fault用户
提问于 2009-08-19 18:54:13
回答 4查看 684关注 0票数 0

我有3个服务器,每个服务器运行一个名称服务器和一个and服务器。今天,有两台服务器发生故障。从那时起,我以为最后一台服务器将处理所有未来的请求,但这似乎只发生了一小部分时间。其他时候,请求会超时。

在我的每个服务器上,我都有以下区域条目:

代码语言:javascript
复制
ns1          IN A        <SERVER IP 1>
ns2          IN A        <SERVER IP 2>
ns3          IN A        <SERVER IP 3>
example.com. IN A        <SERVER IP 1>
example.com. IN A        <SERVER IP 2>
example.com. IN A        <SERVER IP 3>
www          IN CNAME    example.com.

我应该在每台服务器上为example.com保存一条A记录吗?我希望设置我的服务器,这样任何服务器都可以透明地处理所有请求,如果其他服务器出现故障。

EN

回答 4

Server Fault用户

回答已采纳

发布于 2009-08-19 19:14:49

您所设置的是DNS循环;虽然这将提供负载平衡,但它不会提供透明、动态的故障转移。这是因为当客户端查询A记录'example.com‘时,虽然他们将接收所有3个服务器is,但他们通常会缓存一个用于将来连接到该域名。即使您将区域的TTL设置为低,在公共Internet上,您也无法控制您和客户端之间有多少缓存解析器,更不用说在客户端计算机上可能发生的DNS条目的应用程序级缓存(例如,internet,维护自己的DNS缓存.)。

你想要的是高可用性。这需要硬件设备或某种形式的软件集群。硬件选项包括、F5 ig IP或Foundry NetIrons。购买自己的应用程序很可能是不切实际的,除非您在一个大型企业工作,托管了许多应用程序。这可能值得与您的主机提供商,因为许多将提供访问共享HA设备的额外费用。

基于软件的选项包括Windows上的微软网络负载平衡或Linux上的乌卡普;如果不知道您的确切需求和当前的基础结构是什么,就很难更具体地说明。关于SF还有其他几个问题可能会有更多的帮助--特别是查看高可用性聚类标记。

票数 1
EN

Server Fault用户

发布于 2009-08-19 19:01:37

可能发生的情况是,当3台服务器中有2台发生故障时,第三台服务器对此一无所知,并继续提供服务器故障的记录。DNS服务器不会在返回的结果中偏爱它自己的IP --取决于软件,它可能会按顺序或随机地从A记录中选择。因此,每3次中有2次,它会将A记录返回给2台崩溃的服务器。

要在DNS中完全解决这个问题,您需要某种DNS负载均衡器(无论是在系统上,还是作为第三方设备/服务)。

在每个DNS服务器上保存一个单独的A记录将允许每个服务器独立工作,尽管您可能会在第一台服务器上(相对于其他2台服务器)按顺序(即: ns1映射到server1并在它的区域中有一个server1 A记录,它很可能是客户机首先查询的记录,所以如果它打开,它将获得几乎所有的流量)。

所以,它会起作用,但它可能不像你所希望的那样起作用。

票数 2
EN

Server Fault用户

发布于 2009-08-23 13:59:16

你是说初选还是解决方案?

如果是初选,就会有很多人主持。对于您自己基础结构中的解析器,故障转移是有问题的,因为大多数解析器库将按优先顺序尝试所有解析器。失败的第一个解析器意味着第二和第三个解析器将被尝试,但只有在一个可怕的长时间延迟之后才会尝试,这将极大地破坏性能(对于那些需要在关键的执行路径上执行名称解析的邮件服务器)。

因此,冗余并不是唯一的问题,但具有持续的高性能-性能不能允许下降,如果一些解决方案失败。我们现在使用LVS来加载均衡器--我们的内部解析器,因为它已经被证明是获得足够的性能和冗余以实现高容量名称分辨率的唯一方法。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/56282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档