Agregar dispositivos de almacenamiento a Guests

Podemos añadir dispositivos de almacenamiento a las VMs usando virsh o virt-manager

Agregando almacenamiento con virt-manager

  1. Abrir virt-manager y seleccionar la máquina virtual a la que deseamos agregarle el volumen de almacenamiento:
../../../_images/vm-list.png

virt-manager - Lista de VMs

Clic derecho en nuestra VM | Open | Show virtual hardware details | + Add Hardware

../../../_images/virtual-hardware-details.png

virt-manager - Show virtual hardware details

  1. En la ventana de “Add New Virtual Hardware”, tenemos dos opciones:
  • Seleccionar Create a disk image for the virtual machine para crear rápidamente un nuevo disco:
../../../_images/add-new-virtual-hardware-create-1.png

virt-manager - Add new virtual hardware - Crear un nuevo disco

Al hacer clic en Finish se habrá el nuevo dispositivo de almacenamiento:

../../../_images/add-new-virtual-hardware-create-1.png

virt-manager - Nuevo Virtual Disk

  • Seleccionar Select or create custom storage para crear o seleccionar un almacenamiento personalizado:
../../../_images/add-new-virtual-hardware-select.png

virt-manager - Add new virtual hardware - Seleccionar o crear un almacenamiento personalizado

Si hacemos clic en Manage podemos crear un nuevo pool/volumen o seleccionar un volumen existente. Clic en Choose Volume.

../../../_images/choose-storage.png

virt-manager - Seleccionar/crear almacenamiento

Agregando almacenamiento con virsh

virsh provee la opción attach-disk para conectar un nuevo dispositivo de disco a una VM. Hay muchos parámetros que provee esta opción:

attach-disk domain source target [[[--live] [--config] |
[--current]] | [--persistent]] [--targetbus bus] [--driver
driver] [--subdriver subdriver] [--iothread iothread] [--cache
cache] [--io io] [--type type] [--mode mode] [--sourcetype
sourcetype] [--serial serial] [--wwn wwn] [--rawio] [--address
address] [--multifunction] [--print-xml]

Lo siguiente es suficiente para realizar una conexión de un disco en caliente a una VM:

$ virsh attach-disk centos7.0 /var/lib/libvirt/images/virtual-disk.img vdc --live --config
  • centos7.0 es la VM a la que conectaremos el disco.
  • /var/lib/libvirt/images/virtual-disk.img es la ruta a la imagen de disco.
  • vdb es el nombre del disco objetivo que será visible en el SO guest.
  • --live significa que la acción se realizará mientras está corriendo la VM.
  • --config significa que la conexión del disco será permanente luego de un reinicio.

Usar el comando virsh domblklist para identificar cuántos vDisks están conectados a una VM:

$ virsh domblklist centos7.0 --details

Type       Device     Target     Source
------------------------------------------------
file       disk       vda        /var/lib/libvirt/images/centos7-guest-temp.qcow2
file       disk       vdb        /var/lib/libvirt/images/thinprovisioned-disk.img

Significa que los dos vDisks conectados a la VM son imágenes de archivos. Son visibles al SO guest como vda y vdb. En la última columna se ve la ruta de la imagen de disco en el sistema host.

Note

Otra opción para añadir un dispositivo de almacenamiento con virsh es a través de un archivo XML:

<disk type='file' device='disk>'>
    <driver name='qemu' type='raw' cache='none'/>
    <source file='/var/lib/libvirt/images/FileName.img'/>
    <target dev='vdb' bus='virtio'/>
</disk>
$ virsh attach-disk --config Guest1 ~/NewStorage.xml

Eliminando almacenamiento con virsh

Para eliminar un dispositivo de almacenamiento de una VM (guest1) con virsh usamos el comando:

$ virsh detach-disk guest1 vdb