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/05/05 23:08]
lorenzo [Generación de una red virtual]
wikitecnica:libvirtd [2026/01/20 18:35] (actual)
lorenzo
Línea 2: Línea 2:
 ===== KVM, QEMU y libvirtd en virtualizacion de Rocky ===== ===== 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 habilitan un nuevo nivel de procesamiento de instrucciones exclusivas del 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 ese nivel para sus 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, cada máquina virtual es un thread del proceso virtual del hipervisor.\\ +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, las máquina virtuales son threads 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 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.\\
Línea 20: Línea 20:
   - ** Domain**. Es una instancia de un sistema operativo corriendo en una máquina virtualizada proporcionada por el hipervisor.   - ** Domain**. Es una instancia de un sistema operativo corriendo en una máquina virtualizada proporcionada por el hipervisor.
 === Dominios trascendentes y persistentes === === Dominios trascendentes y persistentes ===
-Libvirtd distingue entre dominios //trascendentes// y //persistentes//Los dominios trascendentes hasta que la máquina virtual se apaga el nodo donde corre la máquina virtual es reinicializado. Los dominios persistentes no dependen del estado de la máquina virtual.+Libvirtd distingue entre dominios //trascendentes// y //persistentes//Se habla de dominios trascendentes máquinas virtuales definidas a través de un comando o alguna utilería gráfica que solo existen mientras corren, los dominios trascendentes desaparecen cuando se apagan se reinician. Los dominios persistentes no dependen del estado de la máquina virtual.
 === Estados de un dominio === === Estados de un dominio ===
 Los dominios pueden estar en varios estados: Los dominios pueden estar en varios estados:
   * **Undefined**. Este es un estado base. Libvirtd no sabe acerca de un dominio en este estado ya que el dominio no ha sido creado o definido.   * **Undefined**. Este es un estado base. Libvirtd no sabe acerca de un dominio en este estado ya que el dominio no ha sido creado o definido.
   * **Defined/Stopped**. Exclusivamente las máquinas persistentes pueden estar en este estado, las máquinas en este estado están definidas pero no están corriendo. Las máquinas trascendentes dejan de existir cuando se detienen.   * **Defined/Stopped**. Exclusivamente las máquinas persistentes pueden estar en este estado, las máquinas en este estado están definidas pero no están corriendo. Las máquinas trascendentes dejan de existir cuando se detienen.
-  * **Running**. El dominio ha sido definido e iniciado. Los dominios en este estado son ejecutados activamente por el hipervisor del nodo.+  * **Running**. El dominio ha sido definido e iniciado. Los dominios en este estado son ejecutados activamente por el hipervisor.
   * **Paused**. La ejecución del dominio ha sido puesta en pausa,el estado del dominio es respaldado de forma temporal.   * **Paused**. La ejecución del dominio ha sido puesta en pausa,el estado del dominio es respaldado de forma temporal.
   * **Saved**. Es similar al estado en pausa, pero en este caso el estado del dominio es respaldado en un medio persistente.   * **Saved**. Es similar al estado en pausa, pero en este caso el estado del dominio es respaldado en un medio persistente.
Línea 33: Línea 33:
 Un snapshot es la vista de una máquina virtual y todas sus aplicaciones en un punto del tiempo. Los snapshots permiten a los usuarios guardar el estado de una máquina virtual en un punto del tiempo y permite regresar la máquina virtual a ese estado en cualquier momento, eso es particularmente útil cuando se instalan actualizaciones o nuevas aplicaciones que resultan conflictivas. Un snapshot es la vista de una máquina virtual y todas sus aplicaciones en un punto del tiempo. Los snapshots permiten a los usuarios guardar el estado de una máquina virtual en un punto del tiempo y permite regresar la máquina virtual a ese estado en cualquier momento, eso es particularmente útil cuando se instalan actualizaciones o nuevas aplicaciones que resultan conflictivas.
 === Instalación === === Instalación ===
-Antes de iniciar es necesario verificar si el cpu tiene soporte a la virtualización:+Antes de iniciar es necesario verificar si el cpu soporta la virtualización:
   * //CPUS intel: grep -e 'vmx' /proc/cpuinfo//   * //CPUS intel: grep -e 'vmx' /proc/cpuinfo//
   * //CPUS AMD: grep -e 'svm' /proc/cpuinfo//   * //CPUS AMD: grep -e 'svm' /proc/cpuinfo//
Línea 47: Línea 47:
   * //NAT:// El hipervisor opera un servidor DHCP que asigna IP's a las máquinas virtuales, la red virtual no es accesible desde la LAN.   * //NAT:// El hipervisor opera un servidor DHCP que asigna IP's a las máquinas virtuales, la red virtual no es accesible desde la LAN.
   * //Bridge:// En este caso la red virtual esta incluye un **bridge virtual** asociado a una interfaz física, esto permite el tráfico entre las máquinas virtuales y la LAN. En la mayoría de casos, es importante acceder a las máquinas virtuales desde la LAN, la manera de hacerlo en Rocky es:\\   * //Bridge:// En este caso la red virtual esta incluye un **bridge virtual** asociado a una interfaz física, esto permite el tráfico entre las máquinas virtuales y la LAN. En la mayoría de casos, es importante acceder a las máquinas virtuales desde la LAN, la manera de hacerlo en Rocky es:\\
-   //nmcli connection add type ethernet slave-type bridge con-name virbr0-port1 ifname eno8303 master virbr0//\\+ 
 +//nmcli connection add type ethernet slave-type bridge con-name virbr0-port1 ifname eno8303 master virbr0//\\ 
 El comando anterior agrega la interfaz fisica ethernet al **bridge** como puerto 1 las interfaces de las máquinas virtuales se agregan como otros puertos al bridge virtual.\\ El comando anterior agrega la interfaz fisica ethernet al **bridge** como puerto 1 las interfaces de las máquinas virtuales se agregan como otros puertos al bridge virtual.\\
 +Para verificar las conexiones de red.:\\
 +
 +//nmcli con show//\\
  
 ==== Clientes de libvirtd ====  ==== Clientes de libvirtd ==== 
Línea 59: Línea 64:
  
 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 ===+=== Ampliación o generación de particiones en un archivo imágen ===
 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. 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 ==
Línea 117: Línea 122:
   * //virsh start <vm>//. Inicia la maquina. Ejemplo: //virsh start celta//\\    * //virsh start <vm>//. Inicia la maquina. Ejemplo: //virsh start celta//\\ 
   * //virsh shutdown <vm>//. Apaga la maquina <vm>. Ejemplo: //virsh shutdown vgd//\\   * //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. +  * //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. 
 +  * //virsh undefine <vm>//. Elimina la definición de la máquina virtual en el hipervisor, esto puede se útil cuando se olvida la contraseña root de la máquina virtual o el sistema operativo no corresponde en versión con la máquina deseada.  
 + 
 [[https://www.eolsystem.com/tutorials/libvirt-vm-frozen/#:~:text=The%20'paused'%20state%20of%20a,potential%20data%20loss%20or%20corruption.|Maquinas Pausadas o congeladas]] [[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.1746486492.txt.gz · Última modificación: 2025/05/05 23:08 por lorenzo