Comprensión integral de openstack, ¿qué es exactamente? ¿Qué está incluido?
(1) Creo que todo el mundo ya entiende la explicación oficial, y no importa si no la entiendes. Ahora déjame explicarte y explicártelo desde la perspectiva del sentido común.
OpenStack es un proyecto de gestión de plataforma en la nube, no es un software. Este proyecto consta de varios componentes principales que se unen para realizar algunas tareas específicas.
OpenStack es un proyecto de código abierto diseñado para proporcionar software para la construcción y gestión de nubes públicas y privadas. OpenStack es reconocido como un front-end universal para recursos de Infraestructura como Servicio (IaaS).
Si aún no entiendes esto, déjame presentártelo desde otra perspectiva:
En primer lugar, te permito mirar las siguientes dos imágenes para hacerlo muy simple. y claro:
Esta imagen muestra la interfaz de inicio de sesión de openstack
La siguiente es una interfaz de administración de openstack
De estas dos imágenes, creo que si Si tienes algo de experiencia en desarrollo, puedes ver qué es OpenStack. Se puede decir que es un marco e incluso se puede entender desde la perspectiva del software. Si no lo entiende, expliquemos desde la perspectiva del desarrollo tradicional. No sé si conoce oa, erp y otros sistemas. Si no lo sabe, puede conectarse y encontrar mucha información. ¿Cuál es la diferencia entre él, oa y erp? Es muy simple: openstack es una plataforma o solución para computación en la nube. Es un componente importante de la computación en la nube.
Lo anterior tiene una comprensión perceptiva de openstack.
(2) Qué puede hacer OpenStack.
Todo el mundo conoce Alibaba Cloud Platform y Baidu Cloud Platform. Según la leyenda, 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 entiendes, compruébalo 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. Los ingenieros de nube privada que Baidu está contratando actualmente deberían ser talentos en esta área.
(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.
La siguiente es una introducción detallada a cada servicio:
(1) Instalación informática OpenStack: Nova Nova es el controlador elástico de la informática OpenStack. Nova procesará y respaldará varias acciones requeridas durante el ciclo de vida de una instancia de nube OpenStack, lo que significa que Nova aparece como una plataforma de administración y es responsable de administrar los recursos informáticos, la red, 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
l Gestión del ciclo de vida de las instancias
l Gestión de recursos informáticos
l Gestión de redes y autorizaciones
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
Componentes informáticos OpenStack
l Nova elastic cloud incluye las siguientes partes principales:
l Servidor API (nova-api)
l Cola de mensajes (conejo -mq server)
l Estación de trabajo informática (nova-compute)
l Controlador de red (nova-network)
l Gestión de volúmenes (nova-volume)
l Programador (nova-scheduler)
Servidor API (nova-api)
El servidor API proporciona una interfaz para que las instalaciones de la nube interactúen con el mundo exterior. Es el único canal para que usuarios externos gestionen la nube. Al utilizar servicios web para llamar a varias API de EC2, el servidor de API entrega 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, a la que llamamos "API de OpenStack".
Cola de mensajes (servidor Rabbit MQ)
OpenStack utiliza internamente colas de mensajes para la comunicación basada en AMQP (Protocolo avanzado de cola de mensajes). Nova realiza una llamada asincrónica a la respuesta de la solicitud y activa una devolución de llamada inmediatamente después de recibir la solicitud. Debido al uso de comunicación asincrónica, ninguna acción del usuario quedará en estado de espera durante mucho tiempo. Por ejemplo, el proceso de iniciar una instancia o cargar una imagen lleva mucho tiempo y la llamada a la API esperará el resultado sin afectar otras operaciones. La comunicación asincrónica juega un papel importante aquí y hace que todo el sistema sea más eficiente.
Estación de trabajo informática (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 la cola 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 nodos de computación. red.
Volume Workstation (nova-volume)
Volume Workstation administra volúmenes de instancias basados en LVM. Puede crear, eliminar y adjuntar volúmenes a una instancia, y también puede separar volúmenes de una. instancia. . ¿Por qué es tan importante la gestión del volumen? Porque proporciona un medio para mantener un almacenamiento persistente de instancias. Por ejemplo, cuando se finaliza una instancia, si la partición raíz no es persistente, se perderán todos los cambios realizados en ella. Sin embargo, si desconecta un volumen de una instancia o adjunta un volumen a la instancia, los datos permanecen en él incluso si la instancia se cierra. Se puede acceder a estos datos nuevamente adjuntando el volumen a la instancia original o a otra instancia.
Por lo tanto, los datos importantes deben escribirse 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 (nova-scheduler)
El programador es responsable de entregar llamadas nova-API al objetivo. El programador se ejecuta como un demonio llamado "nova-schedule" y selecciona adecuadamente los servidores informáticos 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 adopta una arquitectura conectable.
El programador nova actualmente utiliza varios algoritmos de programación básicos:
Aleatorización: el host selecciona aleatoriamente los nodos disponibles
Disponibilidad: similar al azar, solo uno seleccionado al azar; se especifica el rango;
Simplificación: con este enfoque, el host elige el que tiene la menor carga para ejecutar la instancia. Los datos de carga se pueden obtener de otro lugar, como un servidor de equilibrio de carga.
(2) OpenStack Mirror Server: GlanceOpenStack Mirror 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:
Local. sistema de archivos (predeterminado)
l OpenStack Object Storage
l Almacenamiento directo S3
l S3 Object Storage (como canal intermedio para el acceso a S3)
l p>
l HTTP (solo lectura)
Funciones y características
Proporciona servicios relacionados con la duplicación
Componente Glance
l Glance Controller
l Glance Registrar
(3) Instalación de almacenamiento OpenStack: Swift
Swift proporciona un almacenamiento de objetos virtuales persistente y distribuido para OpenStack 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 administración integrada de redundancia y conmutación por error y también puede manejar el archivado y la transmisión de medios, lo que lo hace particularmente eficiente para grandes datos (gigabytes) y grandes volúmenes (múltiples recuentos de objetos).
Funciones y características
l Almacenamiento masivo de objetos
l Almacenamiento de archivos (objetos) de gran tamaño
l Gestión de redundancia de datos
l Capacidades de archivo: procesa grandes conjuntos de datos
l Proporciona contenedores de datos para máquinas virtuales y aplicaciones en la nube
l Procesa medios de streaming
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 el servidor proxy a través de Swift-API. El servidor proxy es el guardián que recibe solicitudes externas. Detecta la ubicación de las entidades legales y enruta sus solicitudes.
Además, el servidor proxy también maneja la duplicación de solicitudes de enrutamiento a la entidad de conmutación por error cuando la entidad falla.
Servidor de objetos Swift
El servidor de objetos es un almacenamiento 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 y tienen 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 existe una prueba efectiva que demuestre que también se puede ejecutar en XFS, JFS, ReiserFS, Reiser4. y ZFS bueno. Sin embargo, XFS se considera la mejor opción actualmente.
Servidor de contenedores Swift
El servidor de contenedores enumerará todos los objetos en un contenedor. La lista de objetos predeterminada se almacenará como un archivo SQLite (Nota del traductor: también se puede modificar a MySQL). , en instalación Solo tome MySQL como ejemplo). El servidor de contenedor también cuenta la cantidad 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 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 del nombre de la entidad de la ubicación de almacenamiento físico real, similar. Servicio de búsqueda y posicionamiento de la ubicación física real de entidades en diferentes clusters. Las llamadas entidades aquí se refieren a cuentas, contenedores y objetos, cada uno de los cuales tiene sus propios Anillos diferentes.
(4) Servicio de autenticación de OpenStack (Keystone)
Keystone proporciona servicios de políticas de acceso y autenticación para todos los componentes de OpenStack. Depende de su propio sistema REST (basado en Identity API) para funcionar. , principalmente autenticación y autorización para (pero no limitado a) Swift, Glance, Nova, etc. De hecho, la autorización autentifica la legitimidad de la solicitud desde la fuente de la acción. Como se muestra en la siguiente figura:
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 proporciona los siguientes tres servicios:
l Servicio de token: contiene información de autorización de usuarios autorizados
l Servicio de directorio: contiene una lista de servicios disponibles para operaciones legales de usuarios
l p>
l Servicio de políticas: use Keystone para especificar ciertos derechos de acceso para usuarios o grupos
Componente del servicio de autenticación
Entrada del servicio: como Nova, Swift y Glance, cada uno Cada OpenStack El servicio tiene un puerto designado y una URL exclusiva, a los que llamamos puntos finales.
l 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 servidores o centros de datos distribuidos, esto también se denomina ubicación.
l Usuario: usuario autorizado de Keystone
Nota del traductor: en nombre de un individuo, OpenStack le autoriza servicios en forma de usuarios. Los usuarios tienen credenciales y pueden asignarse a uno o más inquilinos. Después de la verificación, cada inquilino individual recibe un token específico. [Fuente: /s/blog_70064f190100undy.html]
l Servicios: En términos generales, cualquier componente que se conecte o administre a través de Keystone se denomina servicio. Por ejemplo, podemos llamar a Glance un servicio de Keystone.
l Roles: Para mantener las restricciones de seguridad, los roles asociados con un usuario específico son importantes en términos de qué operaciones puede realizar ese usuario dentro de la nube.
Nota del traductor: una función es un conjunto de permisos de uso que se aplican a un inquilino para permitir que un usuario específico acceda o utilice operaciones específicas. Los roles son agrupaciones lógicas de permisos de uso que permiten agrupar y vincular fácilmente permisos comunes a usuarios asociados con un inquilino determinado.
l Sala de alquiler: una sala de alquiler se refiere a un proyecto con todas las entradas de servicio y roles específicos de los miembros.
Nota del traductor: una sala de alquiler se asigna a un "identificador de proyecto" de Nova. En el almacenamiento de objetos, una sala de alquiler puede tener varios contenedores. Dependiendo de cómo esté instalada, una sala puede representar un cliente, una cuenta, una organización o un proyecto.
(5) Interfaz web para la administración de 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 y crear claves. , agregar volúmenes a instancias, operar contenedores Swift, etc. Además, los usuarios también pueden acceder directamente a la instancia utilizando el terminal (consola) o VNC en el panel de control.
En resumen, Horizon tiene las siguientes características:
l Gestión de instancias: cree y finalice instancias, vea registros de terminal, conexiones VNC, agregue volúmenes, etc.
l Gestión de acceso y seguridad: crear grupos de seguridad, administrar pares de claves, configurar IP flotante, etc.
l Preferencias: puede establecer diferentes preferencias para plantillas de hardware virtual
l Gestión de imágenes: editar o eliminar imágenes
p>l Ver el catálogo de servicios
l Administrar usuarios, cuotas y propósitos del proyecto
l Gestión de usuarios: Crear usuarios, etc.
l Gestión de volúmenes: creación de volúmenes e instantáneas
l Manejo del almacenamiento de objetos: creación, eliminación de contenedores y objetos
l Descarga de variables de entorno para el proyecto