19 septiembre, 2021

Usando QEMU/KVM con LibVirt (5/6) Hardware y dispositivos

En la consola de la maquina podremos acceder al hardware de la maquina virtual con la opción “Vista→Detalles”. Al pulsar el botón “Agregar Hardware” podremos añadir nuevos dispositivos, como discos, y otras opciones a nuestra maquina.

Por regla general usaremos los modelos de dispositivo virtio en Windows y linux al tener drivers para ellos y estar optimizados para la virtualización.

DRIVERS VIRTIO

Desde esta sección se pueden definir el comportamiento y recursos de la maquina virtual, como:

  • Nombre de la maquina virtual, vCPUs (incluida su topologia, sockets, hilos) RAM, opciones de arranque de los discos
  • Almacenamiento: Nos permite añadir discos duros virtuales, CDROM, Disquetes. Se podrá crear imagenes o utilizar alguna de los depositos definidos, asi como asignarle particiones de disco si hemos creado un deposito de disco o bloques por ejemplo.
  • Controladores: SCSI, USB, Serial, SATA No debemos confundir con los redirectores de USB que nos permitirá redirigir un dispositivo conectado en la maquina física a la virtual (desde la consola de la maquina virtual “MaquinaVirtual→Redirigir USB”) siempre que en la maquina física tengamos instalado el cliente SPICE. La redirección es ideal para conexiones remotas a maquinas virtuales con dispositivos USB de nuestra maquina local.
  • Dispositivos PCI, USB, serial
  • Interfaz de red Definiremos los vNIC de la maquina invitada y a la red Virtual, que antes habremos definido, a la que se conecta. También se podrá conectar a un dispositivo puente definido a un dispositivo MacTAP. Ademas del punto de red al que se conecta se definirá la MAC y el tipo de tarjeta de red que para maquinas Windows y Linux usaremos normalmente virtio.
  • Sistemas de entrada: Raton, Tableta, teclado.
  • Monitor definimos el método de acceso desde nuestro host a la parte grafica y puede ser: VNC o SPICE (el que recomendamos)
  • Tarjetas de video, se dispone de multitud de ellas como son: VGA, QXL(paravirtual compatible con VGA y recomendada a utilizar instalando los drivers en la maquina invitada “https://www.spice-space.org/download.html”)
  • Sonido Dispositivos de sonido, definiendo el modelo que emulara la virtualización.
  • Canales que permiten la comunicación entre el host y la maquina virtual
    • canal spice com.redhat.spice.0 y tipo spicevmc: Nos permite una mejor integración con las aplicaciones graficas como son el Copy&Paste, ajuste automatico en la resolución de la pantalla. Después en las maquinas invitada deberemos instalar “qemu-guest-agent” y en windows el ejecutable spice-guest-tools-latest.exe
    • canal qemu-ga: org.qemu.guest_agent.0 tipo unix: Ayuda a la administración de la maquina invitada en funciones como suspensión, congelación del sistema de archivos, snapshot, etc.
    • canal Webdav org.spice-space.webdav.0 Nos permite compartir carpeta debiendo instalar en el invitado el servicio.
  • Sistema de ficheros compartidos Montamos en la invitada un disco del anfitrion mediante protocolo 9P.

Es recomendable ver las diversas soluciones de comunicación (canales) que nos ofrece el proyecto “SPICE”

La forma más sencilla compartir un disco invitado de windows es mediante SMB (Samba) o NFS se pueden compartir archivos con otros sistemas.

Compartir una carpeta del anfitrión Linux a una invitada Linux

Lo realizaremos montando el disco en la maquina invitada con el protocolo 9P. El protocolo 9P nos permite exponer directorios de la maquina anfitrion a las maquinas invitadas que se conectaran a estas mediante el protocolo 9P, permitiendo que varios invitados se conecten a este recurso.

1.- Creamos en Hardware un Sistema de ficheros compartidos

  • Tipo: mount
  • Modo mapeado
  • Otra opción es Passthrough para que los archivos se almacenen con las mismas credenciales que el invitado, pero en este caso es necesario ser root.
  • Carpeta Origen
  • Ruta: nombre con el que se montara en la maquina invitada.

2.- La maquina invitada en linux se conectara a este recurso, montando simplemente este mediante protocolo 9P.

mount -t 9p -o trans=virtio <Ruta> <Punto de montaje> 

Otras opciones de montaje que se definirían -o <opciones>

  • version 9p2000.L | 9p2000.u // Esta ultima la de por defecto en principio y que permite el soporte uid y gid
  • Modo de acceso “access
    • user: Modo por defecto
    • <uid>: Solo permite el usuario indicado en UID acceso a los ficheros
    • any: Permite a todos los usuarios acceso.
    • client: Obtiene los valores de la lista de control de acceso del servidor y realiza una verificación de acceso en el cliente.

NOTAS

Ya que los recursos que creemos desde la invitada se crearan con el usuario y grupo/libvirt-qemu de la anfitriona, al directorio que compartamos le deberíamos dar los siguientes permisos.

setfacl -m u:libvirt-qemu:rwx <directorio>
setfacl -m g:libvirt-qemu:rwx <directorio>

Los ficheros que creemos desde la anfitriona deberemos cambiarles al grupo y el usuario a libvirt-qemu, para que la invitada continué teniendo permisos sobre ellos.

Para evitar problema en el anfitrión con la creación de ficheros y directorios creados en la invitada debemos tocar el XML, las opciones:

  • fmode damos el modo de creación de ficheros
  • dmode definimos el modo de creación de directorios.
<filesystem type='mount' accessmode='mapped' fmode='600' dmode='700'> Por defecto solo usuario
<!-- wp:paragraph -->
<p>&lt;filesystem type='mount' accessmode='mapped' fmode='660' dmode='770'&gt; Para darle también al grupo</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>&lt;filesystem type='mount' accessmode='mapped' fmode='664' dmode='755'&gt; Otra opcion</p>
<!-- /wp:paragraph -->

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Ver más

  • Responsable: Javier.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a Hostinger.es que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Ver
Privacidad