Universidad de Correos y Telecomunicaciones de Nanjing-Tecnología de Computación en la Nube y Examen Final de Big Data (Resumen de los Puntos de Conocimiento 1)

1. Panorama general de la tecnología de la computación en nube

1. El origen y las características técnicas de la computación en nube

1.1 Definición de computación en la nube

● La computación en la nube es una plataforma de computación virtualizada y de alta disponibilidad con un grupo de recursos dinámicos, que toma prestado el concepto de "Nube de electrones" de la física cuántica, enfatizando las características de distribución difusa y ubicua del procesamiento de información.
● Las tareas de computación se distribuyen en un gran número. En el grupo de recursos formado por los nodos informáticos, varios sistemas de aplicaciones pueden obtener potencia informática, espacio de almacenamiento y servicios de datos a pedido.

1.2 Características técnicas de la computación en la nube

● La infraestructura de hardware se basa en un clúster de servidores económicos a gran escala.
● Las aplicaciones y los servicios subyacentes se desarrollan en colaboración para maximizar el uso de recursos.
● La redundancia de múltiples servidores baratos hace que el sistema sea altamente disponible.

[Tencent Cloud posee millones de servidores, decenas de millones de discos duros tienen una tasa de falla de disco anual del 2% y cientos de discos duros fallan todos los días]

1.3 Arquitectura del sistema de computación en la nube

Inserte la descripción de la imagen aquí

1.4 Ecología de Internet con la nube como núcleo

Inserte la descripción de la imagen aquí

1.5 Ciudad inteligente con la nube como núcleo

Inserte la descripción de la imagen aquí

1.6 Niveles y tipos de computación en la nube

Inserte la descripción de la imagen aquí

1.7 Ventajas de la tecnología de computación en la nube

Virtualización, computación paralela, distribuida, almacenamiento masivo,
aplicaciones de escritorio, programación de recursos, seguridad

2. Centro de datos de computación en la nube a gran escala

2.1 Definición de centro de datos

● Wikipedia: un centro de datos es un conjunto complejo de instalaciones. No solo incluye sistemas informáticos y otros equipos de apoyo (como sistemas de comunicación y almacenamiento), sino que también incluye conexiones de comunicación de datos redundantes, equipos de control ambiental, equipos de monitoreo y varios dispositivos de seguridad.

3. Computación en la nube y otras tecnologías populares

3.1 Computación en la nube y virtualización

● Definición de
virtualización de Wikipedia . La virtualización es un método abstracto de representar los recursos informáticos. A través de la virtualización, se puede acceder
a los recursos abstraídos de la misma manera que a los recursos antes de la abstracción. El método abstracto de este tipo de recurso no está restringido por la realización, la ubicación geográfica o la configuración física de los recursos subyacentes
. El significado de tres capas de la
virtualización. El objeto de la virtualización es una variedad de recursos
. Los recursos lógicos después de la virtualización están ocultos a los usuarios. Detalles innecesarios
Los usuarios pueden implementar sus funciones en el entorno real en el entorno virtual

Tipo de
virtualización
Virtualización de red ● Virtualización de almacenamiento ● Virtualización de
escritorio ● Virtualización de
servidor ● Virtualización de
sistema
● Otros
(1) Virtualización de
sistema ● Virtualización de sistema: Utilice software de virtualización para virtualizar uno en una máquina física O varias máquinas virtuales (máquina virtual, VM)
● El entorno operativo virtual debe proporcionar un entorno de hardware virtual para la máquina virtual que se ejecuta en él, incluida la CPU virtual, memoria, dispositivos de E / S e interfaces de red
(2) Virtualización del servidor La virtualización del
servidor es la aplicación de la virtualización del sistema al servidor, la
integración del servidor y luego virtualizar una cantidad de servidores de acuerdo con la demanda
(3) Virtualización del
escritorio La virtualización del escritorio desacopla el entorno de escritorio del usuario del equipo terminal utilizado
● Ventajas: la virtualización de escritorio, los recursos de datos del terminal original e incluso el sistema operativo se transfieren al servidor en el centro de datos de back-end, y el terminal de front-end se transforma en un cliente liviano orientado a la pantalla y asistido por computación

3.2 Computación en la nube y Big Data

● La computación en la nube es una relación de apoyo para los macrodatos.
● La computación en la nube enfatiza las capacidades de computación y almacenamiento.
● Los macrodatos requieren la capacidad de manejar grandes datos
(adquisición, limpieza, conversión, almacenamiento, análisis, estadísticas, etc.)

3.3 Computación en la nube y blockchain

● La esencia de la cadena de bloques es una base de datos distribuida que no se puede manipular en una red de igual a igual. La cadena de bloques
utiliza un cierto algoritmo de consenso para garantizar la coherencia de los datos entre los nodos y utiliza un algoritmo de cifrado para garantizar la seguridad de los datos. Al mismo tiempo, utiliza marcas de tiempo y Hash El valor forma una estructura de cadena de extremo a extremo, creando un conjunto de sistemas técnicos abiertos, transparentes, verificables, no manipulables y rastreables
● Características de la tecnología Blockchain: transacciones globales a gran escala, alto rendimiento, alta latencia El mecanismo requiere el soporte de varios nodos en el centro de datos, lo que dispersa la probabilidad de tiempo de inactividad a gran escala.
Las ventajas de los proveedores de servicios en la nube al proporcionar tecnología blockchain se encuentran principalmente en tres aspectos: rentabilidad, ecología de la aplicación y seguridad y privacidad.
● Combinando con proveedores de servicios en la nube , La tecnología Blockchain se puede integrar, empaquetar y entregar, sentando
las bases para el aterrizaje de aplicaciones

3.4 Computación en la nube y defensa antivirus

Computación en la nube y defensa contra virus
● La idea básica de seguridad en la nube: muchos para uno / muchos
● Utilice sondas del lado del cliente para recolectar muestras
● Cuantos más clientes, más confiable será el análisis de seguridad basado en las muestras recolectadas, más confiable será la respuesta del virus y más oportuna
● Tamaño pequeño , detección y eliminación Virus más fuerte

4. Importante plataforma comercial de computación en la nube

4.1 Computación en la nube de Google

1 Google File System GFS (debe leer el artículo)
Inserte la descripción de la imagen aquí

2 Procesamiento de datos distribuidos MapReduce (lectura requerida)
● Función de mapa: realiza operaciones específicas en los datos originales. Cada operación de mapa es para datos originales diferentes.
Mapa y mapa son independientes entre sí y se pueden paralelizar completamente
● Operación de reducción: para cada Los resultados intermedios generados por el Mapa se fusionan. Los resultados intermedios del Mapa procesados ​​por cada Reducción
no se cruzan. Los resultados finales generados por todas las Reducciones simplemente se fusionan para formar un conjunto de resultados completo.

3 Tabla de datos estructurados distribuidos Bigtable (debe leerse)
4 Servicio de bloqueo distribuido Chubby
5 Sistema de almacenamiento distribuido Megastore
6 Arquitectura de monitoreo de sistema distribuido a gran escala Dapper
7 Herramienta de análisis interactivo de datos masivos Dremel
8 Sistema de análisis de big data de memoria PowerDrill
9 Motor de aplicaciones de Google

4.2 Computación en la nube de Amazon

● Amazon S3 es un servicio de almacenamiento de objetos que proporciona escalabilidad, disponibilidad de datos, seguridad y rendimiento líderes en la industria.
● Clientes de todos los tamaños e industrias pueden usarlo para almacenar y proteger varios casos de uso (como sitios web, aplicaciones móviles).
aplicaciones, copia de seguridad y restauración, archivo, aplicaciones empresariales, equipos de loT y análisis de big data) de cualquier
cantidad de datos

5. Plataforma representativa de computación en la nube de código abierto

● Hadoop: implementación de código abierto de computación en la nube de Google
● OpenStack: gestión de la plataforma en la nube del proyecto, I + D colaborativo entre NASA y Rackspace
● Eucalyptus: implementación de código abierto de computación en la nube de Amazon
● Cassandra: una combinación de la tecnología de distribución Dynamo y el modelo de datos BigTable de Google, un alto
grado de Sistema de almacenamiento de clave-valor estructurado, escalable, eventualmente consistente y distribuido.
Enomaly ECP: proporciona un marco de computación en la nube similar a
EC2 Nimbus: basado en el middleware de grid Globus, proporciona funciones e interfaces similares a EC2

2. Sistema operativo en la nube OpenStack

2.1 Introducción a OpenStack

OpenStack es el proyecto de gestión de plataforma en la nube de código abierto más popular en la actualidad. Muchas empresas y organizaciones usan OpenStack para respaldar la implementación rápida de sus nuevos productos, reducir costos y actualizar sus sistemas internos. Y los proveedores de servicios utilizan OpenStack para proporcionar a los clientes recursos de infraestructura en la nube confiables y de fácil acceso.
Visión: Brindar a todos los proveedores de nube pública y privada una plataforma de computación en la nube de código abierto que pueda satisfacer cualquiera de sus necesidades, sea fácil de implementar y se pueda escalar a gran escala.

2.2 Introducción a los componentes de OpenStack

(1) Nova

● Nova es el nombre en código del servicio informático y uno de los primeros componentes de OpenStack; administra los recursos informáticos de OpenStack.
● Se puede decir que Nova es un conjunto de programas de gestión de virtualización. Nova puede crear, eliminar máquinas virtuales, reiniciar máquinas virtuales, etc. La razón por la que Openstack puede construir una plataforma en la nube es también porque puede crear máquinas virtuales.

● Nova-API proporciona interfaces estandarizadas externas unificadas. Acepta y responde a las solicitudes de la API de Compute del usuario final y también se da cuenta de la comunicación con otros módulos lógicos de Openstack.
● Nova-conductor
antes de la versión G, nova-compute interactúa directamente con la base de datos, lo que causará problemas de seguridad, después de la versión G, nova-conductor actúa como agente

● Nova-Scheduler
seleccionará un nodo informático del grupo de recursos informáticos de acuerdo con un determinado algoritmo para iniciar una nueva instancia de VM (utilizando múltiples filtros o programación de algoritmos).

● Nova-volume
generalmente se ejecuta en nodos de almacenamiento (similar al rol del Agente) y principalmente realiza funciones relacionadas con el volumen, como crear volúmenes, vincular volúmenes para máquinas virtuales o desvincular volúmenes.

(2) RabbitMQ

● Los módulos de software OpenStack realizan la comunicación de información a través del protocolo AMQP. En OpenStack, cada
servicio interactúa a través de mensajes.
● RabbitMQ es un patrón arquitectónico que maneja la verificación de mensajes, la conversión de mensajes y el enrutamiento de mensajes. Coordina
la comunicación de información entre aplicaciones, minimiza la conciencia mutua entre aplicaciones o módulos de software y realiza efectivamente el desacoplamiento.
● RabbitMQ es adecuado para la implementación en un entorno de sistema a gran escala con topología flexible y fácil expansión, lo que garantiza de manera efectiva la puntualidad de la comunicación de mensajes entre diferentes módulos, diferentes nodos y diferentes procesos; además, la capacidad única de aseguramiento de seguridad de alta disponibilidad del clúster de RabbitMQ puede realizar el centro de información. Al mismo tiempo, un solo nodo tiene la capacidad de recuperación de mensajes. Cuando el proceso del sistema falla o el nodo está inactivo, la cola de mensajes que está procesando RabbitMQ no se perderá. Una vez que el nodo se reinicia, la comunicación se puede restaurar a tiempo de acuerdo con los datos de estado y los datos de información de la cola de mensajes .

(3) Vistazo

● Glance es un servicio de imágenes de OpenStack que se utiliza para registrar, iniciar sesión y recuperar imágenes de máquinas virtuales. El servicio Glance proporciona una RESTAPI que permite a los usuarios consultar metadatos de imágenes de máquinas virtuales y recuperar la imagen real.
● La imagen de la máquina virtual proporcionada por el servicio de imágenes se puede almacenar en diferentes ubicaciones, desde el almacenamiento de objetos del sistema de archivos simple hasta sistemas de almacenamiento de objetos OpenStack similares.
Función de vistazo
● Registro y consulta de espejo
● Control de acceso basado en roles
● Admite múltiples formatos de imagen (raw, qcow2)
Admite múltiples tipos de almacenamiento (S3, Swift, Sistema de archivos, etc.)

(4) Rápido

Características:
➢ Almacenamiento de objetos
confiable ➢ Sin punto único de falla
➢ Admite API S3
➢ Almacenamiento seguro de objetos
masivos ➢ Almacenamiento de archivos
grande ➢ Administración de redundancia de datos

Swift resuelve principalmente el problema.
El almacenamiento de objetos supera las deficiencias de NAS (escasa escalabilidad) y SAN (no es fácil compartir datos de forma segura), y combina
las ventajas de ambos, a saber: acceso directo de alta velocidad simultáneo a SAN y uso compartido de datos de NAS, etc. Ventajas,
proporcionar una arquitectura de almacenamiento con alto rendimiento, alta confiabilidad, multiplataforma y uso compartido seguro de datos.
➢ Almacenamiento de archivos de gran tamaño
➢ Gestión de la redundancia de datos
● No es un sistema de archivos. swift usa la API REST en lugar de los
comandos tradicionales de operación de archivos , como abrir (), leer (), escribir (), buscar () y cerrar ().
● No es compatible con "bloqueo de archivos"
● No hay directorio de archivos Estructura
● No es una base de datos. Swift usa el concepto de objeto de contenedor de cuenta para almacenar objetos, que pueden
enumerar los objetos en el contenedor especificado.
● No se puede usar como dispositivo de bloque para máquinas virtuales.

Uso de Swift
● Como servicio de almacenamiento de laaS ● Conéctese
con OpenStack Compute para almacenar imágenes para él
● Almacenamiento de documentos
Almacene datos que deben almacenarse durante mucho tiempo, como
imágenes de sitios web de almacenamiento de registros , miniaturas
para enumerar objetos en un contenedor específico
● No se puede usar como dispositivo de bloque Proporcionado a máquinas virtuales

La diferencia entre Swift y HDFS
● HDFS utiliza un sistema central para mantener los metadatos del archivo (NameNode), mientras que en Swift, los metadatos
se distribuyen y replican en los clústeres.
● Swift considera la tenencia múltiple al diseñar, y HDFS no tiene el concepto de tenencia múltiple.
● HDFS está optimizado para archivos grandes y Swift está diseñado para almacenar archivos de cualquier tamaño.
● Los archivos en HDFS se escriben una vez y solo se
puede escribir un archivo a la vez, mientras que en Swift, los archivos se pueden escribir varias veces. En un entorno de operación simultánea, prevalecerá la operación más reciente.
● HDFS está escrito en Java, mientras que Swift está escrito en Python.

(5) Ceniza

● Módulo de almacenamiento en bloque Cinder (BlockStorage), que proporciona volúmenes de almacenamiento en bloque permanentes para máquinas virtuales y administra la creación, montaje y desmontaje de dispositivos de bloque en máquinas virtuales.
● La expansión de la demanda de volumen nova es un servicio de almacenamiento en bloque centralizado separado de Nova. Cinder es para aumentar el espacio de almacenamiento de la máquina virtual.
● La arquitectura del componente Cinder es una copia de imagen reflejada de la arquitectura de Nova.

La diferencia entre Cinder y Swift
Cinder es un almacenamiento en bloque, que se utiliza para adjuntar un disco duro extendido a una máquina virtual, que consiste en adjuntar el volumen creado por Cinder a la máquina virtual. Cinder
es una parte de la función de almacenamiento en bloque persistente (Nova-Volume) previamente en Nova separada de OpenStack a la versión F, independientemente como un nuevo componente Cinder ● swift es un sistema que se puede cargar y descargar, y generalmente se almacena en él Es el contenido que no se modifica con frecuencia, como para almacenar imágenes de VM, copias de seguridad y archivos, y archivos más pequeños, como fotos y mensajes de correo electrónico. Más inclinado a la gestión sistemática.

(6) Neutrón

● Neutron es uno de los proyectos centrales de OpenStack, que proporciona funciones de red virtual en el entorno de computación en la nube.
● En la primera versión de OpenStack (antes de la versión de Folsom), no hay ningún
componente Neutron / Quantum, y las funciones de red se implementan en Nova, es decir, nova-network, que proporciona un modo puente de Linux simple y una red VLAN. estructura.
● Con la creciente demanda de OpenStack, las funciones de nova-network no pueden cumplir con este requisito, por lo que Neutron nació.
● Utilizando componentes de Neutron, se pueden crear una o
más redes privadas para el proyecto en OpenStack Estas redes están lógicamente aisladas de las redes de otros usuarios, incluso si diferentes redes privadas están aisladas en un proyecto.

Gestión de la red del servicio Neutron
● IP fija: asignada a instancias de máquinas virtuales para la comunicación entre instancias de inquilinos.
● IP flotante: dirección IP pública, utilizada para la comunicación entre la instancia y el exterior o Internet.
● Modo plano
El modo de red más simple que no usa VLAN y solo admite una red. Debe crear manualmente un dispositivo puente en cada nodo, y cada instancia recibe una IP fija del grupo.
● Modo FlatDHCP. En
este modo, debe comenzar Un servidor DHCP asigna una dirección IP fija a la VM, excepto que es básicamente la misma que en el primer modo. Cada instancia recibe una IP fija del grupo
● Modo VLAN
Cada proyecto tiene su propia VLAN, puente Linux y servidor DHCP Todas las VM pertenecen a la misma VLAN y están conectadas al mismo puente.

(7) Keystone

Keystone Openstack como módulo principal, proporciona una
autenticación penStack unificada y completa , servicios de directorio, tokens, servicios de política de acceso para Nova (
recuento total ), Glance (espejo), Swift (almacén de objetos), Cinder (almacenamiento en bloque ),
Neutron (red) y Horizon (Tablero) proporcionan servicios de autenticación.
Keystone tiene dos funciones clave:
➢ Gestión de usuarios: controlar, gestionar y rastrear los derechos de acceso de los usuarios
➢ Gestión del catálogo de servicios: proporcionar URL de acceso al servicio

● Usuario (Usuario) El
usuario representa la persona o programa al que se puede acceder a través de Keystone, y los Usuarios se verifican mediante información de autenticación (credenciales, como contraseñas, claves API, etc.).
● Arrendatario (Arrendatario) El
arrendatario se puede considerar como un proyecto, grupo u organización, que es una colección de recursos a los que se puede acceder en cada servicio.
● Rol (rol)
representa los permisos de recursos a los que los usuarios del grupo pueden acceder, como la máquina virtual en Nova , Espejo en un vistazo.
● Servicios de servicio (servicio)
como Nova, Glance, Swift. Por lo general, se utilizan algunos nombres diferentes para representar diferentes servicios.
● Punto final El punto final
es la URL de un servicio. Si necesita acceder a un servicio, debe conocer su punto final.
● Token. (Token) El
token es la clave para acceder a los recursos. Es el valor de retorno después de la verificación de Keystone, y solo el valor del Token debe transportarse en interacciones posteriores con otros servicios. Cada Token tiene un período de validez y el Token solo es válido durante el período de validez.

(8) Horizonte

● 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.

Funciones:
● Administración de instancias: crear y terminar instancias, ver registros de terminales, conexiones VNC, agregar volúmenes, etc.
● Administración de acceso y seguridad: cree grupos de seguridad, administre pares de claves y configure una IP flotante.
● Preferencias: se pueden establecer diferentes preferencias para las plantillas de hardware virtual.
● Gestión de espejos: edite o elimine espejos.
● Gestión de usuarios: crear usuarios, etc.
● Gestión de volúmenes: cree volúmenes e instantáneas.
● Procesamiento de almacenamiento de objetos: cree y elimine contenedores y objetos.

2.3 Pasos para configurar el flujo de solicitudes de una instancia en OpenStack:

1. Dashboard o CLI envía una solicitud de autenticación a Keystone.
2. Certificado de autenticación de Keystone, genera y devuelve token_id y serverCatalog (incluidas varias direcciones de servicio API nova-api, look-api, cinder
-api, etc.)
3. El tablero o CLI envía una nueva solicitud de instancia a nova-api.
4. Nova-api recibe la solicitud y verifica si el token es legal o no con Keystone.
5. Token de verificación de Keystone
6. Nova-api interactúa con nova-database.
7. Cree una instancia en la base de datos.
8. Nova-api envía una solicitud rpc.call a nova-Scheduler, con la esperanza de obtener el número de máquina física de la instalación de la instancia.
9. Nova-planificador obtiene la solicitud de la cola de mensajes.
10. nova-planificador interactúa con nova-database, primero filtra y luego calcula el peso, y selecciona las máquinas físicas adecuadas.
11. Devuelva el número de máquina física apropiado.
12. Nova-Scheduler envía una solicitud rpc.cast a nova-compute para crear una nueva instancia en la máquina física apropiada.
13. Nova-compute obtiene la solicitud de la cola de mensajes.
14. Nova-compute envía una solicitud rpc.call a nova-conductor para obtener información relacionada con la instancia: número de host, CPU, disco
15. Nova-conductor obtiene la solicitud de la cola de mensajes.
16. Nova-conductor interactúa con nova-database.
17. Devolver información de instancia.
18. Nova-compute obtiene información de la instancia de la cola de mensajes.
19. Nova-compute envía una solicitud a look-api,
obtiene la URL del espejo de acuerdo con el número de identificación y descarga el espejo.
20. El look-api verifica el token con Keystone.
21. Nova-compute obtiene metadatos de imágenes.
22. Nova-compute envía una solicitud a la API de red para configurar nova-com pute
23 y quantum-api para verificar tokens con Keystone.
24. Nova-compute obtiene información de la red.
25. Nova-compute realiza una solicitud a la API de volumen para vincular volúmenes de instancia.
26. Cinder-api verifica el token con Keystone.
27. Nova-compute obtiene información de almacenamiento en bloque.
28. La máquina virtual se ejecuta en el hipervisor.

Supongo que te gusta

Origin blog.csdn.net/qq_42005540/article/details/108307607
Recomendado
Clasificación