分类: 网络与安全
2011-10-11 21:26:34
随着计算机技术和通信技术的不断发展,Internet的商业化和迅速普及,计算机网络相关科学与技术的研究和创新发生了重要的变化。其中最典型的现象是研究人员对真实(或逼近真实)的大规模网络实验环境的需求越来越强烈。大规模网络试验环境是当前计算机网络研究迫切需要解决的问题[7][8]。为了建设能够给计算机网络研究人员使用的大规模网络试验环境,国际上已经有很多先驱的工作和成功的经验。例如DETER,WAIL,Sparta,Aerospace,netbed,netlab,Emulab等大规模网络实验环境。遗憾的是,这些试验环境中很多仅仅为所属的学校,科研机构或Internet商业公司提供特别的独享的试验服务。只有Emulab,WAIL和netlab允许除本身拥有者之外的其他研究人员使用,但是它们有两个明显的缺陷:
1) 并非真正的共享型。每一个独立的试验都需要完全独占试验床的一部分节点,所以研究人员在被分配足够多的节点的使用权之前无法部署试验;
2) 并非真正的大规模。虽然已经有很多节点,但是资源仍然有限,而且所有节点都部署在美国境内,可以容纳的试验数量非常有限,远小于节点总数。
现在,越来越多的服务(或应用)架构在Internet上广泛分布的大量结点上,例如CDNs,Peer-to-Peer等服务,并由此也产生了很多分布式数据结构、服务和系统。
因此,PlanetLab就是这样应运产生的一个具有类似机制的超级测试床,是部署、开发和接入全球规模服务的开放平台,使得使用者可以在真实世界条件下,部署大规模的分布式应用程序。
PlanetLab的主要目标之一是用作重叠网络的一个测试床。任何考虑使用PlanetLab的研究组能够请求一个PlanetLab分片,在该分片上能够试验各种全球规模的服务,包括文件共享和网络内置存储、内容分发网络、路由和组播重叠网、QoS重叠网、可规模扩展的对象定位、可规模扩展的事件传播、异常检测机制和网络测量工具[11][12]。
PlanetLab也可以作为一个超级测试床,在其上更多的狭窄定义的虚拟测试床能够被部署。即,如果我们将服务的概念泛化(一般化)以包括传统上认为的测试床,那么多个虚拟测试床能够在PlanetLab上部署。例如,我们正在开发一个“分片中的Internet”服务,其中在一个分片中重新创建Internet的数据平面(IP转发引擎)和控制平面(如BGP和OSPF的路由协议)。网络研究人员能够使用这项基础设施来试验对于Internet协议簇的修改和扩展。
除了支持短期试验外,PlanetLab也设计用来支持长期运行的服务,这些服务支持一个用户基础(用户群)。即,与其将PlanetLab严格地看作一个测试床,我们采取更长远的观点,其中重叠网既是一个测试床又是一个部署平台,因此支持一个应用的无缝迁移,从早期原型,通过多次设计迭代,到一项持续演进的受欢迎服务。
由于PlanetLab节点遍布世界各地,一个 slice上的虚拟机也就遍布世界各地。这样用户就得到了一个由遍布世界各地的服务器组成的网络。在这个网络上,用户就可以进行全球范围的、真实环境下的网络试验。截止2009年5月25日,PlanetLab已经拥有495个site,1038个节点,这个数字还在增加。
2004年12月27日,中国教育和科研计算机网(CERNET[15])加入PlanetLab,CERNET的加入是PlanetLab中国项目启动的开始,CERNET首先在中国20个城市的25所大学中设立50个PlanetLab节点,这使得CERNET成为亚洲第一个地区性PlanetLab研究中心。
PlanetLab由一个管理中心(PLC)和遍布全球的几百个节点(node)组成。一个节点就是一台运行着PlanetLab组件的计算机(服务器)。节点有许多独立的站点(site)管理和维护。这些站点包括大学、研究机构和Internet商业公司等。一般来说,每个站点至少提供2个节点的服务。每个节点上同时运行大量的条带虚拟机(sliver),节点的资源(包括CPU时间、内存、外存、网络带宽等等)被分配给这些虚拟机。虚拟机如同Internet上的真实主机一样,可以安装和运行程序。
由许多节点上的虚拟机条带组成的一个环境叫做切片(slice)[12]。用户在PlanetLab上的试验部署在各自拥有的切片上,也就是部署在由每个节点上的一个虚拟机组成的一个大规模网络试验环境上。由于PlanetLab节点部署在世界各地,因此切片网络上的虚拟主机也就遍布世界各地,这样用户就获得了一个由遍布世界各地的主机组成的网络试验环境。借此,用户可以进行全球范围的、真实环境下的网络试验。PlanetLab的这套设计思想被研究者称为基于切片的计算(slice-based computing)。
图 PlanetLab的三层体系结构
所有PlanetLab机器运行一个常规软件包,包括一个基于Linux的操作系统,启动节点和分发软件更新的机制,监控节点健康、审计系统活动并控制系统参数的管理工具集,管理用户账户和分发密钥的工具。
PlanetLab的节点上会安装很多 VSERVER虚拟机,并由相关服务组件进行维护。节点由一张启动光盘引导,初次安装时硬盘会被完全清空以存放操作系统镜象及 VSERVER虚拟机。节点的体系结构如下:
图 节点的体系结构