云计算导论大作业_第1页
云计算导论大作业_第2页
云计算导论大作业_第3页
云计算导论大作业_第4页
云计算导论大作业_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

1、基于OpenStack的云计算数据中心管理系统的设计与开发 南 阳 理 工 学 院 本科生毕业设计(论文)学院(系): 软件学院 专 业: 云计算3班 学 生: 王帅 指导教师: 陈可 完成日期: 2017 年 04 月南阳理工学院本科生课程设计报告基于OpenStack的云计算数据中心管理系统的设计与开发Design and development of cloud computing data center management system based on OpenStack总 计:毕业设计(论文) 57页表 格: 2个插 图: 67幅南 阳 理 工 学 院 本 科 毕 业 设 计(论

2、文)基于OpenStack的云计算数据中心管理系统的设计与开发Design and development of cloud computing data center management system based on OpenStack学 院(系): 软件学院 专 业: 云计算 学 生 姓 名: 王帅 学 号: 1515925717 指导教师(职称): 陈可 讲师 评 阅 教 师: 单平平 完 成 日 期: 2017年04月01日 南阳理工学院Nanyang Institute of Technology摘 要云计算是网格计算、分布式计算、并行计算、效用计算、联机存储技术、虚拟化、负载均

3、衡等一系列传统计算机技术和网络技术发展融合的产物。它旨在通过网络将多个成本低廉的计算实体整合成一个大型计算资源池,并借助SaaS、PaaS、IaaS等服务模式,将强大的计算能力分发到终端用户手中。云计算的核心理念就是通过不断提高“云”端处理能力,减轻用户负担,将一系列的IT能力以服务形式提供给用户,简化用户终端的处理负担,最终使用户成为一个单纯的输入/输出设备,享受“云”提供的强大计算处理及服务能力。OpenStack是一个开源的云计算项目和工具集,并且提供了关于基础设施即服务(IaaS)的解决方案。OpenStack具有建设这样资源池的能力,通过OpenStack的各种组件多种模式的排列组合

4、,可以搭建成各种规模的“云”,这些云可以是私有云、公有云、混合云。本文首先介绍了云计算的背景及其相关技术,并深入了解OpenStack的架构和其各种服务,掌握各种服务实现原理,以及探讨OpenStack如何实现对云计算数据中心的管理,最后动手搭建OpenStack云平台和尝试对功能的扩展。由于OpenStack云计算平台在国内的研究起步较晚,在安装部署过程中会出现若干问题。本文就出现的问题加以汇总并给出解决方法,可以在安装部署OpenStack时提供参考。Abstract Cloud computing is the product of the integration of traditio

5、nal computer technology and network technology, such as grid computing, distributed computing, parallel computing, utility computing, online storage technology, virtualization, load balancing and so on. It aims to integrate a number of low-cost computing entities through the network into a large poo

6、l of computing resources, and with the help of SaaS, PaaS, IaaS and other service models, will be distributed to the end of the powerful computing power. The core idea of cloud computing is that by improving the "cloud" end treatment ability, reduce the burden of the users, a series of IT

7、capabilities in the form of service to users, simplify the processing burden on the user terminal, the user becomes a simple input / output devices, enjoy the "cloud" provides powerful computing and service ability. OpenStack is an open source cloud computing project and toolset, and provi

8、des solutions for infrastructure as a service (IaaS). OpenStack has the ability to build such a pool of resources, through the various components of a variety of modes of OpenStack combination, can be built into all kinds of large-scale "cloud", these clouds can be a private cloud, hybrid

9、cloud, Gong Youyun. This paper first introduces the background of cloud computing and related technologies, and in-depth understanding of the structure of OpenStack and its various services, implementation of the principle of mastering all kinds of services, and discusses how to realize the OpenStac

10、k of cloud computing data center management, finally to build OpenStack cloud platform and attempts to extend the function of. Due to the late start of the domestic research on OpenStack cloud computing platform, there will be some problems in the process of installation and deployment. This paper s

11、ummarizes the problems and gives solutions, which can provide reference when installing OpenStack. 目 录第一章 绪论61.1 openstack背景与意义61.2什么是openstack?61.3国内外发展现状121.4论文组织结构14第二章 IaaS及关键技术相关介绍152.1 Iaas概述152.2 IaaS的基本抽象模型152.3IaaS技术架构152.4 IaaS关键技术介绍182.4.1 虚拟化技术182.4.2 KVM与QEMU182.4.3 数据存储技术192.4.4 资源管理技术

12、202.4.5 能耗管理技术202.5 本章小结21第三章 OpenStack相关介绍213.1 OpenStack简介213.2 OpenStack核心项目223.3 OpenStack内容详解233.4 OpenStack构建私有云243.5服务中心243.5.1概述243.5.2系统构成253.5.3服务内容253.5.4服务体验253.5.5服务价值263.6 本章小结26第四章 OpenStack云管理平台的搭建264.1 单节点安装部署OpenStack264.1.1 实验环境及实验拓展264.1.2 构建过程274.2 云平台搭建主要过程和问题解决284.2.1 Keystone

13、的安装与问题分析284.2.2 Glance的安装与问题分析294.2.3 Cinder的安装与问题分析304.2.4 Nova和Quantum的安装与问题分析314.2.5 Horizon的安装与问题分析354.3 openstack G版本安装354.4 OpenStack计费系统的研究474.4.1 OpenStack计费系统的设计与实现484.4.2 计费系统的计费机制494.4.3 计费系统的扣费方法504.4.4 计费系统的安全检查504.4.5 计费系统与资源监控系统的交互504.4.6 计费系统的数据处理504.4.7 计费系统功能的设计524.5 本章小结54结束语55致 谢

14、56参考文献57 第一章 绪论1.1 openstack背景与意义 人类社会从蒸汽机进入了工业时代,又从电的时期进入了现代文明,从计算机互联网进入了地球村的时代。那么,云时代的到来会是怎样一番情景?云计算被认为是继个人电脑、互联网之后电子信息技术领域的又一次重大的变革,其实质是一种基于互联网的计算模式,在这样的模式下,计算资源(计算能力、存储能力、交互能力)是动态、可伸缩且虚拟化的,以服务的方式提供。这种新型的计算资源组织、分配和使用模式,有利于合理配置计算资源并提高其利用率,降低成本,促进节能减排,实现了绿色计算,这更切合了我国经济转型的发展战略。OpenStack作为一个开源的云计算平台,

15、吸引了众多一流厂商的加入,这些机构与个人都将OpenStack作为基础设施即服务(IaaS)资源的通用前端1.2什么是openstack? OpenStack是一个定位于IaaS(Infrastructure as a Service),旨在为公共及私有云的建设与管理提供软件的开源项目。自2010年发布的第一个A版本,就按照英文字母排序的规律进行版本发布,截至目前已经发布了12个主要版本,现在稳定为每6个月发布一次大的版本更新。在搜索OpenStack时,会在各种百科中出现这样一个解释:OpenStack是一个美国国家航空航天局(NASA)和Rackspace合作研发的开源云端运算软件。“NA

16、SA”、“Rackspace”、“开源”这些组合的出现让笔者顿时对OpenStack的历史产生了浓厚的兴趣。所以准备在学习OpenStack之前先发扬八卦精神,码一码他们之间的关系,也让枯燥的学习生活增加一丝乐趣。项目起源时间回到2010年,当时的云计算场景是这样的,亚马逊的AWS稳坐大当家的地位,Ubuntu选择了Eucalyptus,Redhat放弃Xen选择了kvm(直接集成在Linux内核中)。在IaaS方面有这么几家:Cloudstack(双license)、Eucalyptus(双license)、Nebula(NASA的云平台)、Rackspace Cloud service。当

17、时NASA已经在云计算领域投入了大量的资金,使用了很多Eucalyptus的代码。他们在该平台上进行了很多深度开发,最后放弃了该平台,据说是NASA的工程师试图获取更多的Eucalyptus 代码,但是失败了,因为这个平台只是开放部分的源码。最初的问题仅仅是扩展性问题,这也是大部分产品最初都会遇到的问题,但是Eucalyptu与NASA的裂痕发展到无法挽回的地步,却是因为NASA发现Eucalyptus不愿向该项目提供解决扩展性问题的代码,即便是该项目并未与Eucalyptus Systems Inc(Eucalyptus幕后的实体公司)造成利益冲突。Eucalyptus幕后公司维护着部分代码

18、,这些代码关系到商业版Eucalyptus Enterprise Edition(E3)的诸多特性,例如管理、SAN集成、更为出色的后台数据库以及与VMware的兼容性,这些功能对公司而言,既不可能也不愿意开源。索性NASA的工程师就用Python开发了Nova,在2010年4月开始筹备OpenStack。2010年7月NASA贡献了自己的云计算管理平台Nova代码,联合了当时第二大云计算厂商Rackspace(贡献了对象存储代码,也就是后来的Swift)发起了OpenStack开源项目。从此开始便开启了OpenStack的开源进程。当时在OpenStack项目上约定了几个原则:项目全部由Py

19、thon语言开发;虚拟机默认使用Kvm;项目进行松耦合设计;使用GitHub进行代码管理;使用Launchpad进行项目管理;3个月迭代一个版本(后来改为6个月)举办开发峰会产业链条设计(更多公司的加入,让开源项目更为蓬勃的发展)版本演进 在OpenStack中最重要三个部分:控制、计算、网络。从这个版本演进的表格中可以看到,这里面项目的变化情况一直在遵循着某些规律,可以归纳出一些特点。松耦合的设计思路贯穿始终。从刚开始的Nova+Swift,慢慢对Nova进行松耦合处理。D版本中Keystore项目的建立,让Swift和Nova有了联系;F版本中Cinder和Quantum成为co

20、re项目,希望逐步代替Nova volume和Nova network;I版本增加的Trove数据库服务,Bare Metal(Ironic)。这种松耦合模式让OpenStack更加灵活,并且可以让多厂商进行开发,也保证了OpenStack作为开源项目能够得到支持从而很快发展。网络功能优化越来越成为重点。网络功能的加入源自第二个版本,最初作为Nova项目的一个功能Nova network,仅支持所有用户共享一个底层网络,也就是所说的扁平化网络。然而Nova network网络功能不尽如人意。D版本Cisco推动Quantum项目,Quantum逐渐从摆设慢慢壮大到和Nova network抗衡

21、直至逐渐成为OpenStack的标配。随着Quantum改名Neutron,Neutron+Linux bridge、Neutron+OVS、OVS硬件化,让网络能力逐渐丰富和提升。SDN和NFV技术的强力接入,也为OpenStack的网络性能增加了强劲动力。下面把OpenStack中网络功能的演进进行了一番归纳。 容器技术的强势加入。从OpenStack诞生之日起,Kvm由于其原生于Linux内核的高性能将老牌Xen挡在门外,不过Docker技术的盛行,Kvm和Docker又面临着新的战斗,并且Nova Docker、Heat Docker、Magnum技术让OpenStack和D

22、ocker更好结合进行试验,最新的Kuryr项目让Docker网络功能更加优秀。1.3国内外发展现状最近,新浪云计算宣布正式加入全球开源云计算项目OpenStack,将选择OpenStack作为IaaS平台解决方案。作为OpenStack中国的积极推动者,这在很大程度上将推动OpenStack云开源代码项目的发展。更值得高兴的是,中国企业UnitedStack现已推出了基于OpenStack的云计算服务,这充分说明了OpenStack的存在价值。通过,可以了解到目前人们对一些开源云计算项目的关注趋势。Rackspace以OpenStack为基础的私有云业务每年7亿美元,增长率超过20%。因此,

23、在开源云计算项目领域,OpenStack早已崭露头角,如图 1.1所示,它成为了当今最热门的开源项目之一。Eucalyptus 是最早试图克隆AWS的开源IaaS云平台,整体架构如图1的左半部分所示。Eucalyptus由云控制器(CLC)、Walrus、集群控制器 (CC)、存储控制器(SC)和节点控制器(NC)组成,它们相互协作共同提供所需的云服务。组件间使用支持WS-Security的SOAP消息实现安 全的通信。Eucalyptus对外提供兼容AWS的SOAP和Query接口,不提供其他API。OpenNebula没有采用SOA的设计,没有将计算、存储和网络设计为独立组件,解耦做得还不

24、够。值得注意的是,OpenNebula用 Libvirt所提供的接口远程调用计算节点上的虚拟化控制命令。这种Agentless的设计在系统安装部署阶段会减少很多软件安装配置工作,是一个设计亮点。所有的开源IaaS云平台在分层上做得都比较好;在SOA/组件化/解耦这点上来看,OpenStack和Eucalyptus有优势;在框架和插件设计上,除Eucalyptus较差外,其他平台均有很好的设计OpenStack的开发平台做得最好,CloudStack次 之。综合来看,目前OpenStack的设计是最好的,Eucalyptus和CloudStack次之。相比开源项目的“前辈”,OpenStack是

25、一个更高级且现代化的开源项目,因为它是高度协作的产物。OpenStack的支持者都是世界顶级的供应商,可以看出OpenStack倍受青睐,可以说它是开源界的明星产品。目前,例如VMware、RedHat、Cisco、EMC等各供应商,都表示对其支持。图1.1 OpenStack与其它开源云计算项目的趋势对比相比之下,OpenStack项目从最开始就发展开放社区,其直接结果是,OpenStack里聚集了比CloudStack更多的主流供应商。在大多数情况下,这些厂商开发的组件第一时间提供给OpenStack,之后才为CloudStack提供接口1。OpenStack也有不够完善的地方,如Open

26、Stack相对于CloudStack来说更加复杂,对终端用户的支持不够;在安装部署上不如CloudStack便捷;在界面显示方面也不如CloudStack丰富。Amazon 公司于2006年推出的云计算服务(AWS,Amazon Web Services)核心产品包括弹性计算云EC2(Elastic Computing Cloud)、简单存储服务S3(Simple Storage Service)、简单队列服务 SQS(Simple Queue Service)、内容推送服务(CloudFront)和简单数据库服务(SimpleDB)等,为企业提供计算和存储服务。Amazon 公司收费的服务项

27、目包括存储空间、带宽、CPU资源以及月租费。其中存储空间、带宽按容量收费,CPU 根据运算时长收费,月租费则与电话月租费类似9。Google 是最大的云计算技术使用者,提供全球知名的互联网搜索引擎服务。Google 搭建了一个称为Google App Engine的云平台,为第三方应用提供大型并行计算服务。更值得一提的是,Google 于2007秋季在全球宣布了云计划,通过与 IBM 开展合作,开始在美国多所大学,包括卡内基美隆大学、麻省理工学院等,推广云计算技术。这项计划希望通过为这些大学提供相关的软硬件设备及技术支援,能降低分布式计算技术在学术研究方面的成本,并且使得学生可以透过网络开展各

28、项以大规模计算为基础的研究计划13。IBM于2007年第四季度推出了“Blue Cloud(蓝云)”云计算平台,提供即买即用的云计算服务3。“蓝云”使用具有自我管理和自我修复的虚拟化云计算软件,使得用户的应用可以访问分布式的大型计算服务器池。2008年8月1日,IBM宣布斥资3.6亿美元在美国北卡罗来纳州建立云计算数据中心。IBM 同时还将在东京建立一所新的机构,帮助用户使用云计算基础设施。另外,IBM亦与17个欧洲组织合作开展 RESERVOIR 云计算项目,实现 “无障碍的资源和服务虚拟化”。 微软于2008年10月推出了Windows Azure操作系统,Azure底层是微软全球基础服务

29、系统,由分布于全球的第四代数据中心组成,通过互联网让 Windows 真正由PC延伸到云计算服务上。目前,微软的云计算系统已经包括超过 220个集装箱式数据中心和多达44万台的服务器。1.4论文组织结构本篇论文共分五章,主要内容概括如下:第一章绪论。简单介绍云计算的研究背景、意义以及论文的组织结构。第二章IaaS及关键技术相关介绍。这一章介绍了IaaS的概述、IaaS服务特征及优势。同时,介绍了IaaS服务器虚拟化,IaaS存储虚拟化、IaaS网络虚拟化这三大虚拟化的实现原理。第三章OpenStack相关介绍。这一章首先介绍了OpenStack的概念架构和访问流程对OpenStack的整体运行

30、原理有一个大致的了解,之后详细介绍了OpenStack的三大服务:认证服务(Keystone)、计算服务(Nova)、网络服务(Neutron)。第四章OpenStack云管理平台的搭建。这部分是具有挑战性的,从基础环境的配置开始,完成之后开始安装各种软件包,每安装一个软件包后都要进行详细的配置文件的修改。另外,还对计费模块进行了初步研究。最后是结束语。 第二章 IaaS及关键技术相关介绍2.1 Iaas概述基础设施即服务(IaaS)交付给用户的是基本的基础设施资源。用户无需购买,维护硬件设备和相关系统软件,就可以直接在该层上构建自己的平台和应用。基础设施向用户提供虚拟化的计算资源,存储资源,

31、网络资源和安全防护等。这些资源能够根据用户的需求动态地分配。支撑该服务的技术体系主要包括虚拟化技术和相关的资源动态管理与调度技术。2.2 IaaS的基本抽象模型从图2-2中可以看出,首先对IT基础设施进行资源池化(Pooling),即通过整合树立IT基础设施,采取相应技术形成动态资源池。第二,对资源池的各种资源进行管理,诸如调度,监控,计量等,为服务打下基础。第三,交付给用户可用的服务包,服务层一般是用户通过网络访问统一的服务界面,按照服务目录提供的相关服务包来选择并获取所需的服务。管理层IaaS服务的核心思想是以产品的形式向用户交付各种能力,而这些能力直接来自各种资源池,因此IaaS的技动态

32、资源层术构架对于资源化,产品设计与封装以及产品交付等方面有一定要求。 图2-2 IaaS的抽象模型 2.3IaaS技术架构在IaaS的技术架构中,通过采用资源池构建,资源调度,服务封装等手段,可以将IT资源迅速转变为可交付的IT服务,从而实现Iaas云的按需自服务,资源池化,快速扩展和服务可度量。一般来讲,基础设施即服务(IaaS)的总体技术架构主要分为资源层,虚拟化层,管理层和服务层四层架构。存储网络其他服务层资源层为了有效地交付IaaS,服务提供商首先需要搭建和部署拥有海量资源的资源地。当获取用户的需求后,服务提供商从资源池中选取用户所需的处理器,内存,磁盘,网络等资源,并将这些资源组织成

33、虚拟服务器提供给用户。在资源池层,服务提供商通过使用虚拟化技术,将各种物理资源抽象为能够被上层使用的虚拟化资源,以屏蔽底层硬件差异的影响,提高资源的利用率。在资源管理层,服务提供商利用资源管理软件根据用户的需求对基础资源层的各种资源进行有效的组织,以构成用户需求的服务器硬件平台。在使用IaaS时,用户看到的就是一台能够通过网络访问的服务器。在这台服务器上,用户可以根据自己的实际需要安装软件,而不必关心该服务器底层硬件的实现细节,也无需控制底层的硬件资源。但是,用户需要对操作系统,系统软件和应用软件进行部署和管理。1) 资源层资源层位于架构的最底层,主要包含数据中心所有的物理设备,如硬件服务器,

34、网络设备,存储设备等其他设备,在云平台中,位于资源层中的资源不是独立的物理设备个体,而是将所有的资源形象地集中在“池”中,组成一个集体的资源池,因此,资源层中的所有资源都将以池化的概念出现。这种汇总或池化不是物理上的,只是概念上的,便于IaaS管理人员对资源池中的各种资源进行统一的,集中的运维和管理,并且可以按照需求随意地进行组合,形成一定规模的计算资源或者计算能力。其中,资源层中的主要资源包括计算资源,存储和网络资源。2) 虚拟化层虚拟化位于资源层之上,按照用户或者业务的需求,从池化资源中选择资源并打包,从而形成不同规模的计算资源,也就是常说的虚拟机。虚拟化层主要包含服务器虚拟化,存储器虚拟

35、化和网络虚拟化等虚拟化技术,虚拟化技术是IaaS架构中的核心技术,是实现IaaS架构的基础。服务器虚拟化能够将一台物理服务器虚拟成多台虚拟服务器,供多个用户同时使用,并开通过虚拟服务器进行隔离封装来保证其安全性,从而达到改善资源的利用率的目的。服务器虚拟化的实现依赖处理器虚拟化,内存虚拟化和I/O设备虚拟化等硬件资源虚拟化技术。存储虚拟化将各个分散的存储系统进行整合和统一管理,并提供了方便用户调用资源的接口。存储虚拟化能够为后续的系统扩容提供便利,使资源规模动态扩大时无需考虑新增的物理存储资源之间可能存在的差异。网络虚拟化可以满足在服务器虚拟化应用过程中产生的新的网络需求。服务器虚拟化使每台虚

36、拟服务器都要拥有自己的虚拟网卡设备才能进行网络通信,运行在同一台物理服务器上的虚拟服务器的网络流量则统一经由物理网卡输入/输出。网络虚拟化能够为每台虚拟服务器提供专属的虚拟网络设备和虚拟网络通路。同时,还可以利用虚拟交换机等网络虚拟化技术提供更加灵活的虚拟组网。虚拟化资源管理的目的是将系统中所有的虚拟硬件资源“池”化,实现海量资源的同一管理,动态扩放,以及对用户进行按需配合。同时,虚拟化资源管理技术还需要为虚拟化资源的可用性,安全性,可靠性提供保障。3) 管理层管理层位于虚拟化层之上,主要对下面的资源层进行统一的运维和管理,包括收集资源的信息,了解每种资源的运行状态和性能情况,选择如何借助虚拟

37、化技术选择,打包不同的资源,以及如何保证打包后的计算资源-虚拟化的高可用性或者如何实现负载均衡等。通过资源层,一方面可以了解虚拟化层和资源层的运行情况和计算资源的对外提供情况,另一方面,管理层可以保证虚拟化层和资源层的稳定,可靠,从而为最上层的服务层打下坚实的基础。4) 服务层 服务层位于整体架构的最上层,主要面向用户提供使用管理层,虚拟化层以及资源层的能力。 基于动态云方案构建的云计算包含了完善的自服务系统,为平台上的客户提供7*24小时资源支持,并可在线提交服务请求,与客户直接沟通。自服务平台首先提供服务的自由选择,用户可以根据实际业务的需求选择不同的服务套餐,同时自服务系统,用户可以远程

38、管理和维护已购买的产品和服务。 另外,对所有基于资源层,虚拟化层,管理层,但又不限于这几层资源的运维和管理任务,将被包含在服务层中。这些任务在面对不同的企业,业务时往往有很大的差别,其中包含比较的自定义,个性化因素。例如,用户账号管理,虚拟机权限设定等各类服务。以上4层的结构是IaaS架构中的基础部分,只有将以上内容规划好的才能为服务层提供良好的支撑。2.4 IaaS关键技术介绍2.4.1 虚拟化技术虚拟化技术(Virtualization)已经对计算机发展产生了重要的影响,尤其是最近发展非常热门的云计算技术。其实,在计算机领域,虚拟化的思想早已经存在,最早 IBM 在二十世纪六十年代就提出并

39、实现了在一台物理机上运行多个不同的操作系统实例,它颠覆了传统的一台计算机运行一个操作系统实例的计算模式。多个操作系统运行在一个物理机上,共享物理机资源(CPU 资源、内存资源、网络资源、存储资源等)3。随着计算机硬件资源的不断快速发展,现有的很多软件已不能充分的利用计算机硬件的资源存在很多的资源浪费现象。虚拟化技术的出现,提高了物理机或者服务器的硬件资源的利用率,充分地利用了硬件所提供的并行性和高性能,也使系统管理员免去了管理大量物理机的所花费的精力和时间。虚拟化技术的这些特点,使得虚拟化技术成为整个计算机软件技术中最受到重视的技术之一,它在云计算技术中起着至关重要的作用,是云计算技术的基础。

40、 虚拟化就是通过脱耦合把应用软件和在其上的虚拟的操作系统与底层的物理设备分离开来。物理机系统的虚拟化究其根本就是通过某种手段把底层的物理设备和其上的软件运行环境分割的技术。然而虚拟化技术的出现,远远不止于虚拟出虚拟的操作系统,现在已经看到了,内存,网络,CPU,文件,存储等的虚拟化。从一种更高的抽象、一个更广泛的环境中来了解虚拟化技术,它实际上已经成为了一个非常大的概念,可以为用户企业带来很大的便利。虚拟化技术主要实现了对底层物理资源的抽象,使其成为一个个可以被灵活生成、调度、管理的基础资源单位,如图2.2。而要将这些资源进行有效的整合,从而生成一个可以统一管理、灵活分配跳读、动态迁移、计费度

41、量的基础服务设施资源池,并向用户提供自动化基础设施即服务,就需要IaaS管理平台。资源管理平台负责对物理资源和虚拟化资源进行统一的管理和调度,形成统一的资源池,实现IaaS服务的可管、可控,其核心是对每个基础资源单位的生命周期管理能力和对资源的管理调度能力。2.4.2 KVM与QEMUKVM虚拟机是基于Linux内核虚拟化,自Linux2.6.2之后就集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM的虚拟化需要硬件的支持(如Intel VT技术或者AMD V图2.2虚拟化架构技术),是基于硬件的完全虚拟化。而Xen早期则是基于

42、软件模拟的para-virtualization,新版本是基于硬件支持的完全虚拟化3。QEMU是一种模拟处理器,现在运用最多的就是将KVM和QEMU结合起来。准确来说,KVM是Linux kernel的一个模块,可以用命令modprobe去加载KVM模块13。加载了该模块后,才能进一步通过工具创建虚拟机。但是仅有KVM模块是不够的。因为用户无法直接控制内核去做事情,还必须有一个运行在用户空间的工具才行。这个用户空间的工具,KVM开发者选择了已经成型的开源虚拟化软件QEMU。说起来QEMU也是一个虚拟化软件。它的特点是可虚拟不同的CPU。比如说在x86的CPU上可虚拟一个power的CPU,并可

43、利用它编译出可运行在power上的CPU,并可利用它编译出可运行在power上的程序。KVM使用了QEMU的一部分,并稍加改造,就成了可控制KVM的用户空间工具了。所以你会看到,官方提供的KVM下载有两大部分(QEMU和KVM)三个文件(KVM模块、QEMU工具以及二者的合集)。也就是说,你可以只升级KVM模块,也可以只升级QEMU工具。这就是KVM和QEMU 的关系,如图2.3。2.4.3 数据存储技术为保证高可用、高可靠和经济性,云计算采用分布式存储的方式来存储数据,采用冗余存储的方式来保证存储数据的可靠性,即为同一份数据存储多个副本。另外,云计算系统需要同时满足大量用户的需求,并行地为大

44、量用户提供服务。图2.3 KVM与QEMU关系因此,云计算的数据存储技术必须具有高吞吐率和高传输率的特点。 云计算的数据存储技术主要有谷歌的非开源的 GFS(Google File System)和Hadoop 开发团队开发的 GFS 的开源实现 HDFS(Hadoop Distributed File System)。大部分 IT 厂商,包括 Yahoo、Intel 的“云”计划采用的都是 HDFS 的数据存储技术。未来的发展将集中在超大规模的数据存储、数据加密和安全性保证、以及继续提高 I/O速率等方面4。2.4.4 资源管理技术在多节点并发执行环境,分布式资源管理系统是保证系统状态正确性

45、的关键技术。系统状态需要在多节点之间同步,关键节点出现故障时需要迁移服务,分布式资源管理技术通过锁机制协调多任务对于资源的使用,从而保证数据操作的一致性。典型的资源管理技术如Google公司的 Chubby文件系统。2.4.5 能耗管理技术随着云计算的快速发展,如今云服务的推出使许多中小企业用户转而向云计算服务提供商订购云计算服务。而这类云服务大多是安装在主机托管服务提供商所拥有的大型数据中心。那么,关于数据中心的能耗问题便成了数据中心管理者最关心的问题。处理的能耗是服务能耗的主要组成部分之一,大型的云计算数据中心有可能拥有数百、上万甚至更多的服务器,这些云平台中数量众多的基础资源构件对于电力

46、的消耗也是非常巨大的,这将直接影响数据中心的运营成本。因此如何在云计算数据中心部署良好的、持续的电源供应系统倍受用户关注。Google的数据中心一般选择在人烟稀少、气候寒冷、水电资源丰富的地区,这些地点的电价、散热成本、场地成本、人力成本等都远低于人口稠密的大都市。我国三大电信运营商也效仿 Google 的做法,选择在哈尔滨等地建设数据中心4。 另外,为满足更多的网络服务需求,降低能耗,减少数字媒体下载量,可采用减少数字垃圾、进行策略性的界面设计、提高使用意识以及避开使用高峰期等措施。2.5 本章小结本章主要是对IaaS和云计算平台实现的关键技术的介绍,其中包括了IaaS的定义、优势及架构,充

47、分说明了IaaS在云平台中的地位与作用。虚拟化技术对于云计算平台来说是最重要的,本章还就对最终要的虚拟化技术展开了介绍,包含了关键的KVM和QEMU。 第三章 OpenStack相关介绍3.1 OpenStack简介 OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。 OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的

48、服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。 OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者,这些机构与个人都将OpenStack作为基础设施即服务(IaaS)资源的通用前端。OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。本文希望通过提供必要的指导信息,帮助大家利用OpenStack前端来设置及管理自己的公共云或私有云。 OpenStack云计算平台,帮助服务商和企业内部实现类似于 Amazon EC2 和 S3 的云基础架构服务(Infrastructur

49、e as a Service, IaaS)。OpenStack 包含两个主要模块:Nova 和 Swift,前者是 NASA 开发的虚拟服务器部署和业务计算模块;后者是 Rackspace开发的分布式云存储模块,两者可以一起用,也可以分开单独用。OpenStack除了有 Rackspace 和 NASA 的大力支持外,还有包括 Dell、Citrix、 Cisco、 Canonical等重量级公司的贡献和支持,发展速度非常快,有取代另一个业界领先开源云平台 Eucalyptus 的态势。3.2 OpenStack核心项目 OpenStack覆盖了网络、虚拟化、操作系统、服务器等各个方面。它是一

50、个正在开发中的云计算平台项目,根据成熟及重要程度的不同,被分解成核心项目、孵化项目,以及支持项目和相关项目。每个项目都有自己的委员会和项目技术主管,而且每个项目都不是一成不变的,孵化项目可以根据发展的成熟度和重要性,转变为核心项目。截止到Icehouse版本,下面列出了10个核心项目(即OpenStack服务)。 计算(Compute):Nova。一套控制器,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。负责虚拟机创建、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操作,配置CPU、内存等信息规格。自Austin版本集成到项目中。 对象存储(Object

51、Storage):Swift。一套用于在大规模可扩展系统中通过内置冗余及高容错机制实现对象存储的系统,允许进行存储或者检索文件。可为Glance提供镜像存储,为Cinder提供卷备份服务。自Austin版本集成到项目中 镜像服务(Image Service):Glance。一套虚拟机镜像查找及检索系统,支持多种虚拟机镜像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK),有创建上传镜像、删除镜像、编辑镜像基本信息的功能。自Bexar版本集成到项目中。身份服务(Identity Service):Keystone。为OpenStack其他服务提供身份验证、服务规

52、则和服务令牌的功能,管理Domains、Projects、Users、Groups、Roles。自Essex版本集成到项目中。 网络&地址管理(Network):Neutron。提供云计算的网络虚拟化技术,为OpenStack其他服务提供网络连接服务。为用户提供接口,可以定义Network、Subnet、Router,配置DHCP、DNS、负载均衡、L3服务,网络支持GRE、VLAN。插件架构支持许多主流的网络厂家和技术,如OpenvSwitch。自Folsom版本集成到项目中。 块存储 (Block Storage):Cinder。为运行实例提供稳定的数据块存储服务,它的插件驱动架构

53、有利于块设备的创建和管理,如创建卷、删除卷,在实例上挂载和卸载卷。自Folsom版本集成到项目中。 UI 界面 (Dashboard):Horizon。OpenStack中各种服务的Web管理门户,用于简化用户对服务的操作,例如:启动实例、分配IP地址、配置访问控制等。自Essex版本集成到项目中。 测量 (Metering):Ceilometer。像一个漏斗一样,能把OpenStack内部发生的几乎所有的事件都收集起来,然后为计费和监控以及其它服务提供数据支撑。自Havana版本集成到项目中。 部署编排 (Orchestration):Heat2  。提供了一种通过模板定

54、义的协同部署方式,实现云基础设施软件运行环境(计算、存储和网络资源)的自动化部署。自Havana版本集成到项目中。 数据库服务(Database Service):Trove。为用户在OpenStack的环境提供可扩展和可靠的关系和非关系数据库引擎服务。自Icehouse版本集成到项目中。3.3 OpenStack内容详解 创建虚拟机(VM)需要各种服务的交互和配合工作。下图展示了OpenStack典型环境架构,各个服务之间的交互和职能。 OpenStack典型环境架构 OpenStack因Open而开放,因组件而灵活,因包容而博大。有计算、网络、对象存储、块存储、身份、镜像服务、门户、测量、

55、部署编排、数据库服务等等组件,有的组件可以根据需要选择安装,组网结构也很灵活、多样。实现了支持接入多种主流虚拟机软件:KVM、LXC、QEMU、Hyper-V、VMware、XenServer,也可以自行开发插件接入其他的虚拟化软件。 OpenStack Compute (Nova)是一套控制器,用于为单个用户或使用群组启动虚拟机实例。它同样能够用于为包含着多个实例的特定项目设置网络。OpenStack Compute在公共云处理方面堪与Amazon EC2相提并论;而在私有云方面也毫不逊色于VMware的产品。在公共云中,这套管理机制将提供预制的镜像或是为用户创建的镜像提供存储机制,这样用户就能够将镜像以虚拟机的形式启动。 OpenStack 对象存储(Swift)是一套用于在大规模可扩展系统中通过内置冗余及容错机制实现对象存储的系统。这些对象能够通过一个REST API或是像Cyberduck这样可以对接对象存储API的客户端加以恢复。 OpenStack镜像服务 (Glance)是一套虚拟机镜像查找及检索系统。它能够以三种形式加以配置:利用OpenStack对象存储机制来存储镜像;利用Amazon的简单存储解决方案(简称S3)直接存储信息;或者将S3存储与对象存储结合起来,作为S3访问的连接器。OpenStac

温馨提示

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

评论

0/150

提交评论