姓名:穆培婷
学号:17101223414
专业:软件工程
本文转载自:http://os.51cto.com/art/201205/336386_all.htm
本文视频来源:http://www.iqiyi.com/w_19rue1levh.html
【嵌牛导读】:OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。
【嵌牛鼻子】:OpenStack 云计算 开源
【嵌牛提问】:OpenStack是什么?OpenStack架构是什么样子的?
【嵌牛正文】:
1. OpenStack是什么
OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。
OpenStack旗下包含了一组由社区维护的开源项目,他们分别是OpenStackCompute(Nova),OpenStackObjectStorage(Swift),以及OpenStackImageService(Glance)。
OpenStackCompute,为云组织的控制器,它提供一个工具来部署云,包括运行实例、管理网络以及控制用户和其他项目对云的访问(thecloudthroughusersandprojects)。它底层的开源项目名称是Nova,其提供的软件能控制IaaS云计算平台,类似于AmazonEC2和RackspaceCloudServers。实际上它定义的是,与运行在主机操作系统上潜在的虚拟化机制交互的驱动,暴露基于WebAPI的功能。
OpenStackObjectStorage,是一个可扩展的对象存储系统。对象存储支持多种应用,比如复制和存档数据,图像或视频服务,存储次级静态数据,开发数据存储整合的新应用,存储容量难以估计的数据,为Web应用创建基于云的弹性存储。
OpenStackImageService[1],是一个虚拟机镜像的存储、查询和检索系统,服务包括的RESTfulAPI允许用户通过HTTP请求查询VM镜像元数据,以及检索实际的镜像。VM镜像有四种配置方式:简单的文件系统,类似OpenStackObjectStorage的对象存储系统,直接用Amazon'sSimpleStorageSolution(S3)存储,用带有ObjectStore的S3间接访问S3。
三个项目的基本关系如下图所示:
2. OpenStack架构
假如我们把OpenStack拆解成若干个主要部分,就会分成两个基础环境,分别叫做操作运维环境和执行运行环境。它的运作方式是这样的,你在创建云的时候必须要创建一个允许你构建、监控和管理这个云的操作环境,然后这个云会执行,人们、租户和其他用户能在哪里连接云和创建虚拟工作量。
我们看看这当中的主要构成部分,就会发现这两种环境里有一个用户界面层,这是人们交互的层面,包括操作人员和管理员,还有在执行层面上操作的租户。可以看到我们的服务构成这两种环境的基础。在底下,我们还有一套共享的子系统,依托Debian操作系统分发和客户供应的或者解决方案自带的一系列基础设施。
接下来介绍构成部分。首先就是构成操作环境和执行环境这两部分的服务。为了构建HP Helion OpenStack,我们使用了OpenStack的各种核心服务,其中包括Keystone之类。Keystone是OpenStack的身份服务,用来识别用户和群组,还能为云端的各种服务提供身份、验证和授权。Heat是一种业务流程服务,你可以用Heat在所有OpenStack服务里进行编排,在使用个别服务来创建虚拟资源时可以利用Heat模板,然后调配起来构建更加复杂的虚拟资源。Heat底下是构建那些虚拟资源的OpenStack基本核心服务,例如Swift。Swift是一种对象存储服务,可用来创建对象存储群,以存储你可能在云端使用的所有对象,对象主要是数据块和你想存储的其他类文件。除了Swift之外,还支持Glance。Glance是镜像库服务,将所有要用的镜像存储起来,以便在OpenStack云里创建虚拟机。为了创建这些虚拟机,我们还支持Nova。Nova服务让你可以和虚拟机监控程序交互,以便创建虚拟机,多种虚拟机监控程序都受支持,但是你把Nova当做界面来创建虚拟机。除了Nova,我们还支持Cinder,还有Neuton。Cinder和Neutron是两种服务,Cinder可用于卷存储或块存储,如果你想创建与虚拟机连接的块存储,我们可支持OpenStack Cinder创建卷和挂载卷。如果你在工作量部署中需要创建虚拟网络,利用Neutron就能在云端部署虚拟覆盖网络。
其实,我们在操作环境中还支持多种服务。为了部署云和在云端进行更新,我们支持OpenStack的Triple O。Triple O是建立在OpenStack上游的一种服务,可用来创建或使用OpenStack,创建更大的OpenStack云,所以是用OpenStack里的逻辑能力来构建云以及管理和更新这个云。
Triple O底下使用OpenStack里面的一项子系统服务,叫Ironic。Ironic负责与虚拟机之间的所有交互,好让他们做好准备,把他们在云端设置为节点,这些云端节点自然会运行这些OpenStack服务并且构建随后租户实际上经常使用的云。
此外,我们在操作面添加了增值服务,在Helion OpenStack里,我们加入增值服务,把OpenStack变成了企业客户可以使用的分发版。我们对操作环境里的服务面加入了增值服务,其中一项增值服务叫做Eon。Eon用于进行ESX集成,ESX集成意味着我们作为高度包容的供应商可支持Nova、VMware、ESX和HyperVisor。我们需要一项服务来进行这种配置以及构建和添加这些ESX群,Eon就是我们需要的服务。此外,我们还支持Sirius这项服务。Sirius服务用于配置Cinder,当你在后端配置存储为你的虚拟机提供块存储时,你需要某种服务来识别和配置你想用来创建块存储的群组以及如何结合卷类型,那是Cinder的概念,这是一种后端服务,实际上它创建了上述配置。
除了所有这些服务之外,还部署了一道UI层作为Helion OpenStack的一部分,Helion OpenStack的UI层有控制面板:一个操作面板,一个用户访问面板。两个面板都基于上游OpenStack Horizon面板。Horizon控制面板是一个框架和一组视图,可以跟OpenStack服务结合使用,我们利用这个Horizon框架加上更多视图,对应我们在操作面提供的服务。我们为Eon和Sirius增加了视图。这两个视图提供的用户界面对应的服务让你可以配置Cinder存储和ESX群,所以非常有助于企业客户简化云端那些方面的配置。Triple O架构本身简化了你的云部署、扩展和更新方式。
操作环境UI还包括其他面板,分别叫做IMC面板和CMC面板,这两个面板是Helion
OpenStack的组成部分,取决于你是否为Cinder使用存储后端、是否使用3Par或VSA虚拟存储,为3PAR使用IMC,为VSA虚拟存储使用CMC,这些面板让你能真正配置和管理那几类集成到Cinder的存储环境。此外,我们还有一个用于监控的Icinge Web面板,Icinge集成到整套服务中,我们监控这些服务并确保其稳健,Icinge面板让你能看见OpenStack上运行的服务、Helion OpenStack分发和稳健状况。另外,我们还有一个面板叫Cabana,让你能在我们所有集中化日志上搜索。除了Eon和Sirius,我们添加到操作面板的视图还有一个叫Sherpa。Sherpa视图不仅添加到操作面板上,还添加到客户面板上。通过Sherpa可访问Helion分发网络,这个分发网络提供你可能会用在执行面上的云补丁、更新、镜像、范例镜像。所以在操作面提供的Sherpa就是为了更新和补丁,在执行面也提供,是为了范例镜像等等。这些全部都构建在一系列子系统上,这些子系统把一系列的功能带给云上运行的全部一系列服务。
从操作角度和执行角度来看,我们在Helion OpenStack分发版里构建的服务类型,类似于恢复服务(Recovery)。恢复服务负责备份和还原上述两种环境里的所有数据库,就是我们在操作面的所有数据库以及构成云本身的所有数据库,我们对这些数据库进行备份和恢复。所以,加入发生某种故障或者某种操作问题可以进行恢复,还原到一个已知点。此外,我们还包括了监控(monitions)。Icinga被用来实际监控整个云上的所有服务,然后注入到Icinga网络控制面板,就是UI部分展示的面板。除此之外,我们还提供集中化日志(Logstash)。我们使用Logstash以便收集所有节点上而不是云上的所有日志,然后带到一个集中点上,这样就可以用Cabana搜索了。Cabana是集中化日志的UI方面,而集中化日志被嵌入到解决方案和故障转移(Failure)里。故障转移就是能够让操作面或执行面上的任何服务处于活动状态,这样就能复制这些服务,一旦出现某种故障,服务仍然可以保持正常,执行环境里的所有OpenStack服务全部处于活动状态,故障转移。如果其中的服务发生故障,在不止一个节点上运行,服务会继续运行。至于访问云端的租户,不会察觉到故障。这当中的概念是我们将故障转移服务嵌入到OpenStack分发版里,然后我们的云对租户的可用性就非常高,假如有什么状况发生,我们会在监控中发现,然后就能在Icinga控制面板上表示其中一项服务发生状况了,即使它仍然在执行中,也可以做到。如果你想进行故障排除,看看服务出了什么状况,可以在Cabana里使用我们的集中化日志来查明发生了什么问题,解决问题,进行更新,让云继续运行。