openstack基础知识整理

OpenStack主要逻辑模块

(一)  Horizon Dashboard服务

  在整个Openstack应用体系框架中,Horizon就是整个应用的入口。它提供了一个模块化的,基于web的图形化界面服务门户。用户可以通过浏览器使用这个Web图形化界面来访问、控制他们的计算、存储和网络资源,如启动实例、分配IP地址、设置访问控制等。

 

(二)  Keystone身份验证服务

  Keystone作为Openstack的核心模块,为Nova(计算),Glance(镜像),Swift(对象存储),Cinder(块存储),Neutron(网络)以及Horizon(Dashboard)提供认证服务

[1] User

  User即用户,他们代表可以通过keystone进行访问的人或程序。Users通过认证信息(credentials,如密码、APIKeys等)进行验证。

[2] Tenant

  Tenant即租户,它是各个服务中的一些可以访问的资源集合。例如,在Nova中一个tenant可以是一些机器,在Swift和Glance中一个tenant可以是一些镜像存储,在Neutron中一个tenant可以是一些网络资源。Users默认的总是绑定到某些tenant上。

[3] Role

       Role即角色,Roles代表一组用户可以访问的资源权限,例如Nova中的虚拟机、Glance中的镜像。Users可以被添加到任意一个全局的或租户的角色中。在全局的role中,用户的role权限作用于所有的租户,即可以对所有的租户执行role规定的权限;在租户内的role中,用户仅能在当前租户内执行role规定的权限。

[4] Service

  Service即服务,如Nova、Glance、Swift。根据前三个概念(User,Tenant和Role)一个服务可以确认当前用户是否具有访问其资源的权限。但是当一个user尝试着访问其租户内的service时,他必须知道这个service是否存在以及如何访问这个service,这里通常使用一些不同的名称表示不同的服务。

[5] Endpoint

  Endpoint,翻译为“端点”,我们可以理解它是一个服务暴露出来的访问点,如果需要访问一个服务,则必须知道他的endpoint。因此,在keystone中包含一个endpoint模板,这个模板提供了所有存在的服务endpoints信息。一个endpointtemplate包含一个URLs列表,列表中的每个URL都对应一个服务实例的访问地址,并且具有public、private和admin这三种权限。publicurl可以被全局访问(如http://compute.example.com),privateurl只能被局域网访问(如http://compute.example.local),adminurl被从常规的访问中分离。

[6] Token

  Token是访问资源的钥匙。它是通过Keystone验证后的返回值,在之后的与其他服务交互中只需要携带Token值即可。每个Token都有一个有效期,Token只在有效期内是有效的。

 

[7]以上概念之间的相互关系如下:

1)       租户下,管理着一堆用户(人,或程序)。

2)       每个用户都有自己的credentials(凭证)用户名+密码或者用户名+APIkey,或其他凭证。

3)       用户在访问其他资源(计算、存储)之前,需要用自己的credential去请求keystone服务,获得验证信息(主要是Token信息)和服务信息(服务目录和它们的endpoint)。

4)       用户拿着Token信息,就可以去访问特点的资源了。

 

(三)  Nova

  计算管理(codenamed “Nova”)基于用户需求为VM提供计算资源管理. 基于Python语言编写。

  Nova-API:对外统一提供标准化接口.接受和响应最终用户ComputeAPI的请求,同时还实现与Openstack其他各逻辑模块的通讯与服务提供

  Nova-Scheduler:从队列上得到一个虚拟机实例请求并且决定它应该在哪里运行(使用多种过滤器或算法调度)

  Queue:提供了一个守护进程之间传递消息的中央枢纽。消息队列系统作用还可以实现与Openstack其他各逻辑模块之间的通信建立连接枢纽

  Nova-Database:存储云基础设施的编译时和运行时的状态,从理论上讲,OpenStackNova可以支持任何SQL-Alchemy支持的数据库,但是目前被广泛使用的数据库有sqlite3(只适用于测试和开发工作),MySQL和PostgreSQL。

  Nova-Compute:主要是一个人工守护进程,它可以通过虚拟机管理程序的API(XenAPIfor XenServer/XCP, libvirt for KVM or QEMU, VMwareAPI for VMware等)来创建和终止虚拟机实例。支持多种虚拟化平台

  Nova还提供控制台的服务,让最终用户通过代理服务器访问他们的虚拟实例的控制台。这涉及到多个守护进程(nova-console,nova-novncproxy、nova-xvncproxy和nova-consoleauth)

 

(四)  块存储Cinder

  块存储管理模块(codenamed “Cinder”)提供到虚拟机的永久性块存储卷,类似AWS的EBS块存储服务。

  多个卷可以被挂载到单一虚拟机实例,同时卷可以在虚拟机实例间移动,单个卷在同一时刻只能被挂载到一个虚拟机实例。

  cinder管理块设备到虚拟机的创建,挂载以及卸载.。

  块设备卷完全与OpenstackCompute集成,并支持云用户在Dashboard中管理数据自己的存储.

  除了支持简单的Linux服务器本地存储之外,还支持众多的存储平台,包括Ceph, NetApp, Nexenta, SolidFire, Zadara.

  快照管理提供了强大的在块存储上实现数据备份的功能可以用来作为引导卷使用

  块存储适合性能敏感性业务场景,例如数据库存储 大规模可扩展的文件系统或服务器需要访问到块级裸设备存储。

 

(五)  对象存储Swift

  分布式对象存储系统,通过采用基于标准化服务器的集群架构提供冗余,可扩展的对象存储,具有良好的扩展性,可以实现PB级别数据的存储。

  Swift 采用层次数据模型,共设三层逻辑结构:Account/Container/Object(即账户/容器/对象),每层节点数均没有限制,可以任意扩展。数据存储基于NWR理论

            Swift 采用完全对称、面向资源的分布式系统架构设计;所有组件都可扩展,避免因单点失效而扩散并影响整个系统运转;通信方式采用非阻塞式 I/O 模式,提高了系统吞吐和响应能力。

 

(六)  Glance镜像服务

  Glance用来注册、登陆和检索虚拟机镜像。Glance服务提供了一个RESTAPI,使你能够查询虚拟机镜像元数据和检索的实际镜像。通过镜像服务提供的虚拟机镜像可以存储在不同的位置,从简单的文件系统对象存储到类似OpeenStack对象存储系统。

 

(七)  Neutron网络服务

  网络服务(codenamed “Quantum/Neutron”) 提供在被管理设备之间的网络连接服务;允许用户自己创建自己的网络并attach端口使用;通过开发的Plugins支持SDN和OpenFlow;用户自定义子网地址,私有网络/公有网络以及FloatingIP分配规则。

[1] 网络Network

一个L2二层网络单元

租户可通过Quantum/NeutronAPI 创建自己的网络

[2]子网Subnet

一段IPV4/IPV6地址段

为Instance提供私网或公网地址

[3]路由器Router

三层路由器

为租户的Instance提供路由功能

[4]端口Port

虚拟交换机上的端口

管理Instance的网卡

你可能感兴趣的:(Openstack云计算,openstack)