APP下载

开源edX信息化教学平台的双机热备技术研究

2016-09-10阳波刘辉王进汤清明

中国信息技术教育 2016年17期
关键词:负载均衡教育信息化

阳波 刘辉 王进 汤清明

摘要:edX信息化教学平台因功能强大且代码完全开源而备受关注。在分析edX平台功能模块、技术构架和存储结构的基础上,笔者基于Nginx服务器、keepalived和磁盘阵列技术,提出了一种用于构建edX服务器的双机热备技术,它能提高edX平台的数据可靠性,增强服务器的稳定性和负载能力。

关键词:开源edX;教育信息化;Nginx;双机热备;负载均衡

中图分类号:G642 文献标识码:A 论文编号:1674-2117(2016)17-0095-04

● 引言

构建技术先进、功能强大、教学方式灵活的教学信息化平台是MOOC开展的前提条件。目前已经成熟且商业化的教学平台有Udacity、Coursera、edX等,其中edX平台面向全世界免费开源所有代码和课程,这为各国高校进一步设计满足自身教学要求的教学平台提供了一种全新的选择方式,如清华大学、北京大学等高校纷纷基于开源edX设计了自己的教学平台,取得了良好的教学效果。开源edX平台结构设计先进、功能丰富,但是体系复杂,运维难度较高,所以如何实现平台数据安全、服务器不间断运行,是自主运维edX平台的关键技术之一。

笔者在分析edX教学平台的功能模块、系统架构和数据存储方式的基础上,研究了磁盘阵列和双机热备份技术的特点,提出了一个双机热备和负载均衡的edX服务器部署方案,该方案具有服务器部署简单、数据安全性高和运行可靠的特点。

● 开源edX平台的技术框架与数据存储方式

1.开源edX平台的功能与技术框架

开源edX平台默认搭建在64位的Ubuntu系统上,课程管理模块(Content Management System,CMS)、学习管理模块(Learning Management System,LMS)和通用模块(Common Moudle,CM)是它的3个核心模块,每个核心模块又由若干个子功能模块组成。课程管理模块中最基本的模块是课程存储模块,负责创建和管理课程的教学内容信息。学习管理模块包括课件功能模块、代码codejail模块、讨论模块、评分模块等。其中课件功能模块负责从数据库中读取课程相关信息,并将课程内容显示给用户;代码codejail模块用于检查学生录入Python代码的合法性,保护系统的安全;讨论模块支持教学平台的在线讨论和交流;评分模块实现学生作业、在线考试的成绩评价,并保存评价结果。通用模块主要包括用户注册、日志、认证、输入检查、消息队列管理等功能。其中日志功能用于记录学生和教师的学习和教学行为;认证功能包括内部认证和外部认证两种,用于用户登录平台时进行身份合法性验证。edX教学平台各模块之间既相互独立,又相互联系,构成功能强大的教学平台。

开源edX平台运行在主流的Nginx服务器上,采用MVC编程设计模式开发,MVC设计模式的核心思想是实现业务逻辑、数据和界面显示的分离,修改界面不需要重新编写业务逻辑,从而提高了程序设计的效率。edX的Web应用程序基于Django框架,采用Python、Ruby、NodeJS等多种程序语言混合编写。Django框架通过中间件处理所有的HTTP请求,从而降低了各模块之间的耦合程度,对于用户的每一个HTTP请求,由一组中间件处理。edX界面与后端服务器的数据通讯采用异步更新技术Ajax方式实现,用户无须刷新整个页面就可以向服务器传送数据,减少数据通讯,降低占用带宽的时间,从而降低对服务器和网络的要求,提升整个系统的用户体验。界面编程采用JQuery标准库和SCSS框架(CSS预处理器框架)设计,不需要考虑浏览器的兼容性问题,在提高界面用户体验的同时,提高了界面设计的效率,edX平台的技术框架如图1所示。

2.开源edX平台的数据存储方式

开源edX平台采用数据库与文件系统结合的方式进行数据管理,同时采用MySQL和MongoDB两种类型的数据库技术。MySQL数据库用于存储改动较少的结构化数据信息,如用户注册信息、配置信息等;MongoDB数据库用于存储数据量大、访问频繁的非结构化数据信息,并且为用户输入提供数据缓存。MongoDB是一种面向文档的,实现分布式文件存储的非关系型数据库,具有模式自由、动态查询、二进制数据存储、云计算的特点。edX平台利用MongoDB解决了平台需要存储大量短视频、学生作业和课程资料的问题。除此之外,统计日志、图片等信息则以文件的方式存储在系统中,通过Python的文件操作函数对文件进行管理。因此,开源edX平台数据存储方式是在传统文件系统的基础上,融合两种数据库技术进行数据存取操作,能满足大规模数据访问的需要。

● 数据可靠性与服务器热备技术研究

虽然开源edX平台功能强大、性能高效,但随着系统规模扩大,用户增多,文件总量从GB向TB级增长,教学平台的数据可靠性和安全运行成为一个重要问题。

目前常用的存储技术有磁盘阵列、网络存储、云存储等多种方式,其中磁盘阵列因性能优异、操作简单而备受关注。磁盘阵列技术(Redundant Array of Independent Disks,RAID)是一种将多块独立的物理硬盘按不同的方式组合起来,逻辑构成一个硬盘(逻辑硬盘)的技术,于1987年由美国加州大学伯克利分校首次提出。磁盘阵列控制器将数据以分段的方式存储在不同的磁盘中,存取数据时,阵列中的相关磁盘一起动作,大幅减少了数据的读取时间。磁盘阵列技术不但使用简单,存储速度快,还可以实现数据自动备份,一旦某个磁盘的数据损坏,它能利用备份信息迅速将数据恢复,提高了用户数据的安全性和可靠性。RAID5技术是一种性价比高的磁盘阵列技术,具有读取速度快、安全性高、空间利用率高等特点,是目前较为理想的存储解决方案。

虽然磁盘阵列技术能解决数据的可靠性问题,但当服务器本身出现问题时,服务仍然会中断,因此,服务器的双机或多机备份仍然非常重要。

双机热备是使用两台服务器互相备份,共同执行同一服务,当一台服务器出现故障时,在不需要人工干预的情况下,另一台服务器自动承担服务任务,保证服务继续进行。根据切换方式不同,双机热备分为主-备(Active-Standby)方式和双主机(Active-Active)方式两种。主-备方式是指一台服务器处于某种业务的激活状态,另一台服务器处于该业务的备用状态;双主机方式是指两种不同业务分别在两台服务器上互为主备状态。双机热备通过心跳监测查询服务器的状态,一旦发现对方失效,立即启动资源接管模块来接管运行在对方主机上的资源或者服务,从而实现服务的不中断运行。

● 开源edX平台的双机热备和负载均衡设计

对于中等规模的高等学校来说,开源edX平台的主要功能是满足自身教学改革需求,数据并发数要求并不是太高,所以开源edX平台采用Nginx服务器完全能满足需求。笔者基于Nginx和keepalived技术,提出用磁盘阵列保存数据,用两台服务器实现双机热备,并配置负载均衡实现服务器的部署。具体方案如下:先配置两台服务器与一个磁盘阵列,磁盘阵列采用光纤模块与服务器相连,然后在两台服务器上安装Nginx软件,并将磁盘阵列挂载在linux操作系统中,接着将MYSQL、Mongodb和edX安装在磁盘阵列上,最后安装并配置keepalived软件,设置2个虚拟IP地址和DNS地址,其结构如上页图2所示。

Keepalived软件的核心是VRRP协议,将两台服务器虚拟成一台服务器,对外提供虚拟路由器IP,通过预先设置或竞选机制,确认其中一台服务器为主服务器,另一台则为备用服务器,且只有主服务器对外提供服务。当Keepalived检测模块发现主服务器失效时,通过VRRP协议发送通告,仅需几秒备用服务器便可以接管原来主服务器的网络功能,从而实现整个平台的可靠运行。

另外,为了实现服务器的负载均衡,笔者将两台服务器配置为互为主备模式,设置两个虚拟IP地址Vip1和Vip2,并将它们作为A记录增加到DNS服务器中,然后DNS服务器根据解析请求随机分配不同的虚拟IP,从而实现了edX服务器的负载均衡。

参考文献:

[1]王启浩.论我国MOOC平台的未来发展——基于Coursera、edX和学堂在线的对比分析[J].科技与出版,2015(6):108-111.

[2]王书瑶,王小根,晋步.中外MOOC课程对比研究——以edX和“学堂在线”为例[J].软件导刊,2014(7):154-156.

[3]王秀婷.基于edX的MOOC互动交流平台的设计与实现[D].哈尔滨:哈尔滨工业大学,2014.

[4]高峰,杨连贺.Flex技术与Django开发框架的整合研究[J].计算机与数字工程, 2010,38(1):94-96.

[5]Annenkov D V,Cherkashin E A.Generation technique for Django MVC web framework using the stratego transformation language[C]//International Convention on Information & Communication Technology Electronics & Microelectronics.2013:1084-1087.

[6]肖佳,王古城,杨旭,等.双机热备与负载均衡的设计与实现[J].电子设计工程,2015,23(18):176-179.

[7]高俊峰.高性能Linux服务器构建实战:运维监控、性能调优与集群应用[M].北京:机械工业出版社,2012.

作者简介:阳波(1976.4—),男,湖南冷水江人,教授,硕士生导师,研究方向为传感器、微/纳制造和大数据理论与应用。

基金项目:本文得到湖南省普通高等学校教学改革研究项目“基于edX开源自主构建地方高校MOOC课程平台的教学改革研究”支持。

猜你喜欢

负载均衡教育信息化
Linux负载均衡集群技术在网络服务器中的应用
Oracle MAA在汽车行业电子政务平台中的应用
异构环境下改进的LATE调度算法
如何加强校园信息化建设创学校发展提速平台
基于虚拟仿真技术的地方高校实验教学探讨
基于负载均衡的云资源调度策略研究
高职学院信息化建设中面临的问题和思考
创新信息技术支撑教学变革
多站点同步更新系统的设计
模糊理论在Ad hoc网络通信领域的应用