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 group info virtualization
Group: Virtualization
Description: Estos paquetes proporcionan un entorno de virtualización gráfica.
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 el siguiente 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
-
Tras instalar los paquetes, arranque el servicio
libvirtd
:$ sudo systemctl start libvirtd
Para iniciar el servicio al arrancar, ejecute:
$ sudo systemctl enable libvirtd
-
Para verificar que los módulos KVM de kernel 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
Está soportada la instalación de invitados Fedora usando Anaconda. 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-manager`.
Crear un invitado con virt-install
virt-install
es una herramienta basada en consola para la creación de invitados virtualizados. Ejecute virt-install --help
para ayuda por consola 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 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 shell bash es usando la utilidad
df(1)`
desde la shell:$ df -h
-
Memory: You can check your available memory from the shell using free(1):
$ free -m
-
VCPU: You can check your processor information using
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 42, puede encontrar esto en las 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.
Again, you do not need to manually allocate storage using the example options shown below if you specify the size parameter in the virt-install example shown below. |
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
you can also use fallocate(1):
$ sudo fallocate -l 20480M /var/lib/libvirt/images/guest.img
Raw File (Sparse)
To create a dynamically allocated (sparse) raw file:
$ sudo rm -f /var/lib/libvirt/images/guest.img
$ sudo truncate --size=20480M /var/lib/libvirt/images/guest.img
QCOW2 To create a new qcow2-formatted disk separately, you can use qemu-img (the example below specifies a disk size of 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.
Finally, run the virt-install command using the following format (adjusting parameters as needed):
$ sudo virt-install --name Fedora42 \
--description 'Fedora 42 Workstation' \
--ram 4096 \
--vcpus 2 \
--disk path=/var/lib/libvirt/images/Fedora-Workstation-42/Fedora-Workstation-42-20180518.0.x86_64.qcow2,size=20 \
--os-variant fedora42 \
--network bridge=virbr0 \
--graphics vnc,listen=127.0.0.1,port=5901 \
--cdrom /var/lib/libvirt/images/Fedora-Workstation-42/Fedora-Workstation-Live-x86-64-42-1.1.iso \
--noautoconsole
Note: For the graphics parameter, we’re setting the vnc listener to localhost because it’s more secure to tunnel your VNC connection through SSH so that you don’t expose VNC to everyone with access to the network. |
virt-install
can use kickstart files, for example, virt-install -x ks=kickstart-file-name.ks
.
Si los gráficos fueron habilitados, una ventana VNC se abrirá y presentará 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.
Creación de 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 que esté abierta una conexión, pulse el icono nuevo siguiente al hipervisor, o pulse con el botón secundario en el hipervisor activo y seleccione Nuevo.
-
Configure la máquina virtual siguiendo los pasos en el asistente Nueva VM.
-
Pulse Finalizar 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
-
Start the Virtual Machine Manager by navigating to menu:[Applications]System Tools, or run:
$ 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.
For further information about virt-manager
, see RedHat virt-manager guide.
Bugs in the virt-manager
tool should be reported in Bugzilla against the virt-manager
component.
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.
To start a virtual machine:
$ virsh create <name of virtual machine>
To list the virtual machines currently running:
$ virsh list
To list all virtual machines, running or not:
$ virsh list --all
To gracefully power off a guest:
$ virsh shutdown <virtual machine (name | id | uuid)>
To non gracefully power off a guest:
$ virsh destroy <virtual machine (name | id | uuid)>
To save a snapshot of the machine to a file:
$ virsh save <virtual machine (name | id | uuid)> <filename>
To restore a previously saved snapshot:
$ virsh restore <filename>
To export the configuration file of a virtual machine:
$ virsh dumpxml <virtual machine (name | id | uuid)
For a complete list of commands available for use with virsh
:
$ virsh help
Or consult the manual page: man virsh
.
Bugs in the virsh
tool should be reported in Bugzilla against the libvirt component.
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
. -
To use TLS, set up a local certificate authority and issue x509 certs to all servers and clients. For information on configuring this option, see 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 ›