Teoría básica de OpenStack

1. Descripción general de la computación en la nube

1. Concepto

狭义的云计算是指IT基础设施的交付和使用模式
广义的云计算是指服务的交付和使用模式

2. Recursos en la nube

Recursos de red Recursos de
almacenamiento Recursos del
servidor

3. Modelo de servicio de computación en la nube

IaaS (infraestructura como servicio)

提供底层IT基础设施服务,包括处理能力、存储空间、网络资源等
一般面向对象是IT管理人员

PaaS (plataforma como servicio)

把安装好开发环境的 系统平台作为一种服务通过互联网提供给用户
一般面向对象是开发人员

SaaS (software como servicio)

直接通过互联网为用户提供软件和应用程序的服务
一般面向的对象是普通用户

Dos, descripción general de OpenStack

一款云计算模型中的一个项目
NASA和Rackspace合作研发并发起
以Apache许可证授权的自由软件和开放式源代码项目
旨在为公共及私有云的建设与管理提供软件的开源项目
覆盖了网络、虚拟化、操作系统、服务器等各个方面
OpenStack服务

Inserte la descripción de la imagen aquí

Servicio nombre del proyecto descripción
Compute (servicio de computación) Nuevo 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
Red (servicio de 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 Proporciona registro y administración de plantillas de imágenes de máquinas virtuales, copia el sistema operativo preparado como una plantilla de imagen y lo usa directamente al crear una máquina virtual, y admite imágenes multiformato.
Block Storage (servicio de almacenamiento en bloque) Ceniza Responsable de proporcionar dispositivos de almacenamiento rápido duraderos para instancias en ejecución, que se pueden expandir fácilmente, pagar a pedido y admitir una variedad de almacenamiento de back-end
Almacenamiento de objetos (servicio de almacenamiento de objetos) Rápido Proporciona almacenamiento elástico de la nube básica para OpenStack y admite clústeres sin un solo punto de falla.
Telemetría (servicio de medición) Ceilómetro Una fuente centralizada para medir, monitorear y controlar los recursos de datos,

1. Introducción a componentes importantes

Servicio de autenticación OpenStack (Keystone)

  • Keystone proporciona servicios de políticas de autenticación y acceso para todos los componentes de OpenStack. Se basa en su propio sistema REST (basado en API de identidad) para funcionar, principalmente (pero no limitado a) Swift, Glance, Nova, etc. para autenticación y autorización. De hecho, la autorización autentica la legitimidad de la solicitud desde la fuente del mensaje de acción. La siguiente figura muestra el proceso del servicio de autenticación de identidad:
    Inserte la descripción de la imagen aquí
Keystone采用两种授权方式,一种基于用户名/密码,另一种基于令牌(Token)。

除此之外,Keystone提供以下三种服务:
令牌服务:含有授权用户的授权信息
目录服务:含有用户合法操作的可用服务列表
策略服务:利用Keystone具体指定用户或群组某些访问权限

Notas del servicio de autenticación de Keystone:

  • Entrada de servicio: al igual que Nova, Swift y Glance, cada servicio de OpenStack tiene un puerto designado y una URL exclusiva, que llamamos puntos finales.
  • Ubicación: en un centro de datos, una ubicación especifica una ubicación física. En una arquitectura de nube típica, si no todos los servicios acceden a un centro de datos o servidor distribuido, también se denomina ubicación.
  • Usuario: usuario autorizado de Keystone.
      PD: en nombre de un individuo, OpenStack les autoriza servicios en forma de usuarios. El usuario tiene credenciales y puede estar asignado a uno o más inquilinos. Después de la verificación, se proporciona un token específico para cada inquilino individual.
  • Servicio: en general, cualquier componente conectado o administrado a través de Keystone se denomina servicio. Por ejemplo, podemos llamar a Glance un servicio de Keystone.
  • Rol: Para mantener las restricciones de seguridad, en términos de operaciones que un usuario específico puede realizar en la nube, el rol asociado con el usuario es muy importante.
      PD: un rol es un conjunto de permisos de uso que se aplican a un inquilino para permitir que un usuario específico acceda o use una operación específica. Un rol es una agrupación lógica de permisos de uso, que permite que los permisos generales simplemente se agrupen y se vinculen a los usuarios relacionados con un inquilino específico.
  • Habitación de alquiler: una habitación de alquiler se refiere a un proyecto que tiene todas las entradas de servicio y está equipado con roles de miembros específicos.
      PD: Una habitación de alquiler se asigna a un "ID de proyecto" de Nova. En el almacenamiento de objetos, una habitación de alquiler puede tener varios contenedores. Según los diferentes métodos de instalación, una habitación de alquiler puede representar un cliente, una cuenta, una organización o un proyecto.

Instalación informática OpenStack-Nova

  • Nova es un controlador flexible para la informática OpenStack. Las diversas acciones necesarias para la vida de una instancia en la nube de OpenStack serán procesadas y respaldadas por Nova, lo que significa que Nova aparecerá como una plataforma de gestión y es responsable de gestionar los recursos informáticos, las redes, la autorización y la medición de toda la nube. Aunque Nova en sí no proporciona ninguna capacidad virtual, utilizará la API libvirt para interactuar con el host de la máquina virtual. Nova proporciona interfaces de procesamiento externo a través de API de servicios web, y estas interfaces son compatibles con las interfaces de servicios web de Amazon.
    Funciones y características:
实例生命周期管理
计算资源管理
网络与授权管理
基于REST的API
异步连续通信
支持各种宿主:Xen、XenServer/XCP、KVM、UML、VMware vSphere及Hyper-V

Nova Elastic Cloud (componente informático OpenStack) incluye las siguientes partes principales:

  • Servidor API (nova-api)

  • Cola de mensajes (servidor rabbit-mq)

  • Estación de trabajo informática (nova-compute)

  • Controlador de red (nova-network)

  • Gestión de volumen (nova-volume)

  • Explicación detallada del planificador (nova-planificador)
    :

  • 1. Servidor API (nova-api) El
    servidor API proporciona una interfaz para que las instalaciones en la nube interactúen con el mundo exterior. Es el único canal para que los usuarios externos administren la nube. Mediante el uso de servicios web para llamar a varias API de EC2, el servidor de API envía la solicitud a la instalación de destino en la nube para su procesamiento a través de la cola de mensajes. Como alternativa a EC2-api, los usuarios también pueden utilizar la API nativa de OpenStack, que llamamos "API de OpenStack".

  • 2. Cola de mensajes (Rabbit MQ Server)
    OpenStack utiliza la cola de mensajes para la comunicación basada en AMQP (Protocolo de cola de mensajes avanzado). Nova realiza una llamada asincrónica a la respuesta de la solicitud, y cuando se recibe la solicitud, inmediatamente activa una devolución de llamada. Debido al uso de la comunicación asíncrona, ninguna acción del usuario se colocará en un estado de espera durante mucho tiempo. Por ejemplo, el proceso de iniciar una instancia o cargar un espejo lleva mucho tiempo y la llamada a la API esperará el resultado de la devolución sin afectar otras operaciones. Aquí, la comunicación asincrónica juega un papel importante, lo que hace que todo el sistema sea más eficiente.

  • 3. El planificador (nova-planificador) El
    planificador es responsable de entregar las llamadas nova-API al destino. El programador se ejecuta como un demonio llamado "nova-schedule" y selecciona adecuadamente el servidor informático del grupo de recursos disponibles de acuerdo con el algoritmo de programación. Hay muchos factores que pueden afectar los resultados de la programación, como la carga, la memoria, la distancia de los nodos secundarios, la arquitectura de la CPU, etc. Lo poderoso es que el programador nova usa una arquitectura conectable.

En la actualidad, el programador nova utiliza varios algoritmos de programación básicos:

随机化:主机随机选择可用节点;
可用化:与随机相似,只是随机选择的范围被指定;
简单化:应用这种方式,主机选择负载最小者来运行实例。负载数据可以从别处获得,如负载均衡服务器。
  • 4. Estación de trabajo informática (nova-compute)
    La tarea principal de una estación de trabajo informática es gestionar todo el ciclo de vida de una instancia. Reciben solicitudes y las ejecutan a través de la cola de mensajes, por lo que realizan varias operaciones en la instancia. En un entorno de producción real típico, se instalarán muchas estaciones de trabajo informáticas. De acuerdo con el algoritmo de programación, se puede implementar una instancia en cualquier estación de trabajo informática disponible.

  • 5. El controlador de red (nova-network) El
    controlador de red maneja la configuración de red del host, como la asignación de direcciones IP, el proyecto de configuración de VLAN, la configuración de grupos de seguridad y la configuración de la red para nodos informáticos.

  • 6. Estación de trabajo de volumen (nova-volume)
    La administración de la estación de trabajo de volumen se basa en volúmenes de instancia LVM. Puede crear, eliminar y adjuntar volúmenes para una instancia, y también puede desconectar volúmenes de una instancia. ¿Por qué es tan importante la gestión de volúmenes? Debido a que proporciona un medio para mantener el almacenamiento persistente de una instancia, por ejemplo, cuando se termina una instancia, si la partición raíz no es persistente, se perderán los cambios que se realicen en ella. Sin embargo, si separa el volumen de una instancia o adjunta un volumen a esta instancia, los datos aún se almacenarán incluso si la instancia se cierra. Se puede volver a acceder a estos datos adjuntando el volumen a la instancia original u otras instancias.

Servidor de imágenes OpenStack: Vistazo

  • El servidor de imágenes OpenStack es un sistema para descubrir, registrar y recuperar imágenes de máquinas virtuales. Podemos almacenar imágenes en cualquiera de los siguientes almacenamientos:
本地文件系统(默认)
S3直接存储
S3对象存储(作为S3访问的中间渠道)
OpenStack对象存储等等。

Funciones y características:

提供镜像相关服务。

Componentes de un vistazo:

  • Glance-API:
      Principalmente responsable de recibir solicitudes de Restful en respuesta a comandos de administración de espejos, analizar la información de solicitud de mensajes y distribuir los comandos que lleva (como agregar, eliminar, actualizar, etc.). El puerto de enlace predeterminado es 9292.
  • Glance-Registry:
      Principalmente responsable de recibir solicitudes de Restful en respuesta a comandos de metadatos espejo. Analice la información de la solicitud del mensaje y distribuya los comandos que lleva (como obtener metadatos, actualizar metadatos, etc.). El puerto vinculado predeterminado es 9191.

Instalación de almacenamiento OpenStack-Swift

  • Swift proporciona un almacenamiento de objetos virtuales distribuido y continuo para OpenStack, que es similar al servicio de almacenamiento simple S3 de Amazon Web Service. Swift tiene la capacidad de almacenar cientos de objetos en nodos. Swift tiene una gestión integrada de redundancia y conmutación por error, y también puede gestionar el archivado y los flujos de medios, especialmente para la medición de grandes datos (gigabytes) y gran capacidad (varios objetos).
    funciones y características rápidas:
海量对象存储
大文件(对象)存储
数据冗余管理
归档能力-----处理大数据集
为虚拟机和云应用提供数据容器
处理流媒体
对象安全存储
备份与归档
良好的可伸缩性

Componentes rápidos

Swift账户
Swift容器
Swift对象
Swift代理
Swift RING

Servidor proxy rápido

  • Los usuarios interactúan con el servidor proxy a través de Swift-API. El servidor proxy es el guardia que recibe las solicitudes externas. Detecta la ubicación de las personas jurídicas y enruta sus solicitudes.
  • Además, el servidor proxy también maneja la solicitud de enrutamiento repetida de la entidad de conmutación por error cuando la entidad falla y se transfiere.

Servidor de objetos Swift

  • El servidor de objetos es un tipo de almacenamiento binario, que se encarga de procesar el almacenamiento, la recuperación y la eliminación de datos de objetos en el almacenamiento local. Los objetos son archivos binarios típicos almacenados en el sistema de archivos, con metadatos (xattr) con atributos de archivo extendidos.

  • Nota: El formato xattr es compatible con ext3 / 4, XFS, Btrfs, JFS y ReiserFS en Linux, pero no hay una prueba válida que demuestre que también puede funcionar bien en XFS, JFS, ReiserFS, Reiser4 y ZFS. Sin embargo, XFS se considera la mejor opción actualmente.
    Servidor de contenedores Swift

  • El servidor de contenedor enumerará todos los objetos en un contenedor, y la lista de objetos predeterminada se almacenará como un archivo SQLite (Nota del traductor: también se puede modificar a MySQL, MySQL se usa como ejemplo durante la instalación). El servidor de contenedores también cuenta el número de objetos contenidos en el contenedor y el consumo de espacio de almacenamiento del contenedor.
    Servidor de cuentas Swift

  • El servidor de cuentas es similar al servidor de contenedores en el sentido de que enumerará los objetos en el contenedor.
    Anillo (anillo índice)

  • El contenedor Ring registra la información de ubicación de los objetos de almacenamiento físico en Swift. Es un mapeo virtual del nombre de la entidad de la ubicación de almacenamiento físico real, similar a un servicio de índice que encuentra y localiza la ubicación física real de entidades en diferentes clústeres. Las llamadas entidades aquí se refieren a cuentas, contenedores y objetos, todos los cuales tienen sus propios anillos diferentes.

Interfaz web de gestión OpenStack ---- Horizon

  • Horizon es un panel de control web que se utiliza para administrar y controlar los servicios de OpenStack. Puede administrar instancias, imágenes, crear pares de claves, agregar volúmenes a las instancias y operar contenedores Swift. Además, los usuarios también pueden utilizar la terminal (consola) o VNC para acceder directamente a la instancia en el panel de control.
    En resumen, Horizon tiene las siguientes características:
实例管理:创建、终止实例,查看终端日志,VNC连接,添加卷等
访问与安全管理:创建安全群组,管理密匙对,设置浮动IP等
偏好设定:对虚拟硬件模板可以进行不同偏好设定
镜像管理:编辑或删除镜像
查看服务目录
管理用户、配额及项目用途
用户管理:创建用户等
卷管理:创建卷和快照
对象存储处理:创建、删除容器和对象
为项目下载环境变量

2. Diagrama de estructura de red de la pila abierta

Inserte la descripción de la imagen aquí

Todo el OpenStack está compuesto por nodos de control, nodos informáticos, nodos de red y nodos de almacenamiento. (Estos cuatro nodos también se pueden instalar en una máquina y desplegar en una sola máquina)
Entre ellos: el
nodo de control es responsable del control de los nodos restantes, incluido el establecimiento de la máquina virtual, la migración, la asignación de red, la asignación de almacenamiento, etc.
El nodo de computación es responsable de la operación de la máquina virtual
nodo de red Responsable de la comunicación entre la red externa y la red interna, el
nodo de almacenamiento es responsable de la gestión de almacenamiento adicional de la máquina virtual, etc.

Arquitectura del nodo de control:

El nodo de control incluye los siguientes servicios

  • Servicios de apoyo a la gestión
  • Servicios de gestión básica
  • Servicios de administración extendidos
    1. Los servicios de soporte de administración incluyen dos servicios, MySQL y Qpid
  • MySQL: la base de datos se utiliza como un lugar para almacenar datos generados por servicios básicos / extendidos
  • Qpid: Message Broker (también conocido como middleware de mensajes) proporciona un servicio de comunicación de mensajes unificado entre otros servicios.
    2. Los servicios de administración básicos incluyen cinco servicios: Keystone, Glance, Nova, Neutron y Horizon
  • Keystone: Servicio de gestión de autenticación, que proporciona información de autenticación / gestión de tokens, creación, modificación, etc. de todos los demás componentes, utilizando MySQL como base de datos unificada.
  • Vistazo: servicio de administración de imágenes, que brinda administración de imágenes que se pueden proporcionar durante la implementación de la máquina virtual, incluida la importación de imágenes, el formato y la producción de las plantillas correspondientes.
  • Nova: servicio de gestión informática, que proporciona gestión Nova de nodos informáticos y utiliza Nova-API para la comunicación.
  • Neutron: servicio de administración de red, que proporciona administración de topología de red de nodos de red y también proporciona un panel de administración de Neutron en Horizon.
  • Horizon: servicio de consola, que brinda administración de todos los servicios de todos los nodos en forma de Web. Este servicio generalmente se llama DashBoard
    . 3. El servicio de administración extendido incluye cinco servicios: Cinder, Swift, Trove, Heat y Centimeter.
  • Cinder: proporciona administración de nodos de almacenamiento relacionada con Cinder, así como el panel de administración de Cinder en Horizon.
  • Swift: proporciona administración de nodos de almacenamiento relacionada con Swift, así como el panel de administración de Swift en Horizon
  • Trove: proporcione Trove relacionado con la administración de los nodos de la base de datos y proporcione el panel de administración de Trove en Horizon
  • Calor: proporciona operaciones básicas como la inicialización de recursos en el entorno de la nube, el procesamiento de dependencias y la implementación basada en plantillas, así como funciones avanzadas como la reducción automática y el equilibrio de carga.
  • Centímetro: proporciona monitoreo de recursos físicos y recursos virtuales, registra estos datos, analiza los datos y activa las acciones correspondientes bajo ciertas condiciones. Los
    nodos de control generalmente solo necesitan un puerto de red para la comunicación / administración de cada nodo

Arquitectura de nodo de red

El nodo de red solo contiene servicios de Neutron

  • Neutron: Responsable de gestionar la comunicación entre el segmento de red privada y el segmento de red pública, así como gestionar la comunicación / topología entre la red de la máquina virtual, gestionar la protección contra incendios en la máquina virtual, etc. El
    nodo de red contiene tres puertos de red .
  • eth0: utilizado para comunicarse con el nodo de control
  • eth1: se utiliza para la comunicación con nodos informáticos / de almacenamiento distintos del nodo de control
  • eth2: utilizado para la comunicación entre una máquina virtual externa y la red correspondiente

Computar la arquitectura del nodo

El nodo de computación incluye tres servicios: Nova, Neutron y Telemeter
1. Servicios básicos

  • Nova: proporciona creación, operación, migración, instantáneas y otros servicios de máquinas virtuales alrededor de las máquinas virtuales, y proporciona API para interactuar con los nodos de control, y el nodo de control emite tareas.
    Neutron: proporciona servicios de comunicación entre los nodos informáticos y los nodos de red.

2. Servicio ampliado

  • Telmeter: proporciona un agente de monitoreo para los nodos informáticos y retroalimenta el estado de las máquinas virtuales al nodo de control. Es un servicio de agente de Centímetro

El nodo de cálculo contiene al menos dos puertos de red

  • eth0: comunicarse con el nodo de control y los nodos controlados se implementan de manera uniforme
  • eth1: comunicarse con los nodos de red y los nodos de almacenamiento

Arquitectura del nodo de almacenamiento

Los nodos de almacenamiento incluyen Cinder, Swift y otros servicios

  • Cinder: Servicio de almacenamiento en bloque, que proporciona el almacenamiento en bloque correspondiente. En pocas palabras, es un disco virtual que se puede montar en la máquina virtual correspondiente sin verse afectado por el sistema de archivos y otros factores. Para las máquinas virtuales, esta operación es, por ejemplo, una Se puede agregar un nuevo disco duro, que puede completar cualquier operación en el disco, incluido el montaje, desmontaje, formateo, conversión del sistema de archivos, etc., la mayoría de los cuales se utilizan para la expansión del espacio cuando el espacio de la máquina virtual es insuficiente, etc.
  • Swift: servicio de almacenamiento de objetos, que proporciona el almacenamiento de objetos correspondiente. En pocas palabras, es un espacio de disco virtual donde se pueden almacenar archivos, y solo se pueden almacenar archivos en este espacio. No se permite el formato ni la conversión del sistema de archivos. La mayoría de ellos son El nodo de almacenamiento de archivos / disco en la nube usado
    contiene al menos dos interfaces de red
  • eth0: comunicarse con el nodo de control, aceptar la tarea del nodo de control e implementar el nodo controlado de manera uniforme
  • eth1: comunicarse con los nodos informáticos / de red para completar varias tareas emitidas por el nodo de control

Supongo que te gusta

Origin blog.csdn.net/weixin_45647891/article/details/113098299
Recomendado
Clasificación