多租户网络技术

标签:
多租户网络虚拟交换机分布式自动化云计算it |
分类: 虚拟化 |
文/王松波
一、 什么是多租户技术?
多租户技术是云计算中一种软件架构技术,旨在解决如何在多用户的环境下(比如云计算环境)共用相同的系统或程序组件,又确保各用户间数据的隔离性。
在多租户技术中,租户(Tenant)是指使用系统或计算资源的用户,包含在系统中可识别为指定用户的一切数据,比如在系统中创建的账户与统计信息(Accounting Data),以及在系统中设置的各式数据和用户所设置的客户化应用程序环境等,都属于租户的范围。以公有云为例,云服务提供商所设计的应用系统会容纳数个以上的租户在同一个环境下使用。比如亚马逊公司就在其数据中心为上千个企业用户提供虚拟服务器,其中包括像Twitter以及华盛顿邮报等知名企业。这些企业就是租户。在私有云的环境中,租户则变成了企业或政府中对IT资源占用的各个部门,这种占用不同于以往对资源的永久占有,而是指在特定的时间段或地点共享私有云中的资源。比如某公司的视频会议系统部署在公司总部的私有云数据中心中,而分公司在每周一的下午16:00—17:00租用这套视频会议系统,这个分公司就是租户。所以多租户的环境是云计算资源管理和部署的典型应用场景。我们可以归纳一下多租户应用的需求:
- 必须保护租户数据的隐私与安全。不同的租户在共享数据中心的硬件设施的同时,会按照各自的需求定义他们的虚拟化资源。而这些虚拟化资源,对于不同的租户来说,应相互独立和隔离;
- 多租户的资源是按照服务请求,动态创建的。租户租借计算资源,是和服务提供商签订的服务协定,有一定的时间限制(租户可以任何时候,任何地点来申请或取消对计算资源的使用)。服务提供商必须按照协定动态地进行部署,满足租户的需求。比如华盛顿邮报就和亚马逊签订了S3的服务。在每天早晨5:00至7:00,亚马逊为华盛顿邮报提供200台虚拟服务器,用以进行排版;超过服务时间后,亚马逊就可以将这些虚拟服务器资源进行回收。在企业的私有云环境中,这种对计算资源的动态申请和部署的需求也是存在的。比如上述的例子:当分公司在私有云环境中需要私有云数据中心给其快速动态地部署视频会议;出差到分支机构的员工,需要在当地办公室直接使用他的应用,这时候这种多租户的资源就需要在任何时候、任何地点根据租户和私有云管理员达成的服务条约和策略进行智能、快速、自动地部署。
二、 多租户网络需求分析
多租户的计算模式是云计算技术架构中面向服务的最为典型的应用模式。它要求服务器计算环境,存储资源及其网络资源的设计和部署必须提供自动化、快速性、动态性以及移动性、安全性和面向商业服务等需求。以下我们重点对多租户环境下网络的技术进行分析。
多租户的计算环境要求网络应根据多租户应用的需求,为其提供相应的网络服务。相对于传统的网络技术,多租户的网络技术为了适应计算资源池化的特点,会面临一些不同的需求。
- 多租户网络必须满足虚拟服务器之间的隔离需求。在云计算中,服务器虚拟化将传统的物理服务器虚拟化成若干个虚拟服务器,每个虚拟服务器运行着独立的操作系统。每个租户拥有虚拟服务器资源池中的一个虚拟服务器或一组虚拟服务器。如图1所示,假设在一个物理服务器中有6个虚拟服务器分属于四个租户,虚拟服务器A和B属于租户甲;虚拟服务器C和D属于租户乙;虚拟服务器E属于丙公司,虚拟服务器F属于丙公司的子公司丁公司。所以,多租户网络必须能够满足虚拟机之间的隔离需求,虚拟机A,B不能和虚拟机C,D通讯,即A,B和C,D必须是隔离的,这是云服务提供商必须保证的。每个租户在虚拟的资源环境中,必须有自己的独立标识,即租户ID,又叫T-ID;同时每个租户都必须有自己的独立的网络链路;即虚拟网络拓扑。
http://www.h3c.com.cn/res/201203/13/20120313_1332278_image001_740880_30008_0.jpg图1 多租户网络隔离示意图
- 多租户的网络必须是策略驱动的网络。从图1的应用场景中可以看出,虚拟机之间又需要互相通讯,比如虚拟服务器E和F,它们之间必须在一定的网络策略中进行有条件的互通和数据共享。所以,每个租户必须和云服务提供商签署关于网络服务策略,即每个租户有自己独立的网络策略部署方案。
- 多租户的网络必须确保每个租户不同的服务质量。在多租户网络中,每个租户有不同的应用,所以,云服务提供商必需确保每个租户的服务质量,即服务的SLA。如对带宽的保证,在流量拥塞的时候确保最低带宽,实现拥塞避免等。所以在多租户网络中,每个用户的QoS策略及其流量策略非常重要。
- 多租户网络必须能够实现租户跨广域网或城域网的互联互通。在多租户网络中,租户的虚拟服务器的部署并不一定都集中在一个数据中心,而是大部分分布在不同的数据中心,有的需要跨越城域网甚至广域网。在这种情况下,多租户网络必须能够跨越互联网实现租户的互联互通。例如在某大型企业的私有云中有两个数据中心,分别位于杭州和北京,企业内部租户经常在两地移动办公,其对应的虚拟机(虚拟桌面)经常需要在两地迁移。两个数据中心通过租借运营商的线路链接,即数据中心的交换需要跨越互联网。
以上需求对现行的网络提出了新的技术挑战。现行的物理网络必须实现网络资源虚拟化,共享物理网络拓扑,并为多租户提供隔离的策略驱动的适应动态、快速部署的虚拟网络(如图2所示)。
http://www.h3c.com.cn/res/201203/13/20120313_1332279_image002_740880_30008_0.png图2 多租户网络的技术总览图
三、 多租户网络技术
1. 解决多租户网络互相通讯的技术:虚拟交换机技术
虚拟交换机技术就是解决不同虚拟机之间相互通讯的一种交换机系统。它不同于普通的物理交换机,是一种软件模块,位于虚拟机和服务器的网卡之间,将不同的虚拟服务器虚拟网络接口和服务器的物理网卡接口连接起来,按照不同的转发逻辑形成的一种软件转发的交换机系统。
http://www.h3c.com.cn/res/201203/13/20120313_1332280_image003_740880_30008_0.jpg图3 虚拟交换机架构
图3所示为虚拟交换机的架构示意。虚拟交换机将多个虚拟机在Hypervisor上的网络接口和网卡的uplink端口连接起来,实现虚拟机之间的通讯以及虚拟机和外部网络交换机之间通讯。虚拟交换机实现上述通讯的转发逻辑可以是多种多样的,比如普通的二层交换机的(VEB)桥接模式转发:即基于虚拟机的MAC地址进行转发,实现各个虚拟机之间的二层互通。H3C在虚拟交换机的转发逻辑上进行了创新,实现了VEPA的转发(VEPA是HP协同H3C向IETF提交的标准草案),即将多个租户之间的流量全部折射到外部交换机中,通过在外部交换机(ToR交换机)上的虚拟子接口上施加网络策略(转发路由策略,广播策略,安全ACL策略,链路QoS策略等),实现对各个租户的虚拟机之间的流量及其互通进行控制。这样各个租户的相互隔离的策略就可以在网络中(物理交换机)上进行实施,而不必在服务器内部的Hypervisor中进行。不仅节省了服务器中的资源消耗、提高了网络性能,也使网络策略在虚拟机的租户和网络设备之间的配置部署获得了一致性。在图3中也可以看到虚拟交换机中实现了三种转发逻辑:VEB转发,VEPA转发和多通道转发。
2. 多租户网络中的分布式租户跨越互联网技术
云计算中的多租户是分布式地位于计算资源池中,有的租户可能有两个虚拟服务器位于北京的A数据中心,另外两个虚拟服务器则位于上海的B数据中心。租户内部的计算资源需要相互通讯或者需要迁移,备份时,就要求多租户网络需要解决跨越互联网的挑战。互联网是TCP/IP的IP网络,而租户的计算资源集中的数据中心一般是二层网络。如何使二层网络跨越互联网,实现虚拟机之间的交互,是当前多租户网络中待解决的问题。目前,HP联合微软公司向IETF提出了nvGRE草案。该草案的核心是解决了多租户网络的两个问题:
- 解决了多租户网络的标识问题。在云服务提供商或私有云的环境中,租户的数目非常多,每个租户的网络又必须严格隔离。所以常用的4k的 VALN数目不能满足需求。nvGRE草案提出了Tenant-ID,用于标识租户的网络,Tenant-ID有24位,最多可以支持1600万的租户。可以满足大型数据中心租户的要求。
- 解决了租户的虚拟机之间通讯需要跨越互联网的问题。当租户的虚拟机需要迁移或者租户的网络中虚拟机之间需要相互通讯时应用该协议,使用GRE隧道承载租户二层网络,这种承载网络技术又叫做Overlay网络。在隧道内,租户的网络报文及其网络上下文信息没有改变,通过GRE隧道,可以使用三层路由技术,使报文穿过IP互联网。
3.多租户网络的自动化部署方式
多租户网络特点是:租户在任何时候、任何地点都可以动态地申请计算资源,包括网络资源和存储资源。所以,多租户的网络必须伴随服务器及其存储的资源的整个生命周期(产生,更新,删除,迁移等)动态地进行部署。多租户的网络部署必须与整个计算资源虚拟化管理相融合。
但是,融合将不可避免的会遇到接口不统一的问题。很多厂商采用了自己内部的私有接口和协议,这样对用户部署私有云会带来很大的不便。H3C多租户网络的部署和多租户的计算资源虚拟化管理融合,采取了开放的标准协议和接口。通过采用IEEE802.1Qbg定义的协议,将租户虚拟机的网络接属性通过VDP及其CDCP协议,与网络侧的交换机进行协商和发现。这样租户虚拟机的网络接口就可以通过协议自动在网络交换机上得到映射。对租户之间的通讯的网络策略就可以绕过服务器,直接实施在物理交换机的虚拟子接口上(如图4所示)。
http://www.h3c.com.cn/res/201203/13/20120313_1332281_image004_740880_30008_0.jpg图4 多租户网络自动部署租户网络策略
网络用户基于多租户制定的多租户网络策略在虚拟机管理员创建虚拟机的时候,通过VDP协议,自动地、快速部署到物理交换机中。同样地,在虚拟机管理员删除虚拟机的时候,相关的VSI信息也会自动地进行解关联。因此,对多租户的网络配置的工作量大大减轻。
四、 多租户网络的设计架构
多租户网络在拓扑上和传统的网络是有区别的。传统的网络拓扑会受物理网络设备及其物理网络端口的限制,但在多租户的网络中,网络拓扑将被虚拟成以下的几个抽象概念:租户、网络、端口、虚拟子接口。它们的关系呈现树状结构(如图5所示):
http://www.h3c.com.cn/res/201203/13/20120313_1332282_image005_740880_30008_0.png图5 多租户网络关系树状图
所以,每个租户可以拥有多个网络,对于数据中心网络来说,就是拥有多个VLAN,这些网络通过VLAN形成二层隔离;每个网络下拥有多个端口,这些端口的连接,形成了VLAN的虚拟链接关系图;在每个端口中,又有多个虚拟子接口;这些虚拟子接口通常意义上是虚拟机网络接口在网络交换机或路由器上的端口的映射。所以针对每个租户的网络资源的描述,就可以通过上述的树状图来表示。
设计多租户网络的时候,可以通过这几个抽象概念进行网络实例的定义,并定义其相关的属性。比如租户ID,VLAN ID及其虚拟子接口的IP 子网等。同时按照定义的策略和他们之间的关系,将其附着在不同的实例上。多租户的虚拟网络接口可按照层次关系进行如下的设计:vNIC(虚拟机)―》vPort(虚拟交换机)-》pNIC(网卡)-》VIF(物理ToR交换机)。如图6所示:
http://www.h3c.com.cn/res/201203/13/20120313_1332283_image006_740880_30008_0.jpg图6 虚拟交换机的架构示意图
五、 结束语
多租户网络技术是云计算技术架构中的重要环节,并形成了一种新型的云计算服务模型:NaaS(网络服务)。位置等同于IaaS,PaaS及其SaaS。未来NaaS将会随着云计算技术的发展,而不断成熟,并支撑服务于云计算的其他服务。