Virtualización - Emperzar
Fedora usa la familia de herramientas libvirt y su solución de virtualización.
Habilitar el soporte de virtualización hardware
Esta sección cubre el ajuste de libvirt
en su sistema. Después de ajustar libvirt
, usted puede crear sistemas operativos invitados virtualizados, también conocidos como máquinas virtuales.
Requisitos del sistema
Para ejecutar virtualización en Fedora, usted necesita:
-
Al menos 600MB de almacenamiento en disco duro por cada invitado. Un sistema Fedora mínimo de línea de comandos requiere 600MB de almacenamiento. Un escritorio invitado Estándar de Fedora requiere al menos 3GB de espacio.
-
Al menos 256MB de RAM por invitado, más 256MB para el sistema operativo base. Lo recomendado por cada invitado de un sistema operativo moderno es al menos 756MB. Una buena manera de estimar esto es pensar en cuánta memoria se requiere normalmente para un sistema operativo y asignar esa cantidad al invitado virtualizado.
KVM requiere una CPU con extensiones de virtualización, que se encuentra en la mayoría de las CPUs de consumo. Estas extensiones se llaman Intel VT o AMD-V. Para comprobar si tiene soporte de CPU, ejecute el siguiente comando:
$ grep -E '^flags.*(vmx|svm)' /proc/cpuinfo
Si de este comando no resulta nada impreso, su sistema no soporta las extensiones de virtualización relevantes. Aún puede usar QEMU/KVM, pero el emulador recurrirá a la virtualización de software, que es mucho más lenta.
Instalar virtualización software
Cuando instala Fedora, puede instalar los paquetes de virtualización seleccionando Virtualización en el Grupo Base en el instalador.
Para las instalaciones Fedora existentes, puede instalar las herramientas de virtualización por medio de la línea de comandos usando el Grupo Paquetes de Visualización. Para visualizar los paquetes, ejecute:
$ dnf groupinfo virtualization
Group: Virtualization
Description: These packages provide a graphical virtualization environment.
Mandatory Packages:
virt-install
Default Packages:
libvirt-daemon-config-network
libvirt-daemon-kvm
qemu-kvm
virt-manager
virt-viewer
Optional Packages:
libguestfs-tools
python3-libguestfs
virt-top
-
Ejecute este comando para instalar los paquetes obligatorios y predeterminados en el grupo de virtualización:
# sudo dnf install @virtualization
Alternativamente, para instalar los paquetes obligatorios, predeterminados y opcionales, ejecute:
# sudo dnf group install --with-optional virtualization
-
Después de instalar los paquetes, arranque el servicio
libvirtd
:# sudo systemctl start libvirtd
Para iniciar el servicio en el arranque, ejecute:
# sudo systemctl enable libvirtd
-
Para verificar que los módulos KVM están cargados apropiadamente:
$ lsmod | grep kvm kvm_amd 114688 0 kvm 831488 1 kvm_amd
Si este comando lista
kvm_intel
okvm_amd
, KVM está configurado apropiadamente.
Soporte de Red
De forma predeterminada, libvirt creará una red privada para sus invitados en la máquina huésped. Esta red privada usará un subred 192.168.x.x y no será accesible directamente desde la red en la que está la máquina huésped. Sin embargo, los invitados virtuales pueden usar la máquina huésped como pasarela y pueden conectar fuera por medio de ella. Si necesita proporcionar servicios en sus invitados que se puedan alcanzar por medio de otras máquinas en la red de su huésped puede usar las reglas iptables DNAT para reenviar en puertos específicos o puede configurar un entorno puenteado.
Vea la página de configuración de red de libvirt para más información sobre como configurar una red puenteada.
Crear máquinas virtuales
La instalación de invitados Fedora usando Anaconda está soportada. Las instalación se puede iniciar desde la línea de comandos usando el programa virt-install
o en el programa de interfaz de usuario`virt-install`.
Crear un invitado con virt-install
virt-install
es una herramienta basada en línea de comandos para la creación de invitados virtualizados. Ejecute virt-install --help
para ayuda en la línea de comandos o puede encontrar la página de manual en man 1 virt-install
.
To use the virt-install command, you should first download an ISO of the Fedora version you wish to install. You can find the latest Fedora images at https://fedoraproject.org. This ISO is only needed during Fedora installation, and can be deleted to free up storage space afterwards if desired.
En este ejemplo usaremos Fedora Workstation.
Planificar los Recursos de Máquina Virtual
Ajuste los parámetros ram, vcpus y tamaño de disco de acuerdo con los recursos de los que disponga.
-
Almacenamiento: Una manera fácil de verificar el tamaño de su disco desde una shell bash es usando la utilidad
df(1)`
desde la shell:# df -h
-
Memoria: Puede verificar la memoria disponible desde la shell usando free(1):
# free -m
-
VCPU: Puede verificar información de su procesador usando
lscpu(1)
:# lscpu
Al asignar recursos a su máquina virtual, tenga en cuenta los requisitos mínimos del sistema para la versión de Fedora que está instalando así como los requisitos de su caso de uso. Para Fedora 40, puede encontrar esto en las ref:f40@fedora:release-notes:welcome/Hardware_Overview.adoc[Notas al Lanzamiento].
Crear Almacenamiento para la Máquina Virtual
El grupo de almacenamiento predeterminado de libvirt se encuentra en `/var/lib/libvirt/images
– que es la ruta del archivo principal que usamos en este ejemplo. Para las personas que carecen de suficiente almacenamiento en esa ruta, simplemente puede montar un nuevo disco o partición en esa ruta de directorio (desde la BASH shell, teclee man 1 mount
) o seleccione la nueva ruta. En el ejemplo de comando virt-install
de abajo, el disco no existía antes de ejecutar virt-install. Cuando el disco especificado no es preexistente, debe especificar el tamaño de modo que virt-install puede crear un disco para usted. Si su disco ya existe, puede eliminar de forma segura el parámetro ,size=20
del argumento del disco.
Tiene diversas opciones de almacenamiento para su Máquina Virtual. Si bien está fuera del alcance de este artículo discutir este detalle, las siguiente son algunas opciones comunes. Estos ejemplos utilizan 20Gb como el límite superior para el tamaño del disco, pero puede ajustar este tamaño para adaptarlo a sus necesidades.
De nuevo, no es necesario asignar almacenamiento manualmente usando las opciones de ejemplo que se muestran abajo si usted especifica el parámetro tamaño en el ejemplo virt-install mostrado abajo. |
Archivo Sin Formato (No Disperso)
Para crear un archivo sin formato completamente asignado (no disperso):
# sudo dd if=/dev/zero of=/var/lib/libvirt/images/guest.img bs=1M count=20480
también puede usar fallocate(1):
# sudo fallocate -l 20480M /var/lib/libvirt/images/guest.img
Archivo Sin Formato Raw (Disperso)
Para crear un archivo sin formato (disperso) asignado dinámicamente:
# sudo rm -f /var/lib/libvirt/images/guest.img
# sudo truncate --size=20480M /var/lib/libvirt/images/guest.img
QCOW2 Para crear un nuevo disco formateado qcow2 separadamente, puede usar qemu-img (el ejemplo de abajo específica un tamaño de disco de 20G):
# sudo qemu-img create -f qcow2 /var/lib/libvirt/images/guest.qcow2 20480
Se puede encontrar más información sobre las opciones de almacenamiento de libvirt en https://libvirt.org/storage.html.
Finalmente, ejecute el comando virt-install usando el siguiente formato (ajustando los parámetros según se necesite):
# sudo virt-install --name Fedora40 \
--description 'Fedora 40 Workstation' \
--ram 4096 \
--vcpus 2 \
--disk path=/var/lib/libvirt/images/Fedora-Workstation-40/Fedora-Workstation-40-20180518.0.x86_64.qcow2,size=20 \
--os-type linux \
--os-variant fedora40 \
--network bridge=virbr0 \
--graphics vnc,listen=127.0.0.1,port=5901 \
--cdrom /var/lib/libvirt/images/Fedora-Workstation-40/Fedora-Workstation-Live-x86-64-40-1.1.iso \
--noautoconsole
Nota: Para los parámetros gráficos, estamos ajustando el oyente de vnc a localhost porque es más seguro hacer un túnel de su conexión VNC a través de SSH para no exponer a VNC a todas las personas con acceso a la red. |
virt-install
puede usar archivos kickstart, por ejemplo, virt-install -x ks=kickstart-file-name.ks
.
Si los gráficos están habilitados, se abrirá una ventana VNC y presenta el instalador gráfico. Si los gráficos no están habilitados, aparecerá un instalador de texto. Continúe con la instalación de Fedora.
Crear un invitado con virt-manager
-
Inicie el Administrador de Máquina Virtual navegando a
o ejecutando el siguiente comando:# sudo virt-manager
-
Abra una conexión a un hipervisor navegando a
. -
Elija qemu para KVM o Xen para Xen.
-
Elija local o seleccione un método para conectar a un hipervisor remoto.
-
Después de abierta una conexión, pulse el nuevo icono cercano al hipervisor o haga pulsación con botón derecho en el hipervisor activo y seleccione Nuevo.
-
Configure la máquina virtual siguiendo los pasos en el asistente New VM (nueva Máquina Virtual).
-
Pulse Finish (Terminar) al final del asistente para aprovisionar el sistema operativo invitado. Después de unos momentos aparecerá una ventana VNC. Siga con la instalación de Fedora.
Administrar máquinas virtuales
Cuando la instalación del sistema operativo invitado está completa se puede administrar usando el programa virt-manager
o por medio de la línea de comandos usando virsh
.
Administrar invitados con virt-manager
-
Inicie el Administrador de Máquina Virtual navegando a menu:[Applications]Herramientas del Sistema o ejecutando:
# virt-manager
Si no es root se le pedirá que introduzca la contraseña de root.
-
Elija el equipo que desee manejar y pulse Connect (Conectar) en la ventana de diálogo Open Connection (Abrir Conexión).
-
La lista de máquinas virtuales se muestra en la pantalla principal. El invitado que está corriendo se visualizará con un icono ">". Los que no estén corriendo aparecerán atenuados.
-
Para manejar un invitado concreto, haga doble pulsación sobre él o botón derecho y seleccione Open (Abrir).
-
Se abrirá una nueva ventana para el invitado y le permitirá usar su consola, ver información sobre su hardware virtual y arrancar, parar y pausarlo.
Para más información sobre virt-manager, vea Guía virt-manager de RedHat.
Los errores en la herramienta virt-manager deberían ser reportados en Bugzilla contra el componente virt-manager
.
Administrar invitados con virsh
La utilidad de línea de comando virsh
le permite manejar máquinas virtuales sobre la línea de comandos. La utilidad virsh
se basa en la API de administración libvirt:
-
virsh
tiene un conjunto estable de comandos cuya sintaxis y semántica ser conservan a través de las actualizaciones de la plataforma de virtualización subyacente. -
virsh
puede ser usado como usuario sin privilegios para operaciones de solo lectura (por ejemplo, listar dominios, listar estadísticas de dominio). -
virsh
puede manejar dominios bajo Xen, QEMU/KVM, ESX u otros back-ends sin diferencia perceptible por el usuario.
Para iniciar una máquina virtual:
# virsh create <name of virtual machine>
Para listar las máquinas virtuales corriendo en este momento:
# virsh list
Para listar todas las máquinas virtuales, corriendo o no:
# virsh list --all
Para apagar ordenadamente un invitado:
# virsh shutdown <virtual machine (name | id | uuid)>
Para apagar abruptamente un invitado:
# virsh destroy <virtual machine (name | id | uuid)>
Para guardar una instantánea de una maquina en un archivo:
# virsh save <virtual machine (name | id | uuid)> <filename>
Para recuperar una instantánea guardada anteriormente:
# virsh restore <filename>
Para exportar el archivo de configuración de una máquina virtual:
# virsh dumpxml <virtual machine (name | id | uuid)
Para una lista completa de los comandos disponibles para usar con virsh
:
# virsh help
O consulte la página de manual: man virsh
.
Los errores en la herramienta virsh
se deben reportar en Bugzilla contra el componente libvirt.
Administración remota
Están disponibles las siguiente opciones de administración remota:
-
Si está usando usuarios que no sean root por medio de SSH, vea las instrucciones de configuración en https://wiki.libvirt.org/page/SSHSetup
-
Si usa acceso de root por medio de SSH, cree las claves SSH para root y utilice
ssh-agent
yssh-add
antes de lanzarvirt-manager
. -
Para usar TLS, configure una autoridad de certificado local y envíe certificados x509 a todos los servidores y clientes. Para más información sobre esta opción, vea https://wiki.libvirt.org/page/TLSSetup.
Otras opciones de virtualización
QEMU/KVM sin libvirt
QEMU/KVM puede ser llamado directamente sin libvirt, sin embargo no se pueden usar herramientas como virt-manager
, virt-install
, o virsh
. QEMU plano (sin KVM) puede también virtualizar otras arquitecturas de procesador como ARM o PowerPC.
Xen
Fedora puede correr como un sistema operativo invitado Xen y también puede ser usado como un huésped Xen (siendo el último cierto desde Fedora 16; para usar una versión anterior de Fedora como huésped Xen, verifique el repositorio experimental disponible en https://myoung.fedorapeople.org/dom0). Para una guía sobre cómo instalar y configurar un huésped Fedora Xen host, vea la página Instalación de Huésped Fedora en la wiki del Proyecto Xen.
OpenStack
OpenStack consta de un número de servicios para ejecutar nubes de infraestructura como servicio(IaaS). Hay los servicios Object Store (Swift), Compute (Nova) e Image (Glance).
OpenNebula
OpenNebula es un conjunto de herramientas de código abierto para la virtualización de centros de datos.
oVirt
El Proyecto oVirt es un proyecto de virtualización abierto que provee un servidor de administración de virtualización punto a punto con capacidades avanzadas para huéspedes e invitados, que incluye alta disponibilidad, migración en vivo, administración de almacenamiento, planificación del sistema y más.
Resolución de problemas y cuestiones conocidas
Primero eche un vistazo a las bien conocidas cuestiones comunes. Reemplace el número de versión por la versión que actualmente está usando.
Para consejos de resolución de errores, vea Para consejos de resolución de errores, vea Virtualización – Como Depurar Problemas
Want to help? Learn how to contribute to Fedora Docs ›