¿Qué es Openstack? Introducción detallada de los módulos y servicios centrales de OpenStack

Directorio de artículos

Origen de OpenStack

OpenStack es el proyecto OpenStack iniciado por Rackspace (un proveedor de computación en la nube de EE. UU.) Y la Administración Nacional de Aeronáutica y del Espacio (Administración Nacional de Aeronáutica y del Espacio, conocida como NASA) en julio de 2010.
El código fuente de almacenamiento (Swift) aportado por Rackspace y el código fuente de cálculo (Nova) aportado por la NASA.

1. Introducción a OpenStack

1.1 ¿Qué es OpenStack?

  • OpenStack es una plataforma en la nube que controla los recursos informáticos, los recursos de almacenamiento y los recursos de red a través del centro de datos. Al mismo tiempo, es un software de código abierto, software libre y proyectos de código abierto autorizados bajo la licencia Apache, soportando todo tipo de entornos de nube;

  • El objetivo de OpenStack es proporcionar productos en la nube que sean fáciles de implementar, escalables y ricos en conjuntos de funciones. Expertos en computación en la nube de todo el mundo mantienen conjuntamente el proyecto en la nube. OpenStack proporciona soluciones IaaS a través de una variedad de servicios complementarios, cada uno de los cuales proporciona una interfaz de programación de aplicaciones (API) correspondiente para promover la integración entre componentes;

  • OpenStack se utiliza para proporcionar la construcción y gestión de nubes públicas y privadas. Como proyecto de código abierto, el tamaño de su comunidad abarca 130 empresas y 1350 desarrolladores. Todas estas instituciones e individuos utilizan OpenStack como el front-end general de los recursos de IaaS;

  • OpenStack cubre todos los aspectos de redes, virtualización, sistemas operativos, servidores, etc. Generalmente, la versión se actualiza cada seis meses aproximadamente.

1.2 Servicio OpenStack

  • OpenStack tiene 8 servicios principales, los detalles se muestran en la siguiente tabla:
Servicio nombre del proyecto descripción
Compute (servicio de computación) Estrella nueva Responsable de la gestión del ciclo de vida de la instancia y la unidad de recursos informáticos. Proteja el hipervisor, admita múltiples tecnologías de virtualización (Red Hat por defecto es KVM) y admita la expansión horizontal
La red Neutrón Responsable de la gestión de la red virtual y creación de la topología de red para la instancia. Es una administración de red orientada a inquilinos, puede definir su propia red y cada inquilino no se afecta entre sí.
Identidad (servicio de autenticación de identidad) Piedra clave Similar al servicio LDAP, autentica y autoriza usuarios, inquilinos, roles y servicios, y admite múltiples mecanismos de autenticación.
Panel de control (servicio del panel de control) Horizonte Proporcionar una interfaz de gestión web para interactuar con los servicios subyacentes de OpenStack.
Servicio de imagen Mirada Proporcione el registro y la administración de plantillas de imágenes de máquinas virtuales, copie el sistema operativo preparado como una plantilla de imagen y utilícelo directamente al crear una máquina virtual, y admita imágenes multiformato.
Block Storage (servicio de almacenamiento en bloque) Ceniza Responsable de proporcionar dispositivos de almacenamiento en bloque duraderos para ejecutar instancias, que se pueden expandir fácilmente, pagar a pedido y admitir una variedad de almacenamiento de back-end.
Almacenamiento de objetos Rápido Proporciona almacenamiento elástico basado en la nube para OpenStack y admite clústeres sin un solo punto de falla
Telemetría (servicio de medición) Ceilómetro Una fuente centralizada para la medición, el seguimiento y el control de los recursos de datos, que proporciona a los usuarios de OpenStack una forma de llevar cuentas.

1.3 Ventajas de OpenStack

  • OpenStack tiene ventajas en control, compatibilidad, escalabilidad y flexibilidad, y puede convertirse en un estándar de la industria en el campo de la computación en nube.
1.控制性:
完全开源的平台,提供API接口,方便与第三方技术集成
2.兼容性:
OpenStack兼容其它公有云,方便用户进行数据迁移
3.可扩展性:
模块化设计,可以通过横向扩展,增加节点,增加资源
4.灵活性:
根据自己的需要建立相应基础设施,增加集群规模
5.行业标准:
Openstack 项目采用 Apache2 许可, 意味着第三方厂家可以重新发布源代码。
众多IT领军企业已经加入到OpenStack项目,意味着 OpenStack 在未来可能形成云计算行业标准

2. Tipos de nodos de OpenStack

  • OpenStack se compone de nodos de control, nodos informáticos, nodos de red y nodos de almacenamiento.

2.1 Nodo de control (planificador)

  • Como su nombre lo indica, es un nodo que implementa el control del centro de datos en OpenStack y administra todos los componentes de servicio de OpenStack;
    sin importar dónde estén todos los componentes, deben completar un trabajo de registro similar en el nodo de control.

  • Responsable del control de los puntos restantes, incluida la creación de máquinas virtuales, migración, asignación de red, asignación de almacenamiento, etc.

Arquitectura del nodo de control:

  • El nodo de control incluye los siguientes servicios: servicios de
    soporte de gestión, servicios de gestión básicos y servicios de gestión ampliados

2.1.1 Servicios de apoyo a la gestión

  • Incluyendo servicios de intermediario de mensajes y bases de datos
数据库作为基础/扩展服务产生的数据存放的地方
消息代理服务(也称消息中间件)为其他各种服务之间提供了统一的消息通信服务

2.1.2 Servicios de gestión básicos

  • Incluye cinco servicios: Keystone, Glance, Nova, Neutron y Horizon
1.Keystone:认证管理服务、提供了其余所有组件的认证信息/令牌的管理、创建、修改等等、使用MySQL等数据库存储认证信息;

2.Glance:镜像管理服务,提供了对虚拟机部署的时候所能提供镜像的管理、包含镜像的导入、格式以及制作相应的模板;

3.Nova:计算管理服务,提供了对计算节点的Nova管理、使用Nova-API(入口节点)进行通信;

4.Neutron:网络管理服务、提供了对网络节点的网络拓扑管理,同时提供Neutron在Horizon的管理界面;

5.Horizon:控制台服务,提供了以Web形式对所有节点的所有服务的管理,通常把该服务成为Dashboard

2.1.3 Servicios de gestión ampliados

  • Contiene cinco servicios: Cinder, Swift, Trove, Heat y Centimeter
1.Cinder:提供管理存储节点的Cinder相关、同时提供Cinder在Horizon中的管理面板;

2.Swift:提供管理存储节点Swift相关、同时提供Swift在Horizon中的管理面板;

3.Trove:提供管理数据库节点的Trove先关、同时提供Trove在Horizon中的管理面板;

4.Heat:提供了基于模板来实现云环境中的资源的初始化,依赖关系处理,部署等基本操作;
也可以解决自动收缩、负载均衡等高级特性

5.Centimeter:提供对物理资源以及虚拟资源的监控,并记录这些书库,读数据进行分析在一定条件下出发现货供应动作。
控制节点通常来说只需要一个网络端口来用于通信和管理各个节点

2.2 Nodo de almacenamiento

2.2.1 Tipo de nodo de almacenamiento

  • Nodos donde se instalan los componentes de almacenamiento, normalmente Cinder (almacenamiento en bloque) y Swift (almacenamiento de objetos)
1.Cinder:块存储服务,提供相应的块才能出,简单来说,就是虚拟出一块存盘,可以挂载到相应的虚拟机之上,不收
文件系统的影响,对虚拟机来说,这个操作像是加了一块硬盘,可以完成对磁盘的任何操作,包括挂载、卸载、格式化,
转换文件系统等等操作,大多应用于虚拟机空间不足的情况下的空间扩容等;

2.Swift:对象存储服务,提供相应的独享存储、简单来说,就是虚拟出一块磁盘空间,可以在这个空间当中存放文件,也
仅仅只能存放文件,不能进行格式化,转换文件系统,大多应用于云磁盘/文件。

2.2.2 Función

  • Responsable de la gestión de almacenamiento adicional de máquinas virtuales, etc .;
  • Arquitectura de nodo de almacenamiento;
  • Los nodos de almacenamiento incluyen Cinder, Swift y otros servicios

2.2.3 Puerto de red

  • El nodo de almacenamiento contiene al menos dos puertos de red
端口1:与控制节点进行通信,接受控制节点任务,受控制节点统一调配;
端口2:与计算/网络节点进行通信,完成控制节点下发的各类任务。

2.3 Nodo de computación

2.3.1 Calcular la composición del nodo

  • Contiene algunos componentes de Nova y algunos componentes de Neutron Nova-compute., Agente de neutrones
1.基础服务
Nova:提供虚拟机的创建、运行、迁移、快照等围绕虚拟机的服务、并提供API与控制节点对接、由控制节点下发任务
Neutron:提供计算节点与网络节点之间的通信

2.扩展服务
Telmeter:提供计算节点监控代理、将虚拟机的情况反馈的控制节点,是Centimeter的代理服务

2.3.2 Función

  • Responsable de la operación de la máquina virtual
  • Computar la arquitectura del nodo
  • El nodo de computación incluye tres servicios: Nova, Neutron y Telemter

2.3.3 Puerto de red

  • El nodo de cálculo contiene al menos dos puertos de red
端口1:与控制节点进行通信,受控制节点统一调配
端口2:与网络节点,存储节点进行通信

2.4 Nodo de red

  • El nodo de red solo tiene componentes de Neutron. Neutron en el nodo de red instala el complemento principal (ML2) y el complemento de servicio (servicio L3). El complemento de servicio específico se puede seleccionar según sus necesidades.

2.4.1 Función

  • Responsable de la comunicación entre la red externa y la red interna
  • Arquitectura de nodo de red
  • El nodo de red solo contiene servicios de Neutron

2.4.2 Puerto de red

  • El nodo de red contiene tres puertos de red
端口1:用于与控制节点进行通信
端口2:用于除了控制节点之外的计算/存储节点之间的通信
端口3:用于外部的虚拟机与相应的网络之间通信 

3. Proyectos básicos comunes de OpenStack

  • La provisión de servicios de plataforma en la nube OpenStack se basa principalmente en los cuatro módulos principales de Nova, Glance, Cinder y Neutron, y las funciones de acceso, monitoreo, permisos y almacenamiento de objetos proporcionadas por los cuatro módulos auxiliares Horizen, Ceilometer, Keystone y Swift. .

3.1 Keystone del servicio de autenticación de usuario

  • Módulo responsable de la gestión de autenticación, reglas de servicio y funciones de token de servicio

3.1.1 Conceptos importantes de Keystone

  • Usuario (Usuario) El usuario que
    utiliza el servicio puede ser una persona, servicio o sistema, siempre que sea un objeto que utilice el servicio openstack, se le puede llamar usuario. Cuando el usuario acceda a OpenStack, Keystone verificará su identidad
  • Inquilino / tono (inquilino / proyecto) son mutuamente independientes
1.租户,可以理解为一个人、项目或者组织拥有的资源的合集。在一个租户中可以拥有很多个用户,这些用户可以根据权限的
划分使用租户中的资源。

2.项目是各个服务中的一些可以访问的资源集合,用来分组或隔离资源或身份对象。不同服务中,项目所涉及的资源不同。
在Nova服务中项目可以是云主机,在 Swift和 Glance中项目可以是镜像存储,在 Neutron中项目可以是网络资源。
默认情况下,用户总是被绑定到项目中。一个项目中可以有多个用户,一个用户可以属于一个或多个项目。
  • Rol (rol) diferentes usuarios, diferentes permisos, clasificación de permisos
1.角色,用于分配操作的权限。角色可以被指定给用户,使得该用户获得角色对应的操作权限。
安全包含两部分:Authentication(认证)和 Authorization(鉴权)

2.角色是一组用户可以访问的资源权限集合,这些资源包含虛拟机、镜像、存储资源等。
用户既可以被添加到全局的角色,也可以被添加到指定项目内的角色中。其区别是,全局的角色适用于所有项目中的资源权限
而项目内的角色只适用于某个项目内的资源权限。
  • Servicio
1.Openstack Service,即Openstack中运行的组件服务。nova,glance都是属于一个服务,需要在keystone上进行
创建指定类型。

2.用户使用云中的资源是通过访问服务的方式实现, OpenStack中包含许多服务,如提供计算服务的Nova、提供镜像服务
的 Glance以及提供对象存储服务的 Swift。一个服务可以确认当前用户是否具有访问其资源的权限。但是当一个用户尝试
访问其项目内的 service时,该用户必须知道这个服务是否存在以及如何访问这个服务。

3.创建服务有一个服务,就创建一个endpoint,会根据服务类型去查找那个服务。Service 决定每个 Role 能做什么
事情,Service 通过各自的 policy.json 文件对 Role 进行访问控制
  • Simbólico
1.指的是一串比特值或者字符串,用来作为访问资源的令牌。Token中含有可访问资源的范围和有效时间。
2.是一串数字字符串,用于访问0 penStock服务的API以及资源。一个令牌可以在特定的时间内生效,并可以在任意时间
释放。在 keystone中主要是引入令牌机制来保护用户对资源的访问。
  • Punto final (punto final)
    una dirección que puede acceder y localizar un servicio Openstack a través de la red, generalmente una URL

3.1.2 Diagrama de flujo de trabajo de Keystone

  • Núcleo: emisión y autenticación de tokens de identidad keystone
    Inserte la descripción de la imagen aquí

3.2 Console Horizon (interfaz gráfica)

3.2.1 Resumen

  • Panel de control web para administrar y controlar los servicios OpenStack
  • Openstack es una arquitectura que consta de múltiples servidores de nodos, estos servidores están virtualizados para lograr la misma tarea, integrar recursos en un todo y distribuirlos y usarlos externamente.

3.2.2 Funciones de Horizon

  • Gestión de instancias
  • Gestión de acceso y seguridad
  • Preferencias
  • Gestión de imágenes
  • Gestión de usuarios
  • Gestión de volumen
  • Procesamiento de almacenamiento de objetos

3.3 Vistazo del módulo espejo

  • Proporciona servicios de duplicación para descubrimiento, registro y descarga, almacén centralizado de duplicación de máquinas virtuales.
  • Cree una máquina virtual a partir de una imagen de máquina virtual

3.3.1 Vistazo de los componentes principales

  • mirada-api
glance-api用于接收镜像API的调用,诸如镜像发现、恢复以及存储等。作为一个后台进程, glance-api对外提供
REST API接口,响应用户发起的镜像查询、获取和存储的调用
  • registro de mirada
glance- registry用于存储、处理和恢复镜像的元数据,元数据包括镜像的的大小和类型等属性, registry是一个内部
服务接口,不建议暴露给普通用户
  • base de datos
database用于存放镜像的元数据,可以根据需要选择数据库,如 MySQL、 SQLite等。
  • repositorio de almacenamiento para archivos de imagen
一般情况下, glance并不需要存储任何镜像,而是将镜像存储在后端仓库中。 Glance支持多种 repository。
主要包括对象存储 Swift、块存储 Cinder、 VMware的ESX/ESXi或者vCenter、亚马逊的S3、HTTP可用服务器、Ceph等

3.3.2 Formato espejo

  • Glance admite varios formatos de imagen, incluido el formato de disco y el formato de contenedor
  • Varios formatos de archivo de imagen de uso común son los siguientes
RAW         VDI
QCOW2       ISO
VHD         AKI,ARI,AMI
VMDK

3.4 Módulo de red Neutron

3.4.1 Resumen

  • Darse cuenta de la comunicación entre instancias y entre instancias y redes externas
  • Proporciona las funciones abstractas del conmutador de capa 2 (red interna) y el enrutador de capa 3 (red externa). Por ejemplo, la máquina virtual creada a partir de la imagen en openstack

3.4.2 Realización de funciones

Router:为用户提供路由,NAT等服务
Network:对应于一个真实物理网络中的二层局域网(VLAN)
Subnet:指定一段IPV4或IPV6地址并描述其相关的配置信息

3.5 Módulo de cálculo Nova

3.5.1 Descripción general de Nova

  • Nova es un módulo responsable de proporcionar recursos informáticos y un módulo central en OpenStack. Su función principal es responsable de la gestión del ciclo de vida de las instancias de máquinas virtuales, la gestión de la red, la gestión del volumen de almacenamiento, la gestión de usuarios y otras funciones relacionadas con la gestión de la plataforma en la nube.

  • OpenStack utiliza servicios informáticos para alojar y administrar sistemas informáticos en la nube. El servicio informático OpenStack es el componente principal del sistema de servicios de infraestructura (IaaS) y el módulo lo implementa principalmente Python.

  • El componente informático de OpenStack solicita autenticación al servicio OpenStack Identity, solicita al servicio OpenStack Image que proporcione duplicación de disco y proporciona interfaces de usuario y administrador para OpenStack Dashboard. El acceso a la duplicación del disco está restringido a proyectos y usuarios, y se establecen cuotas para cada proyecto.

3.5.2 Los principales componentes de los servicios informáticos

  • El servicio Nova-api
    recibe y responde a las solicitudes de API de computación de los usuarios finales, proporciona una interfaz externa para interactuar con la infraestructura de la nube y también es el único componente externo que se puede utilizar para administrar la infraestructura.
  • El servicio Nova-api-metadata
    recibe solicitudes de metadatos enviadas desde máquinas virtuales. El servicio Nova-api-metadata generalmente se usa en modo multi-host con el servicio Nova-Network instalado
  • Servicio Nova-Compute
    Un proceso de demonio en funcionamiento continuo que crea y destruye instancias de máquinas virtuales a través de la API del hipervisor.
  • Servicio de Nova-Location-Api
    Nova-Location-Api se utiliza para rastrear y registrar los directorios de proveedores de recursos y el uso de recursos. Estos recursos incluyen computación, almacenamiento y grupos de direcciones IP, etc.
  • Módulo Nova-Conductor El módulo
    Nova-Conductor actúa entre el servicio Nova-Compute y la base de datos, evitando el acceso directo a la base de datos en la nube por parte del servicio Nova-Compute. Se puede escalar horizontalmente. Sin embargo, no lo implemente en el nodo host que ejecuta el servicio Nova-Compute.
  • Servicio Nova- Scheduler
1.接收到一个来自队列的运行虚拟机实例请求,然后决定在哪台计算服务器主机来运行该虚拟机。通过恰当的调度算法从可
用资源池获得一个计算服务。Nova- Scheduler服务将根据负载、内存、可用域的物理距离、CPU构架等信息,并运行调度
算法,最终做出调度决策。
2.最终OpenStack计算模块Nova中的各个组件是以数据库和队列为中心进行通信的

3.6 Red virtual

3.6.1 Resumen

  • Abstracción y gestión de la red física de Capa 2 (comunicación entre LAN y VM)
  • La red física de Capa 2 incluye:
虚拟交换机/网桥
虚拟路由器
Namespace 
DHCP
浮动IP地址

3.6.2 Modelo de red

  • VXLAN de local, plano, VLAN, superposición (la capa interna es de dos físicas y la información de datos se transmite a través del túnel)

3.7 Cinder de almacenamiento en bloque

  • Proporciona una clasificación de todo el ciclo de vida del volumen desde la creación hasta la eliminación.

3.7.1 Función Cinder

  • Proporcionar API REST
  • Programe solicitudes de creación de volúmenes para optimizar razonablemente la asignación de recursos de almacenamiento
  • Admite múltiples métodos de almacenamiento back-end (back-end)

3.7.2 Componentes del servicio principal de Cinder

  • Cinder-api
    Cinder-api se utiliza para aceptar solicitudes de API y enrutarlas a Cinder-Volume para su ejecución.

  • Cinder-Volume
    Cinder-Volume se utiliza para interactuar directamente con el servicio de almacenamiento de bloques y el proceso Cinder-Scheduler.
    También puede interactuar con estos procesos a través de una cola de mensajes.

  • Cinder-Scheduler El
    demonio Cinder-Scheduler selecciona el nodo de almacenamiento óptimo para crear el volumen, y su mecanismo de trabajo es similar al de Nova-Scheduler.

  • Demonio de
    Cinder-Backup El servicio Cinder-Backup proporciona cualquier tipo de volumen de respaldo a un proveedor de almacenamiento de respaldo. Al igual que el servicio Cinder-Volume, interactúa con una variedad de proveedores de almacenamiento bajo la arquitectura de la unidad.

  • cola de mensajes

消息队列作用是在块存储的进程之间路由信息。 Cinder各个子服务通过消息队列实现进程间通信和相互协作。
以创建卷为例, Cinder的工作流程如下:

1.用户向 Cinder-API发送创建卷请求:“帮我创建一个卷“
2.Cinder-API对请求做一些必要处理后,向消息队列发送一条消息:“让Cinder- Scheduler创建一个卷”;
3.Cinder- Scheduler从消息队列获取到消息,然后执行调度算法,从若干存储节点中选出节点A
4.Cinder- Scheduler向消息队列发送一条消息:“让存储节点A创建这个卷”;
5.存储节点A的 Cinder- Volume从消息队列中获取到消息,然后通过卷提供者的驱动创建卷。

3.8 Almacenamiento de objetos rápido

3.8.1 Descripción general de swift

  • Utilice hardware normal para crear un clúster de almacenamiento de objetos distribuidos, escalable y redundante. La capacidad de almacenamiento puede alcanzar el nivel de PB
  • Swift pertenece al almacenamiento de objetos, utilizado para el almacenamiento a largo plazo de datos estáticos permanentes (como duplicación de máquinas virtuales, almacenamiento de imágenes, almacenamiento de correo electrónico y respaldo de archivos)

3.8.2 Características de Swift

  • Durabilidad de datos muy alta (punto único de falla)
  • Arquitectura del sistema completamente simétrica (simple, confiable)
  • Escalabilidad ilimitada

3.8.3 Componentes Swift

代理服务(ProxyServer)                                                            
认证服务(AuthenticationServer)                                                
缓存服务(CacheServer)                                                             
账户服务(AccountServer)                                                                                                                   
复制服务(Replicator)
更新服务(Updater)
容器服务(ContainerServer)                                                           
对象服务(ObjectServer) 
审计服务(Auditor)
账户清理服务(AccountReaper)

3.8.4 Estructura de almacenamiento rápida

  • Objetos
  • Cuentas
  • Contenedores
  • Tmp
  • async_pending
  • en cuarentena

3.9 Extensión

  • OpenStack-ironic bare metal
    En resumen, OpenStack Ironic es un proyecto para la implementación y la instalación de bare metal.
    El llamado bare metal se refiere a una computadora sin un sistema operativo. Desde el metal desnudo hasta la aplicación, también se requieren las siguientes operaciones:
1)硬盘RAID、分区和格式化;
(2)安装操作系统、驱动程序;
(3)安装应用程序。

ronic实现的功能,就是可以很方便的对指定的一台或多台裸机,执行以上一系列的操作。
例如部署大数据群集需要同时部署多台物理机,就可以使用Ironic来实现。Ironic可以实现硬件基础设施资源的快速交付。

para resumir

1.OpenStack 是一系列开源工具(或开源项目)的组合,主要使用池化虚拟资源来构建和管理私有云及公共云。
2.其中的六个项目主要负责处理核心云计算服务,包括计算、网络、存储、身份和镜像服务。
3.还有另外十多个可选项目,用户可把它们捆绑打包,用来创建独特、可部署的云架构。

Supongo que te gusta

Origin blog.csdn.net/weixin_42449832/article/details/112856561
Recomendado
Clasificación