基于Docker和OpenStack的高校大数据云实验室构建

2019-09-28 02:32吴青林
实验技术与管理 2019年9期
关键词:镜像虚拟化容器

王 焱,吴青林

基于Docker和OpenStack的高校大数据云实验室构建

王 焱1,吴青林2

(1. 汉江师范学院 教育学院,湖北 十堰 442000;2. 汉江师范学院 数学与计算机科学学院,湖北 十堰 442000)

该文设计了高校大数据云实验室的整体架构。该大数据云实验室以OpenStack云平台架构为基础,通过Docker容器虚拟化方式实现,重点阐述了OpenStack与Docker的集成方案以及Docker镜像制作方法,能为实验教学灵活定制Hadoop、Spark、TensorFlow、Caffe等不同的大数据实验环境。与传统大数据实验室相比,该方案具有部署快速、资源利用充分、投入成本低等特点,是一种有效的高校大数据实验室建设方案。

OpenStack;Docker;大数据;云实验室

2015年,十八届五中全会首次提出“国家大数据战略”,全面推进大数据发展,加快建设数据强国。构建大数据实验室是提高高等院校服务社会发展能力的需要,是实施素质教育、培养具有创新精神的高素质人才的重要保障。由于大数据专业在高校开设时间较短,大数据的各种教学和科研资源尚不完善,高校大数据实验室建设正处于起步阶段,需要进一步完善大数据实验室的功能,加快高校大数据实验室的建设步伐。本文从高校的教学、科研和大数据专业人才培养的具体需求[1-2],提出了高校大数据虚拟实验室的构建方案,有利于提高高校服务社会发展的能力。

1 当前高校大数据实验室建设的困难

(1)建设资金短缺。一些资金充足的高校在建设大数据实验室时通常采用购置高性能硬件设备,同时购买商业化的大数据实验管理系统进行实验教学,通过这种方式引进的大数据实验管理系统,能较好地打通教学、实验、评价、监控、分析环节,功能相对完善。但大规模的购置服务器设备和软件资源,需要投入上百万的资金,多数的高校办学资金紧张,一次性投入大量的资金,存在较大的困难,而且商业化的大数据实验管理系统是一种通用的实验室构建方案,一方面与高校的教学科研需求存在一定的差距,另一方面又容易造成部分实验资源的闲置。

(2)虚拟机效果难以满意。部分高校为了节省实验室的建设成本,采用在原有实验PC机的Windows操作系统下安装VMWare、Virtual PC等虚拟机软件,进行大数据实验环境的搭建,但传统的虚拟机技术需要完整地安装整个操作系统,并且不能共享底层操作系统的功能,难以通过一台普通PC机有效虚拟出集群节点。由于在实验过程中往往并不需要完整的操作系统支持,只需要其中的一部分软件,通过在虚拟机上安装完整的操作系统,虽然功能强大,但需要较多的硬件资源,导致直接在原有PC机安装虚拟机,运行效果达不到集群节点的需求,使部分实验难以完成。

(3)故障恢复困难。大数据实验环境属于分布式计算环境,在软件部署、配置、维护上难度大,并且由于大数据实验项目较多,实验步骤繁琐,缺乏统一的标准规范,并组件更新速度较快,进一步增加了大数据实验环境维护的困难。一些高校实验教师事先为每台计算机分别配置大数据教学实验环境,后期的实验中不能为教师和学生按需分配资源,无法满足学校师生的个性化实验需求,并且这种统一的实验环境在实验过程中容易遭到破坏,一旦实验环境出现故障后,实验指导教师难以在短时间恢复,影响了教学 工作的正常开展,并且增大了实验指导老师的维护工作量。

2 OpenStack框架与Docker

2.1 OpenStack框架

OpenStack是目前最为流行的开源云操作系统框架,作为一个开源的IaaS平台,整个OpenStack包括Nova、Neutron、Swift、Cinder、Glance、Keystone、Horizon等多个常用组件[3-4]。组件中Nova负责维护和管理OpenStack的计算资源、实现虚拟机生命周期管理;Neutron提供云计算环境下的虚拟网络功能服务;Swift提供相应的对象存储,为Nova组件提供虚拟机镜像存储服务;Cinder提供块存储服务,向虚拟机提供额外的磁盘空间;Glance提供虚拟机的镜像服务,用来管理、查询虚拟机的镜像;Keystone主要提供用户身份认证和服务目录管理;Horizon提供一个Web界面操作OpenStack系统。各个组件的相互关系见图1。

图1 OpenStack框架组件关系图

2.2 Docker

Docker是dotCloud公司于2013年发布的轻量级容器引擎,提供了轻量级的操作系统虚拟化解决方 案[5-7]。Docker的Image、Container和Repositories是其三个重要的组成部分,其中Image 类似于虚拟机的模板,是只读的,不能被修改;Container是从Image创建的运行实例,容器之间是相互隔离的;Repositories用来集中存放Image文件的仓库。用户操作Docker的容器类似操作一个快速轻量级的虚拟机,使用Docker可以让开发者打包他们的应用以及依赖包到一个可移植的容器中[8]。目前Docker主要有三大用途:(1)提供一次性的环境,构建软件开发平台;(2)提供弹性的云服务,适合动态扩容和缩容;(3)组建微服务架构,通过多个容器,在本机就可以模拟出微服务架构。

3 高校大数据云实验室构建

3.1 可行性分析

大数据实验室是高校大数据人才培养的重要保障,是全面落实“产、学、研、用”一体化思想的重要途径。大数据实验室应为高校师生提供基础的开发环境,大数据分析环境以及大数据案例资源,从教学、实践、科研多方面满足高校对大数据实验资源的需求。基于Docker和OpenStack混合架构构建大数据云实验室,充分依托进程级虚拟化技术,提供了丰富的实验镜像资源,能为实验教学灵活定制Hadoop、Spark、Hive、TensorFlow、Caffe等不同的大数据实验环境,特别适合用于高校结合本校人才培养方向和本区域社会经济发展现状对大数据实验室进行扩展,为全校师生快速提供个性化的大数据虚拟实验环境[9-11]。

3.2 高校大数据云实验室整体架构

根据高校大数据人才培养以及产学研需求,高校大数据云实验室建设主要为高校师生提供个性化的教学、科研实验环境。大数据云实验室整体架构主要分为硬件服务层、资源虚拟化层、云服务管理层、资源服务层和展示层5个层次,具体的架构见图2。

图2 高校大数据实验云实验室整体架构

高校大数据实验云实验室应达到如下目标:

(1)充分利用现有实验设备,配备相应大数据相关的软件包,考虑高校不同群体的需求,建立多梯度、层次式的系列实验,为全校师生提供丰富的虚拟实验环境,确保高校大数据教学、科研以及技能竞赛正常进行。

(2)实验室的建设充分融合高校师生的教学、科研需求,支撑大数据采集、大数据预处理、大数据存储、大数据分析及挖掘、大数据可视化等关键技术研究,确保大数据实验资源完善,提升高校大数据方向发展能力和自主创新能力。

(3)实验室通过引入高校教师和企业真实案例进行实践训练,与企业项目人才需求进行衔接,确保学生在大数据项目实战层面快速提升,使高校大学生充分了解就业岗位的职业能力需求,为未来就业奠定良好的基础。

3.3 高校大数据云实验室实现

结合高校大数据科研和教学实际,高校大数据云实验室在现有实验设备的基础上,采用OpenStack和Docker混合架构实现,将OpenStack的灵活性和Docker的轻量级优势有机结合,按层次满足高校师生对大数据实验资源的不同需求。高校大数据云实验室实现主要分为两个关键阶段:

3.3.1 OpenStack云平台与Docker的集成

该集成方案把Docker容器当作虚拟机,以Driver的形式与OpenStack的集成,实现对 Docker 容器操作。通过配置Glance管理服务,Docker 可以从Glance存取镜像,该集成方案能够使用现成的OpenStack neutron来管理网络,配置方便简单,具体的融合结构见图3。

图3 OpenStack与Docker融合结构

(1)OpenStack搭建与配置:实验室服务器操作系统选用CentOS7.2.1511,系统通过自动安装工具安装Packstack完成OpenStack的安装过程,由于OpenStack是基于KVM开发的,KVM常常成为默认的虚拟机管理程序。

(2)配置Nova和Glance:对nova.conf中compute_driver选项用DockerDriver代替OpenStack默认驱动,在glance-api.conf文件的container_formats配置项末尾添加docker,这样系统允许对新建Openstack中的容器虚拟云主机进行管理。nova-computer-api调用虚拟API把Docker虚拟驱动当作http agent和Docker REST API互通,达到控制Docker与容器通信的目的。另外,Glance是Docker register服务的本地节点,通过配置 Glance,Docker就能从Glance获取和上传镜像。该集成方案对实验室的服务器的硬件要求较低,并且移植成功率较高。

3.3.2 实验镜像制作

利用Docker容器制作镜像有两种方式:(1)使用基础镜像运行容器,在容器中直接安装软件和进行相关操作,然后通过“docker commit”命令将容器封装成新的镜像。(2)根据具体实验目标和要求,以原有的基础镜像为基础,对Dockerfile文件进行配置编写,使用“docker build”命令构建新的镜像[12]。具体的流程见图4。

图4 Docker镜像制作流程图

由于第二种方式通过编写Dockerfile文件,代码编写简单,并且所有修改都以增量的方式进行分发和更新,执行效率高,容易实现自动化部署管理,因此本文大数据虚拟实验主要采用第二种方式创建Docker镜像方式搭建不同的实验镜像资源,以便更好的实现实验的自动化部署。以搭建Hadoop容器镜像为例,主要步骤为:以Ubuntu 14.04.4为基础镜像,根据实验需要编写Dockerfile文件,主要包括安装SSH、JDK、Hadoop、配置环境变量、配置SSH无密码登录、配置Hadoop、格式化NameNode等关键步骤,并使用“docker build”命令生成Hadoop镜像,生成的镜像大小比在传统虚拟主机中安装Linux小很多。大数据实验时只需要在客户端运行容器,启动 Hadoop集群,即可进行Hadoop集群实验,其他的镜像也可通过编写Dockerfile文件完成。

4 关键技术

4.1 数据持久化方案

Docker容器是由Docker镜像创建的运行实例,在进行大数据实验环境部署时,只需要下载对应的镜像,然后启动容器就可以进行实验。Docker容器中会运行特定的应用,并且每个容器间是相互隔离的,容器运行时产生的数据不会写入镜像,因此需要专门的容器数据持久化方案。Docker数据持久化方案一般采用两种途径:(1)由Docker专门提供数据卷或者数据容器卷来解决;(2)通过docker commit命令提交一个新的镜像来保存产生的数据。第一种方法通过数据卷持久化能够在容器直接共享和重用数据,可以直接对数据卷里的内容进行修改,并且数据卷内容的变化不会影响镜像的更新。第二种方法通过docker commit命令同样能实现保存读写层数据,但实现数据持久化的灵活性不如数据卷方法。

4.2 虚拟化方案

Docker采用了LXC(Linux Containers)内核虚拟化技术,实现类似VM(Virtual Machine)的功能,并且可以在有限的硬件资源上提供给用户更多的计算资源。与VM(Virtual Machine)虚拟化方式不同,Docker主要借助Linux的内核特性,如控制组(Control Group)、命名空间(Namespace)等,能够直接调用操作系统的系统调用接口,容器内没有自己的内核,而且也没有进行硬件虚拟,这样降低了每个容器的系统开销,实现了容器启动快、资源占用小等特征。容器虚拟化直接在操作系统层面上实现虚拟化,能够复用本地主机的操作系统,因此当容器启动的时候,通过进程间调度就可以完成任务,而不需要引导整个系统。图5显示了Docker容器及传统虚拟化技术结构层次对比。

图5 Docker容器及传统虚拟化技术对比

5 性能分析

5.1 快速部署和启动

基于Docker和OpenStack的高校大数据虚拟实验室为实验者提供Hadoop镜像、Spark镜像、TensorFlow镜像、Hive镜像等20多个虚拟机镜像,包含了大数据运行环境和可执行程序,可以跨平台和主机使用。高校师生进行实验时并不需要关心太多的实验环境配置细节,直接使用打包好的镜像文件,非常节约实验环境配置时间,能够快速部署和启动。开发人员可以使用镜像来快速构建一套标准的开发环境,传统的虚拟机方式启动花费时间一般是分钟级,而本大数据云实验室Docker容器启动速度是秒级,能够迅速创建和删除容器,快速实现部署大数据实验环境。

5.2 充分利用资源

采用Docker容器实现大数据实验室资源的虚拟化,采用的是以应用程序为中心的虚拟化技术,能够更加充分利用服务器的软硬件资源。Docker容器完全使用沙箱机制,相互之间不会有任何接口,对资源的额外需求很低,运行时不需要专门的虚拟化管理程序,只需占用较小的存储空间。与KVM 虚拟化技术的资源利用情况进行比较,采用KVM 虚拟化技术时一个虚拟机至少需要几GB的存储空间,而采用Docker容器不需要将客户机操作系统完整地安装在容器中,所需存储空间可以减少到MB级,具有更多的灵活性,并且在管理上更加容易,达到了更高的性能。

5.3 投入成本低

高校大数据云实验室充分利用原有的网络设备资源,不需要增加额外的高性能服务器,也不需要改变原有的网络结构,具有良好的兼容性,通过几台计算机就可以按用户需求虚拟出大数据集群实验环境。这样只需投入较少的成本即可完成大数据云实验室的建设,并且实验室管理方便、维护容易,后续也不需要投入太多的成本对实验室进行维护,较好地满足了高校师生大数据教学、科研的需求。另外,Docker容器几乎可以在任意的平台上运行,这种良好的兼容性方便高校师生在不同平台之间迁移应用,同时数据的迁移成本也减少了。

6 结语

高校大数据云实验室建设充分考虑了高校办学的现实条件,坚持以科学、节约为原则,利用Docker和OpenStack混合架构建立大数据云实验室,能够在投入较少资金的情况下,快速部署个性化的大数据实验环境,并具有良好的可扩展性。可将教学实践、教师科研与企业岗位需求紧密结合,一方面提升了高校的大数据人才培养质量,加强学生的大数据实践能力,另一方面也提高了高校教师的大数据科研能力,推 进产学研合作,促进科研成果转化,体现高校的办学特色。

[1] 廖军,张毅,王成良,等. 高校大数据实验室建设体系研究与分析[J]. 实验技术与管理,2018, 35(11): 241–244.

[2] 李馥娟. 大数据实验室建设与应用研究[J]. 实验技术与管理,2018, 35(5): 243–246.

[3] 金永霞,孙宁. 基于OpenStack的云计算实验平台建设与应用[J]. 实验技术与管理,2016, 33(6): 145–149.

[4] 罗平,王勇,俸晧,等. 一种基于OpenStack的云计算虚拟机放置策略[J]. 桂林理工大学学报,2018, 38 (3): 555–560.

[5] 杨鹏,马志程,彭博,等. 集成 Docker 容器的 OpenStack云平台性能研究[J]. 计算机工程,2017, 43(8): 26–31.

[6] 彭丽苹, 吕晓丹, 蒋朝惠,等. 基于 Docker 的云资源弹性调度策略[J]. 计算机应用,2018, 38(2): 557–562.

[7] Paraiso F, Challita S, AlDhuraibi Y, et al. Model–Driven Managementof Docker Containers[C]. IEEE International Conference on Cloud Computing. 2016: 718–725.

[8] 董博,王雪,索菲,等. 基于Docker的虚拟化技术研究[J]. 辽宁大学学报(自然科学版),2016, 43 (4): 327–330.

[9] 王永坤, 罗萱, 金耀辉. 基于私有云和物理机的混合型大数据平台设计及实现[J]. 计算机工程与科学, 2018, 40(2): 191–199.

[10] 尹学松,蒋融融,张吉先, 等. 面向大数据远程开放实验平台构建研究[J]. 中国远程教育,2016(11): 28–34.

[11] 朝乐门,邢春晓,王雨晴. 数据科学与大数据技术专业特色课程研究[J]. 计算机科学,2018, 45(3): 3–10.

[12] 应毅,刘亚军,俞琰. 利用Docker容器技术构建大数据实验室[J]. 实验室研究与探索,2018, 37(2): 264–268.

Construction on university big data cloud laboratory based on Docker and OpenStack

WANG Yan1, WU Qinglin2

(1. School of Education, Hanjiang Normal University, Shiyan 442000, China; 2. School of Mathematics and Computer Science, Hanjiang Normal University, Shiyan 442000, China)

The overall architecture of the university big data cloud laboratory is designed. Based on the OpenStack cloud platform architecture and through the Docker container virtualization, this big data cloud laboratory focuses on the integration scheme of OpenStack and Docker and the method of Docker image making. It can flexibly customize the big data experimental environments such as Hadoop, Spark, TensorFlow, Caffe, etc., for experimental teaching. Compared with the traditional big data laboratory, this scheme has the characteristics of rapid deployment, full utilization of resources and low investment cost, which is an effective construction scheme of big data laboratory in colleges and universities.

OpenStack; Docker; big data; cloud laboratory

G482;G648.4

A

1002-4956(2019)09-0254-05

2019-02-01

2019-07-13

汉江师范学院2016年度重点科研计划项目(2016A03)

王焱(1980—),女,甘肃天水,硕士,副教授,主要研究方向为现代教育技术及信息管理。

E-mail:wangyanwsr@163.com

吴青林(1977—),男,湖北荆门,硕士,教授,主要研究方向为数据挖掘。

E-mail: 254275383@qq.com

10.16791/j.cnki.sjg.2019.09.066

猜你喜欢
镜像虚拟化容器
容器倒置后压力压强如何变
镜像
难以置信的事情
基于OpenStack虚拟化网络管理平台的设计与实现
镜像
对基于Docker的虚拟化技术的几点探讨
浅析虚拟化技术的安全保障
H3C CAS 云计算管理平台上虚拟化安全防护的实现
取米
镜像