Red de conocimiento informático - Aprendizaje de programación - ¿Qué es OpenStack? Explicación de OpenStack.

¿Qué es OpenStack? Explicación de OpenStack.

Explica e ilustra.

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

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

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

上篇: Explicación detallada del código fuente de okhttp¡Todo es difícil al principio! Muchas personas son impacientes pero lentas, incapaces de encontrar una salida para sus avances y, a menudo, caen en la ansiedad. Pero mientras des el primer paso, estarás a medio camino. No importa en qué campo se encuentre, debe prestar atención a los métodos de aprendizaje sistemáticos. Todo el contenido relacionado con Android se divide en 8 módulos y 729 puntos de conocimiento, que cubren el conocimiento más importante de todos los fabricantes de Internet y los puntos tecnológicos más vanguardistas de la industria. ¡Aprender estos ocho módulos significa que básicamente dominas todos los puntos de conocimiento del desarrollo de Android! ! (Si tiene dificultades para encontrar el método avanzado, puede hacer clic para guardar esta nota. O hacer clic en la tarjeta a continuación para obtener la versión completa del pdf) Tabla de contenido 1. Habilidades esenciales para que los arquitectos construyan cimientos 1. Obtenga más información sobre Java Genéricos 2. Explicado en términos simples. Programación concurrente 4. Principios de serialización y transmisión de datos 5. Máquina virtual Java 6. Efficient IO 2, análisis del código fuente del marco Android Top 100 1. Análisis de fuentes de Transformación 2.0 2. Análisis del código fuente Okhttp3 3. Análisis de fuentes de ButterKnife 4. Análisis de la fuente Mpandroidhart 5. Análisis de las fuentes de declive 6. Análisis de la fuente del canal de fuga 7. Análisis del código fuente del cargador de imágenes universal 8. Análisis del código fuente de EventB Us3.0 9.zxing análisis del código fuente 10. Análisis del código fuente de Picasso 11. Explicación detallada del uso de LottieAndroid y análisis del código fuente 12. Análisis del código fuente de Fresco: proceso de carga de imágenes 3, análisis de optimización del rendimiento de Android 1. Tencent Bugly: cierta comprensión de los algoritmos de coincidencia de cadenas 2. iQIYI: solución de captura de fallas de aplicaciones de Android-XCRASH 3. ByteDance: comprenda en profundidad uno de los marcos de Gradle: complementos, extensiones y construcción. Tecnología Baidu APP: primera práctica de optimización de pantalla de AndroidH5. Análisis de la arquitectura del cliente Alipay: recolección de basura optimizada para la velocidad de inicio del cliente Android. Ctrip: práctica de arquitectura de componentes del proyecto Zhixing de Android. NetEase News Optimización de la construcción: ¿Cómo hacer que la velocidad de su construcción sea "tan rápida como un rayo"? 4. Combate avanzado mejorado de Kotlin 1. Tutorial de introducción a Kotlin 2. Guía práctica de Kotlin para evitar pozos 3. Proyecto práctico "Kotlin Jetpack Practical Combat" ¿Cuál es la experiencia de escribir guiones de Gradle en Kotlin a partir de una demostración que adora al gran dios? Programación de Kotlin triple reino Funciones de alto orden de Kotlin Genéricos de Kotlin Extensión de Kotlin Concurrencia delegada de Kotlin Habilidades de depuración "desconocidas" Concurrencia de gráficos: suspender V, marco de código abierto de interfaz de usuario avanzada de Android descifrado avanzado 1. Utilice el diseño SmartRefresh 2. Análisis del código fuente del control de actualización desplegable de Android 3. Uso básico de Android: biblioteca de actualización desplegable 4. Marco de gestión de páginas de comentarios de carga eficiente y fácil de usar 5. Carga universal de Android. Descripción detallada del marco de carga de vistas 6. MPAndroidChart implementa LineChart 7. guía del usuario de hellocharts-android 8. Guía del usuario de Smart Desk 9. Introducción al proyecto de código abierto android-uitableview 10. Guía del usuario de ExcelPanel 11. y análisis en profundidad del proyecto de código abierto Roid SlidingMenu 12. Guía del usuario del cajón de materiales VI. Desarrollo del módulo NDK 1. Desarrollo del módulo NDK 2. JNI módulo 3. Herramientas de desarrollo nativas 4. Programación Linux. Procesamiento de imágenes de bajo nivel6. Desarrollo de audio y vídeo. Ciencia de las máquinas 7. Tecnología avanzada de tramado1. Descripción general del desarrollo multiplataforma de Flutter 2. Construcción del entorno de desarrollo de flutter. Windows 3. Escribiendo tu primera aplicación Flutter 4. Construyendo y depurando el entorno de desarrollo Flutter 5. Capítulo de gramática de Dart Gramática básica (1) 6. Análisis de uso y fuente de la colección de artículos gramaticales de DART (2) 7. Establecer la función del operador y el análisis del código fuente 7. Artículos de gramática de Dart (3) 8. Desarrollo del subprograma WeChat 1. Descripción general e introducción del mini programa 2. Desarrollo de UI de mini programa 3. Operación API 4. Debido a la gran cantidad de artículos sobre la lucha real de los proyectos de centros comerciales, el espacio es limitado y los materiales se han compilado en documentos PDF. 下篇: El uso de GitLab (1): una breve discusión sobre las diferencias entre git, github y gitlab