大家都清楚,Linux在服务器领域正变得日益壮大、普及度也在迅速提升。大家应该也知道在Eucalyptus以及OpenStack等开源云程序的支持之下,Linux在云领域的发展迅猛且前途光明。但大家可能不了解的是,Amazon的Elastic Compute Cloud(EC2)目前已经有近半百万台服务器,均运行在红帽的衍生发行版本之上。
来自Accenture技术实验室的研究员Huang Liu是一位电气工程学博士,他通过对EC2基础设施的大量研究取证及云计算体系分析之后,发现Amazon EC2一共由454400台服务器所组成。
尽管Amazon从未官方说明他们在EC2中所运行的基础操作系统,但根据大多数资料的说明及专家们的推论,我们普遍认为他们采用的是一款定制版本的红帽企业版Linux(RHEL)。在虚拟化方面,Amazon用Xen Hypervisor对Linux、OpenSolaris、Solaris、Windows 2003及2008、FreeBSD以及NetBSD虚拟机实例等进行托管。
Amazon从未向外界公开过他们的主流云平台具体由多少台服务器所构成,因此Huang博士不得不通过自己的调研亲自找出答案。他向我们解释称,“要弄清楚EC2云平台的规模可不是件容易的事。最困难的部分在于,由于EC2使用了大量虚拟机系统,因此我们很难明确了解每台物理主机上到底运行着多少套虚拟机。而且即使我们能够确定虚拟机的数量,物理服务器的具体数量仍然是一个谜。正是出于这样的原因,我们决定不再关注服务器的数量,而将着眼点放在服务器机架的数量上。”
Huang博士接着说道,“大家可能很难理解服务器机架的数量要如何统计。我们很幸运地发现了EC2所使用的IP地址分配机制,并从中发现了规律,我们正是利用这一点摸清了相关服务器机架的具体数量。在观察大量由我们启用的运行实例的过程中,这种模式逐渐开始浮出水面;而随着时间的推移,加上实例中路由追踪工具的帮助,我们注意到并最终理解了这种模式。”
接下来,“对这一模式的理解使我们能够推断出机架的实际数量。举例来说,如果我们发现某套虚拟机系统拥有一个固定的内部IP地址(假如说是10.2.13.243),并进一步了解到某套机架正使用/22作为地址范围(例如该机架处于10.2.12.x/22)。在这种情况下,由于每个IP地址至少对应机架中的一套虚拟机,我们就能够以此为契机了解到整个EC2体系中究竟包含着多少套机架。
就以上推断过程自身而言,其实还称不上严谨。我们当然可以尝试利用端口扫描来弄清楚到底有多少台服务器,但这么干会违反Amazon发布的服务条款。出于这种考虑,由于每项Amazon网络服务(简称AWS)“实例中同样包含一个内部IP地址……我们能够利用DNS转换机制弄清究竟有有哪些内部IP地址。”
有了这些数据的支持,他才能够找出服务器机架的确切数量。然后,他将机架数乘以每套机架中的服务器数量。“遗憾的是,我们不知道每套机架中到底安置了多少台物理服务器,所以我们必须做出某种程度上的假设。我们假设Amazon采用了密集型机架排布,也就是说每个机架中拥有四个10U机箱,而每个机箱能够容纳16台刀片服务器,也就是说每套机架上承载着64台刀片服务器。”
这就是Huang博士摸索EC2云平台具体服务器数量的整从此过程。这件工作对他而言算得上一项了不起的成就,而结论同样令人印象深刻——他让我们了解到Linux对于服务器及云平台到底有多么重要。