遍布全国数据中心的镜像服务器——数百万用户如何同时从他们的“google.com”请求中获得即时结果?我因为答错了这个问题而失败了。
我认为在各个大都市里,“http://google.com“请求发送到 ISP 的 DNS 服务器,该服务器以某种方式返回几个地理位置相近的 http 服务器之一的 IP 地址,然后内部会将 IP 地址转移到下一个可用的本地 Google 服务器。但是,我无法解释可用的本地 Google 服务器表实际上缓存在哪里,也无法解释 IP 地址转移的详细信息。或者他们如何从任何地方手动将某个服务器从轮换中移除。
那么,我现在应该读什么才能下次顺利解答这个问题?
此外,这些机器上每天 24 小时不间断运行哪些守护进程来保持所有镜像数据库磁盘同步?
答案1
我在这里很困惑。google 做的是标准任播。
http://en.wikipedia.org/wiki/Anycast
基本上,您有自己的互联网地址,在您自己的 AS(系统管理员应该知道的术语)中,然后为所有集群分配相同的 IP 范围(所有数据中心)。DNS 将轮询,但您不会使用它来指向特定地址.... 您为此使用 bgp 任播公告。您需要的是访问互联网 gbp 级别,这需要您拥有自己的 AS。诀窍是,如果 DNS 说“地址 x”,那么您的 DNS 任播设置会将所有请求路由到最近的数据中心。
话虽如此,但对于普通系统管理员来说,这并不是标准知识。正如您在错误答案中看到的那样,他们似乎甚至不知道 Anycast,而这几乎是一种标准方法。BGP / 互联网骨干路由协议不是 99% 的网络管理员需要知道的东西。从这一点来看,这个问题是不公平的,或者说是针对高级职位的。
此外,这些机器上每天 24 小时不间断运行哪些守护进程来保持所有镜像数据库磁盘同步?
无。磁盘未同步。据我所知,Google 机器在 X 机器集群中运行(形成一个功能单元),而 culusters 永远不会更新。它们会定期重新安装新的和更新的映像。在安装之间,不会发生同步。
答案2
这次面试是针对系统管理员职位吗?如果是这样,我认为这个问题有点不公平。当然,我不知道这个问题的全部范围或背景,你肯定应该知道 DNS 和负载平衡等组件的一般工作原理,但我认为你不能知道 Google(例如)如何使其服务在全球范围内多样化且高度可用。
全国各地数据中心的镜像服务器?这可能意味着任何事情。
需要镜像什么?网站?Windows 域基础架构?FTP 服务?等等。
答案3
您可能需要研究负载平衡和 CDN。
据我所知,没有一个特定的守护进程。但是有很多方法可以做到这一点。
编辑:回答您的评论,DNS 不是这里的关键。它全部与 CDN(内容分发网络)和负载平衡器有关,重定向到许多可用的镜像主机。这些主机通过多种技术进行镜像,包括(在 Google 的情况下不太可能)rsync 和类似的东西。