一种基于虚拟机的个性化计算机实验教学环境

2015-06-23 09:16汪小林李涛高博洪星星罗英伟
计算机教育 2015年1期
关键词:虚拟化

汪小林 李涛 高博 洪星星 罗英伟

摘要:针对当前计算机实验教学中心学生上机环境在数据安全、用户体验、系统管理等方面存在的问题,提出一种基于虚拟机的个性化计算机实验教学环境pVCE,旨在通过虚拟机方式为学生提供面向课程的个性化上机环境和便捷的个性化上机服务,同时方便教师和管理员管理。

关键词:虚拟化;个性化虚拟机;计算机实验教学环境;pVCE;实验管理

0.引言

计算机实验教学中心是实施实验教学的重要场所,应为学生提供良好的上机服务,便于教师参与教学实践,管理员参与监控管理。随着教育模式的发展,传统实验教学中心的不足日益凸显。首先,在传统实验教学中心开展实验教学活动时常面临安全问题。公共实验环境中用户共享存储、私有文件数据可随意被删改而造成损失;为保证系统安全,学生通常没有权限安装软件,不仅牺牲了学生的用户体验,还给管理员增加了管理负担;硬件故障也易造成严重后果。其次,传统实验教学环境的资源利用率不高。实验教学中心的软硬件资源通常都不能被用户充分利用。最后,传统实验教学中心的管理活动主要由管理员管理,缺少教师的有力参与且管理员缺乏便捷高效的实验教学中心管理机制。

虚拟化技术可有效改善上述问题。由于虚拟化能帮助屏蔽底层物理硬件差异,为上层用户提供多样化的执行环境且虚拟机之间相互隔离,因此用户可使用私有虚拟机作为上机平台,自由地安装个性化软件。用户数据存储在虚拟机镜像中能保证数据安全,发生硬件故障时迁移虚拟机或转移镜像文件,即可快速恢复使用原始的操作系统和应用软件。同时,随着多核技术的普及,一台物理机运行多台虚拟机也不会影响用户体验,因此利用虚拟化技术有助于提升资源利用率,缓解硬件紧缺的现状。

目前,虚拟化平台主要有KVM、Xen、VMWare、Bochs、Hyper-V等。有许多将VMWare虚拟化应用到实验教学中心的实践案例,但普遍缺乏针对实验教学中心参与者(学生、教师、管理员)面向课程实验活动的管理机制,因此笔者提出基于XEN/KVM开源虚拟化平台构建基于虚拟机的个性化计算机实验教学环境pVCE(a personalized virtualized computer experimental environment),为学生提供个性化、虚拟化的上机环境且实现让多类用户参与课程实验活动的便捷高效的使用和管理接口。

1.系统设计

1.1设计目标

为应对传统实验教学环境中的挑战,我们对pVCE的设计提出以下要求。

(1)个性化。在实验教学中心为学生提供可自由操作的个性化虚拟机,虚拟化技术可支持学生更灵活地配置出其需要的实验环境,包括操作系统、应用软件、计算资源等(如学生使用CentOS-x86 64操作系统,4 GB内存)。pVCE应提供方便的交互接口让学生控制和使用其虚拟机(如通过客户端、浏览器访问各自的虚拟机)。

(2)面向课程。pVCE需面向多样化的课程教学需求提供多样化的上机环境(如数据库概论课程要求PHP、MySQL、Apache,而编译实习课程要求GCC、JDK等)。利用虚拟化技术,教师可突破现有实验环境的限制,开设各具特色的实验课程。pVCE应提供一套完善的操作接口让教师管理课程信息,方便创建、部署及管理。pVCE还应用来拓展实验教学模式,如开展系统安全课程实验时为学生提供可自由修改的操作系统,开展网络课程实验时为其提供若干台虚拟机组建局域网。

(3)便携。学生使用USB等设备时,能携带其在计算机实验教学中心中使用的个性化实验环境,并在其他平台上恢复运行使用。

(4)远程访问。pVCE应提供多样化的虚拟机访问方式,如支持学生远程访问其个性化的虚拟机,远程用户能够和本地用户共享计算资源,并为管理人员提供统一的机制管理所有的用户信息和个性化虚拟机等。

(5)监控管理。为保证实验教学中心的良好运行,pVCE应为管理员生成各类计算资源概览图,提供监控管理的交互接口,如管理学生参与课程并使用个性化虚拟机,管理教师部署课程实验平台,监测整个教学实验中心虚拟机的实时状况。

1.2pVCE架构设计

为实现上述目标,我们提出图1所示的pVCE架构设计。学生参与课程实验时能选择任意一台部署了Xen/KVM虚拟化平台的节点使用其个性化虚拟机,虚拟机安装了满足课程实验需求的操作系统和应用软件。启动虚拟机需要主镜像和子镜像两部分,其中主镜像文件包含课程实验要求的系统和软件,子镜像文件则存储学生个性化的数据(包括个性化软件和用户数据等)。各节点都存储各门课程的主镜像,子镜像则以镜像资源池的方式保存在存储服务器上。主镜像与子镜像分离存储,使得学生使用虚拟机服务时可灵活选择计算节点。由于子镜像文件通常较小,用户也可把它拷贝到u盘以备份、恢复使用其个性化环境。为提升实验教学中心的资源利用率,在节点中也运行远程用户的个性化虚拟机,我们提供接口支持用户从外部访问服务。pVCE也为教师和管理员提供管理课程、学生、计算资源等接口,pVCE部署在服务器集群上,包括镜像管理模块、虚拟机管理模块和元数据管理模块。

镜像管理模块管理各节点上本地镜像文件库的主镜像组织、存储服务器中的子镜像文件库、子镜像池中子镜像的部署和虚拟机镜像的文件系统。虚拟机管理模块管理各节点上运行的虚拟机,如管理虚拟机运行,创建虚拟机快照,迁移虚拟机并为本地和远程用户提供统一的虚拟机管理接口。元数据管理模块管理着数据库服务器中存储的pVCE各对象信息(如学生、教师、节点、虚拟机)及对象间的关系(如选课、学生个性化镜像与课程主镜像的关系等)。

各管理模块间相互协作,为用户使用管理接口提供服务。镜像管理模块为虚拟机管理模块提供主镜像和子镜像;元数据管理模块维护镜像管理模块所管理的课程主镜像及个性化子镜像间的映射关系;元数据管理模块也维护虚拟机管理模块所管理的学生个性化虚拟机及其相关镜像文件间的关系。pVCE根据学生、教师和管理员的不同需求提供3类用户访问接口。学生主要关注虚拟机使用,教师则主要关注课程主镜像的配置、部署,而管理员则需要管理整个pVCE环境的运行状况。

2.pVCE系统实现

构建pVCE系统首先需要让计算机实验教学中心的节点支持虚拟化并配置存储服务器等设备,还需实现pVCE服务软件的各模块及用户接口。

2.1教师对课程和主镜像的管理

教师主要参与课程和主镜像的创建与管理。我们称安装有课程要求的操作系统和应用软件的主镜像为课程镜像模板。教师使用pVCE的基本流程:认证登录到pVCE服务器、管理课程基本信息、管理课程主镜像模板,其中最为关键的问题是准备课程主镜像模板。

为高效地制备课程主镜像模板,我们提出镜像模板树的概念。图2所示为pVCE的镜像模板树,其中根节点为空白镜像文件;深度为1的节点为仅安装了各类常见发行版操作系统的镜像模板;当节点深度k≥1时,其深度为k+1的子节点是基于它安装额外软件所派生出的镜像模板,父节点所包含的软件集是子节点软件集的真子集。我们基于镜像模板树的概念构建和组织pVCE课程主镜像的模板库。

教师制备镜像模板的流程将围绕模板树进行。通过调研往年课程开设情况,pVCE预先制备了一些镜像模板。教师先提交课程模板配置以指明实验要求的操作系统和软件集等信息,查询pVCE镜像模板树。查询过程通常能让教师在pVCE所部署的模板库中找到满足其课程要求的镜像模板,如匹配失败,则返回所需镜像模板的最大真子集模板。教师可选择两种方式制备模板:第一种方式为教师在线配置镜像模板,根据上述查询结果利用该返回模板启动虚拟机,只需再安装少量软件就能完成镜像模板的制备,从而提高制备模板的效率;第二种方式是教师独立制备镜像模板,然后上传到pVCE镜像库,经过镜像管理模块转换格式加入到模板库,支持上传的镜像格式有RAW、IMG、VMDK、QCOW2等。

当课程镜像模板制备完成,pVCE将分发到各节点的本地镜像文件库,根据其所属教师和课程存储为/localTemps/teacherlD/courselD/templateName.img,由元数据管理模块维护课程镜像模板与教师、课程等对象之间的关系。

2.2学生使用和管理个性化虚拟机

pVCE为学生提供使用和管理虚拟机的功能,运行虚拟机需要课程主镜像模板和个性化子镜像。当确定课程参与学生名单后,pVCE基于课程主镜像为每一学生创建QCOW2类型的子镜像。如图3所示,学生有两种使用个性化虚拟机的方式:客户端和浏览器。

学生通过客户端使用个性化虚拟机的基本流程:①认证登录到pVCE服务器;②选择当前课程;③通过交互界面查看与管理虚拟机状态;④通过Spice客户端或VNCViewer等连接到虚拟机桌面进行课程实验。学生也可通过浏览器使用其个性化虚拟机:①在pVCE Web服务主页上完成认证登录;②选择当前课程;③查看及管理个性化虚拟机;④在pVCE Web服务页面获取虚拟机桌面;⑤在浏览器中使用虚拟机。

学生使用个性化虚拟机的流程主要涉及3个关键问题:管理虚拟机Qcow2镜像、控制虚拟机以及连接虚拟机桌面。

管理QCOW2镜像包括两方面:一方面需管理QCOW2镜像文件系统,pVCE镜像管理模块基于libguestfs API(libguestfs是一组访问和修改虚拟机镜像文件的API)和qemu-img等工具管理QCOW2文件,支持查看与编辑镜像中的文件、监测镜像文件系统的空闲状况等;另一方面需维护学生QCOW2镜像与课程镜像模板问的关系,根据学生和课程信息将个性化子镜像存储为/gluster/studentlD/courseID/QCOW2Name,QCOW2,并由元数据管理模块维护镜像、学生和课程间的关系。

虚拟机控制包括虚拟机电源管理、虚拟机镜像快照管理、虚拟机迁移等方面。pVCE虚拟机管理模块通过libvirt API实现对虚拟机的控制,能支持Xen/KVM等多种虚拟化平台。

连接虚拟机桌面,学生通过客户端使用时可通过各节点上已安装的Spice、VNCViewer等pVCE客户端连接虚拟机桌面或者采用ssh方式使用虚拟机,也可以通过其他远程桌面访问工具(如Windows远程桌面)连接虚拟机桌面。对于Web访问方式,我们集成了noVNC、spice-html5等工具支持学生不用安装任何软件,仅通过浏览器便可直接使用虚拟机。

2.3管理员监控管理pVCE集群

管理员在pVCE中主要参与以下3方面的工作。

(1)维护镜像模板库。通过调研以往课程实验环境对操作系统和软件的需求,管理员将预先制备一部分镜像模板以初始化pVCE镜像模板库。

(2)管理pVCE系统中所有对象及对象间的关系并控制对象的生命周期。图4的类图描述了pVCE系统的主要类,展示了类之间的关系。管理员通过交互界面,利用元数据管理模块对pVCE系统进行管理。

(3)监控pVCE系统。虚拟机管理模块和镜像管理模块负责记录系统信息(如节点负载状况、虚拟机运行状态和镜像模板库的容量状况等),以帮助系统开发人员、管理员优化pVCE系统运行,如pVCE能图形化地展示出各节点的负载情况,方便管理员迁移某些虚拟机,以平衡系统负载。

3.部署pVCE系统

目前,北京大学计算机实验教学中心共投入22台计算机用于构建pVCE,其中20台计算节点供学生参与课程实验教学活动时使用,另有1台用做pVCE服务器,1台作为备用节点。同时,20台计算节点也被部署为Gluster分布式存储服务集群,用来存储学生的个性化QCOW2镜像。学生能在任意节点上启动其虚拟机,不受固定座位的限制,自由地访问其个性化数据。22台节点均安装了CentOS 6,4操作系统及KVM构建虚拟化平台。计算节点硬件配置信息见表1,pVCE集群软件配置见表2。

目前,我们在pVCE中开设了网络存储和系统虚拟化、计算概论课程,可以支持学生参与其中并使用各自的个性化虚拟机上机实验。每门课程为每位学生提供3台虚拟机,分别运行CentOS 6.4、Ubuntu 13.04和Window 7操作系统。我们从学生、教师那里得到了良好的反馈结果,pVCE能支持完成实验教学任务,满足用户对个性化实验环境的需求且使用便捷,便于管理。我们还对部署的pVCE实例中虚拟机响应时间进行了测试。20台虚拟机(vm1-vm20)同时启动时间如图5所示,每台虚拟机都能快速地启动。

猜你喜欢
虚拟化
计算机虚拟化技术在企业中的应用
对云计算和虚拟化技术的探讨
浅谈虚拟化工作原理
用户怎样选择虚拟化解决方案
别再误会客户端虚拟化了
戴尔 虚拟化如何点燃用户热情?
中企开源 用虚拟化建数据中心
虚拟化整合之势凸显
虚拟化技术:绿色IT的希望
经济危机使虚拟化受青睐