云计算导论大作业 - 图文

更新时间:2023-10-20 21:32:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于OpenStack的云计算数据中心管理系统的设计与开发

南 阳 理 工 学 院 本科生毕业设计(论文)

学院(系): 软件学院 专 业: 云计算3班 学 生: 王帅

指导教师: 陈可 完成日期: 2017 年 04 月

南阳理工学院本科生课程设计报告

基于OpenStack的云计算数据中心管理系统的设计与开发

基于OpenStack的云计算数据中心管理系统的设计与开发

Design and development of cloud computing data center

management system based on OpenStack

总 计:毕业设计(论文) 57页 表 格: 2个 插 图: 67幅

南 阳 理 工 学 院 本 科 毕 业 设 计(论文)

基于OpenStack的云计算数据中心管理系统的设计与开发

基于OpenStack的云计算数据中心管理系统的设计与开发

Design and development of cloud computing data center

management system based on OpenStack

学 院(系): 软件学院 专 业: 学 生 姓 名: 学 号:

云计算 王帅 1515925717

指导教师(职称): 陈可 讲师 评 阅 教 师: 完 成 日 期:

南阳理工学院

Nanyang Institute of Technology

单平平

2017年04月01日

摘要

云计算是网格计算、分布式计算、并行计算、效用计算、联机存储技术、虚拟化、负载均衡等一系列传统计算机技术和网络技术发展融合的产物。它旨在通过网络将多个成本低廉的计算实体整合成一个大型计算资源池,并借助SaaS、PaaS、IaaS等服务模式,将强大的计算能力分发到终端用户手中。云计算的核心理念就是通过不断提高“云”端处理能力,减轻用户负担,将一系列的IT能力以

基于OpenStack的云计算数据中心管理系统的设计与开发

服务形式提供给用户,简化用户终端的处理负担,最终使用户成为一个单纯的输入/输出设备,享受“云”提供的强大计算处理及服务能力。

OpenStack是一个开源的云计算项目和工具集,并且提供了关于基础设施即服务(IaaS)的解决方案。OpenStack具有建设这样资源池的能力,通过OpenStack的各种组件多种模式的排列组合,可以搭建成各种规模的“云”,这些云可以是私有云、公有云、混合云。本文首先介绍了云计算的背景及其相关技术,并深入了解OpenStack的架构和其各种服务,掌握各种服务实现原理,以及探讨OpenStack如何实现对云计算数据中心的管理,最后动手搭建OpenStack云平台和尝试对功能的扩展。由于OpenStack云计算平台在国内的研究起步较晚,在安装部署过程中会出现若干问题。本文就出现的问题加以汇总并给出解决方法,可以在安装部署OpenStack时提供参考。

Abstract

Cloud computing is the product of the integration of traditional 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 pool 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

基于OpenStack的云计算数据中心管理系统的设计与开发

the \end treatment ability, reduce the burden of the users, a series of IT 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 \powerful computing and service ability.

OpenStack is an open source cloud computing project and toolset, and provides 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 \these clouds can be a private cloud, hybrid 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 OpenStack 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 summarizes the problems and gives solutions, which can provide reference when installing OpenStack.

目 录

第一章绪论................................................................... 7

1.1 openstack背景与意义 .................................................................................................... 7 1.2什么是openstack? ........................................................................................................... 8 1.3国内外发展现状 ............................................................................................................... 13 1.4论文组织结构 ................................................................................................................... 15 第二章 IaaS及关键技术相关介绍 ........................................................................................ 17

2.1 Iaas概述 ........................................................................................................................... 17

基于OpenStack的云计算数据中心管理系统的设计与开发

基于OpenStack的云计算数据中心管理系统的设计与开发

在OpenStack中最重要三个部分:控制、计算、网络。从这个版本演进的表

格中可以看到,这里面项目的变化情况一直在遵循着某些规律,可以归纳出一些特点。

松耦合的设计思路贯穿始终。从刚开始的Nova+Swift,慢慢对Nova进行松耦合处理。D版本中Keystore项目的建立,让Swift和Nova有了联系;F版本中Cinder和Quantum成为core项目,希望逐步代替Nova volume和Nova network;I版本增加的Trove数据库服务,Bare Metal(Ironic)。这种松耦合模式让OpenStack更加灵活,并且可以让多厂商进行开发,也保证了OpenStack作为开源项目能够得到支持从而很快发展。

网络功能优化越来越成为重点。网络功能的加入源自第二个版本,最初作为Nova项目的一个功能Nova network,仅支持所有用户共享一个底层网络,也就是所说的扁平化网络。然而Nova network网络功能不尽如人意。D版本Cisco推动Quantum项目,Quantum逐渐从摆设慢慢壮大到和Nova network抗衡直至逐渐成为OpenStack的标配。随着Quantum改名Neutron,Neutron+Linux bridge、Neutron+OVS、OVS硬件化,让网络能力逐渐丰富和提升。SDN和NFV技术的强力接入,也为OpenStack的网络性能增加了强劲动力。下面把OpenStack中网络功能的演进进行了一番归纳。

基于OpenStack的云计算数据中心管理系统的设计与开发

容器技术的强势加入。从OpenStack诞生之日起,Kvm由于其原生于Linux内核的高性能将老牌Xen挡在门外,不过Docker技术的盛行,Kvm和Docker又面临着新的战斗,并且Nova Docker、Heat Docker、Magnum技术让OpenStack和Docker更好结合进行试验,最新的Kuryr项目让Docker网络功能更加优秀。

1.3国内外发展现状

最近,新浪云计算宣布正式加入全球开源云计算项目OpenStack,将选择OpenStack作为IaaS平台解决方案。作为OpenStack中国的积极推动者,这在很大程度上将推动OpenStack云开源代码项目的发展。更值得高兴的是,中国企业UnitedStack现已推出了基于OpenStack的云计算服务,这充分说明了OpenStack的存在价值。

通过trends.google.com,可以了解到目前人们对一些开源云计算项目的关注趋势。Rackspace以OpenStack为基础的私有云业务每年7亿美元,增长率超过20%。因此,在开源云计算项目领域,OpenStack早已崭露头角,如图 1.1所示,它成为了当今最热门的开源项目之一。

Eucalyptus 是最早试图克隆AWS的开源IaaS云平台,整体架构如图1的左半部分所示。Eucalyptus由云控制器(CLC)、Walrus、集群控制器 (CC)、

基于OpenStack的云计算数据中心管理系统的设计与开发

存储控制器(SC)和节点控制器(NC)组成,它们相互协作共同提供所需的云服务。组件间使用支持WS-Security的SOAP消息实现安 全的通信。Eucalyptus对外提供兼容AWS的SOAP和Query接口,不提供其他API。

OpenNebula没有采用SOA的设计,没有将计算、存储和网络设计为独立组件,解耦做得还不够。值得注意的是,OpenNebula用 Libvirt所提供的接口远程调用计算节点上的虚拟化控制命令。这种Agentless的设计在系统安装部署阶段会减少很多软件安装配置工作,是一个设计亮点。

所有的开源IaaS云平台在分层上做得都比较好;在SOA/组件化/解耦这点上来看,OpenStack和Eucalyptus有优势;在框架和插件设计上,除Eucalyptus较差外,其他平台均有很好的设计——OpenStack的开发平台做得最好,CloudStack次 之。综合来看,目前OpenStack的设计是最好的,Eucalyptus和CloudStack次之。

相比开源项目的“前辈”,OpenStack是一个更高级且现代化的开源项目,因为它是高度协作的产物。

OpenStack的支持者都是世界顶级的供应商,可以看出OpenStack倍受青睐,可以说它是开源界的明星产品。目前,例如VMware、RedHat、Cisco、EMC等各供应商,都表示对其支持。

图1.1 OpenStack与其它开源云计算项目的趋势对比

基于OpenStack的云计算数据中心管理系统的设计与开发

相比之下,OpenStack项目从最开始就发展开放社区,其直接结果是,OpenStack里聚集了比CloudStack更多的主流供应商。在大多数情况下,这些厂商开发的组件第一时间提供给OpenStack,之后才为CloudStack提供接口[1]。

OpenStack也有不够完善的地方,如OpenStack相对于CloudStack来说更加复杂,对终端用户的支持不够;在安装部署上不如CloudStack便捷;在界面显示方面也不如CloudStack丰富。

Amazon 公司于2006年推出的云计算服务(AWS,Amazon Web Services)核心产品包括弹性计算云EC2(Elastic Computing Cloud)、简单存储服务S3(Simple Storage Service)、简单队列服务 SQS(Simple Queue Service)、内容推送服务(CloudFront)和简单数据库服务(SimpleDB)等,为企业提供计算和存储服务。Amazon 公司收费的服务项目包括存储空间、带宽、CPU资源以及月租费。其中存储空间、带宽按容量收费,CPU 根据运算时长收费,月租费则与电话月租费类似[9]。

Google 是最大的云计算技术使用者,提供全球知名的互联网搜索引擎服务。Google 搭建了一个称为Google App Engine的云平台,为第三方应用提供大型并行计算服务。更值得一提的是,Google 于2007秋季在全球宣布了云计划,通过与 IBM 开展合作,开始在美国多所大学,包括卡内基美隆大学、麻省理工学院等,推广云计算技术。这项计划希望通过为这些大学提供相关的软硬件设备及技术支援,能降低分布式计算技术在学术研究方面的成本,并且使得学生可以透过网络开展各项以大规模计算为基础的研究计划[13]。

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

微软于2008年10月推出了Windows Azure操作系统,Azure底层是微软全球基础服务系统,由分布于全球的第四代数据中心组成,通过互联网让 Windows 真正由PC延伸到云计算服务上。目前,微软的云计算系统已经包括超过 220个集装箱式数据中心和多达44万台的服务器。

1.4论文组织结构

本篇论文共分五章,主要内容概括如下:

基于OpenStack的云计算数据中心管理系统的设计与开发

第一章绪论。简单介绍云计算的研究背景、意义以及论文的组织结构。 第二章IaaS及关键技术相关介绍。这一章介绍了IaaS的概述、IaaS服务特征及优势。同时,介绍了IaaS服务器虚拟化,IaaS存储虚拟化、IaaS网络虚拟化这三大虚拟化的实现原理。

第三章OpenStack相关介绍。这一章首先介绍了OpenStack的概念架构和访问流程对OpenStack的整体运行原理有一个大致的了解,之后详细介绍了OpenStack的三大服务:认证服务(Keystone)、计算服务(Nova)、网络服务(Neutron)。

第四章OpenStack云管理平台的搭建。这部分是具有挑战性的,从基础环境的配置开始,完成之后开始安装各种软件包,每安装一个软件包后都要进行详细的配置文件的修改。另外,还对计费模块进行了初步研究。

最后是结束语。

基于OpenStack的云计算数据中心管理系统的设计与开发

第二章 IaaS及关键技术相关介绍

2.1 Iaas概述

基础设施即服务(IaaS)交付给用户的是基本的基础设施资源。用户无需购买,维护硬件设备和相关系统软件,就可以直接在该层上构建自己的平台和应用。基础设施向用户提供虚拟化的计算资源,存储资源,网络资源和安全防护等。这些资源能够根据用户的需求动态地分配。支撑该服务的技术体系主要包括虚拟化技术和相关的资源动态管理与调度技术。

2.2 IaaS的基本抽象模型

从图2-2中可以看出,首先对IT基础设施进行资源池化(Pooling),即通过整合树立IT基础设施,采取相应技术形成动态资源池。第二,对资源池的各种资源进行管理,诸如调度,监控,计量等,为服务打下基础。第三,交付给用户可用的服务包,

一般是用户通过网络访问统一的服务界面,按照服务目录 服务层 提供的相关服务包来选择并获取所需的服务。

IaaS服务的核心思想是以产品的形式向用户交付各种

管理层 能力,而这些能力直接来自各种资源池,因此IaaS的技 术构架对于资源化,产品设计与封装以及产品交付等方

动态资源层 面有一定要求。

图2-2 IaaS的抽象模型

2.3IaaS技术架构

在IaaS的技术架构中,通过采用资源池构建,资源调度,服务封装等手段,可以将IT资源迅速转变为可交付的IT服务,从而实现Iaas云的按需自服务,资源池化,快速扩展和服务可度量。一般来讲,基础设施即服务(IaaS)的总体技术架构主要分为资源层,虚拟化层,管理层和服务层四层架构。

为了有效地交付IaaS,服务提供商首先需要搭建和部署拥有海量资源的资源地。当获取用户的需求后,服务提供商从资源池中选取用户所需的处理器,内存,磁盘,网络等资源,并将这些资源组织成虚拟服务器提供给用户。在资源池层,服务提供商通过使用虚拟化技术,将各种物理资源抽象为能够被上层使用的虚拟化资源,以屏蔽底层硬件差异的影响,提高资源的利用率。在资源管理层,服务提供商利用资源管理软件根据用户的需求对基础资源层的各种资源进行有效的组织,以构成用户需求的服务器硬件平台。在使用IaaS时,用户看到的就是一台能够通过网络访问的服务器。在这台服务器上,用户可以根据自己的实际需要安装软件,而不必关心该服务器底层硬件的实现细节,也无需控制底层的硬件资源。但是,用户需要对操作系统,系统软件和应用软件进行部署和管理。

1)资源层

资源层位于架构的最底层,主要包含数据中心所有的物理设备,如硬件服务

资源层 服务层 网络 存储 其他 基于OpenStack的云计算数据中心管理系统的设计与开发

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

2)虚拟化层

虚拟化位于资源层之上,按照用户或者业务的需求,从池化资源中选择资源并打包,从而形成不同规模的计算资源,也就是常说的虚拟机。虚拟化层主要包含服务器虚拟化,存储器虚拟化和网络虚拟化等虚拟化技术,虚拟化技术是IaaS架构中的核心技术,是实现IaaS架构的基础。

服务器虚拟化能够将一台物理服务器虚拟成多台虚拟服务器,供多个用户同时使用,并开通过虚拟服务器进行隔离封装来保证其安全性,从而达到改善资源的利用率的目的。服务器虚拟化的实现依赖处理器虚拟化,内存虚拟化和I/O设备虚拟化等硬件资源虚拟化技术。

存储虚拟化将各个分散的存储系统进行整合和统一管理,并提供了方便用户调用资源的接口。存储虚拟化能够为后续的系统扩容提供便利,使资源规模动态扩大时无需考虑新增的物理存储资源之间可能存在的差异。

网络虚拟化可以满足在服务器虚拟化应用过程中产生的新的网络需求。服务器虚拟化使每台虚拟服务器都要拥有自己的虚拟网卡设备才能进行网络通信,运行在同一台物理服务器上的虚拟服务器的网络流量则统一经由物理网卡输入/输出。网络虚拟化能够为每台虚拟服务器提供专属的虚拟网络设备和虚拟网络通路。同时,还可以利用虚拟交换机等网络虚拟化技术提供更加灵活的虚拟组网。

虚拟化资源管理的目的是将系统中所有的虚拟硬件资源“池”化,实现海量资源的同一管理,动态扩放,以及对用户进行按需配合。同时,虚拟化资源管理技术还需要为虚拟化资源的可用性,安全性,可靠性提供保障。

3)管理层

管理层位于虚拟化层之上,主要对下面的资源层进行统一的运维和管理,包括收集资源的信息,了解每种资源的运行状态和性能情况,选择如何借助虚拟化技术选择,打包不同的资源,以及如何保证打包后的计算资源-------虚拟化的高可用性或者如何实现负载均衡等。

通过资源层,一方面可以了解虚拟化层和资源层的运行情况和计算资源的对外提供情况,另一方面,管理层可以保证虚拟化层和资源层的稳定,可靠,从而为最上层的服务层打下坚实的基础。

4)服务层

服务层位于整体架构的最上层,主要面向用户提供使用管理层,虚拟化层以及资源层的能力。

基于动态云方案构建的云计算包含了完善的自服务系统,为平台上的客户提供7*24小时资源支持,并可在线提交服务请求,与客户直接沟通。自服务平台首先提供服务的自由选择,用户可以根据实际业务的需求选择不同的服务套餐,同时自服务系统,用户可以远程管理和维护已购买的产品和服务。

另外,对所有基于资源层,虚拟化层,管理层,但又不限于这几层资源的运维和管理任务,将被包含在服务层中。这些任务在面对不同的企业,业务时往

基于OpenStack的云计算数据中心管理系统的设计与开发

往有很大的差别,其中包含比较的自定义,个性化因素。例如,用户账号管理,虚拟机权限设定等各类服务。

以上4层的结构是IaaS架构中的基础部分,只有将以上内容规划好的才能为服务层提供良好的支撑。

2.4 IaaS关键技术介绍 2.4.1 虚拟化技术

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

虚拟化就是通过脱耦合把应用软件和在其上的虚拟的操作系统与底层的物理设备分离开来。物理机系统的虚拟化究其根本就是通过某种手段把底层的物理设备和其上的软件运行环境分割的技术。然而虚拟化技术的出现,远远不止于虚拟出虚拟的操作系统,现在已经看到了,内存,网络,CPU,文件,存储等的虚拟化。从一种更高的抽象、一个更广泛的环境中来了解虚拟化技术,它实际上已经成为了一个非常大的概念,可以为用户企业带来很大的便利。

虚拟化技术主要实现了对底层物理资源的抽象,使其成为一个个可以被灵活生成、调度、管理的基础资源单位,如图2.2。而要将这些资源进行有效的整合,从而生成一个可以统一管理、灵活分配跳读、动态迁移、计费度量的基础服务设施资源池,并向用户提供自动化基础设施即服务,就需要IaaS管理平台。

资源管理平台负责对物理资源和虚拟化资源进行统一的管理和调度,形成统一的资源池,实现IaaS服务的可管、可控,其核心是对每个基础资源单位的生命周期管理能力和对资源的管理调度能力。

基于OpenStack的云计算数据中心管理系统的设计与开发

2.4.2 KVM与QEMU

KVM虚拟机是基于Linux内核虚拟化,自Linux2.6.2之后就集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM的虚拟化需要硬件的支持(如Intel VT技术或者AMD V

图2.2虚拟化架构

技术),是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的para-virtualization,新版本是基于硬件支持的完全虚拟化[3]。

QEMU是一种模拟处理器,现在运用最多的就是将KVM和QEMU结合起来。准确来说,KVM是Linux kernel的一个模块,可以用命令modprobe去加载KVM模块[13]。加载了该模块后,才能进一步通过工具创建虚拟机。但是仅有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。

本文来源:https://www.bwwdw.com/article/k2rf.html

Top