
1.1 数据中心的历史
顾名思义,数据中心(Data Center)是数据集中存储、计算、交换的中心。从硬件角度考虑,它给人最直观的印象就是计算设备运作的环境。因此,数据中心的发展是与计算机(包括分化出的存储和网络设备)的发展紧密联系在一起的。
从第一台电子计算机出现开始,这些精密的设备就一直处于严密周到的保护中。由于最早的电子计算机几乎都应用于军事,不对公众开放服务,而且每台计算机所需要的附属设施都是单独设计的,因此参考价值非常有限。
商用计算机的大量应用开始于20世纪60年代,其中最具代表性的是IBM的主机(Mainframe)系列,包括700/7000系列、System/360、System/370、System/390和今天仍占据市场主要份额的System Z。这些都是重达几十吨、占地数百平方米的“大家伙”,与之略显不相称的是这些机器缓慢的计算速度和较小的数据存储规模(仅指20世纪60年代,如今的System Z已经非常强大)。在当时,拥有这样一台计算机是非常奢侈的事,更不要说在一个机房同时部署几台这样的庞然大物。
图1-1中,是20世纪60年代的一个主机机房。一排排的机柜就是计算机的主体,而整个篮球馆一样大小的房间就是当时的数据中心。显而易见,这里仅有一台计算机,因此这个数据中心是不需要如今概念上的网络的,也没有专门的存储节点。从管理角度看,这时候数据中心的管理员是需要精细分工的,有专人管理电传打字机(Teletype),有专人管理纸带录入,有专人管理磁带……可以想象,要运行这台计算机不是一件容易的事情。

图1-1 IBM主机所在的机房
值得一提的是,尽管很多与那个年代的数据中心有关的东西都进入博物馆,我们还是可以在现在的计算机上找到一些痕迹。用过UNIX/Linux的读者也许会记得系统中的虚拟终端会用TTY来表示,这就来源于Teletype。
随着大规模集成电路的发展,20世纪80年代开始,大量相对廉价的微型计算机出现了。数据的存储和计算呈现一种分散的趋势,越来越多的微型计算机被部署在政府、公司、医院、学校……绝大多数微型计算机是互不联通的,信息的交换更多依靠磁盘、磁带等介质。到了90年代,计算的操作变得越来越复杂,原有的微型计算机开始扮演客户端的角色,而大型的任务如数据库查询被迁移到服务器端,著名的客户端/服务器模式开始大行其道,这直接推动了数据中心的发展。让我们看看,在经过20世纪50年代至80年代计算机科学理论发展的黄金年代后,计算机工业又经历了怎样的飞速发展。
●1981年Hayes出品了300bps的Smartmodem 300,并发明了AT命令作为标准。
●1983年以太网作为IEEE 802.3标准出现。
●1985年Intel公司出品了80386处理器。
●1986年IBM公司在Model 3090中第一次应用了1兆主频的芯片。
●1987年Sun公司出品了第一块SPARC芯片。
●1989年SQL Server发布。
●1991年Linux登上历史舞台。
●1994年Compaq公司出品了第一款机架式服务器ProLiant。
……
数据中心再也不是只有一台计算机,机架式服务器的出现,更加大幅度提升了数据中心中服务器的密度。随着越来越多的计算机被堆叠在一起,机器之间的互联就显得日益重要起来。无论是局域网还是广域网,网络技术都在这一时期取得了飞速的发展,为互联网时代打下了坚实的基础。数据中心里的网络设备也从计算机中分化出来,不再是“用于数据交换的计算机”。软件方面,UNIX仍然是数据中心的主流操作系统,但是Linux已经出现,并且在这之后的岁月里展现出了惊人的生命力。
进入21世纪,伴随着互联网的出现和被公众迅速接受,数据中心从技术发展到运行规模,都经历了前所未有的发展高潮。几乎所有的公司都需要高速的网络连接与Internet相连,而且公司的运营对于IT设施的依赖性越来越高,需要不间断运行的服务器支撑公司的业务。试想,如果一家公司的电子邮件系统处于时断时续的状态,如何保证公司的正常运作?然而,每家公司都自行构建这样一套基础架构实在太不划算,也没有这个必要。于是,IDC(Internet Data Center)就应运而生了。这是第一次出现以运营数据中心为主要业务的公司。由于竞争的需要,IDC竞相采用最新的计算机,采购最快速的网络连接设备和存储设备,应用最新的IT管理软件和管理流程,力图使自己的数据中心能吸引更多的互联网用户。不仅仅是IT技术,作为专业的数据中心运营商,IDC为了提高整个系统的可靠性、可用性和安全性,对建筑规范、电源、空调等都做了比以往更详尽的设计。
一个普通的IDC可以有数千台服务器、几个TB的网络带宽、若干PB的存储。99.99%的初级程序员和系统分析员都会觉得这已经够大了,只要把应用不断部署进去就可以了。而且,服务器、存储、网络带宽都还有扩充的余地,IDC就像汪洋大海一样,永远不会被用尽。区别只是需要把应用部署在哪个IDC中。这就像当时设计IPv4协议时对待IP地址的态度:IP地址太多了,足够了。IPv4的主地址池好歹分了30年才分完,而孤立的IDC还没有撑过10年就已经进入了互连互通的时期。没办法,总有那么些新东西是我们预见不到的。IPv4的地址会迅速枯竭,主要是因为设计者没有预见到互联网用户的激增和各种移动设备的出现。对于IDC来说,推动互连互通的主要是这样一些需求:
1)跨地域的机构需要就近访问数据和计算能力。例如,许多跨国公司在中国的研发中心,几千人不可能都远程登录到总部的数据中心工作,浪费昂贵的国际流量还在其次,关键是用户体验达不到要求。这些研发中心都有本地的数据中心,并且与公司位于其他国家的数据中心有统一的网络规划、管理流程。
2)越来越大的分布式应用。例如,作为谷歌存储系统核心的GFS,运行在几乎所有的服务器中。较大的GFS跨数千台机器,看起来还可以勉强“塞”进某个数据中心,可惜这样的大文件系统不是一个两个……
3)云计算的出现。与前两个不同,云计算的出现是推动IDC向CDC(Cloud Data Center)发展的最关键因素。提到云计算,就不能不提亚马逊的AWS(Amazon Web Service)。亚马逊在以下地区都有大型数据中心,以支撑AWS的服务:
●爱尔兰的都柏林
●新加坡的新加坡市
●美国的加利福尼亚州帕罗奥图(Palo Alto)
●美国的弗吉尼亚州阿什本(Ashburn)
●日本的东京
●澳大利亚的悉尼
由于这些因素的推动,数据中心之间的联系变得更紧密。不同数据中心的用户不会觉得自己是在一个孤立的环境中,因为跨数据中心的计算资源、存储空间、网络带宽都可以共享,管理流程也很相近。这让所有用户感觉自己工作在一个巨大、统一的数据中心中。多么巨大的应用也不再是问题。需要更多服务器?扩展到下一个空闲的数据中心吧。不仅仅需要物理机器,而是需要把虚拟机在全球范围内迁移?这也能办到,亚马逊已经在这么做了。
回过头看看数据中心的发展历史,如图1-2所示,数据中心中机器的数量从一台到几千几万台,似乎是朝着不断分散的目标发展。但是从管理员和用户的角度看,访问大型机上的计算资源是从一个大的资源池中分出一块,访问云数据中心中的计算资源也是如此。用户体验经历了集中——分散——集中的发展过程。新的集中访问资源的模式和资源的质量都已经远远超越了大型机时代。从一台机器独占巨大的机房,到少量计算机同时各自提供服务,再到无数的机器可以高速互通信息、同时提供服务,可以分配的资源被越分越细,数据中心的密度也越来越高。有趣的是,管理数据中心的人员并没有增长得这么快。网络的发展让管理员可以随时访问数据中心中任何一台机器,IT管理软件帮助管理员可以轻松管理数千台机器。如果管理员不借助专业IT管理软件,一个人管理几十台机器就已经手忙脚乱了。从这个角度看,传统的数据中心是“软件管理的数据中心”。

图1-2 数据中心的发展