¿Qué es OpenStack? Explicación de OpenStack.
OpenStack es un proyecto para la gestión de plataformas en la nube, no es un software. El proyecto se compone de varios componentes principales diseñados para realizar algunas tareas específicas.
OpenStack es un proyecto de código abierto que proporciona software para construir y gestionar nubes públicas y privadas. OpenStack es reconocido como una interfaz universal para recursos de infraestructura como servicio (es decir, IaaS).
Si aún no entiendes esto, déjame presentártelo desde otro ángulo:
En primer lugar, deja que todos miren las siguientes dos imágenes y será muy simple y claro:
Esta imagen es la interfaz de inicio de sesión de openstack
La siguiente es la interfaz de administración de openstack
De estas dos imágenes, creo que cualquiera con Con cierta experiencia en desarrollo, se puede descubrir qué es Openstack. Se puede decir que es un marco e incluso se puede entender desde la perspectiva del software. Si no lo entiende, puede explicarlo desde la perspectiva del desarrollo tradicional. No sé si conoce oa, erp y otros sistemas. Si no, puede encontrar mucha información en línea. ¿Cuál es la diferencia entre este y oa y erp? En pocas palabras, openstack es una plataforma para la computación en la nube o una solución. Es una parte importante de la computación en la nube.
Existe una comprensión perceptiva en Openstack.
(2) Qué puede hacer OpenStack.
Todo el mundo conoce Alibaba Cloud Platform y Baidu Cloud Platform. Se dice que Alibaba Cloud Platform es un desarrollo secundario de openstack. En cuanto al desarrollo secundario, creo que cualquiera que haya estado expuesto al software comprenderá este concepto. Si no lo entiende, búsquelo en línea. En otras palabras, OpenStack puede construir una plataforma en la nube, cualquier plataforma en la nube, nube pública o nube privada. Ahora Baidu está contratando ingenieros de nube privada, que deberían ser talentos en este campo.
(3) ¿Qué incluye el propio openstack?
Los siguientes son los cinco componentes importantes de OpenStack:
l Nova - Servicio de Computación
l Swift - Servicio de almacenamiento
l Glance - Servicio de duplicación
l Keystone - Servicio de autenticación
l Horizon - Servicio UI
Figura 1 Arquitectura básica de OpenStack
La siguiente figura muestra la interacción entre Keystone y Dashboard y otras partes de OpenStack.
Cada servicio se describe en detalle a continuación:
(i) OpenStack Compute Facilities: Nova Nova es el controlador elástico para OpenStack Compute. Nova manejará y respaldará varias operaciones requeridas en el ciclo de vida de una instancia de nube OpenStack, lo que significa que Nova aparecerá como una plataforma de administración responsable de administrar los recursos informáticos, redes, autorizaciones y métricas para toda la nube. Aunque Nova no proporciona ninguna funcionalidad de virtualización, utilizará la API libvirt para interactuar con el host de la máquina virtual. Nova proporciona interfaces de procesamiento externas a través de API de servicios web que son compatibles con las interfaces de servicios web de Amazon.
Funciones y características
l Gestión del ciclo de vida de las instancias
l Gestión de recursos informáticos
l Gestión de redes y licencias
l API basada en REST
l Comunicación continua asíncrona
l Admite varios hosts: Xen, XenServer/XCP, KVM, UML, VMware vSphere y Hyper-V
p>Componentes informáticos de OpenStack
l Nova elastic cloud consta de los siguientes componentes principales:
l Servidor API (nova-api)
l Mensaje cola (servidor Rabbit-mq)
l Estación de trabajo de operación (nova-compute)
l Controlador de red (nova-network)
l Gestión de volúmenes (nova-compute)
l Volumen)
l Programador (nova-scheduler)
Servidor API (nova-api)
El servidor API proporciona una interfaz para que las instalaciones en la nube interactúen con el mundo exterior.Es la única puerta de entrada para que los usuarios externos implementen la gestión de la nube. Se llama a varias API de EC2 mediante servicios web y luego el servidor de API pasa la solicitud a través de una cola de mensajes a la instalación de destino en la nube para su procesamiento. Como alternativa a la API de EC2, los usuarios también pueden utilizar la API nativa de OpenStack, a la que llamamos "API de OpenStack".
Cola de mensajes (servidor Rabbit MQ)
OpenStack utiliza internamente la cola de mensajes para comunicarse según AMQP (Protocolo avanzado de cola de mensajes). Esta es una forma de llamar asincrónicamente a las respuestas de las solicitudes una vez recibidas. Se activará una devolución de llamada cuando se reciba la solicitud. Debido a que se trata de una comunicación asincrónica, cualquier operación del usuario no esperará. Por ejemplo, si el proceso de iniciar una instancia o cargar una imagen lleva mucho tiempo, la llamada a la API esperará a que regrese el resultado sin interrumpir el resto de la operación. Aquí es donde entra en juego la comunicación asincrónica y hace que todo el sistema funcione mejor. eficiente.
Nova-Compute
La tarea principal de la estación de trabajo informática es gestionar todo el ciclo de vida de la instancia. Reciben solicitudes a través de colas de mensajes y las ejecutan para realizar diversas operaciones en la instancia. En un entorno de producción real típico, se configurarán muchas estaciones de trabajo informáticas. Según el algoritmo de programación, se puede implementar una instancia en cualquier estación de trabajo informática disponible.
Controlador de red (nova-network)
El controlador de red maneja la configuración de red del host, como la asignación de direcciones IP, la configuración de VLAN del proyecto, la configuración de grupos de seguridad y la configuración de redes. para nodos de cálculo.
Volume Workstation (nova-volume)
Volume Workstation administra volúmenes de instancias basados en LVM. Puede crear, eliminar y adjuntar volúmenes a instancias, y también puede separar volúmenes de ellas. instancias. ¿Por qué es tan importante la gestión del volumen? Debido a que proporciona una forma de mantener el almacenamiento persistente para una instancia, por ejemplo, al finalizar la instancia, si la partición raíz no es persistente, se perderán todos los cambios realizados en la partición raíz. Sin embargo, si desconecta un volumen de una instancia o adjunta un volumen a la instancia, los datos permanecen en el volumen incluso si la instancia se cierra. Se puede volver a acceder a estos datos adjuntando el volumen a la instancia original o a una instancia diferente.
Por lo tanto, es importante escribir datos importantes en el volumen para acceder a ellos en el futuro. Esta aplicación es particularmente importante para el almacenamiento de instancias de servidores de datos.
Programador
El programador es responsable de entregar llamadas nova-API a los objetivos. El programador se ejecuta como un demonio llamado "nova-schedule" y selecciona adecuadamente los servidores informáticos del grupo de recursos disponibles según el algoritmo de programación. Hay muchos factores que afectan los resultados de la programación, como la carga, la memoria, la distancia del nodo secundario, la arquitectura de la CPU, etc. El poder del programador nova reside en su arquitectura conectable.
Actualmente, los algoritmos de programación básicos utilizados por el programador nova son los siguientes:
Aleatorización: el host selecciona aleatoriamente los nodos disponibles;
Disponibilidad: similar al azar , simplemente especificando el rango de selección aleatoria;
Simplicidad: cuando se utiliza este método, el host selecciona el nodo con la menor carga para ejecutar la instancia. Los datos de carga se pueden obtener de otros lugares, como servidores de equilibrio de carga.
(2) OpenStack Image Server - GlanceOpenStack Image Server es un sistema de descubrimiento, registro y recuperación de imágenes de máquinas virtuales. Podemos almacenar la imagen en cualquiera de los siguientes almacenamientos:
Archivo local. system (predeterminado)
l OpenStack Object Storage
l S3 Direct Storage
l S3 Object Storage (como canal intermedio para el acceso a S3)
l HTTP (solo lectura)
l OpenStack Image Server (servidor de imágenes OpenStack)
Función de solo lectura)
Funciones y características p>
Proporcionar servicios relacionados con imágenes
Bloques de creación de Glance
l Glance Controller<
l Glance Registrar
(c ) Instalación de almacenamiento OpenStack: Swift
Swift proporciona almacenamiento de objetos virtuales persistente y distribuido para OpenStack, similar al servicio de almacenamiento simple S3 de Amazon Web Service. Con redundancia integrada y administración de conmutación por error, Swift también puede manejar el archivado y la transmisión de medios, lo que lo hace particularmente eficiente al medir grandes datos (gigabytes) y grandes volúmenes (múltiples recuentos de objetos).
Funciones y características
l Almacenamiento de objetos a gran escala
l Almacenamiento de archivos (objetos) a gran escala
l Gestión de redundancia de datos
l p>
l Capacidades de archivo: maneje grandes conjuntos de datos
l Contenedores de datos para máquinas virtuales y aplicaciones en la nube
l Maneje medios de transmisión p>
l Almacenamiento seguro de objetos
l Copia de seguridad y archivo
l Buena escalabilidad
Componentes Swift
l Cuenta Swift
l Contenedor Swift
l Objeto Swift
l Proxy Swift
l Swift RING
Servidor proxy Swift
Los usuarios interactúan con servidores proxy a través de Swift-API, y los servidores proxy son guardianes que reciben solicitudes del mundo exterior, detectan la ubicación de entidades legítimas y enrutan sus solicitudes.
Además, el servidor proxy puede manejar simultáneamente solicitudes de enrutamiento repetidas para entidades de transferencia fallidas.
Servidor de objetos Swift
El servidor de objetos es un almacén binario que maneja 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 para atributos de archivo extendidos (xattr).
Nota: El formato xattr es compatible con ext3/4, Sin embargo, XFS se considera actualmente la mejor opción.
Swift Container Server
El servidor de contenedor enumera todos los objetos en el contenedor. De forma predeterminada, la lista de objetos se almacena como un archivo SQLite (se puede cambiar a MySQL, usado como ejemplo). . El servidor de contenedor también calcula la cantidad de objetos contenidos en el contenedor y el espacio de almacenamiento consumido por el contenedor.
Servidor de cuentas Swift
El servidor de cuentas es similar al servidor de contenedor y enumerará los objetos en el contenedor.
Ring (Anillo de índice)
El contenedor Ring registra la información de ubicación de los objetos de almacenamiento físico en Swift. Es un mapeo virtual de nombres de entidades y ubicaciones de almacenamiento físico reales, similar al. Servicio de índice Uso Se utiliza para buscar y localizar la ubicación física real de entidades en diferentes clústeres. Las llamadas entidades aquí se refieren a cuentas, contenedores y objetos, cada uno de los cuales tiene sus propios Anillos diferentes.
(d) Servicio de autenticación de OpenStack (Keystone)
Keystone proporciona servicios de políticas de acceso y autenticación para todos los componentes de OpenStack, que depende de su propio sistema REST (API de identidad) para ejecutarse. Identity API) funciona el sistema, principalmente (pero no limitado a) autenticación y autorización para Swift, Glance, Nova, etc. De hecho, la autorización se logra verificando la legitimidad de la solicitud del iniciador del mensaje de acción. Como se muestra a continuación:
Keystone utiliza dos métodos de autorización, uno basado en el nombre de usuario/contraseña y el otro basado en el token. Además, Keystone también proporciona los siguientes tres servicios:
l Servicio de token: contiene información de autorización para usuarios autorizados
l Servicio de directorio: contiene una lista de servicios disponibles que los usuarios pueden operar legalmente
p>
l Servicio de políticas: use Keystone para designar específicamente ciertos permisos de acceso para usuarios o grupos
Componente del servicio de autenticación Puntos finales del servicio: como Nova, Swift y Glance, cada uno El servicio OpenStack tiene un puerto especificado y una URL única que llamamos punto final.
l Zona: En un centro de datos, una zona especifica una ubicación física. En una arquitectura de nube típica, los centros de datos o servidores distribuidos también se denominan regiones si no todos los servicios acceden a ellos.
l Usuario: Usuario autorizado por Keystone
Nota del traductor: Una persona que autoriza los servicios como usuario en nombre de OpenStack. Los usuarios tienen credenciales que se pueden asignar a uno o más inquilinos. Después de la autenticación, a cada inquilino se le asigna un token específico. [Fuente: /s/blog_70064f190100undy.html]
l Servicios: En términos generales, cualquier componente conectado o administrado a través de Keystone se denomina servicio. Por ejemplo, podríamos llamar a Glance un servicio de Keystone.
l Roles: Para mantener los calificadores de seguridad, los roles asociados a un usuario específico en la nube son importantes para lo que ese usuario puede hacer.
Nota del traductor: una función es un conjunto de permisos de uso aplicables a un inquilino, que permite a usuarios específicos acceder o utilizar operaciones específicas. Los roles son agrupaciones lógicas de permisos que simplemente agrupan y vinculan permisos comunes a usuarios relevantes para un inquilino determinado.
l Inquilino: Un inquilino se refiere a un proyecto con una entrada de servicio completa para roles de miembros específicos.
Nota del traductor: el arrendamiento se asigna a la "identificación del proyecto" de Nova. En el almacenamiento de objetos, un arrendamiento puede tener varios contenedores. Dependiendo de la instalación, el arrendamiento puede representar un cliente, una cuenta, una organización o un proyecto.
(5) Interfaz web para la gestión de OpenStack - Horizon
Horizon es un panel de control web que se utiliza para gestionar y controlar los servicios de OpenStack. Le permite gestionar instancias, imágenes y crear contraseñas. Pares de claves, agregar volúmenes a instancias, operar contenedores Swift y más. Además, los usuarios pueden acceder a las instancias directamente desde el panel de control mediante la consola o VNC. En resumen, Horizon tiene algunas de las siguientes características:
l Administración de instancias: cree y finalice instancias, vea registros de terminales, conexiones VNC, agregue volúmenes y más.
l Gestión de acceso y seguridad: Crea grupos de seguridad, gestiona pares de claves, establece IP flotantes, etc.
l Preferencias: Puede establecer diferentes preferencias para las plantillas de hardware virtual
l Gestión de imágenes: Editar o eliminar imágenes
l Ver el catálogo de servicios
l Administrar usuarios, cuotas y uso del proyecto
l Administración de usuarios: crear usuarios, etc.
l Administración de volúmenes: crear volúmenes e instantáneas
l Manejo de almacenamiento de objetos: crear y eliminar contenedores y objetos
l Descargar variables de entorno para el proyecto
l Gestión de acceso y seguridad: crear y administrar grupos, pares de claves, configurar IP, etc.
l Gestión de acceso y seguridad: cree y administre grupos, pares de claves, establezca IP, etc.
l Gestión de acceso y seguridad: cree y administre grupos, pares de claves, establezca IP Espera
l