揭秘大数据 | 20、软件定义数据中心
软件定义数据中心最核心的资源是计算、存储与网络,这三者无疑是基本功能模块。与传统数据中心的概念不同,软件定义数据中心强调从硬件中抽象出资源的能力,而并非硬件本身。
对于计算来说,计算能力需要从硬件平台上抽象出来,以让计算资源脱离硬件的限制,形成资源池。计算资源需要能够在软件定义数据中心的范围内迁移,这样才能动态调整负载。
虽然虚拟化并不是必要条件,但是目前能够实现这些需求的仍非虚拟化莫属。对存储和网络的要求则首先是控制平面与数据平面的分离,这是与硬件解耦的第一步,也是能够用软件定义这些设备行为的初级阶段。在这之后,才有条件考虑如何将控制平面与数据平面分别接入软件定义数据中心。
安全越来越成为需要软件定义数据中心单独考量的一个因素。安全隐患既可能出现在基本的计算、存储与网络之间,也有可能隐藏在软件定义数据中心的管理系统之中或者用户的应用程序中,因此,有必要把安全单独作为一个基本功能,与计算、存储与网络这三大资源并列。
仅仅有了这些基本的功能还不够,还需要集中化的管理平台把它们联系在一起,自动化的管理与编排是将软件定义数据中心的各基本模块组织起来的关键。
这里必须强调自动化的管理不只是一套精美的界面,其原因我们在前面已经提到了:软件定义数据中心的一个重要推动力是用户对超大规模数据中心的管理,自动化无疑是必选项。软件定义数据中心的五大模块如下图所示:

了解了软件定义数据中心有哪些基本功能后,我们再看一下这些基本功能是怎样按照层次化的定义逐级被实现并提供服务的。
分层的思路其实已经出现在关于软件定义必要性的探讨中了,之所以出现这样的层次,并不是出于自顶向下的预先设计,而是用户需求推动的结果。现实中无数的例子告诉我们,只有用户的需求,或者说市场的认可才是技术得以生存和发展的原动力。

在传统的数据中心中,硬件之上应该就是系统软件和应用软件了。但是,在软件定义数据中心中,硬件的能力需要被抽象为能够统一调度管理的资源池,因此,必须由新技术完成这一工作。
计算、存储和网络资源的抽象方式各不相同,主要采用软件定义计算、软件定义存储、软件定义网络等关键技术来完成虚拟化和资源池化以及它们之间的自动化部署、配置等一系列工作。老夫将在接下来的三篇文章中分别进行论述。
任何一个复杂的系统都可以被细分成若干个模块,这样既方便开发,也方便使用和维护。按照相同的逻辑,复杂的模块本身也是一个系统,也可以被细分。在模块和层次的划分过程中,只要清晰地定义了模块和层次之间的接口,就不用担心各部分无法联合成一个整体。我们已经列举了软件定义数据中心的模块和层次,接下来再看看不同的具体实现采用了哪些接口。作为数据中心发展的新阶段,软件定义数据中心正在快速发展,还没有出现一个统一的或占主导优势的标准。我们可以从成熟度和开放性两个方面,对已有的解决方案做个比较,见下表/图 3。

从上图/表3中我们可以看到,这些用于构建软件定义数据中心的解决方案在API的成熟度和开放程度上各有特点。作为针对企业级部署的成熟产品,VMware和System Center从接口来看都提供更丰富全面的功能,发展方向也有迹可循。作为开源解决方案的代表,OpenStack则采用了“野蛮生长”的策略。例如,Neutron(原名为Quantum)初始发布的版本简陋得几乎无法使用,但是不到半年,它提供的API就能够驱动NVP等强大的网络控制器。迅速迭代的代价就是用户始终难以预计下一版是否会变动API,这在一定程度上影响了用户对OpenStack的接受度。
系统集成商和服务提供商对数据中心发展的看法与传统的数据中心用户略有不同,但也不统一。
这一群体包括一些从设备提供商转型成为系统和服务提供商的参与者。IBM和惠普这类公司是从制造设备向系统和服务转型的例子,在对待下一代数据中心的发展上,这类公司很自然地倾向于能够充分发挥自己在设备制造和系统集成方面的既有优势、利用现有的技术储备、引导数据中心技术的发展方向。微软作为一个传统上卖软件的公司,在制订Azure的发展路线上很自然地从PaaS入手,并且试图通过虚拟机代理技术模糊PaaS和IaaS之间的界限,从而充分发挥自身在软件平台方面的优势来打造后台,由System Center支撑并提供PaaS数据中心。而亚马逊公司的AWS则是无心插柳柳成荫的典型,从最初用于服务其自有电商业务的私有数据中心转为开放给公有云用户的软件定义数据中心。还有传统的硬件提供商英特尔公司,作为主要的硬件厂商之一,为了满足巨型的、可扩展的、自动管理的未来数据中心的需要,英特尔公司也提出了自己全新架构的硬件——机柜式架构(Rack Scale Architecture,RSA)。在软件、系统管理和服务层面,英特尔公司非常积极地参与开放计算项目(OpenCompute Project,OCP)、天蝎计划等,试图在下一代数据中心中仍然牢牢地占据硬件平台的领导地位。在设计思路上,RSA并不是为了软件定义数据中心设计的。恰恰相反,RSA希望能在硬件级别上具有横向扩展的能力,避免被定义。有趣的是,对RSA有兴趣的用户会发现,在硬件扩展能力更强的情况下,软件定义计算、存储与网络正好可以在更大的范围内调配资源。
通过概览这些数据中心业务的参与者,我们可以大致梳理出软件定义数据中心的现状与发展方向。
(1)需求推动,有先行者。
未来数据中心的需求不仅是巨大的,而且是非常迫切的,以至于用户已经等不及了,自己动手建立数据中心了。传统的系统和服务提供商则显得行动不够迅速,这是有些反常的,但确实是非常合理的。以往用户对数据中心的需求会通过IDC的运营商传达给系统和服务提供商,因为后者对于构建和管理数据中心更有经验,相应地能提供性价比最高的服务。然而,新的、由软件定义的数据中心是对资源全新的管理和组织方式,其核心技术落在软件上。那些传统的系统和服务提供商在这一领域并没有绝对的优势。数据中心的大客户们,例如谷歌、Facebook、阿里巴巴等公司本身在软件方面恰恰有强大的研发实力,并且他们更了解自己对数据中心的需求,于是很顺其自然地自建了数据中心。
(2)新技术不断涌现,发展迅速。
软件定义数据中心发端于服务器虚拟化技术。从VMware公司在2006年发布成熟的面向数据中心的VMware Server产品到如今,不仅仅是服务器的虚拟化经历了从全虚拟化到硬件支持的虚拟化,再到下一代可扩展虚拟化技术的发展,软件定义存储、软件定义网络也迅速发展起来,并成为数据中心中实用的技术。在数据中心管理方面,VMware公司的vCloud Director依然是最成熟的管理软件定义数据中心的工具(2023 年 11 月 22 日,博通以 690 亿美元现金加股票的交易收购 VMware,之后将其终端用户计算(EUC)部门出售给 KKR,并更名为 Omnissa)。但是,以OpenStack为代表的开源解决方案显现出惊人的生命力和发展速度,OpenStack从2010年出现到变成云计算领域中人尽皆知的明星项目,经历了不到2年的时间。
(3)发展空间巨大,标准正在建立中。
与以往新技术的发展类似,软件定义数据中心还处于高速发展时期,并没有一个占绝对优势的标准。已有的几种接口标准都在并行发展,也都收获了自己的一批拥护者。接受这一概念较早和真正大规模部署软件定义数据中心的用户大多是VMware公司产品的忠实使用者,因为从性能、稳定性、功能的丰富程度等方面,VMware公司产品都略胜一筹。而热衷于技术的开发人员往往倾向于OpenStack,因为作为一个开源项目,他们能在上面“折腾”出很多“花样”来。原来使用Windows Server的用户则比较自然地会考虑采用微软公司的System Center解决方案。就像在网络技术高速发展的时期,有许多的网络协议曾经是以太网的竞争对手,最终哪家会逐渐胜出还得看市场的选择。
ok,今天先就此收笔。接下来,老夫将分三篇文章,就软件定义计算、软件定义存储、软件定义网络等关键技术进行分别论述。明天见吧!
(文/Ricky - HPC高性能计算与存储专家、大数据专家、数据库专家及学者)
· END ·