Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
wikitecnica:libvirtd [2024/02/21 01:11] lorenzo |
wikitecnica:libvirtd [2025/05/08 23:29] (actual) lorenzo |
||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ===== Libvirtd ===== | + | |
- | Es una librería que define un conjunto de APIS que interactuan con diferentes hipervisores((XEN, | + | ===== 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:// | ||
+ | |||
+ | El hipervisor al no utilizar | ||
+ | |||
+ | 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:// | ||
+ | ===== Libvirtd ===== | ||
+ | Es una librería que define un conjunto de APIS que interactuan con diferentes hipervisores((XEN, | ||
=== Definiciones === | === Definiciones === | ||
- **Nodo**. Un nodo es un nombre para referirse a una máquina física. | - **Nodo**. Un nodo es un nombre para referirse a una máquina física. | ||
Línea 18: | Línea 32: | ||
=== Snapshots === | === Snapshots === | ||
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. | ||
- | === Clientes de libvirtd === | + | === Instalación === |
+ | Antes de iniciar es necesario verificar si el cpu tiene soporte a la virtualización: | ||
+ | * //CPUS intel: grep -e ' | ||
+ | * //CPUS AMD: grep -e ' | ||
+ | |||
+ | ==== Instalación de paquetes ==== | ||
+ | * //dnf install qemu-kvm libvirt virt-install// | ||
+ | * //dnf install epel-release -y// | ||
+ | * //dnf install bridge-utils virt-top libguestfs-tools -y// | ||
+ | * //systemctl start libvirtd// | ||
+ | * //systemctl enable libvirtd// | ||
+ | ==== Generación de una red virtual ==== | ||
+ | Las redes virtuales para las máquinas virtuales son de dos tipos: | ||
+ | * //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:\\ | ||
+ | |||
+ | //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.\\ | ||
+ | Para verificar las conexiones de red.:\\ | ||
+ | |||
+ | //nmcli con show//\\ | ||
+ | |||
+ | ==== Clientes de libvirtd | ||
Hay tres clientes que interactuan con el daemon **libvirtd**, | Hay tres clientes que interactuan con el daemon **libvirtd**, | ||
- | === virt-install === | + | * //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. |
- | El comando //virt-install// permite mediante | + | * //virsh//. El comando virsh permite interactuar con el hipervisor, contiene infinidad de opciones que permiten manejar cada detalle del ambiente de virtualización. |
- | === virsh === | + | ==== Manipulación de imágenes ==== |
- | El comando //virsh// es el comando | + | El sistema operativo que hospeda máquinas virtuales tiene varias alternativas de almacenaje de las mismas, |
+ | |||
+ | Hay una sección del artículo del hipervisor Xen de este sitio [[wikitecnica: | ||
+ | === 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 | ||
+ | == Formato qcow2 == | ||
+ | - Verificar | ||
+ | - Crear el nuevo archivo con el incremento de tamaño que se desea para una de las particiones: | ||
+ | - Expander | ||
+ | == Formato raw == | ||
+ | - Crear un archivo imágen nuevo del mismo tamaño que la imágen vieja:\\ //truncate -r ./ | ||
+ | - Extender el archivo imágen nuevo:\\ //truncate -s +20G ./ | ||
+ | - Expander la partición escasa de espacio:\\ // | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | === 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 | ||
+ | - //virsh attach-disk {nom-virtMaq} --source ./ | ||
+ | En la máquina virtual se verifica o se particiona el nuevo disco a LVM: | ||
+ | - //fdisk -l |grep '^Disk / | ||
+ | - //fdisk /dev/vdc o pvcreate / | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | ==== 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 | ||
+ | |||
+ | // | ||
+ | --disk / | ||
+ | |||
+ | El significado de las opciones del comando virt-install son: | ||
+ | - virt-type: Se refiere al tipo de hipervisor, | ||
+ | - name: Es el identificador | ||
+ | - ram: La cantidad de memoria virtual en MB. | ||
+ | - os-variant: Identificador del sistema oparativo a hospedar, las opciones | ||
+ | - cdrom: El ISO del sistema operativo a instalar. | ||
+ | - vcpus: Un número entero | ||
+ | - network: Red en la que opera la máquina, se especifican 2 valores tipo: bridge|nat y el nombre de la red. | ||
+ | - graphics: Para las interfaces gráficas | ||
+ | - 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, | ||
+ | * //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** | ||
+ | | 1 |mrlucky | ||
+ | | 2 |mailCasuni | ||
+ | | 3 |mrluckyNuevo | ||
+ | | 4 |boxCasuni | ||
+ | | 5 |mailCptodos | ||
+ | | 7 |smtpCptodos | ||
+ | | 8 |celta | ||
+ | | 9 |vgd |running | ||
+ | | 10 | ||
+ | | 35 | ||
+ | | 38 | ||
+ | |||
+ | * //virsh start < | ||
+ | * //virsh shutdown < | ||
+ | * //virsh resume < | ||
+ | [[https:// | ||
+ | |||
+ | |||
+ | |||