自2006年Google公司提出云计算的概念以来,作为一种新的技术和商业模式,其概念众说纷纭。相关领域的各方机构和专家分别从不同的角度对云计算进行了定义,比如有的从应用场景划分,有的从资源角度划分等。
其中,2009年9月美国国家标准技术研究院(NIST)提出的云计算定义,很具有代表性,目前已经被业界广泛接受:“云计算是一种可以通过网络方便的接入共享资源池,按需获取计算资源(这些资源包括网络、服务器、存储、应用、服务等等)的服务模型。共享资源池中的资源应该可以通过较少的管理代价和简单业务交互过程而快速部署和发布。”另外,NIST在定义之外,还提出了云计算的部署场景、资源类型和技术特点等对此概念的外延。
在NIST的上述定义中,“网络”直接出现了两次,但前后两次的“网络”在云计算中的作用明显不同。另外,网络在云计算中的第三种作用,被NIST隐藏在其中提到的“资源池”中了。而在云计算的概念外延中,“宽带接入网络”也是云计算的5大基本特点之一。
第一次出现在该定义中的“网络”,负责将云计算的服务提供者和用户连接起来,能够让云服务随处可用。云计算概念外延中的“宽带接入网络”,作用也与此等效。
从应用范围看,这里的网络可以是公众互联网(Internet)、专用IP网或虚拟专用网(Virtual Private Network, VPN)。而接入技术,可以是有线的(如xDSL,数字环路线),也可以是无线的(无线局域网或3G网络)。移动云计算的说法,也是从这个角度说的。
从用户终端看,可以是通用的软终端(如浏览器方式),也可以是专用的软终端(如一些云安全应用,需要用户下载特定的客户端软件),有的甚至是与硬件相关的(如Apple最近推出的iCloud,只能在Apple系列产品之间提供用户数据的同步服务)。
云计算对这里的“网络”提出的新要求,与“未来网络”、“下一代互联网”和“下一代网络”等,一直所追求的目标基本一致,即需要网络提供更高品质保证的服务、更安全可靠的信息传递、更节能绿色的服务和无处不在的服务等。
第二次出现在NIST云计算定义中的“网络”,自身与计算、存储等并列成了一种资源,一种能够廉价而快速的提供给用户的“网络”资源。从这个定义看,IP VPN就是一种典型的云计算服务:利用MPLS/IPSec/L2TP等隧道技术,通过IP网络(IP专网或互联网)为企业或个人用户,提供具有质量保证的、安全可信的网络资源出租服务。
面向云计算的VPN业务,是对传统IP VPN业务的发展,向那些希望从数据中心外包软件、平台、计算或存储的用户提供灵活的网络资源出租服务。这些VPN用户的典型特点是不希望使用公众互联网访问云计算数据中心,但希望更多地、更精确的共享虚拟机、物理服务器等云计算数据中心资源,同时对端到端的资源使用有控制能力。面向云计算的VPN将传统VPN的终结点,从广域网的网络边缘延伸到了数据中心内的服务器上甚至虚拟服务器上,让数据中心的各种云计算服务也都成了VPN的一种新属性。
第三,在该定义所涉及的“资源池”中,还隐含了对“网络”的第三种理解,即将各种资源连接起来形成共享资源池的“网络”,主要是指互联网数据中心(Internet Data Center, IDC)内部的网络。目前IDC内部有三类网络:连接服务器的计算机网,底层主要使用的是Infiniband技术;连接存储设备的存储区域网,底层主要使用的是Fiber Channel技术;IDC与外部连接的通信网,底层主要使用的以太网技术。
随着云计算将计算、存储和网络都统一当作资源来对待,IDC中的“三网融合”也必须实现。云计算数据中心追求统一网络架构、统一技术和统一管理,以简化系统,降低复杂性带来的安全风险和脆弱性。从目前的发展看,IDC底层的网络技术,必将统一到新型的以太网技术上。以太网发源和成功于局域网,在完成了对广域网、城域网和无线局域网的入侵后,目前已经进入了最后一个领地:IDC(即第一公里),技术也从最迟的尽力而为发展到融合型增强型以太网,从而能够支持存储网络和服务器网络。
数据中心的“三网融合”刚刚起步,因此如何低成本、大容量和无阻塞的,将云计算数据中心中的各种资源连接起来形成资源池,业界的利益和争议很大,突出体现在两个方面:一是数据中心的大规模组网,二是数据中心的虚拟接入。
在大规模组网方面,IETF主张TRILL(Transparent Interconnection of Lots of Links (trill))协议,而IEEE主张对STP(Spanning Tree Protocol)扩展。TRILL主要针对以太网STB协议的缺点,即STB无法利用交换机之间私有的可用路径,因此路由不会总是最短和最快的,而且收敛时间比较长,直接导致未落扩展性不好,以及对链路故障比较敏感。IEEE的最短路径桥接技术,是对多路径STP的扩展,也使用的是链路状态技术,以让交换机学习最短路径和动态调整拓扑。两种技术标准都有产业界巨头的强力支持,而其他巨头要么站队,要么同时支持这两种协议。值得一提的是,很多企业对这两种尚未完成的标准,竟然已经做了各自私有的扩展。
在虚拟接入方面,目前也已经出现了两种解决思路,一是在标准以太网帧中增加一段专用的标记(VN-Tag),用以区分不同的虚拟化网络接口(VIF),以识别特定虚拟服务器的流量。这种方案需要对服务器和交换机同时做修改,需要配合做工作,才能够识别和处理VIF.另外一种方案是修改生成树协议和重用Q-in-Q,以便解决STP中规定的数据帧不能发往收到这个帧的端口的问题,因为这在虚拟化环境中是允许的;在基本的802.1q标记外增加了一层表示不同虚拟机的定义,在VLAN之外能够通过Q-in-Q区分不同的虚拟机。
上面所讨论的“网络”,是云计算中涉及到的IP层和下层技术,如果将网络新技术的讨论范围向上延伸,那么为云计算提供可靠性服务的TCP(传输控制协议)技术,也需要一些重大变革了。面向云计算的TCP至少涉及到三个问题,一个是动摇了互联网核心设计理念,第二个是需要为TCP已有的通信模式再增加一种新的类型,第三个是TCP中的拥塞避免和控制机制的改进。
“端到端透明”是TCP/IP的核心设计理念,它假设网络是不可靠(IP协议)的,因此将所有可靠性的机制(TCP协议)都放在了终端上。这一理念的基本假设是如果网络不可靠,那么通信终端必须是可靠的,否则只能中断通信服务了。因此,通信终端不可靠的问题,不在传统TCP/IP协议的考虑范围内。但从云计算的角度看,如果云计算的一个服务器(通信终端)宕机了,应该允许用户将云服务自动切换到另一台服务器(从TCP的角度看,指不同IP地址的服务器)上去,以保证服务的连续性和可靠性,但TCP协议显然做不到。云计算中的服务可靠性问题,是靠应用层还是需要设计新的面向云计算的TCP,目前还处于理论探讨阶段。
第二,需要在TCP协议中引入Incast拓扑模型。Incast是many-to-one的一种通信模式,当一个父服务器向一组节点(服务器集群或存储集群)发起一个请求时,云计算服务器集群中的节点都会同时收到该请求,并且几乎同时做出响应,很多节点同时向一台机器(父服务器)发送TCP数据流,从而产生了一个“微突发流”。这种情况主要发生在云计算数据中心,尤其是那些以向外扩展的方式实现的分布式存储和计算应用(如Hadoop, MapReduce, HDFS等)。目前已经提出了Data center TCP(DCTCP)的技术标准方案,来应对这一问题。
第三,越来越多的人认为,云计算的终端也需要参加云计算的服务,因为没理由只使用云服务器上的资源,白白浪费掉终端上日益丰富而廉价的计算和存储资源。要解决这一问题,就涉及到了云终端和云服务器之间,计算、存储和通信三种资源的协商问题。虽然传统TCP协议也在服务器和终端之间做通信流量速率的协商,但存在两个明显的缺点:1)传统TCP的资源能力协商是隐式的,靠推测实现的,不是显式的;2)没有区分计算资源和存储资源,与网络资源在经济方面的差异性。