Openstack教学科研云平台的设计实现

2015-06-01 14:54王军锋
中国计量大学学报 2015年4期
关键词:快照镜像机房

王军锋,卫 伟

(中国计量学院 信息工程学院,浙江 杭州 310018)

近年来,随着信息技术的快速发展,各高校专业逐步建立起了相应的计算机实验室,利用上机实验配合课堂理论教学,使学生的实践动手能力得到了有效切实的提高.实验室日渐成为高校日常教育的重要组成部分.但是,随着时间的推移,日益陈旧的计算机设备环境已经不能满足学生上机实践的需求,尤其对于有高计算性能[1]要求的科研实验更是难以满足,云计算和大数据课程的兴起也没有实践平台,大多停留在理论教学阶段,而且大批量采购新设备在一定程度上对学校的经费开支造成了不小的压力.如何利用现有实验设备,配合最新的信息技术,打造能满足科研和教学双重要求的现代化实验室,日渐成为高校机房管理的一项难题.而近来蓬勃发展的云计算技术正好给解决这项难题提供了新的思路和方法[2-4].本文基于最新的Openstack[5]云平台,提出构建全新符合高校科研和教学要求的实验云平台,并进行了功能设计和系统实现.

1 高校实验室的建设现状

在当前高校快速发展的前提下,高校机房建设已经取得了不小的进步,改善了不少软硬件的环境,对于辅助科研和教学起了不小的作用.但是,在机房的日常运维和管理中,还是可以发现不少问题,主要有以下几个方面.

1)在学校层面,需要花费较高经费购置新的设备来替换旧机器,且各学院专业都拥有各自不同机房,机房的硬件采购,运维人员成本不小.同时,机房设备在大多数时间段处于空载,使用率较低,各学院之间基本没有在设备使用上存在共享.

2)在机房管理层面,目前主流机房都采用硬盘保护卡,通常根据机房每学期的教学上机任务课表,由管理员一次性在一台机器上装好需要的系统和软件环境,然后通过网络硬盘数据拷贝安装到机房其他机器.一旦涉及到软件的更新升级或者设置,就要大动干戈对全部硬盘数据对拷,管理成本较高.

3)在师生教学层面,因为硬盘保护卡的原因,学生的实验个人数据在不借助U盘情况下,无法保存到本地,开关机后,无法在下一堂课继续未完成实验,无法保障真正的教学实验效果.同时,学生受限于上机实验的时间和地点,无法个性调配安排,未满足现代化自主学习的理念.

4)在高等科研层面,信息技术日新月异,尤其以云计算和大数据技术[6]为代表的前沿技术正陆续在高校萌芽发展,不少高校甚至已陆续开通了相关课程.学生在学习理论的同时,却无法切身动手体会云计算和大数据技术带来的直观效果.传统机房很少有这样的环境可以提供虚拟化、分布式计算环境.而对于搭建云计算和大数据处理平台,本身又是一项代价不小的工作,在虚拟化平台、分布式平台上进行个人应用开发更是无从谈起.

2 云计算技术的特点和优势

云计算是信息和网络技术发展到一定阶段的必然产物,它是一种通过网络,可以按需给用户提供不同层面的资源服务,分为基础设施即服务(Infrastructure As A Service,IAAS)、平台即服务(PAAS)、软件即服务(SAAS).其中IAAS可以给用户提供基础的计算资源、存储资源、网络资源等.把云计算技术运用到高校资源管理,改善课程教学和科研计算环境成为一种趋势[7-10].

结合云计算集中部署管理的优势,高校在机房建设规划的时候,不必像传统机房那样规划大面积机房场地,配备人员管理和运维,只需要简单购置若干高性能服务器置于学校数据中心,统一管理和运维,就可以减少场地和人员上的投入.

基于云计算共享[11]和按需分配资源的特点,学校层面购置服务器层面后,搭建云平台.各学院各专业可以减少采购新的PC机,根据学院需求,共享校内虚拟机的物理资源.同时,也可以共享平台存储,随时上传下载课件资料数据,方便师生使用.

云计算平台可以自定义镜像,以方便建立虚拟机,这为个性化定制系统软件环境提供了不少帮助.无论是普通的上机编程实验,或者是做配置性实验,亦或者需要高性能科研计算,都可以通过上传自定义镜像,快速启动虚拟机建立满足需要的环境,且可以在各个环境间快速切换.

云计算通过web自主服务的特点,学生可以不受限于时间地点,通过一个客户端,在校园网可以接入的地方,随时完成上机实验.且可以通过快照功能,保存实验数据,以备下次从快照直接启动虚拟机继续实验,保障实验效果.

Openstack是当前开源云计算技术社区里最为活跃的一个项目,众多厂商纷纷加入这个开源项目,例如 HP、Redhat、IBM 等,对 Openstack表示硬件服务器架构层面上的支持,不少存储服务厂商也陆续推出了自身对于Openstack的存储驱动.这在很大程度上推动了Openstack这个开源项目的发展.与此同时,本身该项目因为开源,软件使用几乎无成本,不涉及商业使用授权,且底层源代码使用者可控,在熟悉代码结构技术上,方便程序开发者对于自身特定需求可有针对性地进行二次开发[12-13],完成后可以拥有自主知识产权.而且Openstack官方社区每半年即推出一个新版本,这样的快速迭代使本身这个开源平台越来越完善稳定.

3 系统设计与功能实现

3.1 系统总体架构设计

系统架构如图1,教学科研实验云平台分成三个层面,分别是基础设施资源层、应用管理层和web实验平台自助门户层.虚拟云实验室的一个特点是可以让各租户在校园网络覆盖区域内,通过任意手持终端即可访问云桌面,即可动态获得计算资源和快速部署应用程序,完成科研和教学的需要.

图1 系统架构Figure 1 System architecture

基础设施资源层面借助开源的Openstack云计算解决方案,利用KVM(Kernel-based Virtual Machine,KVM)虚拟化把多台计算性能强劲的物理服务器的资源虚拟化,形成cpu、内存、硬盘等硬件资源池,用户可以按需取得所需资源服务.

应用管理层则是将云平台中的用户认证,资源管理,镜像管理等服务以服务端点的方式提供给用户使用.

web实验平台自助门户是基于Openstack Dashboard项目二次开发的统一系统入口.在校园网络范围内,师生只需通过分配的用户名和密码,即可登录云实验平台,完成资源的获取和快速部署应用,完成科研和教学实验的需要.

3.2 实验云平台功能设计

在研究Openstack的原生服务情况下,结合校园实际科研和教学实验的需求,执行了有针对性的二次功能设计和开发,限于篇幅原因,以下几个方面仅对几个核心模块进行功能设计.

3.2.1 工作流程设计

用户登录实验云平台,用帐号密码登录,身份验证通过后进入实验平台.可以通过界面上的操作取得计算、网络、存储等服务,按需取得资源,创建虚拟机,并通过noVNC等方式,可以远程登录进行科研实验操作.结束后,通过快照保存当前虚拟机状态,然后操作释放资源.整个工作流程设计如图2.详细流程如下:

图2 基本工作流Figure 2 The basic work flow

1)用户登录平台通过验证,其中键入浏览器的登录地址为部署云平台时候就预先规划好的.

2)根据用户的自身业务需求,选择一个可用的公用镜像以启动响应操作系统的虚拟机实例,其中虚拟机的配置(内存、硬盘、cpu等)需要和镜像匹配.

3)根据是否有与外网通信功能,可以在租户内为虚拟机分配Floating IP,让其可以和外网通信.如若不需要,则可以不绑定.

4)用户启动虚拟机之后,可以通过noVNC或者ssh协议连接到虚拟机,完成应用部署和响应的实验操作.

5)当完成操作后,用户关闭虚拟机时,系统自动为虚拟机创建快照保存当前状态,然后释放资源.

6)当用户退出系统时,系统会判断当前虚拟机快照是否需要更新,若需要,则自动创建快照并更新,否则直接退出系统.

7)当用户再次登录系统的时候,可以通过快照恢复虚拟机.

3.2.2 快照和镜像管理

镜像的属性分为个人私有和全局共享两种.全局共享的镜像所有用户都可见,可以用来创建虚拟机;个人私有的虚拟机只有创建镜像的用户可以使用.当镜像上传后,用户还可以控制镜像的这两种属性切换.流程图设计如图3.

图3 镜像共享Figure 3 Image shareing

快照的作用是用来保存虚拟机的状态,从快照启动虚拟机可以模仿“开机”效果.为了保障虚拟机数据的有效性,系统需要定期保存当前虚拟机快照,但是频繁的快照操作会引起系统的性能下降.本文设计如下,当用户需要关闭虚拟机时,系统自动对当前的虚拟机进行快照备份,流程图如图4.

图4 快照管理Figure 4 Snapshot management

3.3 实验室自助服务门户系统

实验室自助服务门户系统是一个基于python django框架的应用,包含定制镜像,教师批量创建课程虚拟机,供教学资料分享的云网盘,web实时群聊等功能.

3.3.1 定制镜像模版

在Openstack的Glance模块中预装了一些操作系统的镜像,例如 Window XP、Windows Server 2003、Linux等.任课老师可以登录某个操作系统的实例,在该系统实例上安装配置所需要的实验环境,然后使用Openstack的创建快照功能为此实例创建一个快照.快照是对实例当前状态的备份,属于用户自定义的镜像模版.教室可以使用该快照为每一个学生创建一个操作系统实例.教师应当给每个快照(镜像模版)标注必要的文本信息,如操作系统版本、主要的软件配置等,以便他人能够轻松判断镜像模版的作用,可以使用课程的名称和编号来命名镜像模版.

3.3.2 批量创建

教师可以在申请虚拟机页面点选课程和参与课程的班级来批量启动虚拟机.在学期初,教师可以在系统后台导入特定格式要求的班级学生Excel格式的名单,以后只要涉及到该班级,就会遍历名单来创建.课程跟课程镜像绑定,点选相关课程实质上就是选择以该课程命名的虚拟机镜像.创建完成以后,学生登录后,可以在云教室页面,在该课程下都有一台相关实验环境的虚拟机,可以完成后续教学和科研活动.

3.3.3 云网盘

为方便师生之间的教学资料的共享与保存,本文中还设计了自助服务门户中的网盘功能.师生登录自助服务门户后,在左侧导航栏中,点击云网盘,就可以看到按课程罗列的教学资料共享窗口,每个文件的下方信息里会显示文件名称,上传者是哪位老师、上传时间,以及一个下载链接.学生可以下载每个课程下面的资料.

在教师页面,有上传共享资料的按钮,点击,弹出上传窗口,会要求选择本地要上传的文件,选择文件隶属于哪个课程、文件备注信息等,递交之后可以在该课程下的文件列表中找到,可供其他师生下载使用.

3.3.4 实时群聊

平台中嵌入了基于开源Socket IO的实时web群聊功能,只需在云教室内点开群聊窗口,输入昵称,即可加入当前师生的群聊,方便师生之间答疑指导,学生之间自主讨论.且不占用任何当前客户端资源.

3.4 部分核心接口代码实现

部分核心代码如图5.

4 系统测试与使用

4.1 资源流转

任课教师为课程的班级批量申请虚拟机如图6,虚拟机的数量为该课程学生数目.递交的数据包含了课程学生信息、虚拟机镜像信息以及所需要虚拟机的配置信息.然后实验室管理员会收到邮件通知有教师递交了资源申请,相应申请通知也会在管理员的页面上提示,点击审批通过以后,该课程的所有的学生资源将被创建起来,默认所有创建起来的虚拟机已经带有访问IP.

图5 部分核心代码Figure 5 Part of core code

虚拟机创建起来以后,学生登录自助门户,点击我的云教室,即可看到多个云教室标签页,按照课程罗列了以他学号命名的虚拟机.同时,虚拟机信息里暴露了访问该虚拟机的IP、登录的账户名、密码.学生也可以对该虚拟机进行开机、关机、重启等操作.点击虚拟机框,可以进入虚拟机的VNC(Virtual Network Computer)终端画面如图7,也可以通过客户端本身的VVNC工具或者SSH(Secure Shell)、支持 RDP(Remote Desktop Protocol)协议的软件来远程登录访问虚拟机.默认对所有的虚拟机打开了icmp规则(可以ping网络),打开了Tcp 22端口(方便linux系统的SSH远程登录),打开了Windows系列的远程桌面功能.

图6 批量申请虚拟机Figure 6 Batch applying

所有的学生信息均来自于实验课程老师的课程名单(教师具备导入学生名单功能).学生通过身份验证后,在平台云教室菜单下可以看到自己的专用课程虚拟机列表,列表中标注了该虚拟机的访问IP,登录的用户名、密码.虚拟机名称都以学号命名,点击该列表中的虚拟机框图,如果未开机,则学生可以开启虚拟机.根据这些信息,学生可以使用客户端预装的远程桌面或VNC工具,远程登录到其虚拟机,开始做课程实验.

4.2 网盘和群聊功能

在云教室内部点击云网盘,可以上传下载课程文件资料如图8.在主页右侧,加入实时群聊,参与课程讨论如图9.

图7 虚拟机vnc界面Figure 7 vm's vnc interface

图8 共享网盘Figure 8 Shared network drive

5 结 语

本文阐述了基于Openstack构建高校教学科研实验云平台的设计和和实现,旨在为校计算机实验室提供快速按需获得计算资源的方法.同时,又可以为云计算和大数据课程相关的实践提供有力的平台支撑.实验证明,通过虚拟化资源池,可以有效避免重复购置计算机设备,减少繁琐的实验室环境维护工作,改善教学实验科研环境.

图9 群聊Figure 9 Group Chatting

本文中未涉及介绍虚拟机监控相关服务,对于虚拟机的性能评测需要进一步的研究.

[1]SCHROEDER B,GIBSON G A.A large-scale study of failures in high-performance computing systems[J].IEEE Transactions on Dependable and Secure Computing,2010,7(4):337-350.

[2]ANDY R,MlLADEN V,YASER J.An open source cloud computing solution designed dpecifically for education and research[J].International Journal of Service Science,Management,Engineering,and Technology(IJSSMET),2014,5(2):51-63.

[3]PARTRICK D,MLADEN A.Vouk utilizing open source cloud computing environments to provide post effective support for university education and research[EB/OL].(2015-06-09)[2013-07-17].http://www.iji-global.com/chapter/content/65284.

[4]JULIANO A W,LISANDRA Z G,FABIAN S,et al.A new approach to the design of flexible cloud managem-ent platforms[C]//Proceedings of the 8th International Conference on Network and Service Management.Las Vegas,A-merica:IEEE Press,2012:155-158.

[5]BELOGLAZOV A,BUYYA R.OpenStack neat:a framework for dynamic and energy-efficient consolidation of virtual machines in OpenStack clouds[J].Concurrency and Computation-Practice and Experience,2015,27(5):1310-1333.

[6]KIM J M,JEONG H Y,CHO I,et al.A secure smartwork service model based openstack for cloud computing[J].Cluster Computing,2014,17(3):691-702.

[7]ALNASHAR H S,MOHAMED A E.Cloud computing frame-framework for solving virtual college educations:a case of egyptian virtual university[C]//2nd International Conference on Information Systems Design and Intelligent Applications.Kalyani,India:Springer,2015:395-407.

[8]赵少卡,李立耀,凌晓,等.基于OpenStack的清华云平台构建与调度方案设计[J].计算机应用,2013,33(12):3335-3338.ZHAO Shaoka,LI Liyao,LING Xiao,et al.Architercture and scheduling scheme design of tsinghuacloud based on openstack[J].Journal of Computer Applications,2013,33(12):3335-3338.

[9]MOH M,ALVAREZ-HORINE R.A successful graduate cloud computing class with handson labs[C]//2013IEEE Frontiers in Education Conference.Oklahoma,America:IEEE Press,2013:1156-1162.

[10]CHENG Peng,QU Hui.Design and realization based on cloudstack hybrid cloud computing platform[C]//4th International Conference on Materials Science and Information Technology.Tianjin,China:Trans Tech Publications,2014:2297-2300.

[11]邵珠兴,陈彩.基于OpenStack的云存储系统的大文件存储方案[J]计算机工程与设计,2015,36(2):396-401.SHAO Zhuxing,CHEN Cai.Large file storage solution for openstack-based cloud storage system[J].Computer Engineering and Design,2015,36(2):396-401.

[12]孙寒玉,顾春华,万锋,等.一种基于OpenStack的云应用开发框架[J].华东理工大学学报:自然科学版.2015,41(2):272-276.SUN Hanyu,GU Chunhua,WAN Feng,et al.A develp-ment framework for cloud applications based on openstack[J].Journal of East China University of Science and Technology:Natural Science Edition,2015,41(2):272-276.

[13]SAIBHARATH S,GEETHAKUMARI G.Design and implementation of a forensic framework for cloud in openstack cloud platform[C]//Advances in computing,Communications and Informatics Internationonal Conference.New Delhi,India:IEEE Press,2014:645-650.

猜你喜欢
快照镜像机房
平疫结合的CT机房建设实践
面向Linux 非逻辑卷块设备的快照系统①
EMC存储快照功能分析
镜像
基于VPN的机房局域网远程控制系统
镜像
浅谈一体化机房系统
浅谈高速公路一体化机房
一种基于Linux 标准分区的快照方法
让时间停止 保留网页游戏进度