2024年5月4日发(作者:)
南京邮电大学
毕业设计(论文)
题目
专业
学生姓名
班级学号
指导教师
指导单位
日期:
基于OpenStack的云计算数据中心管理系统
的设计与开发
网络工程
顾立秋
B11070432
李养群
物联网学院
2015年 1月 19日至 2015年 6月 12日
毕业设计(论文)原创性声明
本人郑重声明:所提交的毕业设计(论文),是本人在导师指导下,独立进
行研究工作所取得的成果。除文中已注明引用的内容外,本毕业设计(论文)不
包含任何其他个人或集体已经发表或撰写过的作品成果。对本研究做出过重要贡
献的个人和集体,均已在文中以明确方式标明并表示了谢意。
论文作者签名:
日期:年月日
摘要
云计算(Cloud Computing)是网格计算(Grid Computing)、分布式计算
(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility
Computing)、联机存储技术(Network Storage Technology)、虚拟化
(Virtualization)、负载均衡(Load Balance)等一系列传统计算机技术和网络技
术发展融合的产物。它旨在通过网络将多个成本低廉的计算实体整合成一个大型
计算资源池,并借助SaaS、PaaS、IaaS等服务模式,将强大的计算能力分发到
“云”端处理能力,减轻用户终端用户手中。云计算的核心理念就是通过不断提高
最终使用户成为一个单纯的输入
服务能力。
OpenStack是一个开源的云计算项目和工具集,并且提供了关于基础设施即
服务(IaaS)的解决方案。OpenStack具有建设这样资源池的能力,通过OpenStack
的各种组件多种模式的排列组合,可以搭建成各种规模的“云”,这些云可以是私
有云、公有云、混合云。本文首先介绍了云计算的背景及其相关技术,并深入了
解OpenStack的架构和其各种服务,掌握各种服务实现原理,以及探讨OpenStack
如何实现对云计算数据中心的管理,最后动手搭建OpenStack云平台和尝试对功
能的扩展。由于OpenStack云计算平台在国内的研究起步较晚,
中会出现若干问题。本文就出现的问题加以汇总并给出解决方法,
署OpenStack时提供参考。
关键词:云计算;IaaS;OpenStack;管理平台
在安装部署过程
可以在安装部
负担,将一系列的IT能力以服务形式提供给用户,简化用户终端的处理负担,
/输出设备,享受“云”提供的强大计算处理及
ABSTRACT
Cloud Computing is the product of a series of traditional computer technology
and network technology integration of Grid Computing, Distributed Computing,
Parallel Computing, Utility Computing, Network Storage Technology, Virtualization,
Load Balance and so on. It is designed by the network to integrate multiple low-cost
computing entity into a large pool of computing resources, and with SaaS, PaaS, IaaS
services model, the computing power is distributed to the end users. Cloud computing
is the core concept by continuously improving the "cloud" side processing ability to
reduce the burden on the user, a series of IT capabilities as a service to users, simplify
the processing burden on the user terminal, and ultimately make the user a simple
input / output equipment. What's more, people could enjoy powerful computing
capabilities "Cloud" provided.
OpenStack is an open source cloud computing projects and tools, and provides
information on the infrastructure as a service (IaaS) solutions. OpenStack has the
ability to build such a resource pool, through permutations and combinations of the
various components of OpenStack multiple modes, can be built into a variety of sizes,
"cloud", these clouds can be a private cloud, public cloud, hybrid cloud. This paper
describes the background of cloud computing and related technologies, and in-depth
understanding of OpenStack architecture and its various services. In order to
acknowlodge a variety of services to achieve the principles, and to explore how to
achieve the OpenStack cloud computing data center management, we finally have
come up with OpenStack Cloud platform and try to extend the capabilities. Since the
OpenStack cloud computing platform in China started late, there will be a number of
issues in the installation and deployment process. This article appeared to be summary
of the issues and gives solutions that can provide a reference during the installation
deploy OpenStack.
Keywords: Cloud Computing; IaasS; OpenStack; Management Platform
目录
第一章绪论...........................................
1.1 研究背景及意义..............................................
1.1.1 背景及意义.............................................
1.1.2 国内外发展现状.........................................
1.2 研究工作意义................................................
1.3 论文组织结构................................................
第二章 IaaS及关键技术相关介绍.........................
2.1 Iaas概述....................................................
2.2 IaaS服务特征及优势..........................................
2.3 IaaS整体架构................................................
2.4 IaaS关键技术介绍............................................
2.4.1 虚拟化技术.............................................
2.4.2 KVM与
2.4.3 数据存储技术...........................................
2.4.4 资源管理技术...........................................
2.4.5 能耗管理技术...........................................
2.5 本章小结...................................................
第三章 OpenStack相关介绍.............................
3.1 OpenStack简介..............................................
3.1.1 OpenStack基础架构....................................
3.1.2 OpenStack访问流程....................................
3.2 OpenStack认证服务——.
3.2.1 Keystone介绍.........................................
3.2.2 Keystone概念.........................................
3.3 OpenStack计算服务——
3.3.1 Nova简介.............................................
3.3.2 Nova架构.............................................
3.3.3 Nova工作流程.........................................
3.4 OpenStack网络服务——
3.4.1 Neutron介绍..........................................
3.4.2 Neutron 网络创建过程..................................
3.5 本章小结...................................................
第四章 OpenStack云管理平台的搭建.....................
4.1 单节点安装部署
4.1.1 实验环境及实验拓扑....................................
1
1
1
1
3
4
5
5
5
5
7
7
7
8
9
9
10
11
11
11
12
13
13
13
14
14
15
16
17
17
18
19
20
20
20
4.1.2 构建过程..............................................
4.2 云平台搭建主要过程和问题解决...............................
4.2.1 Keystone的安装与问题分析.............................
4.2.2 Glance的安装与问题分析...............................
4.2.3 Cinder的安装与问题分析...............................
4.2.4 Nova和Quantum的安装与问题分析.......................
4.2.5 Horizon的安装与问题分析..............................
4.3 OpenStack计费系统的研究....................................
4.3.1 OpenStack计费系统的设计与实现........................
4.3.2 计费系统的计费机制....................................
4.3.3 计费系统的扣费方法....................................
4.3.4 计费系统的安全检查....................................
4.3.5 计费系统与资源监控系统的交互..........................
4.3.6 计费系统的数据处理....................................
4.3.7 计费系统功能的设计....................................
4.4 本章小结...................................................
第五章 OpenStack云平台的测试.........................
5.1 对各项服务的测试...........................................
5.1.1 创建实例..............................................
5.1.2 查看实例概况..........................................
5.1.3 动态调整实例大小......................................
5.2 对实例可用性的测试.........................................
5.3 本章小结...................................................
结束语..................................................
致谢................................................
参考文献................................................
20
21
21
22
23
24
28
28
29
30
30
30
30
31
32
34
35
35
35
35
35
36
37
38
39
40
南京邮电大学2015届本科生毕业设计(论文)
第一章
1.1 研究背景及意义
1.1.1 背景及意义
绪论
人类社会从蒸汽机进入了工业时代,又从电的时期进入了现代文明,从计算
机互联网进入了地球村的时代。那么,云时代的到来会是怎样一番情景?云计算
被认为是继个人电脑、互联网之后电子信息技术领域的又一次重大的变革,其实
质是一种基于互联网的计算模式,在这样的模式下,计算资源(计算能力、存储
能力、交互能力)是动态、可伸缩且虚拟化的,以服务的方式提供。这种新型的
计算资源组织、分配和使用模式,有利于合理配置计算资源并提高其利用率,
OpenStack作为一个开源的云计算平台,吸引了众多一流厂商的加入,这些机构
与个人都将OpenStack作为基础设施即服务(IaaS)资源的通用前端。
降
低成本,促进节能减排,实现了绿色计算,这更切合了我国经济转型的发展战略。
1.1.2 国内外发展现状
最近,新浪云计算宣布正式加入全球开源云计算项目OpenStack,将选择
OpenStack作为IaaS平台解决方案。作为OpenStack中国的积极推动者,这在很
大程度上将推动OpenStack云开源代码项目的发展。更值得高兴的是,中国企业
UnitedStack现已推出了基于OpenStack的云计算服务,这充分说明了
的存在价值。
通过,可以了解到目前人们对一些开源云计算项目的关注
趋势。Rackspace以OpenStack为基础的私有云业务每年
它成为了当今最热门的开源项目之一。
Eucalyptus 是最早试图克隆AWS的开源IaaS云平台,整体架构如图1的左
半部分所示。Eucalyptus由云控制器(CLC)、Walrus、集群控制器(CC)、存
储控制器(SC)和节点控制器(NC)组成,它们相互协作共同提供所需的云服
务。组件间使用支持WS-Security的SOAP消息实现安全的通信。Eucalyptus对
外提供兼容AWS的SOAP和Query接口,不提供其他API。
OpenNebula没有采用SOA的设计,没有将计算、存储和网络设计为独立组
件,解耦做得还不够。值得注意的是,OpenNebula用Libvirt所提供的接口远程
1
OpenStack
7亿美元,增长率超过
1.1所示,20%。因此,在开源云计算项目领域,OpenStack早已崭露头角,如图
南京邮电大学2015届本科生毕业设计(论文)
调用计算节点上的虚拟化控制命令。这种Agentless的设计在系统安装部署阶段
会减少很多软件安装配置工作,是一个设计亮点。
所有的开源IaaS云平台在分层上做得都比较好;在SOA/组件化/解耦这点上
来看,OpenStack和Eucalyptus有优势;在框架和插件设计上,除
次之。综合来看,目前
次之。
相比开源项目的“前辈”,OpenStack是一个更高级且现代化的开源项目,
因为它是高度协作的产物。
OpenStack的支持者都是世界顶级的供应商,可以看出OpenStack倍受青睐,
可以说它是开源界的明星产品。目前,例如
各供应商,都表示对其支持。
VMware、RedHat、Cisco、EMC等
Eucalyptus较
差外,其他平台均有很好的设计——OpenStack的开发平台做得最好,CloudStack
OpenStack的设计是最好的,Eucalyptus和CloudStack
图1.1 OpenStack与其它开源云计算项目的趋势对比
相比之下,OpenStack项目从最开始就发展开放社区,其直接结果是,
OpenStack里聚集了比CloudStack更多的主流供应商。在大多数情况下,这些厂
商开发的组件第一时间提供给OpenStack,之后才为CloudStack提供接口
[1]
。
OpenStack也有不够完善的地方,如OpenStack相对于CloudStack来说更加
CloudStack便捷;在界面显复杂,对终端用户的支持不够;在安装部署上不如
2
南京邮电大学2015届本科生毕业设计(论文)
示方面也不如CloudStack丰富。
Amazon 公司于2006年推出的云计算服务(AWS,Amazon Web Services)
核心产品包括弹性计算云EC2(Elastic Computing Cloud)、简单存储服务S3
(Simple Storage Service)、简单队列服务SQS(Simple Queue Service)、内容推
带宽、CPU资源以及月租
送服务(CloudFront)和简单数据库服务(SimpleDB)等,为企业提供计算和存
储服务。Amazon 公司收费的服务项目包括存储空间、
费。其中存储空间、带宽按容量收费,
话月租费类似
[9]
CPU 根据运算时长收费,月租费则与电
。
Google 是最大的云计算技术使用者,提供全球知名的互联网搜索引擎服务。
Google 搭建了一个称为Google App Engine的云平台,为第三方应用提供大型并
行计算服务。更值得一提的是,Google 于2007秋季在全球宣布了云计划,通过
与IBM 开展合作,开始在美国多所大学,包括卡内基美隆大学、麻省理工学
并且使得学生可以透
院等,推广云计算技术。这项计划希望通过为这些大学提供相关的软硬件设备及
技术支援,能降低分布式计算技术在学术研究方面的成本,
过网络开展各项以大规模计算为基础的研究计划
买即用的云计算服务
[3]
[13]
。
IBM于2007年第四季度推出了“Blue Cloud(蓝云)”云计算平台,提供即
。“蓝云”使用具有自我管理和自我修复的虚拟化云计算软
2008年8月1日,IBM
IBM 同时还将
IBM亦与17
件,使得用户的应用可以访问分布式的大型计算服务器池。
宣布斥资3.6亿美元在美国北卡罗来纳州建立云计算数据中心。
在东京建立一所新的机构,帮助用户使用云计算基础设施。另外,
个欧洲组织合作开展
拟化”。
RESERVOIR 云计算项目,实现“无障碍的资源和服务虚
微软于2008年10月推出了Windows Azure操作系统,Azure底层是微软全
球基础服务系统,由分布于全球的第四代数据中心组成,通过互联网让
真正由PC延伸到云计算服务上。目前,微软的云计算系统已经包括超过
个集装箱式数据中心和多达44万台的服务器。
Windows
220
1.2 研究工作意义
自从2006年Google首席执行官埃里克·施密特在搜索引擎大会上首次提出
“云计算”(Cloud Computing)的概念,云计算就成为近几年来
资源池中获取计算、存储、网络等资源。
用户。
3
IT领域一个非常
热门的研究方向。它使用户能够通过网络便利、按需地从一个共享的、可配置的
而在云计算的3种部署模式(公有云、
私有云、混合云)中,公有云虽然以其低廉的价格、灵活的弹性策略吸引大量的
南京邮电大学2015届本科生毕业设计(论文)
然而,构建一个云计算数据中心,使之主要为企业内部乃至公共市场提供云
服务,并且让IT人员能对其数据、安全性和服务质量进行有效的控制,成为倍
受大企业青睐的选择。此外,云计算数据中心能够提供更高效、
算资源分配能力,能够更有效地利用企业内部现有的
如何构建一个适合本地环境的云计算数据中心管理系统;
评估和探索。在实际试验中,本文基于
科研实验室环境中搭建云计算管理平台,
据安全。
希望通过本文,能帮助大家了解云计算和
OpenStack云管理平台,探索
OpenStack生态圈。
OpenStack,以及如何用OpenStack
配置搭建自己的云环境,并通过前端来设置及管理云平台。本文的目的在于搭建
OpenStack的神奇之处,旨在更深层次地了解
企业需求的云平台。鉴于上述提到的公有云的数据安全问题,
个性化的弹性计
IT设备资源,打造更符合
本文的出发点在于
针对实验室或开发环境
构建一个云计算平台,使实验室可以针对数据安全、计算资源的按需获取等进行
OpenStack 开源云计算平台,实现了在
使得资源能够得到弹性分配,且确保数
1.3 论文组织结构
本篇论文共分五章,主要内容概括如下:
第一章绪论。简单介绍云计算的研究背景、意义以及论文的组织结构。
第二章IaaS及关键技术相关介绍。这一章介绍了
征及优势。同时,介绍了
化这三大虚拟化的实现原理。
第三章OpenStack相关介绍。这一章首先介绍了OpenStack的概念架构和访
问流程对OpenStack的整体运行原理有一个大致的了解,之后详细介绍了
Keystone)、计算服务(Nova)、网络服务OpenStack的三大服务:认证服务(
(Neutron)。
第四章OpenStack云管理平台的搭建。这部分是具有挑战性的,从基础环境
的配置开始,完成之后开始安装各种软件包,每安装一个软件包后都要进行详细
的配置文件的修改。另外,还对计费模块进行了初步研究。
第五章OpenStack云平台的测试。这章节主要是完成对第五章的所有部署的
验证,每一个所需服务是否都已启动,之后是启动一个
例的成功启动之后进行网络测试。
最后是结束语。
instance的过程,并对实
IaaS的概述、IaaS服务特
IaaS服务器虚拟化,IaaS存储虚拟化、IaaS网络虚拟
4
南京邮电大学2015届本科生毕业设计(论文)
第二章
2.1 Iaas概述
IaaS及关键技术相关介绍
IaaS(Infrastructure as a Service,基础架构即服务)通过互联网提供了数据中
心、基础架构硬件和软件资源。IaaS可以提供服务器、操作系统、磁盘存储、数
据库和/或信息资源。最高端
[2]
IaaS的代表产品是亚马逊的AWS(Elastic Compute
Cloud),不过IBM、Vmware和惠普以及其他一些传统IT厂商也提供这类的服务
。IaaS通常会按照"弹性云"的模式引入其他的使用和计价模式,也就是在任何
一个特定的时间,都只使用你需要的服务,并且只为之付费。
2.2 IaaS服务特征及优势
IaaS主要具有以下服务特征及优势:
(1)更低的门槛
用户可以以最低的成本租用所需的计算机资源,
软件资源的采购。
(2)更好的扩展性
用户可以根据需要,动态增加或减少服务资源,不用考虑资源来源或者资源
是否够用。
(3)管理方便
资源可以直接通过互联网管理,不需要到资源所在机房现场操作,降低管理
成本。
(4)使用灵活
用户可获得完全独立的服务器,并拥有管理员权限,因此用户可以不受限制
的进行任何操作。
(5)资费灵活
所需资源可以随时开始和停止,用户只需要为自己所使用的资源付费。
而不需要进行大量的硬件和
2.3 IaaS整体架构
虚拟化技术主要实现了对底层物理资源的抽象,
生成、调度、管理的基础资源单位
[8]
使其成为一个个可以被灵活
。而要将这些资源进行有效的整合,从而生
成一个可以统一管理、灵活分配跳读、动态迁移、计费度量的基础服务设施资源
5
南京邮电大学2015届本科生毕业设计(论文)
池,并向用户提供自动化基础设施即服务,就需要
如图图2.1,这是对资源管理平台的实现。
IaaS管理平台。
图2.1 IaaS交互模型
资源管理平台负责对物理资源和虚拟化资源进行统一的管理和调度,
一的资源池,实现
命周期管理能力和对资源的管理调度能力。
形成统
IaaS服务的可管、可控,其核心是对每个基础资源单位的生
在上面的模型中,假定了与云交互的四种人员(开发商、开发人员、操作员、
用户),还定义了三层架构(表现、逻辑、资源)和两个正交领域(集成和管理)。
表现层,组件与用户交互,接受并显示用户的信息。这一层为非开发人员提
供了一个Web 图形界面,为开发人员提供了
理、安全、命名服务。
逻辑层,为云和控制功能提供情报。这层内包括部业务流程(工作流程复杂
的任务),调度(确定作业对资源的映射),政策(配额等),镜像注册表(例如
镜像的元数据),日志(事件和计量)。
资源层,提供实际的计算,网络和存储资源给客户。提供服务的资源可能是
服务器,网络交换机,网络附加存储或其他。
集成功能,大多数服务提供商已经有一个客户的身份和计费系统。
构将需要与这些系统集成。
管理功能,提供一个API 来管理云并提供监控功能。
6
API,还存在负载均衡、控制台代
任何云架
南京邮电大学2015届本科生毕业设计(论文)
2.4 IaaS关键技术介绍
2.4.1 虚拟化技术
虚拟化技术(Virtualization)已经对计算机发展产生了重要的影响,尤其是
最近发展非常热门的云计算技术。其实,在计算机领域,虚拟化的思想早已经存
在,最早IBM 在二十世纪六十年代就提出并实现了在一台物理机上运行多个不
同的操作系统实例,它颠覆了传统的一台计算机运行一个操作系统实例的计算模
式。多个操作系统运行在一个物理机上,共享物理机资源(
源、网络资源、存储资源等)
[3]
CPU 资源、内存资
虚拟化
。随着计算机硬件资源的不断快速发展,现有的
充分地利用了硬件
很多软件已不能充分的利用计算机硬件的资源存在很多的资源浪费现象。
技术的出现,提高了物理机或者服务器的硬件资源的利用率,
所提供的并行性和高性能,也使系统管理员免去了管理大量物理机的所花费的精
力和时间。虚拟化技术的这些特点,使得虚拟化技术成为整个计算机软件技术中
最受到重视的技术之一,它在云计算技术中起着至关重要的作用,
的基础。
虚拟化就是通过脱耦合把应用软件和在其上的虚拟的操作系统与底层的物
理设备分离开来。物理机系统的虚拟化究其根本就是通过某种手段把底层的物理
设备和其上的软件运行环境分割的技术。然而虚拟化技术的出现,远远不止于虚
CPU,文件,存储等的虚
它实际上已
拟出虚拟的操作系统,现在已经看到了,内存,网络,
是云计算技术
拟化。从一种更高的抽象、一个更广泛的环境中来了解虚拟化技术,
经成为了一个非常大的概念,可以为用户企业带来很大的便利。
虚拟化技术主要实现了对底层物理资源的抽象,
生成、调度、管理的基础资源单位,如图
使其成为一个个可以被灵活
2.2。而要将这些资源进行有效的整合,
IaaS管理平台。
形成统
从而生成一个可以统一管理、灵活分配跳读、动态迁移、计费度量的基础服务设
施资源池,并向用户提供自动化基础设施即服务,就需要
一的资源池,实现
资源管理平台负责对物理资源和虚拟化资源进行统一的管理和调度,
命周期管理能力和对资源的管理调度能力。
IaaS服务的可管、可控,其核心是对每个基础资源单位的生
2.4.2 KVM与QEMU
KVM虚拟机是基于Linux内核虚拟化,自Linux2.6.2之后就集成在Linux
的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,
其核心源码很少。KVM的虚拟化需要硬件的支持(如Intel VT技术或者AMD V
7
南京邮电大学2015届本科生毕业设计(论文)
图2.2虚拟化架构
技术),是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的
para-virtualization,新版本是基于硬件支持的完全虚拟化
QEMU是一种模拟处理器,现在运用最多的就是将
KVM模块
[13]
[3]
。
modprobe去加载
KVM和QEMU结合起
来。准确来说,KVM是Linux kernel的一个模块,可以用命令
。加载了该模块后,才能进一步通过工具创建虚拟机。但是仅有
KVM开发者选择了已经成型的
KVM模块是不够的。因为用户无法直接控制内核去做事情,还必须有一个运行
在用户空间的工具才行。这个用户空间的工具,
开源虚拟化软件QEMU。说起来QEMU也是一个虚拟化软件。它的特点是可虚
拟不同的CPU。比如说在x86的CPU上可虚拟一个power的CPU,并可利用它
编译出可运行在power上的CPU,并可利用它编译出可运行在
具了。所以你会看到,官方提供的
power上的程序。
KVM使用了QEMU的一部分,并稍加改造,就成了可控制KVM的用户空间工
KVM下载有两大部分(QEMU和KVM)三个
文件(KVM模块、QEMU工具以及二者的合集)。也就是说,你可以只升级KVM
模块,也可以只升级QEMU工具。这就是KVM和QEMU 的关系,如图2.3。
2.4.3 数据存储技术
为保证高可用、高可靠和经济性,云计算采用分布式存储的方式来存储数据,
采用冗余存储的方式来保证存储数据的可靠性,即为同一份数据存储多个副本。
另外,云计算系统需要同时满足大量用户的需求,并行地为大量用户提供服务。
8
南京邮电大学2015届本科生毕业设计(论文)
图2.3 KVM与QEMU关系
因此,云计算的数据存储技术必须具有高吞吐率和高传输率的特点。
数据存储技术主要有谷歌的非开源的
云计算的
GFS(Google File System)和Hadoop 开发
HDFS 的数据存储技术。未来
团队开发的GFS 的开源实现HDFS(Hadoop Distributed File System)。大部分IT
厂商,包括Yahoo、Intel 的“云”计划采用的都是
I/O速率等方面
[4]
的发展将集中在超大规模的数据存储、数据加密和安全性保证、以及继续提高
。
2.4.4 资源管理技术
在多节点并发执行环境,分布式资源管理系统是保证系统状态正确性的关键
技术。系统状态需要在多节点之间同步,
一致性。典型的资源管理技术如
关键节点出现故障时需要迁移服务,分
布式资源管理技术通过锁机制协调多任务对于资源的使用,从而保证数据操作的
Google公司的Chubby文件系统。
2.4.5 能耗管理技术
随着云计算的快速发展,如今云服务的推出使许多中小企业用户转而向云计
算服务提供商订购云计算服务。而这类云服务大多是安装在主机托管服务提供商
所拥有的大型数据中心。那么,关于数据中心的能耗问题便成了数据中心管理者
9
南京邮电大学2015届本科生毕业设计(论文)
最关心的问题。处理的能耗是服务能耗的主要组成部分之一,
源构件对于电力的消耗也是非常巨大的,
大型的云计算数据
中心有可能拥有数百、上万甚至更多的服务器,这些云平台中数量众多的基础资
这将直接影响数据中心的运营成本。因
此如何在云计算数据中心部署良好的、持续的电源供应系统倍受用户关注。
Google的数据中心一般选择在人烟稀少、气候寒冷、水电资源丰富的地区,这
些地点的电价、散热成本、场地成本、人力成本等都远低于人口稠密的大都市。
我国三大电信运营商也效仿
[4]
Google 的做法,选择在哈尔滨等地建设数据中心
。
另外,为满足更多的网络服务需求,降低能耗,减少数字媒体下载量,可采
用减少数字垃圾、进行策略性的界面设计、提高使用意识以及避开使用高峰期等
措施。
2.5 本章小结
本章主要是对IaaS和云计算平台实现的关键技术的介绍,其中包括了
的定义、优势及架构,充分说明了
包含了关键的KVM和QEMU。
对于云计算平台来说是最重要的,本章还就对最终要的虚拟化技术展开了介绍,
IaaS
IaaS在云平台中的地位与作用。虚拟化技术
10
南京邮电大学2015届本科生毕业设计(论文)
第三章
3.1 OpenStack简介
OpenStack相关介绍
OpenStack是一套开源的云计算平台,也是一款工具集。它刚问世不久就得
到了学术领域的普遍关注,并很快渗透到各个研究领域。OpenStack可以构建自
己的IaaS云计算环境,并提供给用户使用。OpenStack部署云环境的优点就是灵
活,可以根据自己的需要来搭建基础设施,同时可以自由地扩充集群规模。
OpenStack允许客户通过部署虚拟机来创建资源,在节点上通过使用
对虚拟机进行一系列配置。客户端用户只需要申请自己需要的虚拟资源。
KVM等来
3.1.1 OpenStack基础架构
OpenStack 通过一系列的组件服务提供了一个基础架构即服务(
决方案
[5]
IaaS)的解
。在较新版本IceHouse中包含了10 个组件:
OpenStack 云中的计算组织控制器,对计算资源、
Amazon Web Services (AWS)
(1)Nova:计算服务是
网络、认证和扩展性等进行管理,并通过一个与
EC2 API 兼容的web servicesAPI来对外提供服务。
(2)Swift:对象存储服务提供弹性可伸缩、高可用的分布式对象存储服务,
适合存储大规模非结构化数据。
(3)Glance:镜像服务提供虚机镜像的注册和分派服务。
(4)Cinder:块存储服务为虚机提供可用于持久存储的块存储服务。
(5)Neutron:网络服务为其它
络技术。
(6)Keystone:认证服务为
式管理和操作OpenStack 云。
(8)Ceilometer:计量监控服务为OpenStack 云提供计费、基准测试及数据
统计等功能。
(9)Heat:编排组织服务提供基于模板的编排机制,用户可以通过一个参
数化的模板轻松的部署网络、服务器、存储等资源。
(10)Trove:数据库服务为关系型和非关系型数据引擎提供可扩展、可靠
的云数据库即服务功能。
11
OpenStack 组件提供网络连接,通过API 为
终端用户提供自定义网络功能;通过一个插件式架构支持大量网络广商设备及网
OpenStack 提供认证和授权服务。
Web 的管理控制台,用户可以通过Web 方(7)Horizon:仪表盘提供基于
南京邮电大学2015届本科生毕业设计(论文)
OpenStack的概念架构,如图3.1所示。
图3.1 OpenStack概念架构
3.1.2 OpenStack访问流程
(1)User 通过自己的身份凭证(Credentials)想Keystone服务发起认证,
Keystone如果通过认证则给User颁发密钥(Token),之后执行(2)步。
(2)User 把密钥(Token)和虚拟机的创建请求发送给Nova服务,Nova
Glance
通过Keystone服务验证密钥(Token)如果通过认证则执行(3)步。
(3)Nova 把密钥(Token)和创建虚拟机所需要的镜像请求发送给
返回镜像执行(4)步。
(4)Nova 把密钥(Token)创建虚拟机所需要的网络资源请求发送给
Quantum服务,通过Keystone服务验证密钥(Token),如果通过Quantum向Nova
返回网络资源执行(5)步。
(5)Nova 得到创建虚拟机所需要的资源了,之后向用户(
12
服务,Glance通过Keystone服务验证密钥(Token),如果通过Glance向Nova
User)返回请求
南京邮电大学2015届本科生毕业设计(论文)
图3.2 OpenStack访问流程
成功。
3.2 OpenStack认证服务——Keystone
3.2.1 Keystone介绍
Keystone(OpenStack Identity Service)是OpenStack框架中,负责身份验证、
服务规则和服务令牌的功能,它实现了OpenStack的Identity API。Keystone类似
一个服务总线,或者说是整个Openstack框架的注册表,其他服务通过keystone
来注册其服务的Endpoint(服务访问的URL),任何服务之间相互的调用,需要
经过Keystone的身份验证,来获得目标服务的Endpoint来找到目标服务。
3.2.2 Keystone概念
User即用户,他们代表可以通过keystone进行访问的人或程序
[6]
。Users通
过认证信息(credentials,如密码、API Keys等)进行验证,如:住宾馆的人。
Tenant即租户,它是各个服务中的一些可以访问的资源集合。
13
例如,在Nova
南京邮电大学2015届本科生毕业设计(论文)
中一个tenant可以是一些机器,在Swift和Glance中一个tenant可以是一些镜像
存储,在Neutron中一个tenant可以是一些网络资源。Users默认的总是绑定到
某些tenant上,如:宾馆。
Role即角色,Roles代表一组用户可以访问的资源权限,例如Nova中的虚
拟机、Glance中的镜像。Users可以被添加到任意一个全局的或租户内的角色中。
在全局的role中,用户的role权限作用于所有的租户,即可以对所有的租户执
行role规定的权限;在租户内的role中,用户仅能在当前租户内执行role规定
的权限,如:VIP 等级,VIP越高,享有越高的权限。
Service即服务,如Nova、Glance、Cinder。根据前三个概念(User,Tenant
和Role)一个服务可以确认当前用户是否具有访问其资源的权限。但是当一个
user尝试着访问其租户内的service时,他必须知道这个service是否存在以及如
在上文中谈
nova进
role,
service的。例如,当swift需要一个管理
role我们并不一定也需要对
何访问这个service,这里通常使用一些不同的名称表示不同的服务。
到的Role,实际上也是可以绑定到某个
员权限的访问进行对象创建时,对于相同的
行管理员权限的访问。为了实现这个目标,我们应该创建两个独立的管理员
一个绑定到swift,另一个绑定到nova,从而实现对swift进行管理员权限访问不
会影响到Nova或其他服务,如:宾馆可以提供的服务类别,比如,饮食类,娱
乐类。
Endpoint,翻译为“端点”,我们可以理解它是一个服务暴露出来的访问点,
如果需要访问一个服务,则必须知道他的endpoint。因此,在keystone中包含一
endpoints信息。一个
个endpoint模板(endpoint template,在安装keystone的时候我们可以在conf文
件夹下看到这个文件),这个模板提供了所有存在的服务
endpoint template包含一个URLs列表,列表中的每个URL都对应一个服务实例
的访问地址,并且具有public、private和admin这三种权限。public url可以被全
局访问,admin url被从常规的访问中分离,如:具体的一种服务,比如吃烧烤,
打羽毛球。
3.3 OpenStack计算服务——Nova
3.3.1 Nova简介
Nova是OpenStack云中的计算组织控制器
(instances)生命周期的所有活动都由
[6]
。支持OpenStack云中实例
Nova自身并没有提
Nova处理。这样使得Nova成为一个负责
管理计算资源、网络、认证、所需可扩展性的平台。但是,
供任何虚拟化能力,相反它使用libvirt API来与被支持的Hypervisors交互。Nova
14
南京邮电大学2015届本科生毕业设计(论文)
通过一个nova API来对外提供服务。
Nova的功能和特点有:实例生命周期管理,管理计算资源,网络和认证管
理,REST风格的API,异步的一致性通信,Hypervisor透明:支持
Xen,XenServer/XCP, KVM, UML, VMware,vSphere and Hyper-V。
3.3.2 Nova架构
图3.3 Nova 架构
Nova 云架构(如图3.3)的各个组件是以数据库和队列为中心进行通信的,
下面对其中的几个组件做一个简单的介绍:
(1)Queue,也就是消息队列,它就像是网络上的一个
之间的通信几乎都是靠它进行的,当前的
database一起为各个守护进程之间传递消息。
(2)database存储云基础架构中的绝大多数状态。这包括了可用的实例类
型,在用的实例,可用的网络和项目。当前广泛使用的数据库是
试和开发工作)、MySQL和PostgreSQL。
(3)nova-compute负责决定创造虚拟机和撤销虚拟机,通过运行一系列系
统命令(例如发起一个KVM实例),并把这些状态更新到
15
hub,nova各个组件
Queue是用RabbitMQ实现的,它和
sqlite(仅适合测
nova-database中去,
其过程相当复杂,但是基本原理很简单。
南京邮电大学2015届本科生毕业设计(论文)
(4)nova-schedule负责从queue里取得虚拟机请求并决定把虚拟机分配到
哪个服务器上去。schedule的算法可以自己定义,目前有Simple (最少加载主
机),chancd(随机主机分配) ,zone(可用区域内的随机节点)等算法。
(5)nova-volume负责记录每一个计算实例,相当于一个计算请求吧,并负
责创建,分配或撤销持久层容器
instances。
(6)nova -netwok负责处理队列里的网络任务。
(7)nova-api守护进程是OpenStack Compute的中心。它为所有API查询提
供一个入口。
(Amazon的iSCSI,AoE等等)给这些compute
3.3.3 Nova工作流程
为了看看nova是如何工作的,可以以启动一个实例为例来进行说明,因为
启动一个新的instance涉及到很多openstack nova里面的组件共同协作
Scheduler
[14]
。
Queue&Database
Api
Nova-network
Nova-compute
图3.4 Nova工作流程
(1)API:处理客户端的请求,并且转发到
给scheduler发送一个消息(实际上是发送到
Queue和Database中。如:输
入一个启动instance的命令api就会查看这种类型的instance是否达到最大值并
Queue中)去运行这个实例。
(2)Scheduler:选择一个host去执行命令。如:Schedule:调度器接收到了
消息队列Queue中API发来的消息,然后根据事先设定好的调度规则,选择好
一个host,之后,这个instance会在这个host上创建。
(3)nova-compute :启动和停止实例,附加和删除卷等操作。如:创建一
个instance的操作是由Compute完成的,而这个过程中computer组件与Glance-api
16
南京邮电大学2015届本科生毕业设计(论文)
交互得到所需的instance镜像。
(4)nova-network:管理网络资源,分配固定IP。
3.4 OpenStack网络服务——Neutron
3.4.1 Neutron介绍
OpenStack网络的核心理念就是通过多个其他元素
以及其他连接的网络
地使用这个逻辑层。
这一模式是在OpenStack Neutron服务器中实现的,它与OpenStack Nova软
件管理的虚拟机(即计算服务)以及上述提及的其他元素进行交互
过使用Neutron API与网络服务进行交互。
Neutron使用RESTful网络服务和HTTP与其客户端进行通讯。它使用
JavaScript对象表示(JSON)和XML对其运行进行建模。它是专为随时间推移而
实现灵活增加功能的目标而设计的,它可扩展至一系列的部署并使用易于理解的
开放式软件以便于能够更高效地把多方功能整合至
响应以及其他的逻辑步骤都有明确的定义,
功能的创建与管理,进而支持网络服务实施
[15]
[17]
(如虚拟机、系统管理模块
[16]
)为用户提供一组一致性的网络服务。从本质上讲,
OpenStack网络创建了一个一致的逻辑通讯层,而其他元素可以有效地、大规模
。用户通过
OpenStack的Horizon GUI与网络功能进行交互,而其他的管理系统和网络则通
OpenStack网络环境。请求、
并且这些逻辑步骤都可用于一些必要
。
负载平衡等扩展功能。网络中
在其目前的分布中,OpenStack Neutron混合实施了第二层的VLAN和第三
层的路由服务,它可为所支持的网络提供防火墙、
的虚拟机来自于虚拟机管理程序
[7]
。
IP块表示可以
Neutron
此外,通过使用支持IPv4和IPv6的强大地址管理功能,Neutron可在一个
站点内实现虚拟机的灵活部署。它采用了一个逻辑的子网架构,
寻址虚拟位置和到达其部署结构中任何的位置。这种结构类似于在众多
IP组网中所使用的子网技术,它通常是从与子网相关的物理端口抽取出来的。
在覆盖网络中,它可被用作逻辑关联机制,以便于为不同用户和应用程序分离网
络流量。通过使用这种方法,云计算供应商可以分别实现多个租户的通讯并为不
同应用程序部署拓扑,例如多层服务器组合以处理一个整体应用程序的不同部
分。
17
南京邮电大学2015届本科生毕业设计(论文)
Software-define
Networking service
L3-agent
Neutron-server
Plugin-a
gent
Dhcp-ag
Message queue
ent
图3.5 Neutron架构
如图3.5所示:
(1)neutron-server 是OpenStack Networking 服务器的主要流程。它是一
个Python 后台进程,将用户请求从OpenStack Networking API 中继到配置的插
件。
(2)neutron-dhcp-agent 向所有租户网络提供动态主机配置协议
Host Configuration Protocol, DHCP) 服务。
(3)neutron-l3-agent 执行L3/网络地址转换
转发,以支持网络网络访问租户网络上的
一个特定于插件的可选代理
行本地虚拟交换机配置。
VM。
(Network Address Translation)
(Dynamic
(neutron-*-agent) 在每个虚拟机管理程序上执
3.4.2 Neutron 网络创建过程
Neutron 网络目的是为OpenStack 云更灵活地划分物理网络,在多租户环
Neutron 提供API 来实现这种目
可以拥有无限多个动态可创建和
境下提供给每个租户独立的网络环境。另外,
的话,这个网络对象相当于一个巨大的交换机,
销毁的虚拟端口
[7]
标。Neutron 中用户可以创建自己的网络对象,如果要和物理环境下的概念映射
。
IP 地址,并且创建一个外部网
在Horizon 上创建Neutron 网络过程如下:
首先管理员拿到一组可以在互联网上寻址的
络和子网。
租户创建一个网络和子网。
18
南京邮电大学2015届本科生毕业设计(论文)
租户创建一个路由器并且连接租户子网和外部网络。
租户创建虚拟机。
3.5 本章小结
本章首先介绍了OpenStack的概念架构和访问流程对
原理有一个大致的了解,之后详细介绍了
OpenStack的整体运行
OpenStack的三大服务:OpenStack认
证服务Keystone、OpenStack计算服务Nova 、OpenStack网络服务
每一种服务的架构、访问流程以及实现原理都做出了详细的介绍。
19
,对Neutron
南京邮电大学2015届本科生毕业设计(论文)
第四章OpenStack云管理平台的搭建
4.1 单节点安装部署OpenStack
4.1.1 实验环境及实验拓扑
本次实验采用一台8个vCPU、16GB内存的云主机,搭载CentOS 6.6 64bit
操作系统,用来单节点部署
硬件配置,并要求支持
OpenStack。搭建OpenStack云管理平台需要较高的
4.1所示。CPU虚拟化。实验拓扑图如图
图4.1 实验拓扑图
本文设计的云计算平台的实验拓扑图如图
云主机,并且可以通过公网进入到
4.1所示,主机分别连接到内网和
SSH到外网,通过路由器,Public-Subnet和公网相连,这样就可以通过公网来
OpenStack的DASHBOARD,以图形交互模
式来管理云。由于考虑到实验环境的限制,本次实验采用单节点部署,达到节省
硬件消耗的目的。另外,单节点部署更适合实验环境,而多节点部署更适合生产
环境
[1]
。
4.1.2 构建过程
目前OpenStack可以采用多种方法进行构建,如源码安装、使用
脚本安装、使用
图4.2所示。
Puppet 安装等,为了进一步熟悉
用通过OpenStack官方网站提供的指导手册进行一步步的安装
[10]
DevStack
OpenStack 的框架,本文采
。部署流程图如
20
南京邮电大学2015届本科生毕业设计(论文)
图4.2 实验部署流程图
4.2 云平台搭建主要过程和问题解决
4.2.1 Keystone的安装与问题分析
以下是其安装和配置的主要过程。
(1)安装KeyStone
# yum install -y openstack-keystone
(2)初始化数据库
# openstack-db --init --service keystone
--password PASSWORD
(3)生成Token,并设置环境变量
# export SERVICE_TOKEN=$(openssl rand -hex 10)
# export SERVICE_ENDPOINT=10.9.0.206:35357/v2.0
# echo $SERVICE_TOKEN > /tmp/ks_admin_token
21
南京邮电大学2015届本科生毕业设计(论文)
71068df694f4c4620156
(4)修改配置文件
# openstack-config --set /etc/keystone/
DEFAULT admin_token $SERVICE_TOKEN
# openstack-config --set /etc/keystone/
signing token_format UUID
(5)启动keystone服务
# service openstack-keystone start
# chkconfig openstack-keystone on
以下是问题分析。
(1)使用admin用户查看用户列表时报错
# keystone user-list
Authorization Failed: Unable to communicate with identity service: {"error":
{"message": "Unable to sign token.", "code": 500, "title": "Internal Server Error"}}.
(HTTP 500)
解决方法:
# openstack-config --set /etc/keystone/
signing token_format UUID
(2)Keystone 使用期间,有时会出错,可能是因为环境变量问题。需要用
到 里的admin_token 来访问Keystone 的服务,后面也可以通过
keystone-client 来注册新的token。默认的admin_token 是ADMIN,要把它添
加到系统环境里去。
4.2.2 Glance的安装与问题分析
以下是其安装和配置的主要过程。
(1)安装glance
# yum install -y openstack-glance
(2)设置环境变量
# source ~/keystonerc_admin
(3)初始数据库
# openstack-db --init --service glance
--password PASSWORD
(4)修改配置文件
22
南京邮电大学2015届本科生毕业设计(论文)
# openstack-config --set /etc/glance/
paste_deploy flavor keystone
# openstack-config --set /etc/glance/
keystone_authtoken admin_tenant_name admin
# openstack-config --set /etc/glance/
keystone_authtoken admin_user admin
# openstack-config --set /etc/glance/
keystone_authtoken admin_password PASSWORD
# openstack-config --set /etc/glance/
paste_deploy flavor keystone
# openstack-config --set /etc/glance/
keystone_authtoken admin_tenant_name admin
# openstack-config --set /etc/glance/
keystone_authtoken admin_user admin
# openstack-config --set /etc/glance/
keystone_authtoken admin_password PASSWORD
(5)启动服务
# service openstack-glance-registry start
# service openstack-glance-api start
# chkconfig openstack-glance-registry on
# chkconfig openstack-glance-api on
4.2.3 Cinder的安装与问题分析
以下是其安装和配置的主要过程。
(1)安装Cinder
# yum install -y openstack-cinder
(2)设置环境变量
# source ~/keystonerc_admin
(3)初始化数据库
# openstack-db --init --service cinder
--password PASSWORD
(4)修改配置文件
# openstack-config --set /etc/cinder/ DEFAULT auth_strategy
keystone
23
南京邮电大学2015届本科生毕业设计(论文)
# openstack-config --set /etc/cinder/
keystone_authtoken admin_tenant_name admin
# openstack-config --set /etc/cinder/
keystone_authtoken admin_user admin
# openstack-config --set /etc/cinder/
keystone_authtoken admin_password PASSWORD
(5)修改tgt配置文件
grep -q /etc/cinder/volumes /etc/tgt/ || sed -i
/etc/cinder/volumes/*' /etc/tgt/
(6)启动tgt
#service tgtd start
#chkconfig tgtd on
(7)创建cinder-volumes
使用一个空闲独立的分区,这里这个分区为
# vgcreate cinder-volumes /dev/sdb1
Volume group "cinder-volumes" successfully created
(8)启动服务
# for srv in api scheduler volume ; do
sudo service openstack-cinder-$srv start ;
done
# for srv in api scheduler volume ; do
sudo chkconfig openstack-cinder-$srv on ;
done
/dev/sdb1
'1iinclude
4.2.4 Nova和Quantum的安装与问题分析
以下其安装和配置的主要过程。
(1)安装nova和cinderclient
# yum install -y openstack-nova
# yum install -y python-cinderclient
(2)初始化数据库
# openstack-db --init --service nova
--password PASSWORD
24
南京邮电大学2015届本科生毕业设计(论文)
(3)修改配置文件
# openstack-config --set /etc/nova/ DEFAULT auth_strategy keystone
# openstack-config --set /etc/nova/
filter:authtoken admin_token $(cat /tmp/ks_admin_token)
(4)卸载nova-network
# rpm -e --nodeps
这里面使用Quantum替代
# service messagebus start
# chkconfig messagebus on
# service libvirtd start
# chkconfig libvirtd on
# openstack-config --set /etc/nova/ DEFAULT
volume_api_class
# openstack-config --set /etc/nova/ DEFAULT
enabled_apis ec2,osapi_compute,metadata
(5)创建服务和Endpoint
# keystone service-create --name=nova --type=compute --description="Nova
Compute Service"
# keystone endpoint-create --service_id dff2746d4d7049fab6e1a96968f6a6ff
--publicurl "10.9.0.206:8774/v1.1/$(tenant_id)s"
--adminurl "10.9.0.206:8774/v1.1/$(tenant_id)s"
--internalurl "10.9.0.206:8774/v1.1/$(tenant_id)s"
(6)为OpenStack Networking配置Keystone
# source ~/keystonerc_admin
# keystone service-create --name openstack_network --type network
--description 'OpenStack Networking Service'
# keystone endpoint-create --service-id 90d4cf4d89a143dabf5faf2de1f0de48
--publicurl '10.9.0.206:9696/'
--adminurl '10.9.0.206:9696/'
--internalurl '10.9.0.206:9696/'
(7)安装quantum 和插件
# yum install openstack-quantum
# yum install openstack-quantum-openvswitch
25
南京邮电大学2015届本科生毕业设计(论文)
(8)配置Openstack-Networking
# openstack-config --set /etc/quantum/
DEFAULT rpc_backend _qpid
# openstack-config --set /etc/quantum/
DEFAULT qpid_hostname 10.9.0.206
# openstack-config --set /etc/quantum/
keystone_authtoken admin_tenant_name admin
# openstack-config --set /etc/quantum/
keystone_authtoken admin_user admin
# openstack-config --set /etc/quantum/
keystone_authtoken admin_password PASSWORD
# sudo sh -c 'echo 127.0.0.1 `hostname` >> /etc/hosts'
# quantum-server-setup --plugin openvswitch
# service quantum-server start
# chkconfig quantum-server on
(9)修改
network_api_class =
quantum_admin_username = admin
quantum_admin_password = PASSWORD
quantum_admin_auth_url = 10.9.0.206:35357/v2.0/
quantum_auth_strategy = keystone
quantum_admin_tenant_name = admin
quantum_url = 10.9.0.206:9696/
libvirt_vif_driver = tHybridOVSBridgeDriver
libvirt_use_virtio_for_bridges=True
(10)安装OpenStack Networking Agents
# yum install -y openstack-quantum-openvswitch
# quantum-node-setup --plugin openvswitch
26
南京邮电大学2015届本科生毕业设计(论文)
# service openvswitch start
# chkconfig openvswitch on
# service quantum-openvswitch-agent start
# chkconfig quantum-openvswitch-agent on
# chkconfig quantum-ovs-cleanup on
(11)安装OpenStack Networking DHCP Agent
# quantum-dhcp-setup --plugin openvswitch
# service quantum-dhcp-agent start
# chkconfig quantum-dhcp-agent on
(12)安装OpenStack Networking L3 Agent
# ovs-vsctl add-br br-int
# ovs-vsctl add-br br-ex
# ovs-vsctl add-port br-ex eth1
# yum install -y openstack-quantum
# quantum-l3-setup --plugin openvswitch
# quantum router-create router1
# vi /etc/quantum/l3_
router_id = 3129097f-4d02-4610-b77a-47dc7a2904ea
# service quantum-l3-agent start
# chkconfig quantum-l3-agent on
(13)启动nova
# service openstack-nova-api start
# service openstack-nova-cert start
# service openstack-nova-conductor start
# service openstack-nova-objectstore start
# service openstack-nova-scheduler start
# service openstack-nova-compute start
以下是问题分析。
(1)nova-volume 无法正常访问:此时需要检查是否正常创建了
nova-volumes,这也是系统默认的命名,如果修改了这个名称,则需要在
里指定。
(2)虚拟机无法正常启动:需要检查libvirt-type 是什么,镜像是否有问题,
以及libvirt 是否有权限访问你的instance 目录。
floating ip range 来解决这个问题。
27
lvm 卷,
然后检查 是否指定了volume-name。本次实验创建的卷名为
(3)网络无法访问:可以尝试创建一个
南京邮电大学2015届本科生毕业设计(论文)
(4)无法获得镜像文件:这个问题是由于
Not Found 这样的错误,那么就要去跟踪当验证
否则会拿不到swift proxy-server 的endpoint。
glance 访问swift 的一个bug。
nova-compute 里报Image
auth_url
url 后面加上一个/,
nova-manage
swift 的时候,给出的
先使用glance index 来确认是否能列出镜像,如果
是否是[ yourip]:5000/v2.0,如果是,那么需要对这个
(5)Nova 安装完后,nova-network 服务已经运行,但是用
service list指令却查看不到
决。
nova-network 服务。后来通过修改 文件解
4.2.5 Horizon的安装与问题分析
以下是其安装和配置的主要过程。
#yum install -y openstack-dashboard
#yum install -y mod_ssl
#keystone role-create --name Member
#service httpd start
#chkconfig httpd on
以下是问题分析。
Horizon是OpenStack的一个Dashboard,也即是以网页形式面向用户的一个
界面。通过Horizon,用户可以很方便使用
行。
关键一点就是要在Keystone中创建Member角色,因为Horizon中会用到这
个角色。
OpenStack,而不必使用繁琐的命令
4.3 OpenStack计费系统的研究
目前,在国内外扁平计费的模式依然是在实施操作中比较普遍的计费模式。
扁平计费的特点是按照单位时间来计费,使用者只需要根据单位时间的服务来支
付事先规定的费用,与其单位时间内的使用量毫无关系。包月计费就是最为普遍
的扁平计费的模式。然而,云计算所提出的按需计费与扁平计费的计费方式大相
径庭,扁平计费的模式根本无法满足云计算平台对计费系统的要求。
本课题中所设计的计费系统是根据云计算平台的需求,根据用户对平台资源
的使用量来进行计费处理,在这种计费模式中,用户只需要关注其资源的使用量
情况,并根据用量来对用户计费。计费系统经过采集、分析与统计用户对资源的
使用情况,并根据用户所选取的计费策略进行计算处理,给出用户的计费信息,
28
南京邮电大学2015届本科生毕业设计(论文)
并通过Web 的形式向用户展示。以用户对虚拟机的使用来说明,当计费系统接
收到本次服务的其实时间及结束时间之后,
可以对收集的计费
便可以得到本次服务的使用时间,就
数据进行处理,得到计费结果。在计费系统中,运用
并根据用
MapReduce来处理计费数据。就是计费系统将用户所申请创建的虚拟机的使用时
长做为计量标准,系统通过采集。分析与统计每台虚拟机的使用时长,
户所采用的计费策略就可以计算出目前该用户的计费信息。
4.3.1 OpenStack计费系统的设计与实现
云计算平台中的用户对于平台中的应用服务都有着一定的需求,
就要承担应有的费用。在云计算平台的
既然有需求
IaaS(基础设施即服务)、PaaS(平台即
[11]
服务)以及SaaS(软件即服务),三项服务均包含在计费的范围内。但是根据不
同用户的不同需求,计费系统也将采用多种形式的计费方式。
计费系统通过通过采集使用虚拟机总时长、网络带宽等方面的数据来实现对
云计算平台用户的计费。和资源监控系统一样,为了减少对用户的干扰,计费系
统对数据的采集、存储也不能一直的进行,要将数据的处理放在系统运行负载较
低的时候进行,这样可以提高平台的使用效率。计费系统的体系结构如图
示。
4.3所
图4.3 计费系统体系结构图
计费系统的体系结构图向我们展示了计费系统各模块间的关系。
29
将在下文中
南京邮电大学2015届本科生毕业设计(论文)
具体介绍各模块的作用及他们之间的联系:
数据接收模块:该模块通过资源监控系统提供的API,向资源监控系统采
Json 格集所需要的计费数据,并对数据进行分析处理,所有的数据都以统一的
API 向资源监控系统发送一条指令,以确认数据的传送。
数据存储模块:将接收到的数据存入分布式文件系统中。
计费策略管理模块:该模块是针对计费方式进行监管的模块,
对计费系统中现有的计费方式进行查询,
已有的计费方式等。
计费信息生成模块:从计费策略管理模块中获取当前用户所使用的计费方
式,使用获取到的计费方式对分布式文件系统中所存放的数据信息进行处理,
到该用户的费用情况,之后把费用信息储存到计费数据库中。
计费展示模块:访问计费数据库,读取其存储的平台用户的费用信息,
取的信息通过Dashboard 展示出来。
将获
得
其主要功能有
添加新的计费方式,还可以修改或删除
式传送。将处理过的数据发送到数据存储模块,然后通过资源监控系统提供的
4.3.2 计费系统的计费机制
计费系统将接收数据交给计费服务器,数据服务器将接收的数据进行分析处
理,得到计费系统所需要统计的数据,之后将计费数据存储到数据库中。
创建收费服务时,首先确认平台的用户的账户余额是否充足,
建服务并通知计费服务器,用户取消服务时同样通知计费服务器
[12]
当系统
如果余额足够则创
。
4.3.3 计费系统的扣费方法
计费服务器会周期性的登陆用户的帐号,根据用户帐号中的账单信息进行扣
费处理。
4.3.4 计费系统的安全检查
计费服务通过nova api 或者nova数据库对收费条目进行检查,以防止创建
不成功但是仍然扣费的情况出现。如果创建收费服务失败,那么计费服务器会通
知系统管理员并停止扣费。
4.3.5 计费系统与资源监控系统的交互
计费系统与前文所提到的资源监控系统中所采集的数据相辅相成,
30
所以,通
南京邮电大学2015届本科生毕业设计(论文)
过资源监控系统所提供的接口,将资源监控系统与计费系统进行交互,
系统中数据采集的环节,从而降低计费系统对于云计算平台资源的占用。
免去计费
4.3.6 计费系统的数据处理
计费系统最为核心的功能是如何从海量的原始计费数据中统计出每个用户
使用虚拟机的总时长。下面将要介绍的就是使用分布式数据库存储原始计费数据
以及使用MapReduce处理存储的数据,统计用户使用虚拟机的总时长。
由于无论是使用OpenStack搭建的私有云环境还是计费系统,网络带宽都是
比较稀缺的资源,原始计费数据的传输、存储与计算不能一直进行下去。需要的
是原始计费数据的处理在系统运行负载比较低的时候进行,
都重复执行。计费数据处理流程如图4.4所示。
并且该任务需要每天
图4.4 数据处理流程
首先,要从收集到的数据中获取虚拟机的id 以及TimeStamp,虚拟机的id
使用一个作为每台虚拟机的身份认证,便于区分云计算平台中的每一台虚拟机,
间。将虚拟机的
是根据虚拟机的
id 去标识一台固定的虚拟机,而TimeStamp 作为标签来标记每个计费数据的时
id和TimeStamp 作为Map函数的主键和值,Map函数作用就
id 将虚拟机的TimeStamp 划分处理,处理之后使虚拟机实例
Reduce 函数
id来对TimeStamp 列表进行
id 与TimeStamp 列表一一对应。然后将上文得到的处理结果作为
的输入,Reduce函数的主要功能是根绝虚拟机的
处理,将列表前后两项的值做差并做出判断,
31
当两项之差小于某个阙值时,对该
南京邮电大学2015届本科生毕业设计(论文)
值进行累加;当两项之差大于某个阈值时,就是证明该虚拟机处于停止工作的状
态,计费系统应该停止对其计费,该值不需进行累加处理。最后,将虚拟机id 和
上述结果存储到计费数据库中。计费系统数据处理结构如图4.5所示。
图4.5 计费系统数据处理结构图
4.3.7 计费系统功能的设计
根据上文提到的计费系统的需求分析,设计一个完善的计费机制,使用户可
以更好的体验云计算平台的应用服务,同时也要保证计费系统管理员对平台的管
理需求。为此,设计的计费系统分为原始计费数据存储、计费信息生成、用户管
理、账单查询、计费策略管理以及虚拟机管理六大模块
1. 原始计费数据存储模块
该模块的主要功能是用于接收资源监控系统所提供的计费数据,
行分析处理,处理之后将数据存储到分布式数据库中,
以统一的Json格式传输。该模块还可以划分为
(1)数据接收模块
该模块负责接收资源监控系统传输的
数据解析模块。
(2)数据解析模块
该模块负责将接收到的数据信息进行解析,将解析后所得到的结果发送给数
据存储模块。
(3)数据存储模块
该模块负责将接收到的数据信息存入分布式文件系统中。
2. 计费信息生成模块
该模块从分布式文件系统中获取数据存储模块所储存的数据信息,
32
[12]
。
并对数据进
此次过程中所有的数据都
3个子模块:
Json 格式的数据信息,并将其发送给
统计出用
南京邮电大学2015届本科生毕业设计(论文)
户对平台资源的使用情况,并从计费策略管理模块中获取当前用户所使用的计费
方式,基于此计费方式对用户的计费数据进行处理,
费用信息写入计费数据库中。该模块通过
(1)数据过滤模块
通过计费数据库VMInstance表中的虚拟机的id来过滤原始的数据信息。
使用MapReduce 来处理各项
(2)数据信息统计模块
接收数据过滤模块传送过来的原始数据信息,
数据信息,以得到每个虚拟机的使用情况。
(3)计费记录添加模块
读取虚拟机使用信息,将读取的信息写入计费数据库的
3. 用户管理模块
该模块向普通用户提供了注册、登陆、资料修改等功能,系统管理员则拥有
管理普通用户的功能,其中包括添加、修改以及删除等功能。该模块还可以划分
为四个子模块:
(1)用户注册模块
浏览网站的游客通过用户注册模块,成为计费系统的普通用户。
(2)用户登录模块
普通用户通过在用户注册模块申请的帐号和密码,
户使用情况进行管理,并对计费系统进行维护。
(3)个人资料管理模块
普通用户完成登录进入计费系统之后,可以通过该模块对自己的个人资料进
行修改,如系统密码、E-mail 等。
(4)用户管理模块
针对系统管理员单独设置的功能,让系统管理远可以通过此模块来添加新用
户,修改计费系统当前所有用户的个人资料,以及注销用户。
4. 账单查询模块
该模块支持普通用户对自己付费记录进行查询。
5. 计费策略模块
该模块主要针对计费策略的增、删、改、查等功能进行设计,并通过一下四
个子模块来实现其功能:
(1)计费策略添加模块
通过该模块向计费系统中添加新的计费策略。
(2)计费策略查询模块
用户可以通过该模块对计费系统中现有的各种计费策略进行查询。
33
得到该用户的费用情况,把
3个子模块来实现其功:
Instance表中。
来登录计费系统,体验云
对用计算平台提供的各项付费服务,系统管理员则可以通过后台登录计费系统,
南京邮电大学2015届本科生毕业设计(论文)
(3)计费策略修改模块
对当前计费系统中各种计费策略进行修改。
(4)计费策略删除模块
对计费系统中现有的计费策略进行删除,但是需要留意所要删除的计费策略
是否有用户正在使用,如果计费数据库的
用则不能删除。
以上四个子模块当中,普通用户只能访问计费策略查询模块,
6. 虚拟机管理模块
支持虚拟机的创建、启动、停止、删除等功能。该模块可划分成四个子模块:
(1)虚拟机创建模块
当用户登录计费系统并请求服务之后,虚拟机初次启用的时候会调用此模
块,为用户创建虚拟机,同时分配新的
(2)虚拟机联动模块
通过访问计费数据库中的
的状态信息。
(3)虚拟机关闭模块
与虚拟机启动模块相同,都是通过访问计费数据库中的
计费数据库Instance表中的状态信息。
(4)虚拟机删除模块
通过访问计费数据库中的Instance表来查看目前所使用的虚拟机的状态,如
Instance表中有关该虚拟
果虚拟机为开机状态,则需要关闭虚拟机,之后再进行删除;如果虚拟机为关闭
状态,则可直接删除该虚拟机,同时要删除计费数据库
机的记录。
Instance表来查看当
前虚拟机的使用状态,如果虚拟机目前为开机的状态,则关闭虚拟机,同时修改
Instance表来查看目前所使用的虚拟机的状态,如
Instance表中果虚拟机目前为关闭的状态,则启动虚拟机,同时修改计费数据库
ip地址给新创建的虚拟机。
其他模块均为
计费系统的后台操作,只有系统管理员可以对其他模块的功能进行使用。
BillMethod 表中存在对计费策略的引
4.4 本章小结
本章是最艰难的也是最有挑战性的,从基础环境的配置开始,完成之后开始
安装各种软件包,每安装一个软件包后都要进行详细的配置文件的修改,
对这个艰难的过程给出了详细的安装步骤和详细的指导说明。
计费进行了初步的研究。
这章节
通过解决安装中的
各种问题,将会对OpenStack云平台的实现有更深入的理解。此外,还对平台的
34
南京邮电大学2015届本科生毕业设计(论文)
第五章
5.1 对各项服务的测试
OpenStack云平台的测试
对各项服务测试之前,要确保上传了镜像,本次实验采用了较小的
镜像,由于其体积更小,更适合用来测试。镜像的版本是
0.3.0,分别对应的实例名称是“111和“”222。”
CirrOS
CirrOS 0.3.1和CirrOS
5.1.1 创建实例
用户可以按需创建实例,OpenStack可以容有多个镜像,如主流的
足个性化的需求。效果如图5.1所示。
Ubuntu、
CentOS等,并且提供多个版本给用户选择,为用户节省系统安装部署时间,满
图5.1 创建了实例“111”和“222”
5.1.2 查看实例概况
创建完实例之后,实例正常运行,显示状态为“Active。可以通过管理员面”
5.2所示。板,查看到所有云主机的运行状态等其它参数。实例概况如图
5.1.3 动态调整实例大小
35
南京邮电大学2015届本科生毕业设计(论文)
图5.2 两个实例的概况图
实例可以根据用户自己的需求进行配置更改,
机的配置,比如CPU、内存等,这充分体现了
5.3所示。
在此,用户可以按需调整虚拟
IaaS满足弹性需求的特色。如图
图5.3 调整实例
5.2 对实例可用性的测试
用户成功创建实例后,可以对虚拟机进行操作。可以登录
其像真的主机一样操作。如图5.4所示。
36
CirrOS系统,可以对
南京邮电大学2015届本科生毕业设计(论文)
图5.4 CirrOS可用性
5.3 本章小结
这章节主要是完成对第四章的所有安装的进行验证是否安装正确,
需的服务是否都已启动,之后是启动一个
Web界面,这样既方便有直观更可以加强对
每一个所
instance的过程,并对实例的成功启动
OpenStack云平台的理解。
之后进行测试。通过测试可以检测是否安装成功,并且从命令行的操作转换的
37
南京邮电大学2015届本科生毕业设计(论文)
结束语
作为一种新兴的资源使用和交付模式,云计算已为学术界和产业界所认知,
形成了比较成熟的服务模式,使得计算资源成为向大众提供服务的社会基础设
施。开源云计算平台被认为是IT 的趋势。OpenStack 作为一种开源的云操作系
统,自推出以来受到业界的普遍关注。
本文基于OpenStack云计算平台安装部署了云平台。并将实验中出现的问题
加以汇总,可作为安装部署OpenStack 云计算平台的参考。
针对本文所完成的主要工作,总结如下:
①从国内的不同角度出发,详细介绍了云计算目前的发展情况。通过与国外
云计算发展情况的对比,可以看到我国云计算发展上存在诸多不足。
算的发展进行了展望。
②介绍了Iaas相关内容,从Iaas的概述、服务特征优势以及
构通过这些介绍对云平台的搭建有很好的帮助。
③介绍了OpenStack 的发展历史、项目组成、概念架构和逻辑架构,并依
托现有条件,基于开源云计算平台OpenStack 安装部署了一个云平台,并将安
OpenStack的计费功能。装部署中的问题作了总结。另外,探讨了基于
Iaas的整体架
对我国云计
针对构建出的云计算平台,指出存在的不足,以及下一步工作的展望:
①目前OpenStack 存在着诸如因版本更新过快而导致的问题,使得新老版
本之间不能很好地兼容。
②由于OpenStack 的开源特性,有时会出现比较难以维护自己的代码,以
及难以使用自己代码更新版本的问题,并且由于国内研究和开发
人员还属少数,在一定程度上增加了安装部署
究阶段。在以后的工作中,应继续探索研究。
OpenStack 的
OpenStack 的难度。
③出于研究时间的限制,对基于OpenStack云计算平台的计费方案还处于研
38
南京邮电大学2015届本科生毕业设计(论文)
致谢
四年的学习生活,图书馆是我最熟悉的地方,这里的每个桌椅都有我留下的
印记,每个角落都有我走过的脚步,这是成长的地方,这里的每个人伴同我一起
成长一起学习,大家的相互鼓励和支持,也给了我精神上前进的力量,让我学会
坚强。尤其在毕业设计和论文写作过程中,大家也给了我不少帮助。
还要感谢班上的所有同学和我宿舍的同窗好友,
此之间也给了我莫大的支持。
同时感谢将参加答辩和评审的各位老师,谢谢您们能在百忙之中审阅我的论
文。
最后感谢本文所引用参考文献的作者,对你们的成果和学术表示诚挚的谢
意。
大家的相互帮助和鼓励,彼
39
南京邮电大学2015届本科生毕业设计(论文)
参考文献
[1] OpenStack实战指南
[2] OpenStack部署实践
黄凯, 毛伟杰, 顾骏杰著.机械工业出版社,2014.
张子凡编著.人民邮电出版社,2014.
[D].华南理工大学,2012.
[D].成都理工大学,2012.
[J].电信科学,2012,
[3] 云计算与OpenStack.虚拟机Nova篇陈伯龙,程志鹏,张杰编著.电子工业出版社,2013.
[4] 王霄飞. 基于OpenStack构建私有云计算平台
[5] 高贵升. 基于OpenStack的计算云的研究与实现
09:1-8.
[7] 贾志杰. 基于OpenStack开放云管理平台研究[D].吉林大学,2014.
[D].电子科技大学,2013.
[J]. 绥化学院学
[8] 刘飞宇. OpenStack云平台下的虚拟机监控与控制的研究与实现
[9] 马文杰.基于OpenStack的高校实验云平台的研究与应用
报,2014,12:146-150.
[10] 王鹏,黄华峰,曹珂著
社,2010.
[11] 胡军.云计算环境下计费系统的设计与实现
[13] 陈全,邓倩妮.云计算及其关键技术
[D].北京邮电大学,2013.
[D].中国科学院大学,2014. [12] 梁宇.OpenStack资源监控和计费系统的设计和实现
. 云计算:中国未来的IT战略[M].北京:人民邮电出版
[6] 李小宁,李磊,金莲文,黎德生.基于OpenStack建立私有云计算平台
[J].计算机应用,2009.
[14] Katsaros, D.;Pallis, G.;Sivasubramanian, S.;Vakali, A. Cloud computing [Guest
Editorial][J]. Network, IEEE,2011,Vol.25(No.4): 4-5.
[15] 杨正洪,郑齐心,吴寒著企业云计算架构与实施指南
社,2010.
[16] Ramgovind S, Eloff M M, Smith E. The management of security in cloud computing.
Proceedings of Information Security for South Africa (ISSA), Sandton, South Africa,
2010:1-7.
[17] Ken ing OpenStack[M].United States of America:O'Reilly.2011:61-68.
[18] Miller computing:Web-based applications that change the way you work and
collaborate online[M].Que publishing,2008.
[M] 北京:清华大学出版
40
发布者:admin,转转请注明出处:http://www.yc00.com/web/1714794025a2517011.html
评论列表(0条)