私有云的架构技术及其实现

摘要

当今,互联网技术迅猛发展,各行各业都试图与日趋成熟的云计算模式相结合,充分利用云计算的优势。但在教育领域,云计算的应用并不多,普及和发展还需要各方面的努力。如何将云计算与IT教育紧密结合,充分利用云计算模式的优势,寻找云计算与IT教育之间的契合点,成为各大网校和IT企业不可或缺的议题。

针对目前常用的大型网络设备如服务器、网络、存储、负载平衡、安全设备等,存在着资源利用率低下、服务质量差等问题,本文针对这些问题,提出在Openstack上进行高可用的高性能专用云的部署。文章对虚拟技术和OpenStack中的关键部件进行了深入的阐述,并提出了一种利用OpenStack技术来实现自己的专有云计算平台。设计并实现了良好的门户界面和用户接口,为网校师生提供了课程存储和虚拟课堂两大服务,对于云计算在教学方面的应用探索以及Openstack开源社区在国内的发展做出了一定的贡献。

 关键词:云计算;虚拟化;OpenStack;私有云

第1章引言

在云技术飞速发展的今天,云服务系统中出现了大量的应用,因此,在实际的业务中,如何对其进行有效的管理,并建立适合于特定的业务环境的管理系统。各个行业都在尝试着将云计算的优点融入到日益完善的云模型中。但是,在教育领域,特别是在我国,云技术的发展和推广,还有待于各方的共同努力。本论文以开放源码Openstack项目为基础,采用云计算与虚拟技术相结合的云计算教学平台,平台设计将与网校教育紧密结合,充分利用云计算模式的优势,寻找云计算与网校教育之间的契合点,体现出云计算与网校教育结合之后的优越性。平台的设计对于教育资源的合理配置,教育信息化的发展,教学管理水平的提高将起到一定的作用。

本论文所搭建的云教育平台基于开源框架Openstack。Openstack是基础设施即服务(IaaS)组件,目标系统对云端资源的管理将依赖于对硬件的抽象,这个过程是通过虚拟化技术实现的。Openstack开源框架已经为用户提供了一套基于REST标准的接口,它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。云计算技术应用于教育领域将产生不可估量的影响。首先,云计算技术可以为网校师生提供一个庞大的可扩展的存储引擎,有利于优质教学资源的普及与共享,降低数据库重建的成本;其次,利用云计算技术,学生可以自主选择学习内容和学习地点,只需要一个终端设备便可以获取丰富的教学资源。学生可以方便的学习到自己感兴趣的内容,提高自己的专业能力;最后,云计算技术与网校教育相结合将有效的节约教学成本,合理配置教学资源,丰富教学方式和教学内容。教师可以利用云上的教学资源丰富教学内容,选择具有合适配置的虚拟机开展教学工作,云计算应用于网校教育还能极大地降低教学成本。

 第2章虚拟化技术与OpenStack的介绍

本章主要介绍本毕业设计中主要涉及到的一些关键技术,包括虚拟化技术与OpenStack的介绍。

2.1云计算框架

“云”这个词,已经成为了网络产业中最热门的词汇,而“云计算”,则是逐渐的被提上了日程,成为了IT领域的热门话题。这是一种以互联网为基础的超级计算机,由数千个主机和服务器组成的网络。它拥有超强的运算功能,能够为我们提供气候、股市走势、乃至核武器的预测。通过与计算机、移动电话、笔记本等不同类型的电子设备接入到各自的信息中心,并根据自己的需要进行配置。其实就是一种将海量的信息分解为不同的数据,然后将它们分成不同的部分,进行运算,然后将它们进行分析,最后将它们反馈到用户的脑海中。云的诞生使许多中小公司和企业家受益,为他们节约了大量的IT费用。

云计算模式所具备的5个基本特征(按需自助服务、广泛的网络访问、资源共享、快速的可伸缩性和可度量的服务)、3种服务模式(SaaS(软件即服务)、PaaS(平台即服务)和IaaS(基础设施即服务)和4种部署方式(私有云、社区云、公有云和混合云)[2]。

云计算的特点:

(1)虚拟化是云计算最大的特征,它可以让使用者在任何地方都不受到任何的影响。任何一个装置都可以接入到云计算平台上运行。

(2)云计算是一个庞大的市场,一个小公司的私人云,会拥有数百个以上的服务器,而大型公司则会拥有数以百万计的网络,存储起来也是一件消耗巨大的事情。云计算能够实现大规模的集成。

(3)“高可用”这个词最恰当地形容了“云”,因为“高可用”使用了许多复制的错误处理技术,例如,“数据备份”。用这个软件将会更可靠。

(4)实现客户的个性化定制,满足客户的需要,减少了不必要的资源消耗。(5)具有很强的扩展度,可以在任何时候进行系级的扩大和缩减。

(6)对于中小企业、创业者来说,“福星”的价格要远远高于购置硬件和软件。

 2.2虚拟化技术

本论文以OpenStack为基础,对高可用的企业级专用云计算进行了深入的探讨。在这个工程的启动前,我们首先要理解的就是虚拟化,因为虚拟化技术是云计算的基础架构,而与云计算有很大的区别。至于云计算,则是一种新的技术。所谓的虚拟化,其实就是一个不现实的概念,它所使用的一切,都不是真正的实体,都是由一个庞大的实体服务器提供的。这样的服务器被称为”虚拟化机器”。在使用者的眼中,每一款都是单独的,互不往来,但却有着千丝万缕的联系。他们共享内存、CPU和网卡等资源。让我们来仿真一个Windows或MacOS的多个操作系统,它们可能与宿主一样,也可能与宿主一样,例如将CentOS装到Windows上。不,CentOS也可以在4 CPU,8 GMEM等硬件上进行配置。如图2-1所示。

图2-1 VMware上部署CentOS7虚拟化的特点:

6f13e0e545e25d360144e73dcd9cdace  (1)在管理员方面,虚拟技术是一种集中式的管理方式,如果有什么问题,管理员可以不去管。可以用遥控方式进行。对这些工具进行快照和复制,可以方便管理员进行每日的管理。

(2)虚拟技术改善了企业IT资源使用的硬件利用率。一家公司的IT设备,都需要在未来数年内,达到“峰值”的运算能力,而在虚拟技术的支持下,可以根据现有的计算要求,对现有的数据进行实时的扩充。如果有更多的“闲时”能力,则可以在这个实体机器中执行多个虚拟机器,而不会占用更多的实体资源。而且,企业并不一定要将大量的物理资源用于增加系统的可靠性,这样会导致大量的物理资源的消耗,而虚拟隔离技术则可以有效地改善这个问题,既能保证系统的可靠性,又能充分的使用各种设备。

(3)具有较高的可靠性,能够实现负载平衡、动态迁移、快速复制等,并通过配置附加的功能和计划来降低服务器或应用程序的中断,从而增强可靠性。

虚拟化技术有很多种,比如,网络虚拟化,内存的虚拟化,桌面虚拟化,应用虚拟化和虚拟内存等等[5]

 2.3 OpenStack

Openstack是一个开放源码云计算架构,该架构是XRackspace与X太空总署NASA合作开发的一个开放源码的云计算架构。旨在构建各种规模的可伸缩的IaaS基础构架解决方案。Openstack软件从推出之初便受到业界的广泛关注,成为最重要的云计算产品之一。目前Openstack社区有超过180家企业加盟,这些机构将Openstack作为通用前段,搭建基础设施即服务(IaaS)云环境。

Openstack包含一组由社区维护的子项目,其中Swift,Nova和Glance是其中最主要的三个项目。Swift提供云存储服务,Nova提供虚拟化服务,Glance提供虚拟机镜像的管理。

Openstack对象存储模块(Openstack Object Storage),代号为Swift,主要负责数据的存储服务,包括冗余数据存储管理,数据备份,数据容量预测等,与Amazon的S3服务类似。Swift的标准服务器可以存储PB级的数据,用于存储图片,邮件,文档或者虚拟机的镜像。Swift没有主控节点,元数据分布在每台服务器之中,不会出现单点故障,具有很好的冗余性,扩展性和持久性。

Openstack计算模块(Openstack Compute),代号为Nova,可以为单个用户或者企业提供以虚拟机为单位的计算资源,是整个云平台的中心控制器。Nova运用服务器虚拟化技术,对云端资源进行切割,以虚拟机的形式提供给用户使用,它可以管理数以百万计的虚拟机,包括虚拟机的操作以及多个实例之间的网络配置和管理。

Openstack图像处理模块(简称“Glance”)是一个包含查询、生成和查询的虚拟机映象的一组系统。可以通过以下三种方式来进行Glance的映象:Swift物件储存、亚马逊S3储存装置、Swift做为一个连接器来直接存取S3。Glance提供了许多不同的镜象形式,如亚马逊的映象(AMI、AKI、ARI)、VMware(VMDK)、虚拟盒子(VirtualBox)等。

Openstack主要由以上三个模块构成,此外还包括身份认证服务和网络服务,分别用于用户权限管理和网络管理,作为上述三大模块的辅助模块。Swift,Nova和Glance可以单独使用,也可以组合起来,搭建成一个通用的IaaS云平台。

核心组件:

(1)标识服务:是OpenStack自己研发的一个构件。它的首要功能就是验证和授权所有的业务,它为OpenStack架构的注册提供API。

(2)镜像业务:在用户建立一个执行个体时,它的主要作用是储存镜像快照,管理镜像备份,并能储存各种镜像,例如iOS、qemu等。不过,这个业务不会在本机的实体机器中进行任何操作。

(3)Nova:是OpenStack工程的“心脏”,在执行个体的过程中,通过其来处理诸如网路、运算等一切行为。迁徙等。

(4)Network Service(Neutron Service):通过为云计算环境中的虚拟技术,为使用者的界面,使其具有一定的自主性。根据需要,用户可以根据需要建立一个个人化的网站,它能同时对网站的流量进行管理,同时还能同时对多个网络进行控制。为该示例设置一个网络链接。

(5)Dashboard(UI接口):一个网页图形接口,使用者可以使用URL登录到GUI中,浏览并管理OpenStack的资源。与指令接口相比,使用者执行实例创建、实例启动、IP地址指派等的操作也比较容易。这是OpenStack的一个单独的工程。

(6)索引(区块储存):当执行个体被建立时,索引服务会提供volume区块储存服务,将volume卷装入该执行个体上的虚拟主机。多个volume卷可以在同一时间装载多个执行个体,但不能同时写入此卷,每次只有一个执行个体可以写入已装入的卷,其它仅允许读取。

(7)Swift(Object Store):为Nova子工程的虚拟机映象储存业务,它能在多租客方中实现对容器和物件的读取和写入,是一种高可用的分布物件储存业务。各个组件之间的关系,如图2-3所示:

图2-3 OpenStack组件间关系图

70f9ab408370f3320d2ba9e77837f603  本章小结

本文重点介绍了云计算技术、虚拟化技术、OpenStack技术和云计算技术。然后详细的阐述了这些技术的基本原理和原理,以及每一种技术的功能。

  第3章云教育平台功能分析

Openstack作为云教育平台的底层框架,云存储(Swift)和虚拟化(Nova)是其两个核心模块。云存储模块使用普通的服务器来构建冗余的、可扩展的分布式对象存储集群,作为IaaS的存储服务。下面将对主要的五个模块进行需求分析。

 3.1云教育平台设计

目标平台位于Openstack云架构的顶层,平台将以课程服务为中心,结合网课的具体应用,充分考虑校园环境与需求,设计出方便教师和学生操作的管理系统。整个系统根据课程服务将分为两大功能模块:课程存储服务模块和虚拟课堂模块。

界面部分的两大功能模块将对应于云存储部分和虚拟化部分的上层应用。平台根据用户身份分为教师用户和学生用户,管理员将权限分配给教师用户,教师用户获得权限后能自主对资源进行再分配,如创建课程抽屉供学生提交作业,根据课程需要定制教学机供学生在上机课使用等。

老师和学生将以课程服务为中心享受课程存储和虚拟课堂的服务,平台以课程为单位进行分类管理。师生可以享受到的课程存储服务包括:课程作业提交,课程作业报表;虚拟课堂服务包括:课程模板设计,教学机管理,课程快照类作业提交和虚拟课堂报表。

 3.2用户管理模块

平台界面除了管理员外,按照角色不同被分为老师身份和学生身份。老师身份用户和学生身份用户都属于非管理员用户,但老师用户和学生用户对资源的控制和使用却有着不同的权限,管理员可以将特定权限分配给老师。教育云存储模块中,教师可以创建和删除课程抽屉,可以为课程抽屉制定作业提交截止时间,也可以向课程抽屉上传习题答案或删除文件。学生身份登陆后看到的界面与老师一致,但对于列表中的抽屉并无修改或删除的权限,学生可以在规定的时间内上传作业,也可以下载答案。对于虚拟课堂模块,教师用户可以创建或者删除教学机,学生用户则只能使用被老师创建的教学机,不能删除教学机。

在平台的权限管理中,如果发生了一个没经认证的调用,平台会响应一个401未授权错误。平台主要管理如下对象模型:user,project,role,service,endpoint,token,policy,group,domain,trust等。用户登录目标平台,获得一个token,用此token作为一个统一标识,访问其他的计算、存储和网络等服务。

用户注册:用户通过客户端进行账号注册,注册时提供手机号、密码、姓名、昵称等信息,进行判断各个字段是否符合规则,再将注册结果返回给用户。

用户登录:用户在登录界面,输入手机号和密码进行登入验证,后台进行判断后返回登录成功或失败。

修改个人信息:用户登录成功后,可进入用户设置界面进行个人的用户信息完善或修改,提交信息后后台返回修改成功或失败。

管理员登录:管理员通过后台管理系统的login页面输入用户名和密码,后台判断后返回登录成功或失败。

管理员账号管理:超级管理员可以对所有社区的管理员账号进行增、删、改、查的操作,而普通管理员则只能查看到与自己相同社区的管理员并进行操作。

模块信息管理:管理员根据自己所分配到的权限,进行对各个模块中的信息进行管理操作。

  3.3课程存储模块

为了方便管理员对云教育平台后台课程的管理工作,设计了课程管理的模块。

为方便老师及时获得教学信息,对课程进行有效的管理,平台为老师提供多项报表功能,如:课程信息报表,作业统计报表和虚拟课堂报表等。本节主要介绍课程信息报表的功能和界面展示,作业统计报表和虚拟课堂报表将在后几节中给出。报表通过各种方式获取与课程紧密相连的信息,记入数据库,再以表格的形式展现出来,这对于老师及时方便地获取教学信息,对学生的课程情况进行有效评估将起到很好的促进作用。

老师用户登录后,将会看到自己的教学课程和一个课程信息报表。报表的数据库信息和界面如表3-2所示:

表3-2课程信息报表数据库信息

a93877341cd80e175016c7d537f7800d

课程分布:管理员通过平台上架课程商品,在新增页填入对应的课程商品信息,如商品名称、积分价格、商品属性、商品分类等等。

课程购买:管理员可以通过平台对已有课程商品、商品属性、商品分类进行管理,对信息执行增删改查的操作。课程学习:用户通过客户端的商城模块根据分类查看到相应的商品信息。

相比传统的移动存储设备,课程抽屉有着无法比拟的优势:第一,课程抽屉功能会为每份上传的文件提供至少三份备份,安全性和可用性有着可靠地保证。教师不用担心忘记携带移动存储设备而影响正常教学,或者文件由于各种原因发生信息丢失。第二,课程抽屉功能将提供足够大的存储空间,教师不用担心需要的教学材料和实验数据因庞大而无法存入相应的设备。课程存储系统有后端云资源作为支撑,实际的云端往往有数台甚至数十台设备共同支撑校园存储业务,而且理论上系统将有着无限的可扩展性,因为底层的swift存储系统是完全对称的架构,系统的扩展只需简单地增加设备,系统将自己完成数据迁移工作,使各存储节点重新达到平衡状态,同时不影响教育云存储系统的性能(如QPS,吞吐量等)[12]。第三,课程抽屉功能的用户面向老师和学生,用户具有不同的操作权限。学生用户只能下载和上传文件,但不能删除和修改文件。老师用户则可以删除和修改文件。

 3.4虚拟课堂模块

虚拟课堂模块对用户(教师和学生)提供按需分配的虚拟机。虚拟课堂模块将带来许多便利,不同实验室的教师和学生可以共用某台高端服务器的资源,不必为频繁的重装操作系统而耗时,甚至不需要担心硬盘或内存不够而购买额外的设备。教师和学生只需向系统申请一台或数台教学机实例,远程登录实例,完成相应的操作。模块会提供一个总览功能,展示云端资源的总量和已经使用的情况。在安全性方面,模块允许用户创建密匙,供用户登录虚拟机之用。虚拟课堂模块提供主要功能包括:教学机管理,课程模板,课程快照和虚拟课堂报表

对教学机的某一系统状态进行备份,程序类上机课程可以快照形式提交作业,老师恢复快照并对作业进行评估虚拟课堂报表提供特定课程学生上机课的上课信息,并且提供对快照类作业提交的评分功能

本章小结

论文首先对云计算教学平台的开发目的进行了剖析,阐述了项目的研究思路和研究的内容,然后对项目的三大主要模块进行了详细的阐述,并给出了每个模块的设计理由,并给出了每个模块的需求流程图。

第4章高可用私有云平台部署

本课题采用OpenStack平台+Java语言+MYSQL数据库+tomcat服务器开发,将整个系统分为两大部分,云教育应用系统与OpenStack后台管理平台。

OpenStack的后台管理系统是以管理员帐号为基础的,它负责对OpenStack的各部分的数据进行管理。而云教学应用系统则是通过注册用户帐号来完成云教学的各个功能。本文对各主要模块进行了详细的设计和实施。

 4.1部署高可用平台准备

  4.1.1硬件资源准备

控制节点(3台三张网卡的虚拟机)、计算节点(3台双网卡,兼分布式存储OSD的虚拟机)、存储节点(1台双网卡部署MOD的虚拟机),虚拟机软件详情,如表4-1所示

 4.1.2网络拓扑及逻辑

网络拓扑图,如图4-1所示:

13a1ea8eb9cf832e502b77be2c2462c3  图4-1网络拓扑逻辑图

1.在三个控制节点(controller1、controller2、controller3)部署MariaDBgaleria,Haproxy等相关组件和搭建好OpenStack相关的基础服务。

2.在三个计算节点(computer1、computer2、computer3)部署Nova-computer,neutron-openstackswitch-agent,ceph-osd等组件。

3.在存储控制节点(mon01)部署ceph-mon,ceph-mgr。

4.控制节点网络:

(1)管理网——ens34:192.168.10.0/24用于对OpenStack集群hostos,api等网络管理。

(2)租户网络——ens35:10.10.10.0/24采用vxlan/gre等方式,使集群内部的虚拟机里的OS的数据进行交换。

(3)外部网络——ens33:192.168.15.0/24可以让用户访问Internet(外网)下载需要的组件。

5.计算节点网络:与控制节点的网络相似。

6.前端用高可用的Haproxy做负载均衡,用MariaDB galeria作为数据库,用Ceph分布式存储对接OpenStack,通过这一系类的部署,希望能够顺利搭建完成高可用的私有云。

 4.1.3OpenStack环境准备

1.为了集群所有电脑都可以快速地互相访问,需要配置hosts文件;vim/etc/hosts//打开hosts文件,添加一下的虚拟机IP和对应的名字192.168.10.21 controller1

192.168.10.22 controller2 192.168.10.23 controller3 192.168.10.20 virtualIP 192.168.10.24 mon01

192.168.10.19 computer1 192.168.10.18 computer2 192.168.10.17 computer3

2.配置SSH是为了各个节点之间可以互相免密登陆;ssh-keygen//生成密钥,使它们可以免密通信

ssh-copy-id controller2 ssh-copy-id controller3 ssh-copy-id mon01

ssh-copy-id computer ssh-copy-id computer2 ssh-copy-id computer3

3.安装和配置ntp服务器实现时间同步;#yum install system-config-date-y

//下载安装NTP

//修改NTP配置文件:#vim/etc/chrony.conf

Server 192.168.10.21 iburst Server 192.168.10.22 iburst Server 192.168.10.23 iburst allow 192.168.0.0/16

4.2 HAProxy

HAProxy提供了负载均衡、高可用性以及基于TCP和HTTP应用的代理,它支持主机虚拟化,它是一种免费、快速而且可靠的解决方案[6]。目前,HAProxy是最受欢迎的一款Web负载均衡软件,其非常适合一些需要24小时不间断地进行对话、负载量非常大的网站。现在常见的硬件设备上运行HAProxy来应付数以万计的并发连接是一件轻而易举的事情。用户在现有的基础服务架构与HAProxy整合的过程是既简单又安全,同时还会避免用户的Web服务器直接暴露到外部网络中,让web服务器得到最大程度的保护。

  4.2.1 HAProxy性能

市面上有许许多多的负载均衡器,与其他的相比,HAProxy的优点在于它本身就只是一款负载均衡软件,没有其他的功能,所以它的效率一定是比Nginx更加高的。除此之外,在处理并发的问题上也是比Nginx更胜一筹。HAProxy有多的负载策略,如:原地址保持、请求URL、轮循、带权轮循、根据cookie;还支持虚拟主机、支持TCP协议和HTTP协议的负载均衡转发。

4.2.2 HAProxy配置

在三个控制节点都安装HAProxy,还需要保持三台节点的配置一样;

(1)以controller2为例,下载安装和修改配置文件,然后启动HAProxy;

//下载安装

yum-y install haproxy

//修改配置文件:

//配置HAProxy的日志

local3.info-/var/log/haproxy.log;Haproxy local3.notice-/var/log/haproxy-status.log;Haproxy local3.*~

(2)通过配置HAProxy可以监控Galera数据库,首先需要在控制节点三台MariaDB进行数据库的配置。在全部控制节点上,重新启动HAProxy,同时设置开机自动启动。

(3)验证配置是否成功,登陆http://192.168.10.20:8789/检测状态。

4.3部署Keystone

  4.3.1 Keystone配置

它是OpenStack的主要组件之一,用于为云用户提供身份认证,想要用到云平台就必须要通过KetStone的身份认证,就像回家必须要有钥匙开门一样。其出现为了解决各种不同安全认证,如用户登陆时对身份进行认证,各个服务之间交互也是需要通过其认证,还有各种注册等。通俗的比喻就是,KeyStone相当于一个小区的保安,需要进行身份认证才可以进入,进入之后只能回到自己的家里。所以搭建OpenStack之初需要部署的第一个组件就是KenStone。如果没有它,其他服务也就无用武之地了。

Keystone的基本概念:

(1)User:

为用户分发令牌,用户包括人,系统,服务;用户必须有获得该令牌才有资格访问OpenStack平台。Keystone在用户访问OpenStack平台的时候需对要其进行身份验证。

(2)Token:它是来自于其中的一个令牌机制(fernet、PKIZ、PKI、UUID)所随机生成的一串由数字和字母组成的字符。它不是永久有效的,它具有时效性,默认是24小时,但是可以自定义设置这个时效性。在时效性内可以随时访问服务,过期了就不可以访问了。

(3)Project:是所有服务或者用户拥有的资源的一个总称。每个Project之间是不会有交集的。一个Project里面允许有多个User,根据权限,User可以对Project的所有资源进行分配。

(4)Service:就是平时说的服务,例如Nova(计算服务),Glace(镜像服务)等各个组件。

(5)Endpoint:是一个URL,可以用来访问云平台的IP地址,通常。Keystone负责管理和维护每个Service的Endpoint[7]。

Endpoint该使用对象分为三类:

(1)AdminURL:分配给管理员用户使用,可以修改UserProject,端口:35357;

(2)InternalURL:Openstack里面的各个组件之间基于Restfulapi进行通信使用,端口:5000;

(3)PublicURL:用于分配给其他用户访问云平台,用户在外网管理自己的服务其,端口:5000。

 4.3.2 Keystone配置文件

安装Keystone与修改配置文件

1.控制节点安装Enable the OpenStack repository(controller1和controller2);

2.控制节点安装SQL database(controller01和controller02);

3.在所有控制节点安装Memcached;

#yum install memcached python-memcached-y//安装Memcached

4.配置身份和服务;

#mysql-uroot-p”typora#2019″

5.安装和配置组件;

#yum install openstack-keystone httpd mod_wsgi-y//安装需要的组件

6.configure the Identity service,创建keystone用户,初始化serveice实体和endpointapi端点;

7.Configure the Apache HTTP server[cont0$表示controller1、contoller2和controller3];

#vim/etc/httpd/conf/httpd.conf//编辑httpd配置文件httpd.conf ServerName VirtualIP//在httpd.conf文件中添加ServerNameVirtualIP

8.创建域,项目,用户和角色。(由于是集群,所以只要在一个控制节点上创建即可)。#openstack domaincreate—description”AnExampleDomain”example

//测试是否可以使用admin账户进行登陆认证,请求认证令牌

KeyStone的安装与配置流程,如图4-2所示图4-2 KeyStone安装与配置流程

216d41ab69a938b66891fe64d8884533  第5章云教育系统部署

本课题采用OpenStack平台+Java语言+MYSQL数据库+tomcat服务器开发,将整个系统分为两大部分,云教育应用系统与OpenStack后台管理平台。

OpenStack后台管理平台由管理员账号登录,主要对OpenStack平台的各个模块数据信息进行管理。而云教育应用系统由用户账号登录,主要实现用户对云教育平台各功能的应用体验。下面将介绍主要的几个模块的设计与实现。

5.1用户管理模块的设计与实现

  5.1.1模块流程

在系统管理员和一般使用者的登记过程中,使用者输入手机号码、密码等信息,按下登记键后,再利用界面呼叫后端的报名法,检查手机号码等,不受类别的约束。电话号码是对的。

正常用户登陆时,只需要输入自己的电话号码和密码,然后输入用户的资料库,然后根据自己的账号来确定账号是否存在、身份是否合法、账号是否被锁定、账号是否与密码相符,如果一切都能顺利进行,那么用户就可以登陆并保存Cookie,否则就会出现相应的错误。

在一般的用户更改个人资料的过程中,使用者可以使用使用者设定的方式,对使用者的头像、昵称、密码等进行更改,使用者在提交资料后,后台会先对Cookie进行更改,然后再进行更改。然后,再由使用者提供的资料进行判定,最终会依据使用者的身份,修改资料库中的使用者资料。

管理员的权限会更大,能够对课程和普通用户的信息进行修改。

5.1.2模块数据库设计

用户模块分为管理员表gd_admin,存储管理员详细信息。人物表格gd_role,用于储存人物的资料。Admin_role,用于存放管理者和人物联立的资讯。项目表格gd_Management,用于储存背景项目的数据。人物-列关联表格,用于储存联立的人物和项目资料。Usergd_user,用于保存客户的数据,包括性别,证件类型,是否被锁定等。词典表gd_data、社区表gd_community、城市表gd_city是外部关键字表。

 5.2课程存储模块的设计与实现

  5.2.1模块流程

学生用学号和密码登陆平台,通过认证模块进行认证,若认证失败,系统提示重新进行登录,若成功则选择相应的课程并点击提交作业按钮。若不超期,则调用底层的Swift对象文件上传函数将作业存入系统,并返回应答消息。

课程存储服务将管理员身份用户与老师身份用户的角色id填入env_identity中,使得管理员和老师成为删除容器这一操作的授权角色(user_role),对不同身份判断逻辑如下:

图5-1课程作业提交流程图

7725f10428411cf804b8fe1bf4eb7466  平台先获取用户的角色信息,然后对具体角色进行判断,根据不同角色作出不同的处理。如果是管理员或者老师authorize函数会返回空,则意味着有权限进行容器删除操作,否则拒绝执行操作。老师和学生共用用户界面,但对其操作权限按照上述过程进行了不同设置,因此在资源使用和控制的过程中体现出差异化的行为。

老师在布置作业时设置提交时间,数据库中会增添相应字段,学生在提交时会对提交时间信息进行验证,验证条件中除了对上一小节的基本身份的认证和授权外加上对作业提交截止时间这一字段的判断,若当前时间current_time小于截止时间deadline,则提交验证条件通过,反之若当前时间current_time大于截止时间deadline,则终止作业提交,提示作业提交时间过期。

  5.2.2模块数据库设计

课程存储模块包括课程表、课程详情表和课程课时表。课程表主要包括课程标题、课程图片URL、课程所属分类、所属导航菜单、课程数据、讲师ID、开课时间和课程结束时间等。课程明细表主要包括课程介绍、课程目录、课程须知、课程ID等信息。课程课时表主要包括课时所属父级ID、课时名称、课程类别、创建时间、课时排序和课程ID等信息。其中课程详情表的课程ID是课程课时的外键。

 5.3虚拟课堂模块的设计与实现

  5.3.1模块流程

虚拟课堂模块的下层依赖于openstack nova模块,nova提供了对Xen,QEMU,

KVM,LXC等多虚拟化产品的支持[21]。Nova在管理虚拟机的操作中用到了libvert函数库。Libvirt是一款开源的函数库,用来管理运行于主机上的虚拟机,它对虚拟机监控程序实现的常用功能提供通用的API,对上述虚拟化产品都有相应的支持。libvirt常用的操作函数如下:

virDomainCreate:创建虚拟机virDomainReboot:重启虚拟机virDmainShutdown:关闭虚拟机virDomainDestroy:销毁虚拟机

virDomainMigrate:迁移虚拟机virDomainGetInfo:获取虚拟机信息

虚拟课堂模块提供对云主机实例的图形化操作,教师或学生通过点击按钮触发相应的事件响应函数clickOnEvent,然后通过调用REST接口iRestHandler实现GET,POST,PUT和DELETE操作,REST接口对libvirt函数库进行调用,实现对虚拟机操作的具体功能。

功能的实现分为以下几个流程:

1.学生下课前点击课程快照按钮,触发事件响应函数;

2.调用Nova接口层API,通过nova.image.glance.createsnapshot方法将当前教学机镜像作为快照类型保存一份元数据并且获取ID;

3.nova-compute API使用RPC调用computeManager;

4.computeMagager获取实例的镜像元数据,快照元数据和教学机的virDomain

5.对象,进行相关参数配置;

6.解析xml文件,找出存储磁盘路径disk-path;

7.检查教学机是否在运行,若在运行,libvirt暂停教学机,保存教学机内存内容。

 5.3.2模块数据库设计

虚拟课堂模块主要负责学生买了课程后的使用问题,包括课堂信息表、课堂信息对话表和课堂关系表。课堂信息表主要包括私信ID、私信类型、发信人ID、收信人ID、私信内容、私信发送时间等信息。课堂信息对话表主要包括会话ID、发信人ID、最后发信人ID、最后发信时间、最后发信内容等。课堂关系表主要包括消息关联ID、关联的会话ID、关联的消息ID和是否已读等信息。

 总结与展望

目前,云教育平台的智能已经成为一个热点,本论文在这一大趋势下,对云平台建设、教育系统建设、虚拟课堂、课程存储等进行了系统的开发和开发。该体系能够在网络教学中广泛地运用于教学中,而且可以在网络教学中得到持续的拓展和拓展。本论文的主要工作及成果是:

(1)根据对国内外云教育平台现状的调研,了解了OpenStack的底层的基本原理,各个组件的源代码和工作原理需要进一步研究。

(2)基于对云教育平台系统的架构分析,确立了基于OpenStack云平台+JAVA+MYSQL数据库+Tomcat服务器的设计架构,并且将所使用到的主要框架与技术进行了解和介绍。

(3)在此基础上,我们建立了OpenStack的云端服务平台,并对其控制节点、计算节点、主机等进行了全面的了解和理解。

(4)在云教学平台中,利用需求方框图对其进行条理化的需求进行条理化的分析,得到了整体的体系结构。

(5)对整个云计算平台的整体系统进行了设计,包括前台和后台的各部分的功能和编码,在整个系统完成后,进行了系统的配置和调试,对各模块的性能进行了详细的记录和分析。由于作者所涉及的是部分主流技术研究,也受限于时间,本研究论文存在以下不足:

(1)本文涉及的搭建方式不全面,搭建方式不够新不够快,所以得出的结论也比较片面。

(2)由于个人时间以及能力有限,本文暂且搭建出比较简单的私有云,未完全实现正真的高可用。

(3)由于本人计算机硬件资源有限,无法成功完成高可用对接。

云教学平台的构建有着广阔的应用空间,本文以课程储存与网络教室为中心,构建了一个基于云计算的教学平台,并取得了良好的教学成果。但是,受建立时间、容量等因素的制约,本软件存在很多缺陷,期望在以后的工作中可以继续改进;在今后的工作中,我们也会继续提高自己的设计水平。

 致谢

经过这一学期的研究和设计,毕业设计因此接近了尾声。在此,我首先要感谢我的导师老师,感谢她在这一段时间的精心指导,由于我缺少实践能力和经验,导致在设计过程中会出现细节的遗漏,感谢老师在繁忙之中细心检查并给予我指导。其次,也感谢在毕业设计遇到困难之时,给予我帮助的校外导师和同组同事,没有他们的指点,该课题的设计逻辑也不会变得这么轻松。

感谢给我论文提供了帮助和意见的朋友和同学们和参考文献中的作者们,他们的帮助让我在论文的编写中有了很大的启发。

此外,感谢各位老师的辛勤工作。感谢母校给了我一个良好的学习和生活平台,在这里我不但学习到了很多专业知识,结识了许多良师益友,也希望即将离开的我能在今后的道路上多为母校增光添彩。

最后,我特别需要感谢我的父母,他们在支持我完成学业的同时还会无条件地包容我和爱护我,即将步入社会的我将变得更加优秀,好好报答我伟大的父母。

在此,我要向所有在百忙之中审阅论文并参加答辩的专家教授们表示衷心的感谢!

 参考文献

[1]by Kerry.Graciiani.IPv6 Technology Highlights(Second Edition)[M].Beijing:People’s Post and Telecommunications Press,2020.8.

[2]CPRIANPOPOVICIU.部署IPv6网络[M].:人民邮电,2006。

[3]崔北亮,史亚香.非常网管网络管理[M].北京:人民邮电出版社,2019.12.

[4]严体华,谢志诚.网络规划设计师教程(第二版)[M].北京:清华大学出版社,2021.

[5]Regis DESMEULESD.CiscoIPv6网络实现技术[M].:人民邮电,2002。

[6]朱小平,施游.网络规划设计师[M].北京:中国水利水电出版社,2018.

[7]Sam Brown Brian Browne Neal IOS的IPv6配置[M].:电子工业,2002。

[8]Jeff Doyle.TCP/IP路由技术(第一卷)第二版(第二卷)第一版[M].:人民邮电,2003。

[9]朱明程,王霄峻.网络规划与优化技术[M].北京:人民邮电出版社,2018.

[10]崔北亮,徐斌.IPv6网络部署实战[M].北京:人民邮电出版社,2021.3.

[11]李凯.简说IPv6[M].北京:清华大学出版社,2020.

[12]江城.在企业网中部署IPv6[J].思科中文技术社区,2006,(7):5-40。

[13]江魁,凡.园区网中的IPv6实现与应用[J].计算机系统应用,2015,(1):18-54。

[14]熊金波,刘西蒙.路由交换技术与实验[M].北京:清华大学出版社,2020.4.

[15]王达.华为交换机学习指南(第二版)[M].北京:人民邮电出版社,2019.

[16]刘大伟,陈亮.HCIE路由交换学习指南[M].北京:人民邮电出版社,2017.

私有云的架构技术及其实现

私有云的架构技术及其实现

价格 ¥9.90 发布时间 2024年2月26日
已付费?登录刷新
下载提示:

1、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“文章版权申述”(推荐),也可以打举报电话:18735597641(电话支持时间:9:00-18:30)。

2、网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。

3、本站所有内容均由合作方或网友投稿,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务。

原创文章,作者:1158,如若转载,请注明出处:https://www.447766.cn/chachong/198240.html,

Like (0)
1158的头像1158编辑
Previous 2024年2月26日
Next 2024年2月26日

相关推荐

My title page contents