基于OpenStack的创新实验云平台的研究

2016-04-13 10:40杨泽平顾春华常耀辉
实验技术与管理 2016年5期
关键词:镜像管理员计算机

杨泽平, 顾春华, 万 锋, 罗 飞, 常耀辉

(华东理工大学 信息科学与工程学院, 上海 200237)



基于OpenStack的创新实验云平台的研究

杨泽平, 顾春华, 万锋, 罗飞, 常耀辉

(华东理工大学 信息科学与工程学院, 上海200237)

提出了一个基于OpenStack云计算框架的创新实验云平台。该平台总体架构分为基础软硬件资源层、OpenStack云管理层、通信中间件层、应用业务层和应用表现层,能够满足高校中各专业创新实验对计算机软硬资源的不同需求,减少实验室管理人员的工作量,同时提高实验设备的利用率。该平台运行稳定,功能设计合理,为创新实验教学提供了有效的支撑。

云平台; 实验教学;OpenStack

ResearchofinnovativeexperimentalcloudplatformbasedonOpenStack

1 开发创新实验云平台的目的

随着大学生创新活动及计算机各类竞赛的开展,越来越多不同专业的学生需要不同的计算机实验环境,现有的普通实验设备无法满足日益增长的环境需求。主要的矛盾体现在以下几个方面:

(1) 计算机权限问题。出于安全及上机人数考虑,在进行普通计算机实验教学时,不需要把实验所用的计算机全部权限开放给学生。实验前,实验管理人员已经预安装了所需要的全部软件,学生不需要自己安装软件,即使学生自己安装了软件,计算机在重新启动后也会恢复为预安装状态,使自主安装的软件丢失。在大多数情况下,实验管理人员会把非系统盘的权限开放给学生,但是在创新实验中,学生有自主安装软件的需求,希望保存上一次的安装环境,以避免重复安装操作,而现有的计算机权限设置无法满足学生创新实验的需求。

(2) 计算机台数问题。普通计算机实验教学主要是对某一软件或者某一操作系统的教学,在一台计算机上就可以完成操作;但创新实验通常会涉及到某一类问题的研究,往往要根据实验的需要使用多台计算机,而一人一台计算机的实验教学模式无法满足这一需求。

(3) 计算机环境问题。创新实验与普通实验教学对计算机硬件环境要求不同[1]:普通实验教学对硬件环境要求相对比较低,而创新实验对硬件环境要求较高。另外,普通实验教学一般会指定所需要的环境,在一学期中某一段时间内使用某一特定操作系统(例如:Windows、Ubuntu、Android等),一般极少出现在某一时间内同时使用两种操作系统的情况;而在创新实验中,使用两种操作系统的需求经常发生,需要有更好的计算机环境。

云计算作为一种新的资源使用模式,使得用户可以按照需求获取计算、存储和网络带宽等资源,很多学者也开始采用云计算技术来解决高校的计算机资源紧张问题[2],例如直接采用虚拟技术构建虚拟实验室、基于桌面云搭建多媒体计算机实验室[3]、采用Hadoop构建机房云计算中心[4]、利用云计算和虚拟化技术构建计算机网络攻防实验室等[5]。

在众多的云平台中,OpenStack是一个开源的云计算管理平台,有着良好的可控性、兼容性和扩展性,在微软、思科等很多企业及高校得到广泛的应用[6-7]。例如基于OpenStackGrizzly版本部署了科研教学云计算平台以节省硬件资源[8];基于OpenStack部署虚拟网络实验室来提高资源利用率[9];基于OpenStack研究解决云计算中资源调度关键技术[10]。

为了解决创新实验教学所面临的问题,本文基于OpenStackHavana版本做二次开发,设计并实现了一个创新实验云平台,以满足创新实验对硬件资源的弹性需求。

2 Openstack开源框架

云计算利用分布式计算、虚拟化等技术,将分散的软硬件资源通过网络、按照用户需求集中提供服务。云计算平台的服务类型分为3种:PaaS(平台即服务)、SaaS(软件即服务)和IaaS(基础设施即服务)。PaaS主要是将开发、设计、部署和测试的整个平台作为一种服务,用户在此平台上定制和搭建自己的应用系统;SaaS主要是将软件应用系统作为一种服务,用户可以租用这些软件来使用,这些软件应用包括:邮件系统、财务系统等;IaaS服务类型主要是将虚拟机、网络资源、存储等虚拟的硬件资源作为一种服务,用户可以直接访问这些资源并搭建自己的应用环境[11]。

在IaaS服务类型中,需要云计算管理系统(也称云操作系统)来管理整个硬件资源,以备用户访问。这些开源的云平台包括OpenNebula、Eucalyptus、CloudStack和OpenStack等,其中OpenStack在授权许可、是否完全免费使用、组件配置是否灵活、二次开发的难易等方面比其他开源云平台有明显的优势,成为使用率最高的云平台[6,11]。

OpenStack是美国国家航空航天局(NASA)和Rackspace联合研发的开源云计算管理项目,旨在实现实施简单、可扩展性良好的云服务。OpenStack底层可以采用Xen、KVM和VMWare等虚拟化软件,对KVM的支持相对比较完善[7]。因此,在构建本创新实验云平台时,采用的是KVM虚拟化软件。

OpenStack以A—Z的字母表顺序来标识它的众多版本,其中H版的主要组件包括:提供控制台服务的Horizon、提供计算服务的Nova、提供网络服务的Neutron、提供对象存储的Swift、提供块存储的Cinder、提供身份认证等服务的Keystone、提供镜像服务的Glance、提供监控服务的Ceilometer以及提供自动化部署服务的Heat[12]。其中Nova组件是OpenStack的核心模块,它通过nova-api模块实现RESTfulAPI功能,向外提供接口;通过nova-compute模块管理虚拟机;通过nova-scheduler模块提供虚拟机的调度;各模块通过消息队列来实现通信。

3 云平台运行环境的配置

创新实验云平台采用OpenStackH版,结合本校计算机教学实验中心的实际运行环境和需求,在同时满足150个并发用户的情况下,采用了4个计算节点、1个存储节点和1个控制节点。每个节点的硬件均为64GBRAM、1TB硬盘、24核CPU、3个千兆网卡。

由于采用了多节点云平台部署形式,只有运行在控制节点的nova-network控制网络,因此在计算节点创建的虚拟机实例都要通过控制节点与外网连接。

各节点的基础安装均包括网络配置、NTP和HavanaPackage的安装,而控制节点还有MySQL和Rabbitmq的安装,存储节点和计算节点还有MySQLClient的安装。除了基础安装,控制节点还需要对keystone、nova-services、glance数据库、horizon等进行安装配置。

在安装keystone时,首先要安装认证服务,包括创建keystone数据库以及相关信息的配置,其中,keystone.conf的配置信息设置如下:

vi/etc/keystone/keystone.conf

[sql]

#设置数据库连接字符串用以连接数据库

connection=mysql://keystone:admin@10.10.10.32/keystone

其次,需要对users、tenants和roles进行定义,包括设置环境变量;然后创建service和endpoint,最后来验证keystone。在安装nova控制服务时,也要创建nova数据库、nova服务、endpoint、keypair及安全组规则等,其中nova.conf配置文件中一些重要的配置信息如下:

vi/etc/nova/nova.conf

[database]

#设置数据库连接字符串用以连接数据库

connection=mysql://nova:admin@10.10.10.32/nova

[keystone_authtoken]

#keystone认证信息

auth_host= 10.10.10.32

auth_port= 35357

auth_protocol=http

admin_tenant_name=service

admin_user=nova

admin_password=ADMIN

[DEFAULT]

#RabbitMQ消息服务设置,openstack中默认kombu连接RabbitMQ服务器

rpc_backend=nova.rpc.impl_kombu

rabbit_host= 10.10.10.32

rabbit_password=openadmin

#镜像服务设置

glance_host=10.20.20.33

#vnc相关设置,用以远程访问

my_ip=10.10.10.32

vncserver_listen=10.10.10.32

vncserver_proxyclient_address=10.10.10.32

#设置认证策略

auth_strategy=keystone

存储节点除了基础安装外,还要安装glance,计算节点还需要对nova-compute、nova-network安装,其中,对nova.conf配置文件中的信息设置如下:

vi/etc/nova/nova.conf

[DEFAULT]

#设置使用FlatDHCP网络管理模式

network_manager=nova.network.manager.FlatDHCPManager

#防火墙驱动程序

firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver

#设置子网的地址数

network_size=254

#该配置强制虚拟机间隔离,除非使用安全组策略

allow_same_net_traffic=False

#高效网络

multi_host=True

send_arp_for_ha=True

share_dhcp_address=True

#该项设置为true,表明终止发送DHCP释放

force_dhcp_release=True

#设置连接虚拟机的网卡网桥

flat_network_bridge=br100

flat_interface=eth0

#公网网卡

public_interface=br100

然而,如果依赖网络进行云平台硬件运行环境的安装,一旦网络出现了问题,不管是操作系统,还是OpenStack自身开发运行环境,都将无法正常搭建。因此,制作本地安装包源是至关重要的。本地安装包源将有利于整个开发运行环境的再现,也有利于系统本身运行的稳定,避免由于系统版本不同而对整个平台性能产生影响。在搭建本创新实验云平台的硬件环境中,采用的是本地安装包源。

4 云平台的架构设计及实现

4.1创新实验云平台的主要特点

创新实验云平台主要是根据华东理工大学计算中心创新实验的实际需求而定制的,它可以满足大多数高校创新实验的要求。该云平台既能保证资源的共享,又能实现物理机配置的个性化,主要体现以下几个特点。

(1) 定制个性化实验环境。指导教师和学生都可以定制自己所需的实验环境,安装所需的软件。与公共机房不同的是,用户不会因为每次关机而丢失所安装的软件或其他实验环境,避免了每次开机重复安装软件和重新部署实验环境的问题。

(2) 共享创新实验环境。指导教师可以定制安装基础操作系统、软件等创新实验环境,学生可以在此环境之上安装自己所需的软件,搭建自己的实验环境并保存。学生也可以把自己的实验环境共享给其他学生和指导教师。

(3) 随时随地获取实验环境。只要在网络覆盖范围内,学生或者指导教师随时随地都可以在安装了云平台客户端的终端获取和保存实验环境、进行创新实验,突破了地域和时域的限制,增加了创新实验的灵活性。

4.2创新实验云平台管理系统的主要模块

云平台管理系统是B/S架构,功能模块包括人员角色管理、创新课程管理、云主机管理和定制系统。系统中的角色分为超级管理员、管理员、教师和学生4种角色。

在人员角色管理模块中,超级管理员的权限是创建管理员、维护管理员信息;管理员的权限是创建教师、维护教师信息。

在创新课程管理模块中,教师的权限是申请创新课程信息,包括创建课程、导入学生的学号和姓名等学生信息;管理员的权限是审核课程信息。由于虚拟机的数量一定,因此需要根据创新课程开设的时间范围、学生人数及权重来设置优先级进行审核;一般设定一位教师的虚拟机数量是10台,根据具体情况再作调整。

在云主机管理模块,教师的权限是为其创新课程下的学生创建、开启和关闭云主机。为方便管理,这一权限不下放给学生;管理员的权限是可以创建、开启和关闭所有课程的云主机。

在定制系统模块中,分为原始镜像、公共镜像和私有镜像,原始镜像和公共镜像是所有用户可见,而私有镜像仅自己可见。原始镜像一般仅安装操作系统,管理员、教师和学生都可以上传镜像并设置镜像属性。云平台桌面客户端包括可移动设备管理、本地盘映射配置、虚拟机登录及信息维护等模块。在虚拟机登录模块由于操作系统不同,又分为RDP协议和SSH协议两种连接方式。

4.3创新实验云平台架构

从使用者的角度出发,创新实验云平台分为管理系统和客户端两部分,总体架构分为5层。

(1) 基础软硬件资源层。基础硬件资源包括计算资源(CPU、内存等)、存储资源和网络资源等,采用的虚拟化技术是KVM,操作系统采用的是Ubuntu。

(2)OpenStack云管理层。主要通过各组件来提供、管理虚拟机等资源,这些组件包括Nova、Glance、Neutron、Keystone、Swift等。

(3) 通信中间件层。主要用以连接云管理层和应用业务层,通过接口实现。接口分为公用接口(Publicinterface)和私有接口(Privateinterface),对不同的业务逻辑应用调用不同的接口。

(4) 应用业务层。是针对网络或者客户机的不同请求,给出不同的业务处理,包括课程、用户、镜像、快照和虚拟机等不同的处理。

(5) 应用表现层。针对不同的用户,应用表现层有不同的表现形式。教师和管理员通过网络来管理整个系统,业务逻辑部分采用J2EE中的SSH架构,中间通信部分通过接口实现;学生主要通过云平台桌面客户端来获取资源,面向客户的服务主要处理与用户使用虚拟机相关需求的业务,面向服务端的处理请求业务主要通过接口来处理客户端的请求,连接应用业务层,在该层中会对用户的请求进行封装,封装成与服务端提供的接口一致的格式,并且该层也负责接收服务端的响应消息,再传递至客户端。

4.4创新实验云平台使用流程

以一学期同时满足15位教师指导创新实验课程、每门课程10名学生为例,本创新实验云平台的使用流程包括:

(1) 超级管理员创建本学期负责该创新实验云平台的管理员(主要是实验室相关负责人);

(2) 管理员初始化系统,上传原始镜像(指仅安装了操作系统,未装其他软件的镜像),并创建本学期需要开设创新实验课程的15位教师;

(3) 这15位教师将在网上分别创建自己的实验课程,并导入自己的学生;待管理员审核通过后,针对原始镜像创建自己的虚拟机,并可以通过云平台桌面客户端安装该课程所需的软件,保存成快照,并据此分别为自己的10名学生创建虚拟机,每位学生均可见教师已安装好的软件;

(4) 学生开启装有云平台桌面系统的计算机,登录虚拟机,可以随意安装所需软件进行实验,并可以自由切换虚拟机与本地软硬系统,每次结束后保存退出即可,下次可以继续进行实验;

(5) 待学期结束,管理员负责回收资源。

5 结语

传统的计算机类实验平台无法满足创新实验的实际应用需求。本文给出的创新实验云平台采用OpenStack开源框架,并进行了二次开发,设计并实现了满足创新实验云平台的业务流程。该平台方便了创新实验教学,减少了实验室管理人员的工作量,同时也节约了硬件资源、提高了实验资源的利用率。

致谢:感谢云计算团队的孙寒玉、杨巍巍、李小可、丁玮超、赵琳莹、张凯旋、张勋、文赓、戴智明等同学对云平台的构建和实施所作的努力!

References)

[1] 李宁,王铁峰.打造无围墙的实验室[J].实验技术与管理,2013,30(4):12-15.

[2] 张水平.云计算原理及应用技术[M].北京:清华大学出版社,2014.

[3] 覃冯,黄善斌,覃卫玲,等.基于桌面云的多媒体计算机实验室管理研究[J].实验技术与管理,2015,32(3):164-166.

[4] 陈慧芬,卢庆武.云计算在高校机房管理中的应用[J].实验室研究与探索,2013,32(7):213-216.

[5] 底晓强,张宇昕,赵建平.基于云计算和虚拟化的计算机网络攻防实验教学平台建设探索[J].实验技术与管理,2015,32(4):147-151.

[6] 黄志成.开源云计算OpenStack在高校计算机机房中的应用研究[J].计算机与现代化,2013(3):204-206.

[7] 戢友.OpenStack开源云王者归来[M].北京:清华大学出版社,2014.

[8] 李磊,李小宁,金连文.基于OpenStack的科研教学云计算平台的构建与运用[J].实验技术与管理,2014,31(6):127-133.

[9] 刘春红,宋耕,徐晓洁.基于云平台的虚拟网络实验室设计与实现[J].杭州电子科技大学学报:自然科学版,2015,35(2):98-102.

[10] 赵少卡,李立耀,凌晓,等.基于OpenStack的清华云平台构建与调度方案设计[J].计算机应用,2013,33(12):3335-3338,3349.

[11] 张小斌.OpenStack企业云平台架构与实践[M].北京:电子工业出版社,2015.

[12] 孙寒玉,顾春华,万锋,等.一种基于OpenStack的云应用开发框架[J].华东理工大学学报:自然科学版,2015,41(2):272-276.

YangZeping,GuChunhua,WanFeng,LuoFei,ChangYaohui

(SchoolofInformationScienceandEngineering,EastChinaUniversityofScience

andTechnology,Shanghai200237,China)

TheinnovativeexperimentalcloudplatformbasedonOpenStack,anopensourceframework,isgiven.Thearchitectureofthecloudplatformconsistsoffivelayers,includinginfrastructurelayer,cloudmanagementlayer,communicationmiddlewarelayer,applicationbusinesslayerandapplicationpresentationlayer.Theplatformisdesignedtomeetthedifferentneedsofthecomputersoftwareandhardwareresourcesofdifferentmajors,reducetheworkloadoflaboratorymanagement,andimprovetheutilizationrateoftheexperimentalequipment.Moreover,theplatformisstableandreasonable,andprovidesaneffectivesupportfortheinnovativeexperimentalteaching.

cloudplatform;experimentalteaching;OpenStack

DOI:10.16791/j.cnki.sjg.2016.05.038

2015- 10- 13

国家自然科学基金项目(61472139);2013年度上海高校实验技术队伍建设计划项目“人工智能和虚拟化技术在实验室中的应用研究”;2015年度华东理工大学继续教育教学研究项目“成人高等教育中实验教学方法及辅助平台的研究”

杨泽平(1980—),女,河南桐柏,博士,工程师,主要研究方向为模式识别、神经网络和数据库技术.

TP393.07

A

1002-4956(2016)5- 0147- 04

猜你喜欢
镜像管理员计算机
我是小小午餐管理员
计算机操作系统
我是图书管理员
我是图书管理员
镜像
可疑的管理员
基于计算机自然语言处理的机器翻译技术应用与简介
镜像
信息系统审计中计算机审计的应用
镜像