计算机在线虚拟实验室建设研究

时间:2022-11-15 08:27:17

计算机在线虚拟实验室建设研究

【摘要】传统教学机房存在如下问题:实验环境搭建复杂,机房管理员需要为每台机器安装相应的实验软件;实验课考核困难,给学生布置平时作业时,通常布置相同的题目,很难杜绝学生之间互相抄袭的现象;机房成本高、利用率低,部署实验室机房需要采购大量计算机和网络设备,机房设备的维护也耗费工作量。本文研究了面向计算机实验教学的虚拟化技术,在在线虚拟实验室中通过Linux的虚拟化技术,为每个学生在服务器端创建独享的实验环境,教师在服务器端安装实验软件和实验数据,只需要在服务器端配置一次实验环境,即可被所有的学生共享,从而大大地简化了实验机房的管理。

【关键词】在线实验室;虚拟化;Linux操作系统

在传统的教学机房中进行实验教学面临实验环境搭建复杂、机房利用率低等问题。本文研究面向计算机专业实验教学的在线虚拟实验室建设,解决传统机房教学的易用性问题。教师只需要在服务器端配置一次即可为所有学生提供相应的实验环境,在客户端无须安装实验软件,学生使用浏览器即可访问自己的实验环境。

1在线虚拟实验室要解决的问题

计算机类课程是实践性很强的课程,在机房进行教学,学生可以及时上机尝试操作、消化所学内容,能够取得良好的教学效果。然而,传统机房教学存在如下弊端。(1)传统实验课实验环境搭建复杂。在传统的实验教学中,机房管理员需要为每台机器安装相应的实验软件,教师需要将实验包(包括文档、实验数据)分发给学生,学生在实验前需要手动配置自己的实验环境[1]。某些实验的实验环境搭建尤其复杂,例如大数据实验,需要为每个学生分配多台机器,实验数据的大小可能超过1GB,Hadoop配置较为复杂。(2)传统实验课考核困难。在传统实验教学中,教师给学生布置平时作业时,通常布置相同的题目,很难杜绝学生之间互相抄袭的现象;在最后的课程考核中,如果采用上机考核,无论是分发考试实验环境还是收取考试题目,都很复杂。(3)传统实验机房成本高、利用率低。部署实验室机房需要采购大量计算机和网络设备,机房设备的维护也消耗很多工作量[2]。本文研究面向计算机专业实验教学的在线虚拟实验室建设,解决传统机房教学面临的诸多问题。在线虚拟实验室通过Linux的虚拟化技术,为每个学生在服务器端创建独享的实验环境,教师在服务器端安装实验软件和实验数据,只需要在服务器端配置一次实验环境,即可被所有的学生共享,从而大大简化了机房管理工作。学生的实验数据全部保存在服务器端,可以随时随地登录系统继续实验,不需要每次实验前再进行一次环境配置。使用在线虚拟实验室,教师在服务器端可以为每个学生布置不同的实验题目,在一定程度上避免了互相抄袭。在最后的上机考核中,教师不再需要分发考试实验环境,还可以直接在服务器端收取考试结果,简化了实验考核的工作量。使用在线虚拟实验室无须采购大量硬件,资源的利用率更高,一台服务器可以服务约100台虚拟机,满足相应数量学生实验需要;虚拟实验室运维工作可在网页上通过点击鼠标完成,快捷方便。传统教学机房与在线虚拟实验室的优劣势总结如表1所示。

2国内外现状对比

Codecademy(www.codecademy.com)是一家国外的提供在线学习编程知识的网站,它向用户提供了一种全新的在线学习方式。在基于网络互动编程教程的基础之上,帮助用户了解编程的基本原理。Codecademy提供了在线编译器和编辑器,用户可以在Codecademy上学习Python、CSS等多种语言,也能完成一些基本的编程练习。实验楼(www.shiyanlou.com)是以实验为核心的IT在线教育网站,网站为IT学习者提供实践操作实验环境和全面的IT课程。实验楼基于Linux的KVM(Kernel-basedVirtualMachine)虚拟化技术,为用户提供配置好的虚拟机,通过虚拟的实验环境,学习者可边看文档边动手操作,从而提高学习者的动手实践能力。与Codecademy相比,实验楼为用户提供的不单单是一个简单的在线编译器,而是一台配置好的虚拟机,可以支持更广泛的IT内容学习,而不再局限于编程领域。例如要开发一个网站,从选择技术框架、架设服务器、设计数据库,到开发前后端、上线网站,其复杂程度在Codecademy上是无法完成的,而实验楼由于提供了一台完整的虚拟机,因此用户可以完成这样复杂的实验。

3虚拟实验室的相关技术研究

本文研究的在线虚拟实验室技术是基于Linux的容器(Docker)技术[3]实现的。Docker是一个开源的应用容器引擎[4],让开发者可以打包其应用和依赖包到一个可移植的容器中,然后到任意的Linux机器上,实现虚拟化。由于Docker是开源的产品,浏览器是操作系统自带的软件,从而节省了购买虚拟化软件的费用。在一台服务器上搭建好Docker的环境,其余计算机可通过浏览器来访问服务器上的虚拟化应用。管理员(教师)在服务器端利用Linux的虚拟化技术为每位用户(学生)创建一个隔离的环境,用户在用户端利用浏览器访问自己的实验环境。在服务器端,在线虚拟实验室利用Linux内核的Namespace、Cgroups、UnionFS等功能来提供类似/虚拟机的轻量级隔离环境[5]。在隔离环境中,用户拥有独立的CPU、内存、文件系统和网络资源。虚拟实验室采用了浏览器和服务器结构,用户端只需要安装浏览器,便可通过浏览器和服务器端的实验环境进行交互。通过浏览器向用户提供全功能的LinuxShell环境,同时提供一个WebIDE用于编辑实验环境中的程序。与现有的实验楼(www.shiyanlou.com)项目相比,在线虚拟实验室的创新点在于服务器端采用了基于Linux容器的轻量级虚拟化技术,带来了如下两点优势。(1)启动速度快。通常需要数分钟才能启动虚拟机,采用基于Linux容器的轻量级虚拟化技术后,只需要几十毫秒就可以启动。(2)资源利用率高。容器之间共享宿主机操作系统资源,可以节省大量的磁盘空间及其他系统资源,因此同一台服务器可以运行更多的容器。

4结语

建设在线虚拟实验室可为南京航空航天大学计算机实验教学课程提供更多服务。目前,在线虚拟实验室已经包含“计算思维实验”和“操作系统实践”两门课程,并在虚拟实验室中完成课程的教学和考核工作。“操作系统实践”课程的实验要求学生在开源操作系统xv6的基础上增加若干功能模块,使用Linux下的GCC编译器和make工具对xv6的源代码进行编译。操作系统xv6运行在x86处理器上,它可以在真实的硬件上启动,但在教学实验中,通常使用虚拟机软件来运行它,如计算机模拟器Bochs。在计算机模拟器Bochs上运行操作系统xv6前,需要对Bochs进行较为复杂的配置。在以往的教学中,为了简化实验环境的搭建,通常将Linux和计算机模拟器Bochs安装在VMware虚拟机软件里,然后将虚拟机镜像文件分发给学生。即使经过压缩,虚拟机镜像文件的大小也超出了2GB,分发非常不方便。使用在线虚拟实验室后,学生通过浏览器访问在线虚拟实验室,在浏览器中即可完成全部的“操作系统实践”课程实验操作。教师在服务器端安装配置计算机模拟器Bochs,只需进行一次安装配置操作,解决了实验环境搭建复杂的问题。传统实验课中,若为1000名学生同时提供在线实验服务,采用基于LinuxKVM的重量级虚拟化技术,需要购置数十台服务器[6];采用本文提出的基于Linux容器的轻量级虚拟化技术,购置数台服务器即可。因此,在线虚拟实验室可将更多的计算机实验课程资源引入在线实验室,对虚拟实验室进行扩容,支持千人在线,为更多的计算机实验课程教学提供服务。

作者:王立松 朱广蔚 江爱华 单位:南京航空航天大学信息化技术中心