Resumen de los puntos clave del examen de tecnología de virtualización.

Resumen de los puntos clave del examen de tecnología de virtualización.

¿Qué es la virtualización? Cuál es la función

La virtualización se refiere a virtualizar una computadora en varias computadoras lógicas mediante tecnología de virtualización. Se pueden ejecutar varias computadoras lógicas simultáneamente en una computadora, cada computadora lógica puede ejecutar un sistema operativo diferente y las aplicaciones pueden ejecutarse en espacios independientes sin afectarse entre sí, lo que mejora significativamente la eficiencia del trabajo de la computadora.

Función: Ejecute múltiples sistemas operativos en una computadora, facilite el establecimiento de un entorno de enseñanza y un entorno de prueba, no tenga nada que ver con el entorno de hardware, ahorre costos de administración e inversión en hardware y ahorre energía.

¿Qué es la virtualización a nivel de sistema?

​ Agregar funciones de servidor virtual a nivel del sistema operativo sin una capa de hipervisor independiente.

Por el contrario, el propio sistema operativo host es responsable de asignar recursos de hardware entre múltiples servidores virtuales y hacer que estos servidores sean independientes entre sí. Una diferencia obvia es que si se utiliza la virtualización de la capa del sistema operativo, todos los servidores virtuales deben ejecutar el mismo sistema operativo. .

Aunque la flexibilidad de la virtualización de la capa del sistema operativo es relativamente pobre, el rendimiento de la velocidad nativa es relativamente alto. Además, debido a que la arquitectura utiliza un único sistema operativo estándar en todos los servidores virtuales, es más fácil de administrar que un entorno heterogéneo.

¿Qué es una máquina anfitriona? ¿Qué es un cliente?

La máquina host es la máquina host. Este concepto es relativo a la máquina esclava. Por ejemplo, si tiene una máquina virtual instalada, entonces, en relación con la máquina virtual, la computadora que está utilizando es la máquina host y la máquina virtual. está instalado en la máquina host. , debe ejecutarse en el host, el host es un "host"

Un cliente puede ser un dispositivo en la red o un usuario que utiliza los servicios proporcionados por el servidor. En un sentido amplio, "cliente" generalmente se refiere a una computadora en una red. También se refiere al usuario que ejecuta el lado cliente de una aplicación cliente/servidor, es decir, el software que reside en una máquina remota y necesita comunicarse con el servidor. La computadora recupera la información, la procesa adecuadamente y luego la muestra en la máquina remota.

¿Qué es el hipervisor?

​ Una capa de software intermedia que se ejecuta entre el servidor físico subyacente y el sistema operativo, lo que permite que múltiples sistemas operativos y aplicaciones compartan hardware y accedan a todos los dispositivos físicos en el servidor, incluidos los discos y la memoria.

El hipervisor no solo coordina el acceso a estos recursos de hardware, sino que también proporciona protección entre cada máquina virtual. Cuando el servidor inicia y ejecuta el hipervisor, cargará los sistemas operativos de todos los clientes de la máquina virtual y asignará cantidades apropiadas de memoria a cada máquina virtual. , CPU, red y disco

¿Qué es la virtualización de escritorio?

La virtualización de escritorio se basa en la virtualización de servidores y su función principal es guardar y administrar de manera centralizada entornos de escritorio dispersos, incluida la entrega centralizada, las actualizaciones centralizadas y la administración centralizada de entornos de escritorio. Simplifica la gestión del escritorio. No es necesario mantener cada terminal por separado. Cada terminal se actualiza. Los datos del terminal se pueden almacenar centralmente en la sala de ordenadores central. La seguridad es mucho mayor que la de las aplicaciones de escritorio tradicionales.

La virtualización de escritorio permite que una persona tenga múltiples entornos de escritorio, o que varias personas puedan utilizar un entorno de escritorio, ahorrando licencias.

El concepto, características y finalidad de la tecnología de virtualización.

Concepto: La virtualización es un proceso que transforma recursos físicos en recursos lógicamente manejables para romper las barreras entre estructuras físicas y abstraer, aislar, reasignar y administrar diversos recursos a través de la lógica.

Características:

​ 1) Los objetos de virtualización son recursos (incluida CPU, memoria, almacenamiento, red, etc.)

2) Los recursos virtualizados tienen una representación lógica unificada, y esta representación lógica puede proporcionar a los usuarios la mayoría de las mismas o exactamente las mismas funciones que los recursos físicos virtualizados.

3) Después de una serie de procesos de virtualización, los recursos no están sujetos a restricciones de recursos físicos, lo que puede brindar a las personas más ventajas que la TI tradicional, incluida la integración de recursos, la utilización mejorada, la TI dinámica, etc.

Propósito: Agilizar la infraestructura de TI y optimizar los métodos de administración de recursos para integrar recursos, ahorrar costos potenciales, reducir los gastos de recursos de TI de la empresa, mejorar la utilización de equipos informáticos y resolver problemas de compatibilidad entre diferentes servidores físicos.

La relación entre virtualización y computación en la nube

Desde una perspectiva técnica: la virtualización es uno de los componentes centrales de la computación en la nube y una de las tecnologías clave para realizar servicios de computación y almacenamiento en la nube.

​ Desde la perspectiva de la separación de software y hardware: la computación en la nube elimina la conexión entre software y hardware en cierto sentido. La virtualización es un método que separa efectivamente el software y el hardware.

Desde la perspectiva de los servicios de red: la computación en la nube es un modelo de "todo es un servicio", que generalmente brinda servicios en la red o en la nube. Las máquinas virtuales en la capa de virtualización brindan servicios de computación en la nube y la red virtualizada brinda servicios de almacenamiento.

Clasificación de la virtualización desde la perspectiva de la plataforma virtual (completa/paravirtualización) y la estructura de implementación de la virtualización (tres tipos), características y comparación de cada tipo.

Perspectiva de plataforma virtual (completa/paravirtualización)

Totalmente virtualizado

Se refiere a que el sistema operativo virtual está completamente aislado del hardware subyacente y la capa intermedia del hipervisor se transforma en el código de llamada del sistema operativo invitado virtual al hardware subyacente.

​ La virtualización completa proporciona todas las abstracciones del sistema físico subyacente y crea un nuevo sistema virtual en el que el sistema operativo invitado puede ejecutarse sin requerir modificaciones en el sistema operativo invitado o en las aplicaciones.

La principal desventaja es que el rendimiento no es tan bueno como el del bare metal, porque el hipervisor necesita ocupar algunos recursos y generar gastos generales para el procesador.

​ Paravirtualización

Se refiere a agregar instrucciones de virtualización específicas al sistema operativo invitado virtual, a través de las cuales se pueden llamar directamente recursos de hardware a través de la capa del hipervisor.

​ La paravirtualización requiere modificaciones en el sistema operativo invitado que se ejecuta en la máquina virtual y proporciona un rendimiento similar

La paravirtualización tiene mejor rendimiento que la virtualización completa

Estructura de implementación de virtualización (tres tipos):

Dividido principalmente en virtualización de hipervisor, virtualización de modelo de host y virtualización de modelo híbrido.

Virtualización de hipervisor

La virtualización del hipervisor se refiere a la instalación de VMM directamente en el hardware subyacente como un hipervisor que asumirá el control. El hipervisor será responsable de administrar todos los recursos y el soporte del entorno virtual. El problema con esta estructura es que existen varios dispositivos de hardware y VMM no puede implementar todos los controladores de dispositivos uno por uno, por lo que este modelo admite dispositivos limitados.

Virtualización del modelo de host

​ El modelo de alojamiento consiste en instalar un sistema operativo en los recursos de hardware para administrar los dispositivos de hardware. El VMM se ejecuta en el sistema operativo como una aplicación y es responsable de respaldar el entorno virtual. La ventaja de este método es que no necesita operar el controlador del dispositivo subyacente, la desventaja es que la llamada de vmm al hardware depende del host, por lo que la eficiencia y las funciones están limitadas y afectadas por el host.

​Virtualización de modelos híbridos

El modelo híbrido es una mezcla de los dos modelos anteriores. Primero, VMMM administra directamente el hardware, pero cederá el control de ciertos dispositivos a máquinas virtuales que se ejecutan con privilegios. La desventaja de este modelo es que requiere un sistema operativo privilegiado para proporcionar Se producirá un cambio de modo, lo que provocará una gran sobrecarga y una degradación del rendimiento.

Ventajas, desventajas y ámbito de aplicación de las tecnologías de virtualización de software y virtualización de hardware (niveles de soporte de virtualización)

​ Virtualización de hardware

La virtualización de hardware significa que la propia plataforma física del hardware proporciona soporte para la interceptación y redirección de instrucciones especiales. En pocas palabras, no depende del sistema operativo, es decir, no depende del nivel de la aplicación ni de la implementación retrógrada.

En la tecnología de virtualización de software basada en hardware, el hardware es la base de la virtualización, y el hardware (principalmente CPU) proporcionará soporte para el software de virtualización, logrando así la virtualización de los recursos de hardware.

Ventajas: Buen rendimiento, puede proporcionar soporte para sistemas operativos de 64 bits

​ Virtualización de software

Se refiere al uso de software para hacer que las instrucciones privilegiadas del cliente caigan en una excepción, lo que hace que el host realice el procesamiento de virtualización.

Las principales tecnologías utilizadas son la compresión prioritaria y la traducción de código binario.

Ventajas: costo relativamente bajo, fácil implementación, administración y mantenimiento simples

Defectos: habrá muchas restricciones durante la implementación, como gastos generales adicionales, y el sistema operativo invitado estará restringido por el entorno de la máquina virtual.

Problemas que deben resolverse mediante la virtualización de la CPU (lagunas estructurales del procesador x86) y soluciones de software y hardware

El problema a resolver es implementar la virtualización en la arquitectura x86, lo que requiere que el sistema cliente se una a la capa de virtualización para compartir recursos físicos. Por lo tanto, esta capa de virtualización debe ejecutarse en el nivel Ring0 y el sistema operativo invitado solo puede ejecutarse en niveles superiores a Ring0. Sin embargo, si las instrucciones privilegiadas en el sistema operativo invitado no se ejecutan en el nivel Ring0, tendrán una semántica diferente, producirán efectos diferentes o no funcionarán en absoluto. Esta es una falla en el diseño de virtualización de la estructura del procesador. conducen directamente a vulnerabilidades de virtualización. Para compensar esta vulnerabilidad, antes de que el hardware brinde suficiente soporte, en la paravirtualización, el sistema operativo invitado y la máquina virtual deben ser compatibles; de lo contrario, la máquina virtual no puede operar de manera efectiva la máquina host.

La solución está basada en software:

La tecnología de virtualización basada en software ya ha proporcionado dos soluciones factibles: virtualización total y paravirtualización. La virtualización completa puede utilizar tecnología de traducción dinámica de código binario para resolver el problema de instrucción privilegiada del cliente. La ventaja de este método es que la conversión del código se completa dinámicamente sin modificar el sistema operativo invitado, por lo que puede admitir múltiples sistemas operativos. La paravirtualización resuelve el problema de las máquinas virtuales que ejecutan instrucciones privilegiadas modificando el sistema operativo invitado. Los sistemas operativos invitados alojados en una plataforma de virtualización necesitan modificar sus sistemas operativos para reemplazar todas las instrucciones confidenciales con hiperllamadas a la plataforma de virtualización subyacente.

La solución está basada en hardware:

Actualmente, Intel y AMD han lanzado las tecnologías de virtualización asistida por hardware Intel VT y AMD SVM respectivamente para lograr una virtualización más eficiente y sencilla.

Características técnicas de Intel VT-x, modo operativo VMX y proceso de operación.

​Características técnicas

IntelVT-x puede hacer que una CPU funcione como varias CPU ejecutándose en paralelo, lo que permite ejecutar múltiples sistemas operativos simultáneamente en un servidor físico. Puede reducir (o incluso eliminar) la contención de recursos y las restricciones entre múltiples sistemas operativos de máquinas virtuales, mejorar en gran medida la seguridad y el rendimiento de las máquinas virtuales desde la perspectiva del hardware y ayudar a mejorar la flexibilidad y estabilidad de las soluciones de virtualización basadas en software. La tecnología IntelVT-x puede eliminar la participación del VMM (Virtual Machine Monitor) en el procesamiento de solicitudes de "interrupción" de la máquina virtual y la ejecución de instrucciones específicas. De esta manera, el VMM será más rápido, confiable y seguro al operar y controlar. la máquina virtual.

Además, las funciones de migración de máquinas virtuales de IntelVT-x también pueden brindar una sólida protección para las inversiones en TI y mejorar aún más la flexibilidad de conmutación por error, equilibrio de carga, recuperación ante desastres y mantenimiento.

​ Modo de funcionamiento VMX

imagen

​ Proceso:

VMM ejecuta la instrucción VMXON para ingresar al modo operativo VMX. En este momento, la CPU está en el modo operativo raíz VMX y el software VMM comienza a ejecutarse.

VMM ejecuta la instrucción VMLAUNCH o VMRESUME para generar una entrada VM y el software del cliente comienza a ejecutarse. En este momento, la CPU convierte del modo raíz al modo no raíz.

​ Cuando el cliente ejecuta una instrucción privilegiada o se produce una interrupción o excepción durante la operación del cliente, VM-Exit se activa y cae en el VMM. La CPU cambia automáticamente del modo no raíz al modo raíz. El VMM lo maneja en consecuencia de acuerdo con el motivo de la salida de VM y luego continúe ejecutando el cliente.

​ Si VMM decide salir, ejecute VMXOFF para cerrar el modo operativo VMX

La composición y funcionamiento básico de vCPU.

​ Composición: La primera es la estructura VMCS (Virtual Machine Control Structure, estructura de control de máquina virtual), que almacena el contenido utilizado y actualizado por el hardware, que son principalmente registros virtuales; el segundo es el contenido que no es guardado por VMCS pero Es utilizado y actualizado por el VMM, principalmente partes distintas a VCMS.

imagen

Operaciones básicas:

Creación de vCPU: crear una VCPU es en realidad crear un descriptor de vCPU. Dado que el descriptor de vCPU es una estructura, crear un descriptor de vCPU es asignar memoria del tamaño correspondiente. Una vez creado el descriptor de vCPU, es necesario realizar una mayor inicialización antes de poder utilizarlo.

Operación de vCPU: una vez creada e inicializada la vCPU, el programador programará su ejecución y seleccionará la VCPU para ejecutarla de acuerdo con un determinado algoritmo de estrategia.

​ Salida de vCPU: al igual que el proceso, vCPU como unidad de programación no puede ejecutarse para siempre. Siempre saldrá por varias razones, como ejecutar instrucciones privilegiadas, interrupciones físicas, etc. Esta salida se manifiesta como una VM en VT-x -Exit . El procesamiento de la salida de vCPU es el núcleo de VMM para la virtualización de CPU, como la simulación de varias instrucciones privilegiadas.

​ Reoperación de vCPU: se refiere a que el VMM es responsable de volver a poner en funcionamiento la vCPU después de procesar la salida de la VCPU.

Abordar problemas de mapeo para la virtualización de memoria

La tarea principal de la virtualización de la memoria es abordar dos aspectos del problema.

Implementar la virtualización del espacio de direcciones y mantener la relación de mapeo entre la dirección física del host y la dirección física del invitado.

Una vez introducido el espacio de direcciones físicas del invitado, la virtualización del espacio de direcciones se puede admitir mediante dos traducciones de direcciones, es decir, la conversión de la dirección virtual del invitado - la dirección física del invitado - la dirección física del host. Durante el proceso de implementación, la conversión de GVA a GPA generalmente la especifica el sistema operativo invitado a través de la tabla de páginas señalada por el campo de estado invitado CR3 en VMCS. La conversión de GPA a HPA la determina el VMM. El VMM generalmente usa una estructura de datos parcial para registrar la relación de mapeo dinámico entre la dirección física del cliente y la dirección física del host.

Intercepte el acceso del host a la dirección física del cliente y conviértalo a la dirección física del host según la relación de mapeo registrada

La solución más sencilla es permitir que el cliente active una excepción cada vez que accede al espacio de direcciones físicas del host y hacer que VMM consulte la tabla de traducción de direcciones para imitar su acceso, pero el rendimiento de este método es muy pobre.

Conceptos básicos de Intel EPT y proceso de implementación de traducción de direcciones.

Conceptos básicos

​ EPT es un mecanismo de hardware diseñado por Intel para la virtualización de la memoria. Se utiliza principalmente para controlar el acceso de los invitados a la memoria física. Para simplificar la implementación de la virtualización de la memoria y mejorar el rendimiento de la virtualización de la memoria, Intel lanzó EPT (Tabla de páginas mejorada). tecnología, es decir, agregar una tabla de páginas EPT a la tabla de páginas original para lograr otra asignación. De esta manera, el hardware de la CPU completa automáticamente las dos traducciones de direcciones de GVA-GPA-HPA.

Proceso de conversión de dirección

​ El proceso de traducción aproximado de GVA y HPA a través de EPT:

​ La CPU en modo no root carga gCR3 del proceso invitado;

gCR3 es GPA, y la CPU necesita consultar la tabla de páginas EPT para implementar GPA->HPA;

De lo contrario, la CPU desencadena una infracción de EPT, que es interceptada y procesada por el hipervisor;

​ Supongamos que el cliente tiene tablas de páginas de nivel M y el EPT del host tiene niveles N. En el peor de los casos, donde se pierden todos los TLB, se producirán accesos a la memoria MxN para completar una traducción de direcciones para el cliente;

Características técnicas del proceso de reasignación Intel VT-d y DMA

​Características técnicas

Intel VT-d es la implementación de la tecnología IOMMU en Intel. Es parte de la tecnología de virtualización de Intel. Se dirige principalmente al subsistema de E/S. La implementación se realiza principalmente mediante la introducción de una unidad de redirección en el hardware. La unidad de redirección de hardware utiliza Se utiliza para redirigir las operaciones de DMA e interrumpir la entrega del subsistema de E/S, ayudando así al VMM a implementar la virtualización del subsistema de E/S.

Proceso de reasignación de DMA

1. Asigne la memoria física que necesita ser mapeada.

2. Asigne IOVA de acuerdo con el mecanismo de almacenamiento en caché RCACE

3. Basado en TTBR e IOVA, cree entradas en la tabla de páginas y establezca el mapeo entre IOVA y PA.

4. De forma predeterminada, la asignación de IOVA a PA se almacenará en caché en el TLB interno del hardware SMMU. Cuando el dispositivo acceda al IOVA correspondiente, primero lo buscará en el caché de TLB. Si falla, buscará en el tabla de páginas (memoria) nivel por nivel según IOVA. Si no se encuentra, interrupción por fallo de página

Cómo funciona el equipo TUN/TAP

Principio de funcionamiento del controlador Tun/Tap En las redes informáticas, TUN y TAP son dispositivos de red virtuales en el núcleo del sistema operativo. A diferencia de los dispositivos ordinarios implementados por placas de red de hardware, todos estos dispositivos de red virtuales se implementan en software y Un dispositivo de red que proporciona Software que se ejecuta en un sistema operativo con exactamente la misma funcionalidad que el hardware.

Estructura del marco del sistema KVM, relación entre QEMU y KVM

La relación entre QEMU y KVM

Desde la perspectiva de QEMU, durante la ejecución de la máquina virtual, QEMU realiza la configuración del kernel a través de la interfaz de llamada al sistema proporcionada por el módulo KVM, que es responsable de colocar la máquina virtual en un modo especial del procesador.

Estructura del marco del sistema KVM

El controlador kvm es ahora un módulo del kernel de Linux y su función principal es crear una máquina virtual, asignar memoria virtual, leer y escribir registros de CPU virtuales y ejecutar la CPU virtual.

Otro componente es Qemu, QEMU es un simulador y virtualizador de máquinas de código abierto general. Su función principal es simular el componente de espacio de usuario de la máquina virtual, proporcionar modelos de dispositivos io y acceso a periféricos.

Proceso de inicialización de KVM

​Inicialice el hardware de la CPU. KVM primero detectará la CPU del sistema actual para garantizar que la CPU admita la virtualización. Cuando se carga el módulo KVM, el módulo KVM primero inicializará la estructura de datos interna. La parte del kernel de KVM se ejecuta en el host como un módulo del kernel cargable dinámicamente. Uno de los módulos es un módulo KVM independiente de la plataforma que implementa la infraestructura de virtualización central y el otro es un módulo KVM_Intel que está relacionado con la plataforma de hardware o consulte módulo kvm_amd

Encienda el interruptor del modo de virtualización en el registro de control de la CPU CR4 y coloque el sistema operativo host en el modo raíz en el modo de virtualización ejecutando instrucciones específicas.

El módulo KVM crea un archivo de dispositivo especial /dev/kvm y espera comandos del espacio del usuario (por ejemplo, si se debe crear un invitado virtual, qué tipo de invitado virtual crear, etc.)

Comandos QEMU comunes para crear archivos de imagen de máquinas virtuales e iniciar máquinas virtuales

​Conocimientos básicos de Qemu

Comparación de tres soluciones de virtualización de E/S: software puro/paravirtualización/asignación directa

Virtualización completa de E/S

Este método es más fácil de entender: en pocas palabras, simula las solicitudes de E / S de la máquina virtual en forma de software puro. Tomando qemu-kvm como ejemplo, el módulo kvm en el kernel es responsable de interceptar las solicitudes de E/S y luego notificar al modelo de dispositivo qemu sobre el espacio del usuario a través de notificaciones de eventos, y qemu es responsable de completar la simulación de esta E/S. pedido.

Ventajas: No es necesario modificar el sistema operativo ni cambiar el controlador, por lo que este método tiene una mejor "portabilidad" y "compatibilidad" para diversas tecnologías de virtualización.

Desventajas: la simulación de software pura tiene un bajo rendimiento. Además, las solicitudes de E / S emitidas por la máquina virtual requieren múltiples interacciones entre la máquina virtual y el VMM, lo que resulta en una gran cantidad de cambios de contexto y una enorme sobrecarga.

Paravirtualización de E/S

En vista del bajo rendimiento de la simulación de software puro de la virtualización completa de E/S, la paravirtualización de E/S da un paso adelante. Proporciona un mecanismo que permite al Invitado y al Anfitrión establecer una conexión y comunicarse directamente, abandonando el método de interceptación y simulación, obteniendo así un mayor rendimiento.

Hay dos puntos dignos de atención:

1) Se adopta el mecanismo de anillo de E/S para que el invitado y el host puedan compartir memoria, reduciendo la interacción entre la máquina virtual y el VMM.

2) Utilice eventos y mecanismos de devolución de llamada para implementar la comunicación entre el VMM invitado y el anfitrión. De esta manera, al realizar el procesamiento de interrupciones, el mecanismo de eventos y devolución de llamadas se puede utilizar directamente sin cambio de contexto, lo que reduce la sobrecarga.

Ventajas: el rendimiento ha mejorado mucho en comparación con la virtualización completa de E/S

Desventajas: Requiere modificar el kernel y los controladores del sistema operativo, por lo que habrá problemas de portabilidad y aplicabilidad, lo que resultará en un uso limitado.

Transferencia de E/S o tecnología de transferencia

Los dos métodos de virtualización anteriores todavía se implementan desde el nivel de software y, naturalmente, el rendimiento no será demasiado alto. La mejor manera de mejorar el rendimiento es resolverlo desde el nivel de hardware. Si la máquina virtual ocupa exclusivamente un dispositivo físico y utiliza el dispositivo físico como host, el rendimiento sin duda será el mejor.

​ Se propone la tecnología de paso de E/S para lograr tal cosa. Permite que las máquinas virtuales accedan directamente a dispositivos físicos a través de la ayuda del hardware sin pasar por VMM ni ser interceptadas por VMM. La tecnología de paso de E/S requiere soporte de hardware Para completar, la primera opción a este respecto es la tecnología VT-d de Intel, que logra tales requisitos mediante la transformación a nivel de chip. Este método, por supuesto, tiene una mejora cualitativa en el rendimiento, no requiere modificación del sistema operativo y tiene buenas portabilidad.

​ Aunque la tecnología de paso de E/S elimina la sobrecarga adicional causada por la intervención de VMM en la E/S de la máquina virtual, los dispositivos de E/S generarán una gran cantidad de interrupciones durante las operaciones de E/S. Por razones de seguridad y otras, las máquinas virtuales no pueden Las interrupciones se manejan directamente, por lo que las solicitudes de interrupción deben ser enrutadas de forma segura y aislada por el VMM a la máquina virtual adecuada.

Por lo tanto, en el uso real, se utiliza una combinación de métodos de virtualización de software y hardware.

El principio de virtio que implementa la paravirtualización de E/S

​ Virtio simula dispositivos de E / S. El controlador de front-end (frontend, como virtio-blk, virtio-net, etc.) es el módulo de controlador que existe en el cliente, y el controlador de back-end se implementa en QEMU. Entre los controladores de front-end y back-end, también se definen dos capas para admitir la comunicación entre el cliente y QEMU.

La capa "virtio" es la interfaz de cola virtual, que conceptualmente conecta el controlador de front-end al controlador de back-end. Un controlador de front-end puede usar 0 o más colas, según las necesidades. La cola virtual en realidad se implementa como un punto de conexión entre el sistema operativo invitado y el hipervisor, pero se puede implementar de cualquier manera, siempre que tanto el sistema operativo invitado como el programa back-end virtio sigan ciertos estándares y lo implementen de forma mutua. manera coincidente. . Virtio-ring implementa un búfer de anillo (búfer de anillo), que se utiliza para guardar información sobre la ejecución del controlador de front-end y el controlador de back-end, y puede guardar múltiples solicitudes de E / S desde el controlador de front-end. a la vez y entregarlos al back-end Procesamiento por lotes y, finalmente, llamar al controlador del dispositivo en el host para implementar operaciones de E / S físicas. De esta manera, el procesamiento por lotes se puede implementar de acuerdo con el acuerdo en lugar de cada uno La solicitud de E/S en el cliente debe procesarse una vez, mejorando así la eficiencia del cliente y la eficiencia del intercambio de información del hipervisor.

La función y el principio de la tecnología de globos.

Función: en términos generales, para cambiar la memoria del host ocupada por el cliente, primero debe apagar el cliente, modificar la configuración de inicio y luego reiniciar el cliente. La tecnología de globo puede ajustar dinámicamente la memoria del host mientras el cliente se está ejecutando. Los recursos de memoria del host ocupados, en lugar de apagar el cliente, se completan mediante el controlador de globo del cliente que trabaja junto con el host a través de la interfaz de cola virtual virtio. La función de BalloonDriver es que puede expandir el tamaño de la memoria que utiliza y reducir la memoria. Cantidad de uso.

Principio: el host puede utilizar la memoria del globo y el cliente no puede acceder a ella ni utilizarla.

​ Cuando el uso de memoria del host es escaso y no hay mucha memoria libre, puede solicitar al cliente que recicle parte de la memoria que se le ha asignado. El cliente liberará su memoria libre, lo que provocará que el globo de memoria se infle. permitiendo que el host recicle el globo. La memoria puede ser utilizada por otros procesos (u otros clientes)

Por el contrario, cuando la memoria en el cliente es insuficiente, el globo de memoria del cliente también se puede comprimir para liberar parte de la memoria en el globo de memoria, lo que permite al cliente usar más memoria.

Características, funciones y pasos de operación de la migración en línea V2V en KVM

Función: la migración en línea V2V reduce en gran medida el tiempo de inactividad de la migración de máquinas virtuales.

Características: La migración V2V consiste en mover sistemas operativos y datos entre máquinas virtuales, teniendo en cuenta las diferencias a nivel de host y manejando diferentes hardware virtuales. Una máquina virtual se migra del VMM en una máquina física al VMM en otra máquina física. Los dos tipos de VMM pueden ser iguales o diferentes. Por ejemplo, VMware migra a KVM y KVM migra a KVM. Hay varias formas de mover una máquina virtual de un sistema VM Host a otro.

​Ejecutar pasos

(1) El sistema verifica si la configuración de red y almacenamiento del servidor de destino es correcta y reserva previamente los recursos de la máquina virtual del servidor de destino.

(2) Cuando la máquina virtual todavía se está ejecutando en el servidor de origen, todas las imágenes de memoria se copian al servidor de destino en el primer ciclo. Durante este proceso, KVM seguirá monitoreando cualquier cambio en la memoria.

(3) En bucles posteriores, verifique si la memoria en el bucle anterior ha cambiado. Si se produce un cambio, VMM copiará las páginas de memoria modificadas, es decir, las páginas sucias, al servidor de destino nuevamente y sobrescribirá las páginas de memoria anteriores. En esta etapa, VMM seguirá monitoreando los cambios de memoria.

(4) VMM continúa el ciclo de copia de memoria y la cantidad de páginas sucias que deben copiarse disminuye gradualmente hasta que se alcanzan ciertas condiciones (por ejemplo, la diferencia de memoria entre los servidores de origen y de destino alcanza un cierto estándar), la memoria La operación de copia finaliza y el servidor de origen se detiene al mismo tiempo.

(5) Cuando tanto el servidor de origen como el de destino estén inactivos, copie las páginas sucias del último ciclo y el estado de funcionamiento del dispositivo del servidor original al servidor de destino.

(6) Finalmente, desbloquee el almacenamiento del servidor de origen y bloquéelo en el servidor de destino. Inicie el servidor de destino, restablezca la conexión con los recursos de la red de almacenamiento y continúe ejecutando después de hacerse cargo del servidor original.

Arquitectura de tecnología de seguridad de virtualización KVM

​ Seguridad de la comunicación entre QEMU y Libvirt

Seguridad del módulo QEMU

​ Seguridad de la comunicación entre los módulos QEMU y KVM

Seguridad del módulo KVM

​Comprobación de integridad de la máquina virtual

​Protección de datos de máquinas virtuales

​Seguridad de la red de máquinas virtuales

Uso básico del monitor QEMU

​ El monitor QEMU (monitor) es una consola para que QEMU interactúe con los usuarios. Generalmente se usa para proporcionar funciones más complejas para el emulador QEMU, incluida agregar y mover algunas imágenes multimedia para el cliente, pausar y continuar la ejecución del cliente. . , creación y eliminación de instantáneas, guardado y restauración del estado del cliente desde archivos de disco, migración dinámica de clientes, consulta de varios parámetros de estado actual de los clientes, etc.

Comandos comunes de QEMU Monitor

​ Comandos auxiliares: como información y ayuda

​help puede consultar y mostrar información de ayuda breve para un determinado comando.

El comando info se utiliza principalmente para mostrar la información de ejecución de la máquina virtual.

El comando info muestra diversa información sobre el estado actual del sistema. Su formato de comando es el siguiente: subcomando info

​Comandos de clase de dispositivo:

El comando de cambio cambia la configuración de un dispositivo.

​ Como "cambiar vnc localhost:2 " para cambiar la configuración de VNC

"cambiar contraseña de vnc" cambia la contraseña de la conexión VNC

"cambiar ide1-cd0 /path/a.iso" cambia el CD cargado por la unidad de CD-ROM en la computadora cliente.

Los comandos usb_add y usb_del agregan y eliminan un dispositivo USB

Por ejemplo, "usb_add host:002.004" significa agregar el dispositivo 004 en el bus USB número 002 del host al cliente.

"usb_del 0.2" significa eliminar un dispositivo USB en el cliente

Los comandos device_add y device_del agregan o eliminan dispositivos dinámicamente

Por ejemplo, "device_addpic-assign,host=02:00.0,id=mydev" asigna el dispositivo PCI con el número BDF 0.2:00.0 en el host al cliente.

​ Y "device_del mydev" elimina el dispositivo que acaba de agregar

El comando mouse_move mueve el cursor del mouse a las coordenadas especificadas

​ Por ejemplo, "mouse_move 500 500" mueve el cursor del mouse a la posición con coordenadas (500,500)

El comando mouse_button simula hacer clic en los botones izquierdo, central y derecho del mouse.

1 es el botón izquierdo, 2 es el botón central y 4 es el botón derecho.

El comando sendkeykeys envía claves (o combinaciones de teclas) al cliente, al igual que los efectos de clave en un entorno no virtual. Si se envía una combinación de varias claves al mismo tiempo, utilice "-" para conectar las claves.

​ Por ejemplo, el comando "sendkey ctrl-alt-f2" envía la tecla "ctrl-alt-f2" al cliente, lo que cambiará la salida de pantalla del cliente al terminal tty2;

El comando "snedkey ctrl-alt-delete" enviará la tecla "ctrl-alt-delete", que reiniciará el sistema en modo texto.

​Comandos de clase de cliente

Los comandos savevm, loadvm y delvm crean, cargan y eliminan instantáneas del cliente.

Por ejemplo, "savevm mytag" significa crear una instantánea con la etiqueta "mytag" según el estado actual del cliente.

​ "loadvm mytag" significa cargar el estado cuando el indicador del cliente es una instantánea "mytag"

Y "del mytag" significa eliminar la instantánea del cliente del indicador "mytag".

​Los comandos migrar y migrar_cancel migran dinámicamente y cancelan la migración dinámica

Por ejemplo, "migrar tcp:des_ip:6666" significa migrar dinámicamente el cliente actual al puerto TCP6666 del host con la dirección IP "des_ip".

​ Y "migrate_cancel" significa cancelar el proceso de migración dinámica actual.

El comando de confirmación envía las partes modificadas a la imagen del disco (cuando se usa el parámetro de inicio "-snapshot") o envía las partes modificadas al archivo de imagen de fondo.

​ Comandos system_powerdown, system_reset y system_wakeup

Entre ellos, el comando system_powerdown envía una notificación de evento de apagado al cliente y, en general, hace que el cliente realice una operación de apagado;

El comando system_reset reinicia el sistema cliente, lo que equivale a desconectar la fuente de alimentación, enchufarla y presionar el botón de encendido para encenderla;

y el comando migrar_cancel para migrar dinámicamente y cancelar la migración dinámica

Por ejemplo, "migrar tcp:des_ip:6666" significa migrar dinámicamente el cliente actual al puerto TCP6666 del host con la dirección IP "des_ip".

​ Y "migrate_cancel" significa cancelar el proceso de migración dinámica actual.

El comando de confirmación envía las partes modificadas a la imagen del disco (cuando se usa el parámetro de inicio "-snapshot") o envía las partes modificadas al archivo de imagen de fondo.

​ Comandos system_powerdown, system_reset y system_wakeup

Entre ellos, el comando system_powerdown envía una notificación de evento de apagado al cliente y, en general, hace que el cliente realice una operación de apagado;

El comando system_reset reinicia el sistema cliente, lo que equivale a desconectar la fuente de alimentación, enchufarla y presionar el botón de encendido para encenderla;

system_wakeup despierta al cliente de la suspensión

Supongo que te gusta

Origin blog.csdn.net/qq_61897309/article/details/128661031
Recomendado
Clasificación