私有云的架构技术及其实现_第1页
私有云的架构技术及其实现_第2页
私有云的架构技术及其实现_第3页
私有云的架构技术及其实现_第4页
私有云的架构技术及其实现_第5页
已阅读5页,还剩18页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要当今,互联网技术迅猛发展,各行各业都试图与日趋成熟的云计算模式相结合,充分利用云计算的优势。但在教育领域,云计算的应用并不多,普及和发展还需要各方面的努力。如何将云计算与IT教育紧密结合,充分利用云计算模式的优势,寻找云计算与IT教育之间的契合点,成为各大网校和IT企业不可或缺的议题。针对目前常用的大型网络设备如服务器、网络、存储、负载平衡、安全设备等,存在着资源利用率低下、服务质量差等问题,本文针对这些问题,提出在Openstack上进行高可用的高性能专用云的部署。文章对虚拟技术和OpenStack中的关键部件进行了深入的阐述,并提出了一种利用OpenStack技术来实现自己的专有云计算平台。设计并实现了良好的门户界面和用户接口,为网校师生提供了课程存储和虚拟课堂两大服务,对于云计算在教学方面的应用探索以及Openstack开源社区在国内的发展做出了一定的贡献。关键词:云计算;虚拟化;OpenStack;私有云AbstractNowadays,withtherapiddevelopmentofInternettechnology,allwalksoflifetrytocombinewiththeincreasinglymaturecloudcomputingmodeandmakefulluseoftheadvantagesofcloudcomputing.However,inthefieldofeducation,therearenotmanyapplicationsofcloudcomputing,andthepopularizationanddevelopmentstillneedeffortsfromallaspects.Howtocloselycombinecloudcomputingwithiteducation,makefulluseoftheadvantagesofcloudcomputingmode,andfindthefitpointbetweencloudcomputinganditeducationhasbecomeanindispensableissueformajoronlineschoolsandITenterprises.Inordertosolvetheproblemthattraditionaldatacentersoftenneedtopurchasealargenumberofnetworkequipmentsuchasservers,networks,storage,loadbalancingandsecurityequipment,andtheresourceutilizationisnothigh,aschemeofdeployingenterpriseprivatecloudisproposed.Thispaperintroducesvirtualizationtechnologyindetailandhowtousethemaincomponentsofopenstacktobuildaprivatecloudplatform.Therefore,aschemeofbuildinganenterpriseprivatecloudbasedonopenstackisdesigned,andagoodportalinterfaceanduserinterfacearedesignedandimplemented,whichprovidestwoservicesforonlineschoolteachersandstudents:Coursestorageandvirtualclassroom,IthasmadesomecontributionstotheapplicationexplorationofcloudcomputinginteachingandthedevelopmentofopenstackopensourcecommunityinKeywords:CloudComputing,Virtualization,OpenStack,PrivateCloud

目录TOC\o"1-2"\h\u25622摘要 116321Abstract 128434第1章引言 430487第2章虚拟化技术与OpenStack的介绍 4179982.1云计算框架 5264372.2虚拟化技术 5192572.3OpenStack 712993第3章云教育平台功能分析 9189883.1云教育平台设计 9167223.2用户管理模块 10279973.3课程存储模块 1160733.4虚拟课堂模块 129311第4章高可用私有云平台部署 12219304.1部署高可用平台准备 1332694.2HAProxy 14216204.3部署Keystone 153222安装Keystone与修改配置文件 1729710第5章云教育系统部署 1855645.1用户管理模块的设计与实现 18208335.2课程存储模块的设计与实现 194055.3虚拟课堂模块的设计与实现 2014339总结与展望 2111845致谢 2329387参考文献 24

第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也可以在4CPU,8GMEM等硬件上进行配置。如图2-1所示。图2-1VMware上部署CentOS7虚拟化的特点:(1)在管理员方面,虚拟技术是一种集中式的管理方式,如果有什么问题,管理员可以不去管。可以用遥控方式进行。对这些工具进行快照和复制,可以方便管理员进行每日的管理。(2)虚拟技术改善了企业IT资源使用的硬件利用率。一家公司的IT设备,都需要在未来数年内,达到“峰值”的运算能力,而在虚拟技术的支持下,可以根据现有的计算要求,对现有的数据进行实时的扩充。如果有更多的“闲时”能力,则可以在这个实体机器中执行多个虚拟机器,而不会占用更多的实体资源。而且,企业并不一定要将大量的物理资源用于增加系统的可靠性,这样会导致大量的物理资源的消耗,而虚拟隔离技术则可以有效地改善这个问题,既能保证系统的可靠性,又能充分的使用各种设备。(3)具有较高的可靠性,能够实现负载平衡、动态迁移、快速复制等,并通过配置附加的功能和计划来降低服务器或应用程序的中断,从而增强可靠性。虚拟化技术有很多种,比如,网络虚拟化,内存的虚拟化,桌面虚拟化,应用虚拟化和虚拟内存等等[5]2.3OpenStackOpenstack是一个开放源码云计算架构,该架构是美国Rackspace与美国太空总署NASA合作开发的一个开放源码的云计算架构。旨在构建各种规模的可伸缩的IaaS基础构架解决方案。Openstack软件从推出之初便受到业界的广泛关注,成为最重要的云计算产品之一。目前Openstack社区有超过180家企业加盟,这些机构将Openstack作为通用前段,搭建基础设施即服务(IaaS)云环境。Openstack包含一组由社区维护的子项目,其中Swift,Nova和Glance是其中最主要的三个项目。Swift提供云存储服务,Nova提供虚拟化服务,Glance提供虚拟机镜像的管理。Openstack对象存储模块(OpenstackObjectStorage),代号为Swift,主要负责数据的存储服务,包括冗余数据存储管理,数据备份,数据容量预测等,与Amazon的S3服务类似。Swift的标准服务器可以存储PB级的数据,用于存储图片,邮件,文档或者虚拟机的镜像。Swift没有主控节点,元数据分布在每台服务器之中,不会出现单点故障,具有很好的冗余性,扩展性和持久性。Openstack计算模块(OpenstackCompute),代号为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)NetworkService(NeutronService):通过为云计算环境中的虚拟技术,为使用者的界面,使其具有一定的自主性。根据需要,用户可以根据需要建立一个个人化的网站,它能同时对网站的流量进行管理,同时还能同时对多个网络进行控制。为该示例设置一个网络链接。(5)Dashboard(UI接口):一个网页图形接口,使用者可以使用URL登录到GUI中,浏览并管理OpenStack的资源。与指令接口相比,使用者执行实例创建、实例启动、IP地址指派等的操作也比较容易。这是OpenStack的一个单独的工程。(6)索引(区块储存):当执行个体被建立时,索引服务会提供volume区块储存服务,将volume卷装入该执行个体上的虚拟主机。多个volume卷可以在同一时间装载多个执行个体,但不能同时写入此卷,每次只有一个执行个体可以写入已装入的卷,其它仅允许读取。(7)Swift(ObjectStore):为Nova子工程的虚拟机映象储存业务,它能在多租客方中实现对容器和物件的读取和写入,是一种高可用的分布物件储存业务。各个组件之间的关系,如图2-3所示:图2-3OpenStack组件间关系图本章小结本文重点介绍了云计算技术、虚拟化技术、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课程信息报表数据库信息字段名称类型teacher_id教职工号Varchar(50)password密码Varchar(50)courseName课程名称Varchar(20)classDay上课日期Varchar(20)classTime上课时间Varchar(20)courseLocation上课地点Varchar(50)periods课时数int课程分布:管理员通过平台上架课程商品,在新增页填入对应的课程商品信息,如商品名称、积分价格、商品属性、商品分类等等。课程购买:管理员可以通过平台对已有课程商品、商品属性、商品分类进行管理,对信息执行增删改查的操作。课程学习:用户通过客户端的商城模块根据分类查看到相应的商品信息。相比传统的移动存储设备,课程抽屉有着无法比拟的优势:第一,课程抽屉功能会为每份上传的文件提供至少三份备份,安全性和可用性有着可靠地保证。教师不用担心忘记携带移动存储设备而影响正常教学,或者文件由于各种原因发生信息丢失。第二,课程抽屉功能将提供足够大的存储空间,教师不用担心需要的教学材料和实验数据因庞大而无法存入相应的设备。课程存储系统有后端云资源作为支撑,实际的云端往往有数台甚至数十台设备共同支撑校园存储业务,而且理论上系统将有着无限的可扩展性,因为底层的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所示:图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:/24用于对OpenStack集群hostos,api等网络管理。(2)租户网络——ens35:/24采用vxlan/gre等方式,使集群内部的虚拟机里的OS的数据进行交换。(3)外部网络——ens33:/24可以让用户访问Internet(外网)下载需要的组件。5.计算节点网络:与控制节点的网络相似。6.前端用高可用的Haproxy做负载均衡,用MariaDBgaleria作为数据库,用Ceph分布式存储对接OpenStack,通过这一系类的部署,希望能够顺利搭建完成高可用的私有云。4.1.3OpenStack环境准备1.为了集群所有电脑都可以快速地互相访问,需要配置hosts文件;vim/etc/hosts//打开hosts文件,添加一下的虚拟机IP和对应的名字1controller12controller23controller30virtualIP4mon019computer18computer27computer32.配置SSH是为了各个节点之间可以互相免密登陆;ssh-keygen//生成密钥,使它们可以免密通信ssh-copy-idcontroller2ssh-copy-idcontroller3ssh-copy-idmon01ssh-copy-idcomputerssh-copy-idcomputer2ssh-copy-idcomputer33.安装和配置ntp服务器实现时间同步;#yuminstallsystem-config-date-y//下载安装NTP//修改NTP配置文件:#vim/etc/chrony.confServer1iburstServer2iburstServer3iburstallow/164.2HAProxyHAProxy提供了负载均衡、高可用性以及基于TCP和HTTP应用的代理,它支持主机虚拟化,它是一种免费、快速而且可靠的解决方案[6]。目前,HAProxy是最受欢迎的一款Web负载均衡软件,其非常适合一些需要24小时不间断地进行对话、负载量非常大的网站。现在常见的硬件设备上运行HAProxy来应付数以万计的并发连接是一件轻而易举的事情。用户在现有的基础服务架构与HAProxy整合的过程是既简单又安全,同时还会避免用户的Web服务器直接暴露到外部网络中,让web服务器得到最大程度的保护。4.2.1HAProxy性能市面上有许许多多的负载均衡器,与其他的相比,HAProxy的优点在于它本身就只是一款负载均衡软件,没有其他的功能,所以它的效率一定是比Nginx更加高的。除此之外,在处理并发的问题上也是比Nginx更胜一筹。HAProxy有多的负载策略,如:原地址保持、请求URL、轮循、带权轮循、根据cookie;还支持虚拟主机、支持TCP协议和HTTP协议的负载均衡转发。4.2.2HAProxy配置在三个控制节点都安装HAProxy,还需要保持三台节点的配置一样;(1)以controller2为例,下载安装和修改配置文件,然后启动HAProxy;//下载安装yum-yinstallhaproxy//修改配置文件://配置HAProxy的日志-/var/log/haproxy.log;Haproxylocal3.notice-/var/log/haproxy-status.log;Haproxylocal3.*~(2)通过配置HAProxy可以监控Galera数据库,首先需要在控制节点三台MariaDB进行数据库的配置。在全部控制节点上,重新启动HAProxy,同时设置开机自动启动。(3)验证配置是否成功,登陆0:8789/检测状态。4.3部署Keystone4.3.1Keystone配置它是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.2Keystone配置文件安装Keystone与修改配置文件1.控制节点安装EnabletheOpenStackrepository(controller1和controller2);2.控制节点安装SQLdatabase(controller01和controller02);3.在所有控制节点安装Memcached;#yuminstallmemcachedpython-memcached-y//安装Memcached4.配置身份和服务;#mysql-uroot-p"typora#2019"5.安装和配置组件;#yuminstallopenstack-keystonehttpdmod_wsgi-y//安装需要的组件6.configuretheIdentityservice,创建keystone用户,初始化serveice实体和endpointapi端点;7.ConfiguretheApacheHTTPserver[cont0$表示controller1、contoller2和controller3];#vim/etc/httpd/conf/httpd.conf//编辑httpd配置文件httpd.confServerNameVirtualIP//在httpd.conf文件中添加ServerNameVirtualIP8.创建域,项目,用户和角色。(由于是集群,所以只要在一个控制节点上创建即可)。#openstackdomaincreate—description"AnExampleDomain"example//测试是否可以使用admin账户进行登陆认证,请求认证令牌KeyStone的安装与配置流程,如图4-2所示图4-2KeyStone安装与配置流程第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课程作业提交流程图平台先获取用户的角色信息,然后对具体角色进行判断,根据不同角色作出不同的处理。如果是管理员或者老师authorize函数会返回空,则意味着有权限进行容器删除操作,否则拒绝执行操作。老师和学生共用用户界面,但对其操作权限按照上述过程进行了不同设置,因此在资源使用和控制的过程中体现出差异化的行为。老师在布置作业时设置提交时间,数据库中会增添相应字段,学生在提交时会对提交时间信息进行验证,验证条件中除了对上一小节的基本身份的认证和授权外加上对作业提交截止时间这一字段的判断,若当前时间current_time小于截止时间deadline,则提交验证条件通过,反之若当前时间current_time大于截止时间deadline,则终止作业提交,提示作业提交时间过期。5.2.2模块数据库设计课程存储模块包括课程表、课程详情表和课程课时表。课程表主要包括课程标题、课程图片URL、课程所属分类、所属导航菜单、课程数据、讲师ID、开课时间和课程结束时间等。课程明细表主要包括课程介绍、课程目录、课程须知、课程ID等信息。课程课时表主要包括课时所属父级ID、课时名称、课程类别、创建时间、课时排序和课程ID等信息。其中课程详情表的课程ID是课程课时的外键。5.3虚拟课堂模块的设计与实现5.3.1模块流程虚拟课堂模块的下层依赖于openstacknova模块,nova提供了对Xen,QEMU,KVM,LXC等多

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论