随着云计算和大数据等新兴应用的快速发展,“数据中心即计算机”(data center as a computer)的技术发展趋势逐渐明朗。数据中心作为一台计算机,与传统的高性能计算机具有很大的不同。在高性能计算领域,因为服务器被独占式的分配给租户使用,所以其主要的优化目标是“算得快”。但是在云计算领域,为了提高数据中心的利用率、降低其运营成本,服务器整合(server consolidation)技术将成为常态。此时,服务器内将同时运行不同租户、不同应用的实例。一般来说,这些实例将以虚拟机或者容器的形式存在,从而大幅降低系统部署的复杂度、并提高其灵活性。
数据中心网络作为数据中心的核心部件,对多租户、多应用的生产环境的支持是必不可少的。为此,诸多挑战需要被解决,例如虚拟化带来的MAC地址爆炸、二层网络的扩展性和三层网络不支持IP地址迁移的矛盾、以及应用需求的多变性和网络配置的复杂性之间的矛盾等等。为了解决这些问题,研究人员提出了网络虚拟化的概念。通过为不同租户、不同应用构建相互隔离的虚拟网络的方式,实现不同租户和应用之间的地址空间和性能的隔离,从而满足用户对扩展性、灵活性和QoS的多重要求。近几年,数据中心网络虚拟化技术得到了学术界和工业界的广泛关注。特别是随着SDN技术的快速发展,各种SDN控制平台大多集成了网络虚拟化的相关部件。
面对如此众多的相关技术,对其进行全面、系统的梳理,并理解其核心机理,对于我们构建自己的数据中心网络虚拟化平台具有重要意义。目前也存在一些针对网络虚拟化技术的综述文章存在,因此本文将力争站在不同的视角来审视这个问题,从而给读者一些新的内容。关于文章的组织结构,一方面由于内容较多,另一方面我们希望在刊发的过程中能够与读者有充分的交流,因此我们将采用连载的方式来呈现。当前文章的组织结构如下,若读者有更好的建议,我们也会适当的做出修改。
首先,以概要的形式介绍数据中心网络及其所面临的挑战,从而说明数据中心网络虚拟化技术的必要性和紧迫性。
其次,我们会介绍一些当前主流的数据中心网络虚拟化平台,例如VMware NSX,IBM OpenDove,NEC VTN和思科的Nexus Virtual Services Appliance等等。这一章的主要目的是通过对平台的介绍,使大家对数据中心网络虚拟化技术有一些感性认识,并了解其主要功能。
再次,通过上面的分析之后,我们将明确构建一个数据中心网络虚拟化平台需要解决哪些关键问题。针对每一个关键技术问题,我们将单独采用一节来进行介绍。这主要包括:
1. 覆盖网络技术或隧道技术。为用户构建虚拟网络,首先就需要为其构建隧道。目前较流行的隧道技术包括VxLAN,VxLAN-GPE,NVGRE和STT等。这一小节中,我们将对上述技术进行讨论,并做必要的比较。
2. 配置管理技术。为了方便对网络设备进行配置和管理,必要的配置和管理协议是不可或缺的。本小节将对目前较流行的OVSDB,OF-Config和RESTCONF协议进行比较和讨论。
3. 网关技术。虚拟网络与非虚拟网络,以及不同虚拟网络之间的通信都需要利用网关技术,而本小节将对常见的DGW、EGW和VGM等技术进行讨论。
4. 服务链构建技术。数据中心网络虚拟化技术的一个重要的功能即灵活的构建服务链,从而确保不同的数据流流经不同的网络功能部件、采用不同的服务策略。如何灵活的构建服务链以及典型技术,例如思科的vPath和IBM的pSwitch等,将是本小节的主要内容。
最后,我们将对本文进行总结,并对数据中心网络虚拟化方向的未来发展趋势和未解决的关键科学问题进行必要的讨论。