"话说天下大势,合久必分,分久必合"。我们可以看到一个很有意思的事情是数据中心架构的演变也有着类似的发展规律,如图4.2所示。在计算机刚出现不久的年代,数据中心最开始采用的是以主机为核心的计算方式。这是一张完全集中的方式。由于计算机的能力和计算需求都相对有限,能够拥有计算机的企业只需要部署一套主机系统就可以满足所有业务需要。主机的主要特点就是资源集中在一台大型计算机系统中,通过硬件的冗余设计提高整个计算机的可靠性。主机操作系统上的不同应用通过分时的方式共享这些计算资源。
随着计算需求的增加,一台主机逐渐不能满足用户的需求了。虽然主机本身的计算能力和可靠性都比较高,但是价格也非常高。因此,越来越多的企业开始采用一些市场上相对便宜的机遇UNIX的小型服务器。当X86服务器出现之后,企业也更多地采用了这种标准的服务器。这个时期的企业数据中心的不同应用都运行在自己专有的硬件服务器上面,相互之间是完全独立的。这些硬件和之上运行的软件一般都来自于不同的第三方供应商。数据中心就这样从集中演变到了相对分散的阶段。
随着计算需求持续增加,数据中心的规模也在不断增长。一个数据中心中包含成千上万台服务器的情景变得更为常见。当服务器数量持续增加的时候,我们发现数据中心的复杂度和管理成本急剧上升。大型数据中心面临的另外一个问题是可靠性。当一台服务器的可靠性达到99.99%,这意味着一年的故障时间约为53分钟。但是,假设数据中心中有一万台这样的服务器,那么要维护高可靠性就会变得非常有挑战性。虽然可以通过硬件的冗余设计来提高单台服务器的可靠性,但是这种方式的成本比较高,而且随着服务器数量的增加其有效性会随之降低。因此,大型数据中心采取的是通过软件的方式来提高系统的可靠性,在硬件服务器上通过一个软件层来构成一台逻辑上的计算机。这样当底层某一台服务器出现故障时就可以通过软件的方式进行隔离,由于整个数据中心规模很大,因此对整体计算能力和可靠性不会造成影响。像微软、Google、Yahoo等公司的数据中心,一般都是通过这种方式构建。由于底层都采用廉价和标准的通用硬件,因此不同公司的数据中心的关键竞争力都在于其上运行的软件系统。
我们可以看到数据中心的计算方式从之前的分散方式又逐渐回归到了集中方式。虽然这种集中方式是逻辑上的,但是用户感觉到的却是一台巨型计算机。随着网络带宽和软件技术的提升,在物理上分散在不同数据中心的计算机也可以形成一个统一的计算平台。
笔者在跟企业的IT管理人员交流的时候,经常跟他们讨论一个问题,那就是在做IT系统管理的时候是喜欢集中呢还是分散。绝大多数人的回答喜欢集中的系统,这样从管理上更为方便,可以采用更自动化的管理和资源分配方式。我们现在可以看到的趋势是把数据中心当成是一台巨型计算机。也许,这就是新的主机系统,只不过它更强大、更稳定。