Herramientas de usuario

Herramientas del sitio


wikitecnica:libvirtd

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
wikitecnica:libvirtd [2025/01/09 19:44]
lorenzo qemu
wikitecnica:libvirtd [2025/03/03 23:48] (actual)
lorenzo
Línea 1: Línea 1:
  
-===== Virtualización QEMU/KVM =====+===== KVM, QEMU y libvirtd en virtualizacion de Rocky =====
  
 El hipervisor KVM (Kernel based Virtual Machine) opera como un módulo dentro del kernel de linux, incorporado el código del kernel en febrero de 2007, este código se desarrolla de manera independiente y hace uso de las [[https://en.wikipedia.org/wiki/X86_virtualization#Intel_virtualization_.28VT-x.29|extensiones agregadas a los procesadores INTEL y AMD]] que habilitaron un nuevo nivel de procesamiento de instrucciones donde reside el hipervisor.\\ El hipervisor KVM (Kernel based Virtual Machine) opera como un módulo dentro del kernel de linux, incorporado el código del kernel en febrero de 2007, este código se desarrolla de manera independiente y hace uso de las [[https://en.wikipedia.org/wiki/X86_virtualization#Intel_virtualization_.28VT-x.29|extensiones agregadas a los procesadores INTEL y AMD]] que habilitaron un nuevo nivel de procesamiento de instrucciones donde reside el hipervisor.\\
 +
 El hipervisor al no utilizar  el nivel de procesamiento de instrucciones 0, permite que los sistemas operativos de las máquinas virtuales utilizen este nivel para sus propios procesos sin modificación alguna.\\ El hipervisor al no utilizar  el nivel de procesamiento de instrucciones 0, permite que los sistemas operativos de las máquinas virtuales utilizen este nivel para sus propios procesos sin modificación alguna.\\
-El módulo del kernel qemu-kvm se comunica con el kernel como una interface donde todos los requerimientos de las maquinas virtuales se traducen como requerimientos al kernel,desde el punto de vista del kernel cada máquina virtual es un thread del proceso virtual del hipervisor, la version actual de KVM viene con una versión modificada del emulador QEMU que maneja el I/O y otras opciones que permiten al sistema operativo de la máquina virtual operar sin problema alguno+ 
-La instalación del módulo KVM en Rocky linux 8-9 se hace: //dnf install qemu-kvm//+El módulo del kernel qemu-kvm se comunica con el kernel como una interface donde todos los requerimientos de las maquinas virtuales se traducen como requerimientos al kernel, cada máquina virtual es un thread del proceso virtual del hipervisor.\\  
 + 
 +La version actual de KVM viene con una versión modificada del emulador QEMU que maneja el I/O y otras opciones que permiten al sistema operativo de la máquina virtual operar.\\ 
 + 
 +La instalación del módulo KVM en Rocky linux 8-9 se hace: //dnf install qemu-kvm//\\ 
 [[http://www.linux-admins.net/2010/10/virtualization-using-kvm-with-libvirt.html|Virtualización y KVM]] [[http://www.linux-admins.net/2010/10/virtualization-using-kvm-with-libvirt.html|Virtualización y KVM]]
  ===== Libvirtd =====  ===== Libvirtd =====
Línea 46: Línea 52:
  
   * //virt-install//. Mediante este comando es posible construir una máquina virtual en una sesión de bash, en los parámetros se introducen caracteristicas como cpu, memoria, localización a partir del cual se instala el sistema operativo, etcétera.   * //virt-install//. Mediante este comando es posible construir una máquina virtual en una sesión de bash, en los parámetros se introducen caracteristicas como cpu, memoria, localización a partir del cual se instala el sistema operativo, etcétera.
-  * //virsh//. El comando virsh permite interactuar con el hipervisor, contiene infinidad de opciones que permiten manejar cada detalle del ambiente de virtualización, en esta sección documentaremos las opciones mas utilizadas.+  * //virsh//. El comando virsh permite interactuar con el hipervisor, contiene infinidad de opciones que permiten manejar cada detalle del ambiente de virtualización.
 ==== Manipulación de imágenes ==== ==== Manipulación de imágenes ====
 El sistema operativo que hospeda máquinas virtuales tiene varias alternativas de almacenaje de las mismas,  puede optar por almacenamiento arbitario como //LVM((Logical Volume Manager))//,  //ZVOL((Volúmen lógico de ZFS))// o archivos binarios que reciben el nombre de imágenes. El imperativo de mover máquinas entre hipervisores hace que la mejor opción de almacenamiento sean las imágenes. El sistema operativo que hospeda máquinas virtuales tiene varias alternativas de almacenaje de las mismas,  puede optar por almacenamiento arbitario como //LVM((Logical Volume Manager))//,  //ZVOL((Volúmen lógico de ZFS))// o archivos binarios que reciben el nombre de imágenes. El imperativo de mover máquinas entre hipervisores hace que la mejor opción de almacenamiento sean las imágenes.
  
 Hay una sección del artículo del hipervisor Xen de este sitio [[wikitecnica:xen#archivos_imagen|Archivos Imagen]] donde se presentan ejemplos del uso del comando //qemu-img// en la generación de archivos imágen en formatos qcow2 y raw y la modificación de su tamaño. Hay una sección del artículo del hipervisor Xen de este sitio [[wikitecnica:xen#archivos_imagen|Archivos Imagen]] donde se presentan ejemplos del uso del comando //qemu-img// en la generación de archivos imágen en formatos qcow2 y raw y la modificación de su tamaño.
- +=== Ampliación de particiones en un archivo imágen === 
-Libvirtd ofrece el comando //virt-resize// para modificar el tamaño de archivos imágen que contienen particiones con diferentes sistemas de archivos de la máquina virtual que soportan, este comando permite agregar o disminuir el tamaño de estas particiones, a continuación se presentan algunos ejemplos con formatos de imágenes qcow2 y raw.+Libvirtd ofrece el comando //virt-resize// para modificar las particiones en un disco de la máquina virtual, este comando permite agregar o disminuir el tamaño de estas particiones, a continuación se presentan algunos ejemplos con formatos de imágenes qcow2 y raw.
 == Formato qcow2 == == Formato qcow2 ==
   - Verificar el tamaño de los sistemas de archivo contenidos en la imágen:\\ //virt-filesystems --long -h --all -a ./disco-viejo.qcow2//   - Verificar el tamaño de los sistemas de archivo contenidos en la imágen:\\ //virt-filesystems --long -h --all -a ./disco-viejo.qcow2//
Línea 63: Línea 69:
  
 [[https://gist.github.com/joseluisq/2fcf26ff1b9c59fe998b4fbfcc388342|Como expander una partición qcow2]]  [[https://gist.github.com/joseluisq/2fcf26ff1b9c59fe998b4fbfcc388342|Como expander una partición qcow2]] 
 +
 +=== Inclusión de nuevos discos en una máquina virtual ===
 +Otra opción para aumentar el espacio disponible en una máquina virtual, es agregar un nuevo archivo imagen en el hipervisor:
 +   - //qemu-img create -f qcow2|raw -o preallocation=metadata ./nuevo.qcow2|raw 50G//\\
 +   - //virsh attach-disk {nom-virtMaq} --source ./nuevo.qcow2 --target vdc --persistent//\\
 +En la máquina virtual se verifica o  se particiona el nuevo disco a LVM:
 +   - //fdisk -l |grep '^Disk /dev/vd[a-z]'//\\
 +   - //fdisk /dev/vdc o pvcreate /dev/vdc//\\
 +
 +[[https://www.cyberciti.biz/faq/how-to-add-disk-image-to-kvm-virtual-machine-with-virsh-command/|Como agregar un disco]]
 + 
 ==== Generación de máquinas virtuales ==== ==== Generación de máquinas virtuales ====
 Con el comando //virt-install// se generá una nueva máquina virtual sobre un archivo imágen, un ejemplo de la sintaxis de este comando se muestra a continuación:\\   Con el comando //virt-install// se generá una nueva máquina virtual sobre un archivo imágen, un ejemplo de la sintaxis de este comando se muestra a continuación:\\  
Línea 79: Línea 96:
   - graphics: Para las interfaces gráficas del so hospedado operan como un servidor VNC y el puerto de acceso.   - graphics: Para las interfaces gráficas del so hospedado operan como un servidor VNC y el puerto de acceso.
   - disk: El nombre absoluto del archivo imágen donde radicará la máquina virtual.   - disk: El nombre absoluto del archivo imágen donde radicará la máquina virtual.
 +==== Cambios de estado en máquinas virtuales =====
 +Las máquinas virtuales pueden inspeccionarse a través del comando **virsh** que permite verficar, iniciar, detener o destruir una máquina virtual,este comando corre en el hipervisor y permite modificar el estado que corre en la máquina física.
 +  * //virsh list//. Presenta el estado de las máquinas virtuales registradas y operando, con --all presenta todas las máquinas aun cuando esten pausadas o apagadas.\\
  
 +|**Id**|**Name**                     |**State**|
 +| 1    |mrlucky                      |running  |
 +| 2    |mailCasuni                   |running  |
 +| 3    |mrluckyNuevo                 |running  |
 +| 4    |boxCasuni                    |running  |
 +| 5    |mailCptodos                  |running  |
 +| 7    |smtpCptodos                  |running  |
 +| 8    |celta                        |stopped  |
 +| 9    |vgd                          |running  |
 +| 10   |gtglobal                     |running  |
 +| 35   |cptodos-web                  |running  |
 +| 38   |nuevoWebCptodos              |running  |
  
 +  * //virsh start <vm>//. Inicia la maquina. Ejemplo: //virsh start celta//\\ 
 +  * //virsh shutdown <vm>//. Apaga la maquina <vm>. Ejemplo: //virsh shutdown vgd//\\
 +  * //virsh resume <vm>//. A veces alguna máquina puede aparecer con estado paused, esto ocurre cuando las areas del disco del hipervisor donde corren las máquinas virtuales se llenan, una vez resuelto el problema del disco, el comando resume coloca a la máquina virtual en operación. 
 +[[https://www.eolsystem.com/tutorials/libvirt-vm-frozen/#:~:text=The%20'paused'%20state%20of%20a,potential%20data%20loss%20or%20corruption.|Maquinas Pausadas o congeladas]]
  
  
/home/correoparatodos.mx/www1353/public_html/data/attic/wikitecnica/libvirtd.1736451841.txt.gz · Última modificación: 2025/01/09 19:44 por lorenzo