GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Instalar y configurar KVM en Ubuntu 20.04 LTS

Esta guía paso a paso explica qué es KVM, cómo instalar y configurar KVM en el servidor Ubuntu 20.04 y cómo crear y administrar máquinas invitadas KVM con el programa Virsh.

¿Qué es KVM?

KVM , abreviatura de K V basado en ernel M virtual achine, es un módulo de kernel de FreeBSD y Linux que permite que el kernel actúe como un hipervisor. A partir de la versión 2.6.20 del kernel, KVM se fusiona con la línea principal del kernel de Linux.

Con KVM, puede configurar fácilmente un entorno de virtualización en una máquina Linux y alojar una amplia gama de sistemas operativos invitados, incluidos Linux, Windows, BSD, Mac OS y muchos.

En esta guía, veremos cómo instalar y configurar KVM en el servidor sin cabeza Ubuntu 20.04. Y también veremos cómo crear y administrar máquinas invitadas KVM utilizando la utilidad de línea de comandos Virsh.

Requisitos

Antes de instalar KVM, primero asegúrese de que el procesador de su sistema sea compatible con la virtualización de hardware. Hemos documentado algunas formas diferentes de identificar si un sistema Linux es compatible con la virtualización en la siguiente guía.

  • Cómo averiguar si una CPU es compatible con la tecnología de virtualización (VT)

Si su sistema es compatible con la virtualización de hardware, continúe con los siguientes pasos.

1. Instalar y configurar KVM en Ubuntu 20.04 LTS

A los efectos de esta guía, usaré los siguientes sistemas.

servidor de virtualización KVM:

  • SO – Servidor mínimo Ubuntu 20.04 LTS (sin GUI)
  • Dirección IP :192.168.225.52/24

Cliente remoto:

  • SO – Escritorio Ubuntu 20.04 GNOME

Primero, instalemos KVM en el servidor Ubuntu.

1.1. Instalar KVM en Ubuntu 20.04 LTS

Instale Kvm y todas las dependencias requeridas para configurar un entorno de virtualización en su servidor Ubuntu 20.04 LTS usando el comando:

$ sudo apt install qemu qemu-kvm libvirt-clients libvirt-daemon-system virtinst bridge-utils

Aquí,

  • qemu - Un emulador y virtualizador de máquina genérico,
  • qemu-kvm - Metapaquete QEMU para compatibilidad con KVM (es decir, virtualización completa de QEMU en hardware x86),
  • libvirt-clientes - programas para la biblioteca libvirt,
  • libvirt-daemon-system - Archivos de configuración del demonio Libvirt,
  • virtinst - programas para crear y clonar máquinas virtuales,
  • puente-utilidades - utilidades para configurar el puente Ethernet de Linux.

Una vez que KVM esté instalado, inicie el servicio libvertd (si aún no se ha iniciado):

$ sudo systemctl enable libvirtd
$ sudo systemctl start libvirtd

Verifique el estado del servicio libvirtd con el comando:

$ systemctl status libvirtd

Salida de muestra:

● libvirtd.service - Virtualization daemon
     Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-07-04 08:13:41 UTC; 7min ago
TriggeredBy: ● libvirtd-ro.socket
             ● libvirtd-admin.socket
             ● libvirtd.socket
       Docs: man:libvirtd(8)
             https://libvirt.org
   Main PID: 4492 (libvirtd)
      Tasks: 19 (limit: 32768)
     Memory: 12.9M
     CGroup: /system.slice/libvirtd.service
             ├─4492 /usr/sbin/libvirtd
             ├─4641 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --l>
             └─4642 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --l>

Jul 04 08:13:42 ubuntuserver dnsmasq[4641]: compile time options: IPv6 GNU-getopt DBus i18n>
Jul 04 08:13:42 ubuntuserver dnsmasq-dhcp[4641]: DHCP, IP range 192.168.122.2 -- 192.168.12>
Jul 04 08:13:42 ubuntuserver dnsmasq-dhcp[4641]: DHCP, sockets bound exclusively to interfa>
Jul 04 08:13:42 ubuntuserver dnsmasq[4641]: reading /etc/resolv.conf
Jul 04 08:13:42 ubuntuserver dnsmasq[4641]: using nameserver 127.0.0.53#53
Jul 04 08:13:42 ubuntuserver dnsmasq[4641]: read /etc/hosts - 7 addresses
Jul 04 08:13:42 ubuntuserver dnsmasq[4641]: read /var/lib/libvirt/dnsmasq/default.addnhosts>
Jul 04 08:13:42 ubuntuserver dnsmasq-dhcp[4641]: read /var/lib/libvirt/dnsmasq/default.host>
Jul 04 08:13:42 ubuntuserver dnsmasq[4641]: reading /etc/resolv.conf
Jul 04 08:13:42 ubuntuserver dnsmasq[4641]: using nameserver 127.0.0.53#53

Bueno, ¡el servicio libvertd se ha habilitado y se ha iniciado! Hagamos el resto de la configuración ahora.

1.2. Configure la red Bridge con KVM en Ubuntu

Una red puenteada comparte la interfaz de red real de la computadora host con otras máquinas virtuales para conectarse a la red externa. Por lo tanto, cada VM puede vincularse directamente a cualquier dirección IPv4 o IPv6 disponible, al igual que una computadora física.

De forma predeterminada, KVM configura un puente virtual privado, de modo que todas las máquinas virtuales puedan comunicarse entre sí, dentro de la computadora host. Proporciona su propia subred y DHCP para configurar la red del huésped y utiliza NAT para acceder a la red del host.

Eche un vistazo a la dirección IP de las interfaces virtuales predeterminadas de KVM usando el comando "ip":

$ ip a

Salida de muestra:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:8a:52:94 brd ff:ff:ff:ff:ff:ff
    inet 192.168.225.52/24 brd 192.168.225.255 scope global dynamic enp0s3
       valid_lft 39559sec preferred_lft 39559sec
    inet6 2409:4072:6c0f:431d:a00:27ff:fe8a:5294/64 scope global mngtmpaddr noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe8a:5294/64 scope link 
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:10:7c:c1 brd ff:ff:ff:ff:ff:ff
    inet 192.168.225.60/24 brd 192.168.225.255 scope global dynamic enp0s8
       valid_lft 39559sec preferred_lft 39559sec
    inet6 2409:4072:6c0f:431d:a00:27ff:fe10:7cc1/64 scope global mngtmpaddr noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe10:7cc1/64 scope link 
       valid_lft forever preferred_lft forever
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:5d:61:28 brd ff:ff:ff:ff:ff:ff
    inet 192.168.225.51/24 brd 192.168.225.255 scope global dynamic enp0s9
       valid_lft 39559sec preferred_lft 39559sec
    inet6 2409:4072:6c0f:431d:a00:27ff:fe5d:6128/64 scope global mngtmpaddr noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe5d:6128/64 scope link 
       valid_lft forever preferred_lft forever
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:f1:98:9e brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:f1:98:9e brd ff:ff:ff:ff:ff:ff

Dirección IP de interfaz virtual predeterminada de KVM

Como puede ver, la red predeterminada de KVM virbr0 utiliza la dirección IP 192.168.122.1/24. Todas las máquinas virtuales utilizarán una dirección IP en el rango de IP 192.168.122.0/24 y se podrá acceder al sistema operativo host en 192.168.122.1. Debería poder acceder al sistema operativo host (en 192.168.122.1) desde el interior del sistema operativo invitado y usar scp para copiar archivos de un lado a otro.

Está bien si solo accede a las máquinas virtuales internas desde el propio host. Sin embargo, no podemos acceder a las VM desde otros sistemas remotos en la red.

Porque usan un rango de IP diferente, es decir, 192.168.225.0/24 en mi caso. Para acceder a las máquinas virtuales desde otros hosts remotos, debemos configurar un puente público que se ejecute en la red del host y use cualquier servidor DHCP externo que esté en la red del host.

Para poner esto en términos simples, vamos a hacer que todas las máquinas virtuales usen la misma serie de IP que usa el sistema host.

Antes de configurar una red pública en puente, debemos deshabilitar Netfilter por razones de rendimiento y seguridad . Actualmente, Netfilter está habilitado en los puentes de forma predeterminada.

Para deshabilitar netfilter, cree un archivo llamado /etc/sysctl.d/bridge.conf :

$ sudo vi /etc/sysctl.d/bridge.conf

Agregue las siguientes líneas:

net.bridge.bridge-nf-call-ip6tables=0
net.bridge.bridge-nf-call-iptables=0
net.bridge.bridge-nf-call-arptables=0

Guarde y cierre el archivo.

Luego crea otro archivo llamado /etc/udev/rules.d/99-bridge.rules :

$ sudo vi /etc/udev/rules.d/99-bridge.rules

Agregue la siguiente línea:

ACTION=="add", SUBSYSTEM=="module", KERNEL=="br_netfilter", RUN+="/sbin/sysctl -p /etc/sysctl.d/bridge.conf"

Esto establecerá las banderas necesarias para deshabilitar netfilter en puentes en el lugar apropiado en el inicio del sistema. Guarde y cierre el archivo. Reinicia tu sistema para que surtan efecto estos cambios.

A continuación, debemos deshabilitar la red predeterminada que KVM instaló para sí mismo.

Encuentre el nombre de las interfaces de red predeterminadas de KVM usando el comando "ip link":

$ ip link

Resultado de muestra:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:8a:52:94 brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:10:7c:c1 brd ff:ff:ff:ff:ff:ff
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:5d:61:28 brd ff:ff:ff:ff:ff:ff
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:54:00:1f:a2:e7 brd ff:ff:ff:ff:ff:ff
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:54:00:1f:a2:e7 brd ff:ff:ff:ff:ff:ff

Ver las interfaces de red predeterminadas de KVM

Como puede ver en el resultado anterior, las entradas "virbr0" y "virbr0-nic" son las redes KVM.

Quitemos la red KVM predeterminada con el comando:

$ virsh net-destroy default

Salida de muestra:

Network default destroyed

Anule la definición de la red predeterminada con el comando:

$ virsh net-undefine default

Salida de muestra:

Network default has been undefined

eliminar las interfaces de red KVM predeterminadas

Si los comandos anteriores no funcionan por algún motivo, puede usar estos comandos para deshabilitar y anular la definición de la red predeterminada de KVM:

$ sudo ip link delete virbr0 type bridge
$ sudo ip link delete virbr0-nic

Ahora ejecute "ip link" nuevamente para verificar si las interfaces virbr0 y virbr0-nic se eliminaron realmente:

$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:8a:52:94 brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:10:7c:c1 brd ff:ff:ff:ff:ff:ff
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:5d:61:28 brd ff:ff:ff:ff:ff:ff

¿Ver? Las redes predeterminadas de KVM se han ido.

Ahora, configuremos el puente público KVM para usarlo al crear una nueva VM.

Nota:

No utilice tarjetas de interfaz de red inalámbrica para puentes. La mayoría de los entrelazados inalámbricos no admiten puentes. ¡Utilice siempre interfaces de red cableadas para una conectividad perfecta!

Para crear un puente de red en el host, edite /etc/netplan/00-installer-config.yaml archivo y agregue los detalles del puente.

Este es el contenido predeterminado de 00-installer-config.yaml archivo en mi servidor Ubuntu 20.04 LTS.

$ cat /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
  ethernets:
    enp0s3:
      dhcp4: true
    enp0s8:
      dhcp4: true
    enp0s9:
      dhcp4: true
  version: 2

Como puede ver, tengo tres interfaces de red cableadas, a saber, enp0s3, enp0s8 y enp0s9 en mi servidor Ubuntu.

Antes de editar este archivo, haga una copia de seguridad de su archivo /etc/netplan/00-installer-config.yaml existente:

$ sudo cp /etc/netplan/00-installer-config.yaml{,.backup}

Luego edite el archivo de configuración predeterminado usando su editor favorito:

$ sudo vi /etc/netplan/00-installer-config.yaml

Añádelo o modifícalo como se muestra a continuación:

# This is the network config written by 'subiquity'
network:
  ethernets:
    enp0s3:
      dhcp4: false
      dhcp6: false
    enp0s8:
      dhcp4: false
      dhcp6: false
    enp0s9:
      dhcp4: false
      dhcp6: false
  bridges:
    br0:
      interfaces: [ enp0s3 ]
      addresses: [192.168.225.52/24]
      gateway4: 192.168.225.1
      mtu: 1500
      nameservers:
        addresses: [8.8.8.8,8.8.4.4]
      parameters:
        stp: true
        forward-delay: 4
      dhcp4: no
      dhcp6: no
  version: 2

crear un puente de red en ubuntu

Aquí, la interfaz de red del puente "br0" se adjunta a la interfaz de red del host "enp0s3". La dirección IP de br0 es 192.168.225.52. La puerta de enlace es 192.168.225.1. Uso los servidores DNS de Google (8.8.8.8 y 8.8.4.4) para conectarme a Internet. Asegúrese de que la sangría del espacio sea exactamente la misma que la anterior. Si las sangrías de línea no son correctas, la interfaz de red en puente no se activará. Reemplace los valores anteriores que coincidan con su red.

Después de modificar el archivo de configuración de la red, guárdelo y ciérrelo. Aplique los cambios ejecutando el siguiente comando:

$ sudo netplan --debug  apply

Ahora compruebe si la dirección IP se ha asignado a la interfaz del puente:

$ ip a

Salida de muestra:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
    link/ether 08:00:27:8a:52:94 brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:10:7c:c1 brd ff:ff:ff:ff:ff:ff
    inet6 2409:4072:48b:ab02:a00:27ff:fe10:7cc1/64 scope global mngtmpaddr noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe10:7cc1/64 scope link 
       valid_lft forever preferred_lft forever
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:5d:61:28 brd ff:ff:ff:ff:ff:ff
    inet6 2409:4072:48b:ab02:a00:27ff:fe5d:6128/64 scope global mngtmpaddr noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe5d:6128/64 scope link 
       valid_lft forever preferred_lft forever
7: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 08:00:27:8a:52:94 brd ff:ff:ff:ff:ff:ff
    inet 192.168.225.52/24 brd 192.168.225.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe8a:5294/64 scope link 
       valid_lft forever preferred_lft foreve

verifique la dirección IP de la red del puente KVM

Como puede ver en el resultado anterior, la interfaz de red en puente br0 tiene asignada la dirección IP 192.168.225.52 y la entrada enp0s3 ahora tiene la entrada "master br0". Significa que enp0s3 pertenece al puente.

También puede usar "brctl" comando para mostrar el estado del puente:

$ brctl show br0

Salida de muestra:

bridge name    bridge id       STP enabled interfaces
br0     8000.0800278a5294   yes     enp0s3

Ahora debemos configurar KVM para usar este puente. Para hacer eso, cree un archivo XML llamado host-bridge.xml :

$ vi host-bridge.xml

Agregue las siguientes líneas:

<network>
  <name>host-bridge</name>
  <forward mode="bridge"/>
  <bridge name="br0"/>
</network>

Ejecute los siguientes comandos para iniciar el puente recién creado y convertirlo en el puente predeterminado para las máquinas virtuales:

$ virsh net-define host-bridge.xml
$ virsh net-start host-bridge
$ virsh net-autostart host-bridge

iniciar el puente de host KVM

Para verificar si el puente está activo e iniciado, ejecute:

$ virsh net-list --all

Resultado de muestra:

Name          State    Autostart   Persistent
------------------------------------------------
 host-bridge   active   yes         yes

verificar el estado del puente del host KVM

¡Felicitaciones! Hemos configurado correctamente el puente KVM y ahora está activo.

Lectura relacionada:

  • Instalar y configurar KVM en el servidor CentOS 8
  • Instalar y configurar KVM en OpenSUSE Tumbleweed

2. Cree y administre máquinas virtuales KVM usando Virsh

Usamos "virsh" Utilidad de línea de comandos para administrar máquinas virtuales. El programa virsh se utiliza para crear, enumerar, pausar, reiniciar, apagar y eliminar máquinas virtuales desde la línea de comandos.

De forma predeterminada, los archivos de la máquina virtual y otros archivos relacionados se almacenan en /var/lib/libvirt/ localización. La ruta predeterminada para almacenar imágenes ISO es /var/lib/libvirt/boot/ . Por supuesto, podemos cambiar estas ubicaciones al instalar una nueva máquina virtual.

2.1. Listar todas las máquinas virtuales

Primero, verifiquemos si existe alguna máquina virtual.

Para ver la lista de todas las máquinas virtuales disponibles, ejecute:

$ sudo virsh list --all

Salida de muestra:

Listar máquinas virtuales usando virsh

Como puede ver, no hay máquinas virtuales existentes.

2.2. Crear máquinas virtuales KVM

Creemos una máquina virtual Ubuntu 18.04 con 2 GB de RAM, 1 núcleo de CPU, 10 GB de disco duro. Para hacer eso, ejecuta:

$ sudo virt-install --name Ubuntu-18.04 --ram=2048 --vcpus=1 --cpu host --hvm --disk path=/var/lib/libvirt/images/ubuntu-18.04-vm1,size=10 --cdrom /home/ostechnix/ubuntu18.iso --network bridge=br0 --graphics vnc

Analicemos el comando anterior y veamos qué hace cada opción.

  • --nombre Ubuntu-18.04 :El nombre de la máquina virtual
  • --ram=2048 :asigna 2 GB de RAM a la máquina virtual.
  • -vcpus=1 :indica la cantidad de núcleos de CPU en la máquina virtual.
  • --host de la CPU :optimiza las propiedades de la CPU para la VM al exponer la configuración de la CPU del host al invitado.
  • --hvm :Solicite la virtualización completa del hardware.
  • --ruta del disco=/var/lib/libvirt/images/ubuntu-18.04-vm1,size=10 :La ubicación para guardar el disco duro de la VM y su tamaño. En este caso, he asignado un tamaño de disco duro de 10 GB.
  • --cdrom /home/ostechnix/ubuntu18.iso :La ubicación donde tiene la imagen ISO real del instalador de Ubuntu.
  • --puente de red=br0 :indique a la máquina virtual que use la red puente. Si no configuró la red puente, ignore este parámetro.
  • --gráficos vnc :permite el acceso VNC a la máquina virtual desde un cliente remoto.

La salida de muestra del comando anterior sería:

WARNING Graphics requested but DISPLAY is not set. Not running virt-viewer.
WARNING No console to launch for the guest, defaulting to --wait -1

Starting install...
Allocating 'ubuntu-18.04-vm1'                                                                                                                      |  10 GB  00:00:06     
Domain installation still in progress.
Waiting for installation to complete.

Este mensaje seguirá mostrándose hasta que se conecte a la máquina virtual desde un sistema remoto a través de cualquier aplicación VNC y complete la instalación del sistema operativo.

Dado que nuestro sistema host KVM (servidor Ubuntu) no tiene GUI, no podemos continuar con la instalación del sistema operativo invitado. Por lo tanto, usaré una máquina de repuesto que tenga una GUI para completar la instalación del sistema operativo invitado con la ayuda de un cliente VNC.

Hemos terminado con el servidor Ubuntu aquí. Los siguientes pasos deben realizarse en un sistema cliente.

2.3. Acceda a máquinas virtuales desde sistemas remotos a través del cliente VNC

Vaya a los sistemas remotos que tienen un entorno de escritorio gráfico e instale cualquier aplicación de cliente VNC si aún no está instalada. Tengo un escritorio Ubuntu con Remmina cliente de escritorio remoto instalado.

SSH en el sistema host KVM:

$ ssh [email protected]

Aquí,

  • ostécnica es el nombre del usuario en el host KVM (servidor Ubuntu 20.04)
  • 192.168.225.52 es la dirección IP del host KVM.

Encuentre el puerto VNC utilizado por la VM en ejecución usando el comando:

$ sudo virsh dumpxml Ubuntu-18.04 | grep vnc

Reemplace "Ubuntu-18.04" con el nombre de su VM.

Salida de muestra:

<graphics type='vnc' port='5900' autoport='yes' listen='127.0.0.1'>

El número de puerto VNC es 5900 .

Escriba el siguiente comando de reenvío de puerto SSH desde su terminal:

$ ssh [email protected] -L 5900:127.0.0.1:5900

Inicie la aplicación de cliente VNC y elija el protocolo "VNC" y luego escriba "localhost:5900" en la barra de direcciones y finalmente presiona ENTER:

Conéctese a máquinas virtuales remotas mediante el cliente de escritorio remoto Remmina

La aplicación VNC ahora le mostrará la ventana de instalación de Guess OS.

Acceda a máquinas virtuales desde sistemas remotos a través del cliente VNC

Simplemente continúe con la instalación del sistema operativo invitado. Una vez finalizada la instalación, cierre la ventana de la aplicación VNC.

2.4. Lista de máquinas virtuales en ejecución

Ejecute el comando "virt list" para ver la lista de máquinas virtuales en ejecución:

$ sudo virsh list

Salida de muestra:

 Id   Name           State
------------------------------
 2    Ubuntu-18.04   running

Como puede ver, Ubuntu 18.04 VM se está ejecutando actualmente y su ID es 2.

2.5. Iniciar máquinas virtuales

Para iniciar una máquina virtual, ejecute:

$ sudo virsh start Ubuntu-18.04

También puede usar la ID de la VM para iniciarla:

$ sudo virsh start 2

2.6. Reiniciar máquinas virtuales

Para reiniciar una máquina virtual en ejecución, haga lo siguiente:

$ sudo virsh reboot Ubuntu-18.04

O,

$ sudo reboot 2

2.7. Pausar máquinas virtuales

Para pausar una máquina virtual en ejecución, haz lo siguiente:

$ sudo suspend Ubuntu-18.04

O,

$ sudo suspend 2

2.8. Reanudar máquinas virtuales

Para reanudar una máquina virtual suspendida, haga lo siguiente:

$ sudo virsh resume Ubuntu-18.04

O,

$ sudo resume 2

2.9. Apagar máquinas virtuales

Para apagar una máquina virtual en ejecución, haga lo siguiente:

$ sudo virsh shutdown Ubuntu-18.04

O,

$ sudo shutdown 2

2.10. Eliminar máquinas virtuales

Para eliminar por completo una máquina virtual, haga lo siguiente:

$ sudo virsh undefine Ubuntu-18.04
$ sudo virsh destroy Ubuntu-18.04

Virsh tiene muchos comandos y opciones. Para conocerlos todos, consulte la sección de ayuda de virsh:

$ virsh --help

3. Administre invitados KVM gráficamente

Recordar todos los comandos virsh es casi imposible. Si es un administrador de Linux en ciernes, es posible que le resulte difícil realizar todas las operaciones de administración de Kvm desde la línea de comandos. ¡No hay problema! Hay algunas herramientas basadas en la web disponibles para administrar gráficamente las máquinas invitadas KVM. Las siguientes guías explican en detalle cómo administrar invitados de Kvm usando Cockpit y Virt-manager.

  • Administre máquinas virtuales KVM mediante la consola web Cockpit
  • Cómo administrar máquinas virtuales KVM con Virt-Manager

4. Habilite el acceso a la consola Virsh para máquinas virtuales

Después de crear los invitados KVM, puedo acceder a ellos a través de SSH, cliente VNC, Virt-viewer, Virt-manager y la consola web Cockpit, etc. Pero no pude acceder a ellos usando el comando "virsh console". Para acceder a los invitados de KVM usando la "consola virsh", consulte la siguiente guía:

  • Cómo habilitar el acceso a la consola Virsh para invitados KVM
Otras guías relacionadas con KVM
  • Cree una máquina virtual KVM usando la imagen Qcow2 en Linux
  • Cómo migrar máquinas virtuales de Virtualbox a máquinas virtuales KVM en Linux
  • Habilite la compatibilidad con UEFI para máquinas virtuales KVM en Linux
  • Cómo habilitar la virtualización anidada en KVM en Linux
  • Muestre las estadísticas de los sistemas de virtualización con Virt-top en Linux
  • Cómo encontrar la dirección IP de una máquina virtual KVM
  • Cómo cambiar el nombre de la máquina virtual invitada KVM
  • Acceda y modifique imágenes de disco de máquina virtual con Libguestfs
  • Cree rápidamente imágenes de máquinas virtuales con Virt-builder
  • Cómo rescatar máquinas virtuales con Virt-rescue
  • Cómo ampliar el tamaño del disco de la máquina virtual KVM en Linux
  • Configurar una carpeta compartida entre el host y el invitado de KVM
  • Cómo cambiar la ubicación del grupo de almacenamiento predeterminado de KVM Libvirt
  • [Resuelto] No se puede acceder al archivo de almacenamiento, Permiso denegado Error en KVM Libvirt
  • Cómo exportar e importar máquinas virtuales KVM en Linux

Conclusión

En esta guía, discutimos cómo instalar y configurar KVM en la edición del servidor Ubuntu 20.04 LTS.

También vimos cómo crear y administrar máquinas virtuales KVM desde la línea de comandos usando virsh herramienta y usando las herramientas GUI Cockpit y Virt-manager.

Finalmente, vimos cómo habilitar el acceso a la consola virsh para máquinas virtuales KVM. En esta etapa, debería tener un entorno de virtualización completamente funcional en su servidor Ubuntu 20.04.


Ubuntu
  1. Cómo instalar y configurar KVM en el servidor Ubuntu 18.04 LTS

  2. Cómo instalar y configurar Kubernetes (k8s) en Ubuntu 18.04 LTS

  3. Cómo instalar y configurar GitLab en Ubuntu 18.04 LTS

  4. Cómo instalar y configurar Ansible en Ubuntu 18.04 LTS

  5. Cómo instalar y configurar Fail2ban en Ubuntu 20.04 LTS

Cómo instalar y configurar GitLab CE en Ubuntu 18.04 LTS

Cómo instalar y configurar Docker-CE en Ubuntu 18.04 LTS

Cómo instalar y configurar Odoo ERP en Ubuntu 20.04 LTS

Instalar y configurar Wildfly (JBoss) en Ubuntu 18.04 LTS

Cómo instalar y configurar MySQL en Ubuntu 20.04 LTS

Cómo instalar KVM en Ubuntu 20.04 LTS