KVM Fundamentals and Architecture II - Principios básicos

  

KVM: la máquina virtual basada en el kernel es una solución de virtualización de código abierto basada en el kernel de Linux. Se ha incorporado al mantenimiento de la rama principal del kernel desde la versión 2.6.20. Inicialmente solo era compatible con CPU que soportaban VMX o SVM en la plataforma X86, luego se confirmó como una solución de virtualización para el kernel estándar de Linux y arquitecturas gradualmente compatibles como S390, IA64 y PowerPC; KVM solo proporcionaba funciones de virtualización parcial (CPU virtual) Y memoria), con la ayuda de Qemu (Qemu-kvm) especialmente modificado para proporcionar capacidades completas de virtualización de plataforma.
KVM se basa en las características de virtualización del hardware x86 para proporcionar una máquina virtual completamente virtualizada. La idea básica es agregar un módulo de administración de máquina virtual basado en el kernel de Linux y reutilizar los mecanismos y módulos bien establecidos y maduros en el kernel de Linux. Por ejemplo, la programación de procesos, la gestión de memoria, la gestión de E /S, etc., lo convierten en un hipervisor que puede admitir la ejecución de máquinas virtuales. arquitectura general como se muestra a continuación:


KVM es la tecnología de virtualización asistida por hardware (como Intel VT-x) describe la solución de virtualización completa, como se indica más arriba, De la siguiente manera:
ü VMM (es decir, KVM kernel) ejecuta Ring0 en modo raíz;
ü El proceso de estado del usuario en el host ejecuta Ring3 en modo root;
ü Kernel en una máquina virtual Ring0 se ejecuta en modo no root;
ü Proceso de estado de usuario en una máquina virtual que ejecuta Ring3 en modo no root;
ü Qemu-kvm es un Qemu mejorado proporcionado y mantenido por KVM. Para la solución KVM, el Qemu estándar se ha modificado específicamente para tener un mejor rendimiento y está perfectamente integrado con KVM;
ü una máquina virtual (VM) es un proceso tradicional de Linux. La VM se ejecuta en el espacio de direcciones del proceso Qemu-KVM;
ü VMM proporciona la interfaz /dev /kvm a la capa superior, /dev /kvm es un dispositivo de caracteres estándar controlado por la interfaz ioctl; llamadas Qemu-kvm /dev La interfaz ioctl del dispositivo /kvm controla la máquina virtual, como crear una máquina virtual y crear una V. CPU, máquinas virtuales en ejecución, etc.;
ü Para mejorar el rendimiento de IO en máquinas virtuales KVM, KVM también proporciona controladores Virtio, que son equivalentes a los controladores paravirtualizados en entornos Xen.

2.2 Se ejecuta KVM ver
carrera KVM sustancialmente como se muestra a continuación:
Descripción del Proceso:
1, ejecute a través de un sistema ioctl llamar Qemu-kvm operación de estado de usuario /Dispositivo de caracteres Dev /kvm, crear VM y VCPU
2. El módulo KVM de Kernel es responsable de la creación de la estructura de datos relevante, es decir, la inicialización, y luego volver al estado del usuario. 3. Qemu-kvm ejecuta la VCPU a través de la llamada ioctl, es decir, se programa la VM correspondiente. Después de ejecutar
4, el kernel realiza el procesamiento relacionado, ejecuta la instrucción VMLAUNCH, ingresa al sistema operativo invitado a través de VM-Entry y el sistema operativo invitado se ejecuta en modo no root.
5, el SO huésped ejecuta el código de máquina virtual correspondiente, las instrucciones no confidenciales pueden ejecutarse directamente en la CPU física 6, cuando el SO huésped ejecuta instrucciones confidenciales, se produce una interrupción externa o el sistema operativo invitado tiene una excepción interna. VM-Exit se generará y la información relacionada se registrará en la estructura VMCS.
7. VM-Exit hará que la CPU vuelva al modo raíz. VMM lee la estructura VMCS para determinar la causa de VM-Exit.
8. La operación u otras instrucciones periféricas regresan al modo de usuario Qemu-kvm (es decir, Ring3 en modo raíz), y Qemu-kvm completa la simulación de las instrucciones relevantes.
9, si no, entonces el VMM se maneja solo
10, una vez que se completa el procesamiento, la entrada de VM se vuelve a ingresar en el SO invitado.

2.3 KVM Kernel Module Composition
KVM se compone principalmente de 3 módulos de kernel:
ü Kvm.ko
ü Kvm-intel.ko
ü Kvm-amd. Ko

Kvm.ko es el módulo público principal de KVM, y kvm-intel.ko y kvm-amd.ko son módulos separados para las arquitecturas de plataformas Intel y AMD, respectivamente. En el módulo común principal de KVM, contiene algunos códigos como IOMMU, control de interrupciones, arco KVM, administración de dispositivos, etc. Estos códigos constituyen las funciones principales de la administración de máquinas virtuales. De la información general de estos módulos, se puede observar que KVM no está implementado. La virtualización de un sistema de PC completo, pero solo para lograr parte de la virtualización de la CPU central, la virtualización de la memoria y la virtualización de E /S y otras funciones y proporcionar la API correspondiente a la capa superior, el resto del trabajo de virtualización y administración se entrega principalmente a Qemu -kvm es responsable.


Copyright © Conocimiento de Windows All Rights Reserved