openstack的逻辑概念_Openstack架构解析(学习汇总)

Openstack架构解析(学习汇总)

OpenStack是一个管理的项目,它不是一个软件。这个项目由几个主要的组件组合起来完成一些具体的工作。

想要了解openstack,第一步我们可以观察他的概念图:

(本图来自互联网)

原文没有给概念图做太多解释,英语不好的同学表示很受伤,因此我愿意做这个活雷锋:

下面是翻译+解释:

Integration

Presentation

Logic

Resources

Management

整合

表现层

逻辑层(控制层)

资源层

管理层

Identity

Compute API

Orchestration

Compute

Admin API

认证

计算接口

部署

计算

管理员API

Billing

Image API

Scheduling

Volume

Monitoring

计费

映像接口

调度

卷(硬盘上的存储区域)

测控

User dashboard

Policy

Network

仪表盘(显示系统各种参数)

策略

Customer portal

Image Register

顾客门户(就是UI)

映像注册表

Logging

日志(很多地方都会有的,可以查错,当系统出错崩溃时,也可以根据日志对系统进行还原)

此图主要回答了openstack为我们提供什么服务,它的功能有哪些,当然概念图只是为我们提供了一个概念,而正如一开始介绍的那样——OpenStack是一个管理的项目,它不是一个软件,这个项目由几个主要的组件组合起来完成一些具体的工作。搞清楚由哪些组件完成这些功能,我们需要借助图2:

此图为Grizzly的架构图,简述了套件之间是如何运作的:

(本图来自网络)

OpenStack的Grizzly版共有7个不同功能套件,分别是:

运算套件Nova:openstack中的核心,负责计算和实施一些策略,很多组件都要通过他进行调度(Nova中的nova-api负责所以API的调度,初始化大多数部署,执行部分策略)

对象储存套件Swift:分布式对象存储,功能类似于hadoop,可是跟hadoop又有很大不同;在openstack中,swift用于存储创建虚拟机的镜像文件

区块储存套件Cinder:配分块存储,给虚拟机增加一个块存储设备(有点类似于移动硬盘);

网通套件Quantum:通过API来管理的网络架构系统;

身分识别套件Keystone:身份认证功能;

镜像檔管理套件Glance:对镜像文件进行管理;

仪表板套件Horizon:就是一个UI;

以上是我的一些通俗解释,如果大家觉得不够详尽,可以查阅一下资料:

(快速入手Openstack 技术架构功能解读)

http://www.enet.com.cn/article/2013/0702/A20130702294145_2.shtml

这是对openstack架构的一种解释,但用过百度一下的朋友就肯定会发现,网上流传着好几个不同版本的架构图,几种架构图描述的方式都相差很大,第一眼看上去甚至都不是一个东西……

面对这种情况,我们可以假设他们都是对的,然后找出他们之间的联系,这样我们也可以加深对openstack的理解;

现在我们看一下openstack的逻辑架构:

(本图来自互联网)

a) 终端用户通过和nova-api对话来与OpenStack Compute交互。

b) OpenStack Compute守护进程之间通过队列(行为)和数据库(信息)来交换信息,以执行API请求。(交换信息的方式我们以后会讲)

c)OpenStack Glance基本上是独立的基础架构,OpenStack Compute通过Glance API来和它交互。

其各个组件的情况如下:

a)nova-api守护进程是OpenStack Compute的中心。它为所有API查询(OpenStack API 或 EC2 API)提供端点,初始化绝大多数部署活动(比如运行实例),以及实施一些策略(绝大多数的配额检查)。

因此很多相对于openstack独立的基础架构是跟nova-api交换信息的,而不是向其他进程那样使用队列和数据库;

b)nova-compute进程主要是一个创建和终止虚拟机实例的Worker守护进程。基本原理很简单:从队列中接收行为,然后在更新数据库的状态时,执行一系列的系统命令执行他们。

c)nova-volume管理映射到计算机实例的卷的创建、附加和取消。这些卷可以来自很多提供商,比如,ISCSI和AoE。

d) Nova-network worker守护进程类似于nova-compute和nova-volume。它从队列中接收网络任务,然后执行任务以操控网络,比如创建bridging interfaces或改变iptables rules。

e)Queue提供中心hub,为守护进程传递消息。当前用RabbitMQ实现。但是理论上能是python ampqlib支持的任何AMPQ消息队列。

f) SQL database存储云基础架构中的绝大多数编译时和运行时状态。当前广泛使用的数据库是sqlite3(仅适合测试和开发工作),MySQL和PostgreSQL。

g) OpenStack Glance,是一个单独的项目,它是一个compute架构中可选的部分,分为三个部分:

glance-api:glance-api接受API调用;

glance-registry:glance-registry负责存储和检索镜像的元数据,实际的Image Blob存储在Image Store中;

the image store:Image Store可以是多种不同的Object Store,包括OpenStack Object Storage (Swift);

h) 最后,user dashboard是另一个可选的项目。OpenStack Dashboard提供了一个OpenStack Compute界面来给应用开发者和devops staff类似API的功能。当前它是作为Django web Application来实现的。当然,也有其他可用的Web前端。(说白了就是个UI)

让我们看看这个逻辑图在概念图上的映射:

(本图来自互联网)

通过这样一张图我们就可以很清楚地了解各个进程的功能,我们同样可以把各组件映射到它的概念图上:

我们也可以用以下的表示方式来表现它的架构:

(本图来着互联网)

或者用思维导图表示:

(本图来着互联网)

通过这样几个图,我们基本上可以梳理清openstack的架构了,通过比较不同表达方式,我们可以更透彻地理解一个事物,就像学生时代一直强调的一题多解一样。

你可能感兴趣的:(openstack的逻辑概念)