单位代码: 10293 密 级: 公开
专 业 学 位 硕 士 论 文
论文题目:基于 OpenStack 的开源云计算平台的研究与实现
1212043119
孙磊
号
名
师
学
姓
导
类
沈苏彬 研究员
专业学位类别
工程硕士
申请 全 日 制
型
专业(领域)
申请 软件工程
论文提交日期
二零一五年四月
˝
•
‰
˚
Research and Implementation of Open Source
Cloud Computing Platform based on OpenStack
Thesis Submitted to Nanjing University of Posts and
Telecommunications for the Degree of
Master of Software Engineering
By
SUN Lei
Supervisor: Prof. SHEN Su-bin
April 2015
˝
•
‰
˚
南京邮电大学学位论文原创性声明
本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。
尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过
的研究成果,也不包含为获得南京邮电大学或其它教育机构的学位或证书而使用过的材料。
与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
本人学位论文及涉及相关资料若有不实,愿意承担一切相关的法律责任。
研究生签名:_____________ 日期:____________
南京邮电大学学位论文使用授权声明
本人授权南京邮电大学可以保留并向国家有关部门或机构送交论文的复印件和电子文
档;允许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据库进行检索;
可以采用影印、缩印或扫描等复制手段保存、汇编本学位论文。本文电子文档的内容和纸质
论文的内容相一致。论文的公布(包括刊登)授权南京邮电大学研究生院办理。
涉密学位论文在解密后适用本授权书。
研究生签名:____________ 导师签名:____________ 日期:_____________
˝
•
‰
˚
摘要
近年来,以 OpenStack 为代表的开源云计算平台取得了快速的发展。但当前 OpenStack
在管理和应用方面依然存在着一些不足,主要体现在:对云平台中的各种资源缺乏相应的监
测功能、集 群扩展 依 赖于人工的 部署配 置 ,易出错且 效率低 、 OpenStack 只提供构 建
IaaS(Infrastructure as a Service, 基础设施即服务)的能力,而缺乏 PaaS(Platform as a Service,
平台即服务)的实现。
本文研究了云计算平台构建、管理、开发相关关键技术。为了解决 OpenStack 平台在管
理方面的不足,设计了一个基于 OpenStack 的云管理平台,首先调用 OpenStack 提供的
API(Application Programming Interface, 应用程序编程接口)完成平台基本管理操作,然后采用
基于脚本采集的方法编写资源监测功能模块,最后基于自动部署的方法编写集群扩展模块。
为了解决 OpenStack 在应用方面的不足,利用开源 PaaS 平台 OpenShift,结合云管理平台和
其他相关技术,设计了一个基于 OpenStack 的应用开发平台,通过构建虚拟机集群的方式实
现 PaaS 的扩展。
本文对上述成果进行了功能性测试。测试结果表明,设计 和实现的云管理平台为
OpenStack 平台提供了有效的管理框架,资源监测模块可以准确获得资源的实时状态信息,集
群扩展模块能够完成对 OpenStack 集群快速部署和扩展,实现了对 OpenStack 的管理优化。
设计和实现的应用开发平台能够提供基于 Web 的开发环境服务,实现了基于 OpenStack 构建
PaaS 的目标。
关键词:云计算、开源软件、管理平台、开发平台
I
˝
•
‰
˚
Abstract
In recent years, represented by OpenStack, open source cloud platforms have achieved rapid
development. But there still exists some shortcomings in the management and application level of
OpenStack, mainly reflects in: for all kinds of resources in the cloud platform, it lacks the
corresponding performance monitoring function, The expansion of OpenStack clusters depends on
artificial deployment and configuration, error-prone and low efficiency,the OpenStack platform can
only provide the ability of IaaS (Infrastructure as a Service),lacks the implementation of PaaS
(Platform as a Service).
This thesis has made a research on the technologies of cloud computing platform construction,
management and development. In order to solve the defects in the management of OpenStack, this
thesis has designed a cloud management platform based on OpenStack. Firstly, it calls the APIs
provided by OpenStack to complete basic management operations, then develops the resource
monitoring function module by the way of script collection, finally develops the cluster extension
module based on automatic deployment . In order to solve the defects in the application of
OpenStack, using the open source PaaS platform OpenShift, combined with the cloud management
platform and other related technologies, this thesis designed a application development platform
based on OpenStack, through the way of constructing virtual machine clusters to realize the
expansion of PaaS for OpenStack.
The functions of the above works are tested in this thesis. Test results show that the designed
and implemented cloud management platform provides the platform with a mature management
framework, the resource monitoring module can accurately obtain the real-time status information
of resources, the cluster extension module can accomplish rapid deployment and expansion of
OpenStack clusters, achieving the goal of the optimization of management in OpenStack. The
designed and implemented application development platform can provide users with different
development environments via Web, achieving the goal of forming PaaS on OpenStack.
Key words: Cloud Computing, Open Source Software, Management Platform, Development
Platform
II
˝
•
‰
˚
目录
第一章 绪论 ............................................................................................................................................................. 1
1.1 研究背景和意义 ........................................................................................................................................ 1
1.2 研究现状 .................................................................................................................................................... 2
1.2.1 基于开源云平台的云计算管理技术研究现状 ............................................................................... 2
1.2.2 基于开源云平台的应用实现研究现状 ........................................................................................... 3
1.3 论文内容与安排 ........................................................................................................................................ 3
第二章 相关技术分析 ............................................................................................................................................. 1
2.1 云计算 ........................................................................................................................................................ 1
2.1.1 云计算功能特征 .............................................................................................................................. 1
2.1.2 云计算服务模型 .............................................................................................................................. 2
2.1.3 云计算关键技术 .............................................................................................................................. 2
2.2 云计算管理技术 ........................................................................................................................................ 3
2.2.1 云计算管理技术 ............................................................................................................................. 3
2.2.2 云计算管理关键技术 ..................................................................................................................... 3
2.3 开源云计算平台 OpenStack ...................................................................................................................... 4
2.3.1 OpenStack 平台架构 ........................................................................................................................ 4
2.3.2 OpenStack 平台重要支撑技术 ........................................................................................................ 6
2.4 本章小结 ..................................................................................................................................................... 7
第三章 基于 OpenStack 的云管理平台的设计和实现 .......................................................................................... 8
3.1 OpenStack 平台管理技术分析 ................................................................................................................... 8
3.1.1 基于 OpenStack 的资源监测技术分析 ........................................................................................... 8
3.1.2 基于 OpenStack 的集群扩展技术分析 ........................................................................................... 9
3.2 云管理平台设计 ......................................................................................................................................... 9
3.2.1 总体设计 .......................................................................................................................................... 9
3.2.2 云管理平台与 OpenStack 组件交互过程 ......................................................................................11
3.3 资源监测模块的设计和实现 ................................................................................................................... 12
3.3.1 现有云计算资源监测技术分析..................................................................................................... 12
3.3.2 资源监测功能需求 ........................................................................................................................ 13
3.3.3 资源监测总体设计 ........................................................................................................................ 13
3.3.4 资源监测代码实现 ........................................................................................................................ 14
3.4 集群扩展模块的设计和实现 ................................................................................................................... 17
3.4.1 OpenStack 集群部署分析 .............................................................................................................. 17
3.4.2 自动部署脚本设计 ........................................................................................................................ 19
3.4.4 集群扩展算法设计 ........................................................................................................................ 20
3.5 本章小结 ................................................................................................................................................... 22
第四章 基于 OpenStack 的应用开发平台的设计和实现 .................................................................................... 23
4.1 基于 OpenStack 构建 PaaS 的分析 .......................................................................................................... 23
4.1.1 基于 OpenStack 构建 PaaS 的意义 ............................................................................................... 23
4.1.2 基于 OpenStack 构建 PaaS 平台的可行性和先进性分析 ........................................................... 24
4.2 OpenShift 开源云平台分析 ...................................................................................................................... 25
4.2.1 OpenShift 平台概述 ....................................................................................................................... 25
4.2.2 OpenShift 平台功能架构 ............................................................................................................... 25
4.3 应用开发平台的总体设计 ....................................................................................................................... 26
4.3.1 应用开发平台总体架构 ................................................................................................................ 27
III
˝
•
‰
˚
4.3.2 应用开发平台 PaaS 功能架构分析.............................................................................................. 28
4.4 应用开发平台 PaaS 的构建与实现 ......................................................................................................... 30
4.4.1 PaaS 构建原理 ............................................................................................................................... 30
4.4.2 OpenShift 虚拟机镜像创建 ........................................................................................................... 31
4.4.3 PaaS 平台的构建与实现 ............................................................................................................... 32
4.5 本章小结 ................................................................................................................................................... 34
第五章 系统测试与分析 ....................................................................................................................................... 35
5.1 测试环境与测试方案 ............................................................................................................................... 35
5.1.1 测试环境 ........................................................................................................................................ 35
5.1.2 测试方案 ........................................................................................................................................ 36
5.2 测试与结果分析 ....................................................................................................................................... 37
5.2.1 集群扩展功能测试与分析 ............................................................................................................ 37
5.2.2 资源监测功能测试与分析 ............................................................................................................ 38
5.2.3 云管理平台整体功能测试与分析................................................................................................. 39
5.2.4 应用开发平台测试与分析 ............................................................................................................ 40
5.3 本章小结 ................................................................................................................................................... 42
第六章 总结与展望 ............................................................................................................................................... 43
6.1 全文总结 .................................................................................................................................................. 43
6.2 工作展望 .................................................................................................................................................. 43
参考文献 ................................................................................................................................................................. 45
附录 1 攻读硕士学位期间撰写的论文 ................................................................................................................ 48
附录 2 攻读硕士学位期间参加的科研项目 ........................................................................................................ 49
致谢 ......................................................................................................................................................................... 50
IV
˝
•
‰
˚
南京邮电大学专业学位硕士研究生学位论文 第一章 绪论
第一章 绪论
本章首先讨论课题的研究背景和意义,分析当前云计算管理技术和应用实践的研究现状,
最后给出论文的主要内容和章节安排。
1.1 研究背景和意义
云计算已经成为当今信息技术发展的一个重要热点和趋势,并逐步为行业领域和商业模
式带来重大的变革[1]。根据市场调研机构 Gartner 的报告,在 2013 年底云计算市场规模达到
了 140 亿美元。这一数字在 2017 年将达到 1310 亿美元。[2]2003 年,由美国七所顶尖院校共
同领导的“网格虚拟化和云计算 VGrADS”项目正式开启了云计算的研究工作[3] 。亚马逊的
AWS(Amazon Web Service,亚马逊网络服务)[4]云是最具代表性的 IaaS(Infrastructure as a
Service,基础设施即服务)云平台。在开源领域有 AbiCloud[5]、Eucalyputs[6]、CloudStack[7]等
一些解决方案。2009 年 4 月,谷歌公司推出了谷歌应用开发引擎 GAE(Google App Engine,
谷歌应用引擎)[8],成为云计算 PaaS(Platform as a Service,平台即服务)平台即服务产品的开端
和典型范例。开源 PaaS 平台的代表有 OpenShift[9]和 CloudFoundary[10]。
根据开源云监控项目 Zenoss 发布的一份研究报告显示,截止至 2014 年,开源云计算的
使用率已经从 2012 年的 17%上升至 30%,应用开源云的趋势正在加快[11]。在众多的开源云
平台中,OpenStack 发展最为迅速,2014 年 10 月,通过 133 家公司超过 1400 多位代码贡献
者的共同努力,OpenStack 正式发布了第十个版本 Juno 版本。据报告显示,2014 年,在开源
云平台中,OpenStack 的市场占有率高达 69%[12]。
IaaS 是云计算架构的核心,它提供给用户对包括 CPU(Central Processing Unit,中央处理
器)、内存、存储、网络等计算资源的使用,有效减轻了运维的成本和复杂性[1]。 云计算架构
具有分布式、跨网络、资源种类多的特点,随之而来为资源管理方面带来了前所未有的挑战,
相比于传统服务器集群架构,除了对 Web 服务器、应用服务器等物理资源的管理,还需要对
CPU、内存、存储、网络、虚拟机等虚拟资源进行统一管理[13] 。资源监测和集群扩展是云管
理平台的重要组成部分,作为一个不断发展成熟的开源项目,OpenStack 在这两部分目前仍存
在一定的提高和优化的空间。基于 OpenStack 提供的丰富的 API(Application Programming
Interface, 应用程序编程接口)接口,对 OpenStack 平台进行二次开发,实现相关管理技术的功
能优化,具有一定的研究意义和实用价值。
1
˝
•
‰
˚