秦宇
【摘 要】在当前的云计算平台中,OpenStack占据了重要的地位。在高等学校的教学中,运用云计算技术为学习者提供一个多功能的学校平台,具有重要的意义。本文分析了OpenStack系统的原理,设计和实现了基于OpenStack的云教学平台。
【关键词】OpenStack;云平台;教学
中图分类号: TP393.09 文献标识码: A 文章编号: 2095-2457(2018)34-0180-002
DOI:10.19694/j.cnki.issn2095-2457.2018.34.073
Design and Implementation of Cloud Teaching Platform Based on OpenStack
QIN Yu
(Guangdong Teachers College of Foreign Language and Arts, Guangzhou Guangdong 510640, China)
【Abstract】OpenStack plays an important role in the current cloud computing platform. In the teaching of colleges and universities, using cloud computing technology to provide a multi-functional teaching platform for learners is of great significance. This paper analyses the principle of OpenStack system, designs and implements the cloud teaching platform based on OpenStack.
【Key words】OpenStack; Cloud computing; Teaching platform
0 前言
随着云计算技术的日益发展,如何利用云计算技术提高教学质量,优化教学资源,成为了当前高校教学中的一个重要课题。高校的教学具有课程多,信息化程度高的特点,云计算技术和传统教学的融合显得尤为重要。
1 分析和设计
在所有的云计算框架中,OpenStack以其开源和兼容性的优点占据了主要的市场。因此,本文选择其作为云教学平台的基础框架。为了让用户在台式机和移动终端上都能够使用到云平台提供的服务,采用网页浏览器的方式提供云平台服务。
平台实现的功能如下:
(1)注册登录模块
(2)教学班级管理模块
(3)日常教学资源
(4)云主机资源
(5)竞赛平台模块
(6)云盘资源
实现云平台需要准备的硬件资源;
(1)内存16G以上的服务器8台
(2)集中式存储10T以上
(3)交换机3台
所需要准备的软件资源:
(1)Django网站框架
(2)Bootstrap前段框架
(3)Centos操作系统
(4)OpenStack框架
OpenStack主要由认证(keystone)组件,计算(nova)组件,面板(dashboard)镜像(glance)组件,网络(neutron)组件,对象存储(swift)組件构成,这些组件可以分别部署到不同的服务器上,也可以只部署到单台服务器上,本平台把认证组件和网络组件以及面板组件,镜像组件部署在一台服务器上,计算组件部署到其它多台服务器上。平台框架总体结构图如下图1。
网站框架使用Django。Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。 Django是一个开放源代码的Web应用框架,由Python写成。OpenStack也是由Python开发的,其面板组件就是基于Django框架,所以本云平台使用Django框架开发网站能够有比较好的兼容性。
Django框架遵循MVC设计,并且发展了属于自己的专有架构:MVT。
OpenStack的各个节点内部创建192的内网网段,外网访问通过网络节点进行。网络组件可以基于不同的网桥技术构建网络本平台各个节点均采用linux网桥技术。
图1 云教学平台总体结构
为了准备不同类型的云主机,需要制作各种类型的镜像上传到镜像组件进行统一管理。镜像的制作,可以到各个官方网站下载不同版本的镜像,有iso格式的也有qcow2格式的镜像提供下载,根据需要进行下载。下载后,利用linux下的kvm虚拟机管理系统生成虚拟机后,在操作系统上安装日常课程所需要的软件,再把虚拟机硬盘上传到镜像组件,生成新的镜像,此时的镜像已经安装好了日常课程所需要的各种软件。然后利用此镜像在OpenStack系统里面生成新的虚拟机,在default的安全配置文件中放开相应的访问端口,在虚拟机操作系统中也要注意关闭相应的防火墙端口。对于日常课程,为了提高资源利用率和节省资源,让更多的用户可以使用,可以采用在一台虚拟机系统里面设置多用户登录。批量创建多用户,允许不同的用户同时使用一个虚拟机系统,充分发挥了虚拟机的系统资源,满足了大量用户同时使用的需求。
对于需要使用云主机服务的用户,由于用户需要单独拥有一台虚拟机,所以对于每个用户单独生成一台虚拟机。
由于云教学平台需要提供给用户定制的网页操作界面,所以需要利用OpenStack提供的API对OpenStack进行二次开发,以及对OpenStack的源码进行改进。OpenStack的各个组件之间沟通的首要环节就是进行认证,所有的认证信息存储在keystone组件里面,利用具有管理员权限的账号和密码向keystone申请口令token,获取到token后,生成计算(nova)对象以及各个组件的相关对象,就可以进行相关后续操作。
在日常教学模块中,在同一个网页上同时提供操作步骤文档和实验资源,并提供实验报告,及时收集用户的反馈信息。
在日常课程的考试系统中,提供选择题,判断题,填空题,简答题等各种题型,并且在网站后端设计了自动批改模块,及时批改作业让教学者能够及时了解到当堂课的教学效果,方便安排后续课程。对于学习者的考试时间做出限制,可以防止参加考试人员违法考场纪律的行为。
除了日常课程外,对于一些大型的竞赛项目,利用云教学平台的动态资源分配功能可以临时分配较多的资源给竞赛模块,竞赛结束后,可以回收这些临时的资源,极大提高了资源利用率。
云平台首页如下图:
2 结论
本文基于OpenStack云平台框架和Django网站框架,设计和搭建了云教学平台。实现了集中式和远程管理,减轻了教师的劳动强度,提高了教学效率。针对各种教学环境,采取了不同的资源分配方案,提高了资源利用率,满足了广大师生的需求。
【参考文献】
[1]王海霞.基于openstack的高职教学实验云平台研究与搭建[J].教育现代化,2018(11):94-95.
[2]崔轶.基于OpenStack的高职教学资源云平台构建研究[J].河北青年管理干部,2018,3:65-67.
[3]邱红飞.基于OpenStack的离线桌面云系统的设计与实现[J].现代计算机,2018,7.