大家都知道互联网是如何诞生的:是军方需要一个冗余的“网络的网络”,然后解决了如何用现有网络设备加上新的协议来实现这一目标的问题。今天历史似乎正在重演这一故事,我们再一次需要用现有的基础设施来构建软件定义网络软件定义数据中心。
正如孤立的网络连接成互联网后,世界为之改变一样,当“数据中心”从放置在各个物理位置上的硬件中抽象出来之后,计算也正在发生质变。这样一种无处不在的抽象能够让我们以一种前所未有的方式连接、汇聚和配置计算资源。
完全虚拟化的世界
软件定义数据中心的一个重要的赋能因素就是虚拟化。我们现在可以将三大关键的计算资源虚拟化和池化,它们就是服务器、存储和网络。与此同时,我们正在逐渐接近一个复杂的临界点,一旦到达这一临界点,我们就能够对这些被池化的虚拟资源进行随心所欲的切片、切块,以及重新组合。
这种让软件定义数据中心得以实现的、尚未成熟的技术就是网络虚拟化。不过Arista、思科、微软和VMware都在这方面下着功夫——VMware甚至为此而收购了Nicira——它们的目的都是为了让虚拟网络能够预配置、预扩展,甚至可以像我们创建和迁移虚拟服务器那样,迅速便捷地跨物理网络进行迁移。
这么做对于实现软件定义数据中心来说意味着什么?设想一下,我们可以根据关键应用的需求,只须滑动鼠标便可配置好一个数据中心,并为了满足关键应用的需求而逐点配置好池化的资源。多个软件定义数据中心可以共用物理基础设施,每个租户都能拥有自己的虚拟网络,自己的身份和认证机制,而不再有传统VLAN的可用性和扩展性限制。
演进中的各种标准
这种软件定义基础设施的早期案例在上周浮出水面,那就是eBay公开宣称它正在使用OpenStack和Nicira虚拟化平台(NVP)。但是网络虚拟化要想发展,标准化必须首先扎根。目前的网络虚拟化有两个相互竞争的标准:VXLAN和NVGRE。为控制网络交换机而构建了标准接口的OpenFlow协议堆栈支持VXLAN,而且OpenFlow还获得了大多数网络设备厂商的鼎力支持。
另一个大麻烦是Quantum标准,这是OpenStack项目的网络组件。Quantum提供了应用层的网络资源抽象,并在虚拟交换机(例如思科的Nexus产品线或开源的Open vSwitch)上配备了一个API。今年秋季我们就会看到第一个含有Quantum以及Compute(Nova)组件升级版的OpenStack版本。
虽然InfoWorld广泛地报道过OpenStack,但我们还是要指出很重要的一点,单靠OpenStack实现不了软件定义数据中心。它只是可接入各种解决方案——如红帽用于服务器虚拟化的KVM,或者Nicira用于网络虚拟化的NVP中的一个管理框架而已。但同样清楚的是,OpenStack将在软件定义数据中心的演进中发挥关键作用。为其提供支持的大厂商非VMware莫属,它在收购Nicira的时候就承诺,要为OpenStack“带来附加值和更多选择”,而Nicira一直在领导着Quantum和Open vSwitch的开发。
软件定义一切
“软件定义数据中心”只是“云”的另一种称呼吗?不全对。我认为云是一个推广应用、平台,或者基础设施服务给内外部客户的的营销术语,希望鼓励用户通过Web形式按需购买。而软件定义数据中心则是一种机制,通过它,可以最有效地交付云服务。
随着网络虚拟化的逐步落实,对企业来说,最短期的收益就是可缓解虚拟化过程中的网络瓶颈。虚拟机的发起和迁移已经变得过分容易,而网络为了适应虚拟服务器负载的增加所带来的巨大变化,其配置却需要艰苦的手动操作。这种情形在未来几年内将会得到改变。
但是长期来看,谁又能说出软件定义数据中心会引导我们去向何方呢?实际上,软件定义数据中心目前也只是刚刚开始,因为计算、存储和网络硬件还没有足够的能力去适应虚拟化一切这样的日常开销。
这就是我们现在要做的事情。不久之后,我们就会有能力跨各种公有云和私有基础设施去反复试验各种各样的新型数据中心体系架构。这就像上世纪70年代在ARPANET工作的人没有一个能够预料到YouTube的出现一样,现在也没有人能够预测这种自由分配和配置大量虚拟化资源的能力会把我们带向何处。