10K 问题的解决:一个系统管理员如何管理 2000x 台服务器

请输入图片描述

什么是 10K 问题?

在 1999 年,Dan Kegel 向网络服务器提出了一个骇人听闻的难题:html

是时候让网络服务器去同时应对 10000 个客户端了,你以为呢?毕竟网络已经变得很普及了。sql

这就是著名的 C10K 问题。 经过改善操做系统内核和从像 Apache 那样的线程服务器迁移到像 Nginx, Node 这样的事件驱动服务器,工程师们解决了这个 C10K 问题。编程

但如今咱们面临着一个更大的挑战,若是同时应对一千万个链接呢?要解决这个难题,须要些更变革的技术。segmentfault

在数据中心,服务器管理员们并不须要面对这样的挑战,但根据来自红帽(Red Hat)的 Dave Neary 在最近在 FLOSS Weekly 节目中所说,咱们已经跨过了单个系统管理员管理过万台服务器的壁垒。服务器

咱们应该忽略这个里程碑事件吗?

绝对不是。这样 200x-2000x 的增加是一个了不得的成就。Dave 回忆说,在九十年代,一个管理员只能管理四五台微软的服务器,一个 Linux 的系统管理员也只能管理 50 到 60 台的服务器。网络

如今,公司们已经开始用单个系统管理员管理超过 10,000 台的服务器了,这个巨大的改变深入影响了两样事情:1)IaaS,把数据中心改为弹性的可编程的资源,把操做从基础设施中分离;2)开发操做革命,它强调工具、文化、自动化、度量、资源共享和基础设施的编码;nosql

那么须要怎样才能够令一个系统管理员就能够管理一千万台服务器呢?

谁会知道?固然是谷歌公司了。
James Hamilon说,计算服务器的数量是困难的,微软说,他们有一百万台服务器,而后,谷歌的服务器预计会达到一千万台,因此咱们离单个系统管理员管理千万台服务器的日子还有些远;工具

可是,当这种状况发生时,下面所列就是这些系统的基础:
this

  1. 把数据中心当成单独一台计算机那样对待
  2. 而后,在数据中心内部,在计算机群上部署可复用的多维度多重做业,以便提升机器利用率和节约金钱
  3. 但这仅仅是一个数据中心,这并非把你从 十 带到 百万 台服务器。对于千万台的服务器,你必须利用好这些数据中心,因此,你要建一个 Spanner 那样的能够管理百万台机器、几百个数据中心和数万亿个数据项的系统;
  4. 固然,你还须要建造一个巨型网络系统,把这些数据中心链接在一块儿;
  5. 最后,当你真的面临一个系统管理员管理千万台的服务器,你极可能须要付出巨大的精力去作深刻的挖掘,使得以前的工做变得有意义。

在高层面来讲,单个服务器同时应对千万个链接和单个系统管理员同时管理千万台机器是同样的:可扩展性就是一切。google

但在低层面,他们是彻底不同的。处理千万个链接是关于扁平化处理数据,减小层面,单独本身的事情;而管理千万台服务器是关于把智能灌输到更加智慧的层面;这就很像人类身体内部万亿个个体经过本身的小系统共同协做,而后被平衡化和去中心化的大脑所处理。

原文:We Finally Cracked The 10K Problem - This Time For Managing Servers With 2000x Servers Managed Per Sysadmin

翻译:SegmentFault

相关文章
相关标签/搜索