研究背景
云际计算是第二代云计算,相比第一代云计算,其发展重点已有很大不同。第一代云计算的主要驱动力是IT企业努力追求提升数据中心的硬件利用率和降低运维成本,主要关注点是单云内资源的管理,尤其是数据中心内部底层各种资源的有效管理,主要采用集中式资源在线服务的手段,技术特征主要包括资源虚拟化、分配动态化和服务自动化等。第一代云计算对应用的直接支持非常有限,通常是将虚拟机/容器以服务的形式(IaaS)交付给用户,用户再自行在虚拟机/容器上安装特定的计算平台/中间件,以运行各种应用(较为常见的是各种Web服务类型的应用)。除了获得资源弹性伸缩的特性外,仍然没有免除计算平台/中间件的繁琐安装调试管理任务,管理成本仍然很高。将计算平台/中间件作为服务交付给用户(PaaS)是另一种使用方式,但由于不同应用的需求差异太大,通用云平台只能提供类型非常有限的PaaS服务,难以满足众多应用不同的需求。因此,第一代云计算主流的应用形式仍然是IaaS模式。然而,随着越来越多的不同的应用开始上云,各领域各行业用户的个性需求和通用云平台支持能力有限的矛盾越来越突出。
当云计算发展到云际协作阶段,如何更精准、更高效地支持各领域各行业用户的多样化应用需求,是云计算发展的新的驱动力。在此阶段,随着以大数据为基础的智能计算技术和物联网等应用的发展,以及越多越多的企业应用开始上云,应用场景更加复杂。于是,对计算、存储和通信等的需求进一步呈现出爆发性、全域性和多样性等特征,通用云平台难以满足越来越多的个性化应用需求,而更多需要由专门面向特定领域的虚拟专用云提供。虚拟专用云构建于多个相互协作、共享资源的云平台之上,向下管理各种异构、分布的云资源,提供全时全域的资源服务质量保障,应对应用复杂的时空分布的资源需求和灵活多样的个性化定制需求;向上为特定领域用户的应用运行提供计算框架支撑和安全可靠保障,领域用户在虚拟专用云中可以方便地直接开展数据处理、实验计算和信息服务等个性业务,大大降低用户使用云计算的技术门槛,从而推动云计算应用向更纵深和更广泛的方向发展。
其实,互联网的发展给了我们类似的启示[1]。以互联网服务提供商(ISP)为例,存在Tier 1、Tier 2和Tier 3三类,其彼此之间的关系如图1 所示。
图1 互联网的多种服务提供商
Tier 1的互联网服务提供商处于最顶端,具有最广泛的全球通达路由,类似于云计算中的Google Cloud Platform、Amazon EC2、Microsoft Azure和阿里云等全球性大型通用云提供者。它们之间为获得彼此区域通达的路由,通常实现对等互联,从而访问到整个互联网。Tier 2在规模上比Tier 1小很多,其网络在地理上只有有限的覆盖范围(如一个国家或地区),在覆盖范围之外依靠从Tier 1购买传输服务。Tier 2的用户主要是终端用户及Tier 3的运营商,类似于云计算中的中小型通用云提供商。在Tier 1和Tier 2之外,还有大量的Tier 3存在,它们通常在特定的本地地域范围内向特定终端用户提供服务,没有自己的骨干网,必须向Tier 2或Tier 1的服务提供商购买传输服务,甚至租借设备。典型的Tier 3是企业网、校园网及各种虚拟运营商。Tier 3类似于云际计算中的虚拟专用云。
云际计算中,各云服务提供者之间的关系如图2所示。大型云虽然拥有若干分布广泛的数据中心,但在很多国家和地区仍然需要其他云的协作,才能提供全面的全球性云服务;中小云通常是地区性的,数据中心规模有限,彼此合作的需求更大。虚拟专用云是大型云和中小云的用户,向其他云服务提供者按需批量租赁或购买虚拟云资源,为特定领域用户提供个性化服务。
图2 云际计算中的多种云服务提供者
所谓虚拟专用云,是指基于跨多个云的云际协作环境,为用户屏蔽数据中心的异构性,按需为特定用户提供特定的云化工作环境的虚拟云平台。虚拟专用云是面向特定领域的,相比中大型通用云提供的IaaS服务,可为特定用户和特定应用提供更友好易用的服务,甚至直接支持用户在线工作,完成计算任务。图3描述了基于云际环境的3个虚拟专用云:高性能计算专用云、大数据分析专用云和实时流处理专用云。以面向教育科研用户的大数据分析虚拟专用云为例,大部分进行数据分析的科研人员对如何配置虚拟机/集群、如何调优计算框架的参数等并不在行,他们熟悉的是R、Python/Scipy/Pandas和Spark等工具的使用。他们希望虚拟专用云能够为其安装配置优化好所需的工具,只需要一个浏览器,就可以在线进入工作环境,进行程序编码、调试、作业运行和结果可视化等工作,提高工作效率。
图3 虚拟专用云示意图
虚拟专用云需要解决以下技术挑战:首先,虚拟专用云管理的资源是“虚拟资源”,来源于其他云提供者,相比现有单云内部的资源管理,在运行环境、服务质量和可配置性等方面,面临众多不确定性问题,因此资源管理和调度更为复杂;其次,虚拟专用云需要为用户复杂的应用需求和作业需求提供支撑,需要具备互联网动态环境下的作业调度、质量保障、弹性伸缩和容错处理能力,并需要具有友好易用的Web交互接口,从而为用户提供在线的工作环境;第三,虚拟专用云应当可以较为容易地按需构建,以快速应对越来越多不同领域用户各种应用的上云需求。
为应对上述问题,国家重点研发计划“软件定义的云际计算基础理论和方法”设立了第五课题——“云际计算中虚拟专用云的动态构建与应用支撑”。该课题从云际计算跨互联网运行的全局视图出发,以如何支撑云际计算的应用需求为目标,研究虚拟专用云的动态构建与应用支撑理论、方法与技术,并开展实验验证与应用示范。该课题由北京大学和国家计算机网络与信息安全管理中心联合承担。
研究思路与主要研究内容
虚拟专用云有两个核心问题:一个是如何提供专用的云化工作环境,另一个是如何管理云际计算资源。这两个问题分别类似于操作系统中的作业管理与资源管理。因此,本课题的研究思路是借鉴新型的面向网络的操作系统[2],构建一个虚拟专用云平台(虚拟专用云操作系统),具有资源管理、作业管理和用户交互等通用功能,并能通过镜像管理与软件栈定制安装的方式,为不同的领域应用安装配置不同的计算框架,快速满足用户的个性化定制需求。整体研究思路如图4所示,可概括为“以操作系统为参考,以软件定义为方法[3]”。
图4 虚拟专用云的研究思路
主要研究工作包括以下内容:
1.云际应用运行机理与计算模型
云际计算中,云际应用使用多个实体云提供的集成服务。不同实体云对外提供的服务质量可能良莠不一。为了更好地保证应用服务质量,拟研究已有计算模型在云际环境中的适配,探索新型跨云的云际应用计算模型及其运行机理。研究在满足服务质量协议前提下云际计算应用的数据和服务资源的需求量的计算方法,探讨异构动态云际环境下云际计算应用的需求可满足性的自动推理和预测方法。
2.软件定义的虚拟专用云平台构建方法
云际计算中,不同领域的虚拟专用云都需要面向特定领域进行定制和扩展。拟研究云际计算云平台的体系结构,如资源分配和管理的接口、作业调度和运行的模型、人机交互和处理的协议,形成支持领域云应用的软件定义构造方法与模型。基于云际计算云平台开放架构及云应用计算模型与适应机制等,研究一种通用的虚拟云平台,支持资源管理、作业管理、交互管理和领域扩展等。研究针对数据分析等特定云应用领域的虚拟专用云平台体系结构,建立面向特定领域虚拟专用云平台及应用的快速构建与开发方法。
3.云际应用审计度量与适应优化技术
针对用户的个性化需求,云际应用需要对云资源进行个性定制和灵活调度,并支持无缝且自动化的扩展、精简和故障转移等。拟研究云际应用的审计模型与度量模型,探讨“成本-效能-公平”等多维导引的综合度量方法,并基于审计模型与度量模型研究系统调度方法与技术。研究以数据可靠性为中心的云际应用可靠运行保障方法,借鉴互联网的可靠性保障经验,研究多层次、多维度的云际应用运行保障与支撑技术。研究云际应用的数据和服务资源在云际中的优化性配置方法,探讨动态云际环境下云际应用配置的自适应方法。
4.软件定义的虚拟专用云实验床与应用示范
云际计算中,虚拟专用云平台对应用进行支撑,必须要解决云际计算如何规约、构造、运行及验证问题。因此,如何针对大数据、高并发和广分布等云际应用的复杂性与处理模式、效率等场景构造虚拟专用云示范实例,如何验证技术成果是一个重要的技术问题。拟研究云际应用的复杂性与处理模式,构建一个分布全国、跨越多个服务商网络、融合多个云计算平台的虚拟专用云平台原型系统,为云际计算提供实验床和验证环境。
虚拟专用云的系统模型与设计
基于云际计算环境(JCCE)的跨云互联体系结构,我们提出了一种符合对等协作机制(Peer Cooperation Mechanism, PCM)的虚拟专用云系统模型,如图5所示。对等协作机制是云际计算环境中的一种核心协作机制,目的是为不同云之间的协作提供一个统一的标准。只要云供应商和虚拟专用云都实现对等协作机制并提供相关的API接口,它们就可以实现彼此合作。虚拟专用云系统模型包括3个水平面板(资源面板、控制面板和业务面板)和一个垂直面板(信息面板)。
图5 虚拟专用云系统模型及工作环境构建流程
资源面板利用软件定义技术,将不同云服务提供者的异构资源进行抽象,再汇聚到虚拟专用云的资源池中。控制面板由云服务发现与组合、工作流编排和资源管理等3个部分组成,负责实现对各种软件定义的资源的具体操作。控制面板为业务面板上的各项功能提供了统一的API接口操作资源池当中的资源。业务面板由访问控制、工作流定义和计费等3部分组成,负责用户的管理以及处理用户的需求、操作和反馈,实现自动构建、迁移和优化虚拟环境。
垂直的信息面板旨在促进3个水平面板的通信。例如,资源平面会将各个资源或服务的注册与监控信息发布到信息面板,控制面版可以通过信息面板获取到目前各种资源的状态,并进行资源的调度等一系列决策。
基于云际计算环境跨云互联体系结构和虚拟专用云系统模型,可快速构建满足特定需求的虚拟专用云,并为用户生成个性化工作环境。图5展示了一个虚拟专用云及工作环境的构造过程:
1.虚拟专用云的管理员定义工作流程,对系统提交包括该虚拟专用云对计算、网络、存储和软件平台等需求的描述;
2.业务面板接收描述,生成部署任务并通过信息面板将这些任务传送到控制面板;
3.资源面板从云际计算环境获取可提供所需资源云平台的对等协作机制并与之通信,获取可用资源信息并向信息面板注册可用资源;
4.控制面板获取任务,然后向信息面板查询可用资源;
5.控制面板为该虚拟专用云生成部署方案,构建运行环境,配置网络,安装所需的软件,运行预定义的脚本,并将结果报告给业务面板;
6.业务面板向虚拟专用云管理员显示结果,虚拟专用云构建成功;
7.虚拟专用云的用户直接通过Web浏览器在工作环境中工作,开发、部署并运行他们的应用程序。
已有工作基础:Docklet1
北京大学课题组在前期工作中,已设计并实现了一个开源的燕云工作空间原型系统Docklet。该系统将作为虚拟专用云技术验证的载体。燕云工作空间的设计初衷是,让私有云的用户方便地直接通过浏览器在云化的工作空间中开展工作,而不必关心硬件管理和系统配置等细节。工作空间由虚拟集群、计算服务和用户数据等组成,用户像使用操作系统远程桌面一样方便地使用工作空间[4]。Docklet提出了一种新的服务模型ClaaS(Cluster as a Service)[5],用一种简单而易于实现的方式让多个不同的应用程序共享数据中心硬件资源。其主要思路是通过容器技术和软件定义技术等,将物理集群虚拟化为虚拟集群,使得大部分分布式应用可以在无需任何修改的条件下直接在虚拟的集群环境中运行,并支持透明弹性伸缩[6]。通过镜像管理和配置管理,可以方便地集成多个大数据处理和科学计算服务,包括Spark、MPI等计算框架,以及Python、R、Java等语言及其库,帮助用户进行数据处理。Docklet基于Web的工作环境界面是通过集成的Jupyter Notebook实现的,用户通过浏览器可以在云端进行诸如编码、测试和数据分析等工作,可以将数据绘成图表,并在浏览器中实时显示。Docklet主要用Python语言实现,目前Docklet的体系结构如图6所示,采用了主机-从机(Master-Slave)结构,部署于数据中心的物理机集群中。该系统已在北京大学计算中心进行了部署2,为全校师生开展数据分析、教学实验等提供服务。
图6 Docklet目前的体系结构
当前版本的Docklet是为私有云单集群环境设计的,未来将针对云际计算环境进行重新设计,作为一种虚拟专用云操作系统,通过对等协作机制和各个云中心进行交互,从而支持跨多云的部署,并解决性能调优、虚拟网络管理、云际资源调度以及工作环境的跨云迁移等多个问题,支持更多复杂的应用场景。
实验床与应用验证
国家计算机网络与信息安全管理中心课题组将开展虚拟专用云实验床平台与应用示范建设工作,推动构建一个分布全国、跨越多个服务商网络、融合多个云计算平台的软件定义虚拟专用云实验床,并可对项目其他课题的相关研究成果进行验证。目前已具备条件或基本具备条件的云平台主要有:
1.公共互联网接入云平台:该平台实现了网络云化,它通过将全国的互联网接入资源进行整合和共享,实现一点接入、全网访问。目前已覆盖全国31个省市自治区,部署了70余个代理节点,接入全国200余条互联线路,覆盖多个运营商,总接入带宽6G以上,包含专线和拨号不同类型及大量IP。
2.虚拟计算云平台:该平台是基于PaaS的一个互联网计算平台,总物理节点数超过1000台,虚拟节点数超过5000台,通过固定专线和PPPoE拨号方式接入31个省市自治区的电信和联通互联网,有效支撑数十种互联网采集业务。
3.基础设施IaaS云平台:该平台提供传统的云主机、云数据库和云硬盘等服务,预计到2017年中期全国云主机规模超过10000台。
另外,根据应用示范与实验床搭建的实际情况,也将适时外租部分公有云。
在云际计算示范应用方面,拟初步支持以下应用:(1)基于多个公共的存储云的虚拟云际存储应用;(2)基于IaaS云和网络云的互联网爬虫应用,实现在任意的互联网出口爬取网页、探测互联网的目标;(3)设计一种计算密集型、可并行进行的应用,如密码破解工作,利用多个不同的计算云,快速实现任务分析与求解。■
1 参见https://github.com/unias/docklet。
2 参见http://iwork.pku.edu.cn。
参考文献
[1] https://en.wikipedia.org/wiki/Internet_service_provider.
[2] 梅宏,郭耀. 面向网络的操作系统——现状和挑战[J]. 中国科学信息科学. 2013,43(3):303-321.
[3] 梅宏,黄罡,曹东刚. 从软件研究者的视角认识“软件定义”[J]. 中国计算机学会通讯. 2015, 11(1):68-72.
[4] An B, Shan X, Cui Z, et al. Workspace as a Service: an Online Working Environment for Private Cloud[C]. 2017 IEEE Symposium on Service-Oriented System Engineering (SOSE). San Francisco, 2017.
[5] Cui W, Zhan H, Li B, et al. Cluster as a Service: A Container Based Cluster Sharing Approach with Multi-user Support[C]//Proceedings of 2016 IEEE Symposium on Service-Oriented System Engineering (SOSE).IEEE: 2016:111-118.
[6] Cao D, Kang L, Zhan H, et al. Towards application-level elasticity on shared cluster: an actor-based approach[J]. Frontiers of Computer Science, 2016:1-18.