Taller 4: Gestión del almacenamiento en QEMU/KVM + libvirt
La teoría para completar este taller se encuentra en el capítulo 5 del curso de virtualización.
Entrega
Parte 1
Mostrar los pools con
virsh
atlas@olympus:~$ virsh -c qemu:///system pool-list
Name State Autostart
-------------------------------
default active yes
isos active yes
¿De qué tipo son?
dir
, y lo demuestro así:
atlas@olympus:~$ virsh -c qemu:///system pool-list --type dir
Name State Autostart
-------------------------------
default active yes
isos active yes
¿Qué se guarda en ellos?
Volúmenes, que serán ficheros qcow2
o iso
dependiendo del pool.
En el pool default
:
atlas@olympus:~$ virsh -c qemu:///system vol-list default
Name Path
------------------------------------------------------------------------------------------------------------------------------------------------------------------
debian-VAGRANTSLASH-bullseye64_vagrant_box_image_11.20220912.1.img /var/lib/libvirt/images/debian-VAGRANTSLASH-bullseye64_vagrant_box_image_11.20220912.1.img
delete.qcow2 /var/lib/libvirt/images/delete.qcow2
linux_adrian_j.qcow2 /var/lib/libvirt/images/linux_adrian_j.qcow2
prueba1.qcow2 /var/lib/libvirt/images/prueba1.qcow2
pruebas_pruebas.img /var/lib/libvirt/images/pruebas_pruebas.img
t1-virtualizacion_pruebas.img /var/lib/libvirt/images/t1-virtualizacion_pruebas.img
vol1.qcow2 /var/lib/libvirt/images/vol1.qcow2
win10.qcow2 /var/lib/libvirt/images/win10.qcow2
En el pool isos
:
atlas@olympus:~$ virsh -c qemu:///system vol-list isos
Name Path
-----------------------------------------------------------------------------------------------------
debian-11.5.0-amd64-netinst.iso /home/atlas/isos/debian-11.5.0-amd64-netinst.iso
OracleLinux-R9-U0-x86_64-dvd.iso /home/atlas/isos/OracleLinux-R9-U0-x86_64-dvd.iso
preseed-debian-11.5.0-amd64-netinst.iso /home/atlas/isos/preseed-debian-11.5.0-amd64-netinst.iso
virtio-win-0.1.221.iso /home/atlas/isos/virtio-win-0.1.221.iso
Win10_21H2_EnglishInternational_x64.iso /home/atlas/isos/Win10_21H2_EnglishInternational_x64.iso
Parte 2
Mostrar información sobre el pool discos
atlas@olympus:~$ virsh -c qemu:///system pool-info discos
Name: discos
UUID: f621e4c3-5e47-4da3-bfc0-7d398cec927e
State: running
Persistent: yes
Autostart: no
Capacity: 27.92 GiB
Allocation: 5.98 GiB
Available: 21.94 GiB
Parte 3
Mostrar con virsh los volúmenes del pool default
atlas@olympus:~$ virsh -c qemu:///system vol-list default
Name Path
------------------------------------------------------------------------------------------------------------------------------------------------------------------
debian-VAGRANTSLASH-bullseye64_vagrant_box_image_11.20220912.1.img /var/lib/libvirt/images/debian-VAGRANTSLASH-bullseye64_vagrant_box_image_11.20220912.1.img
delete.qcow2 /var/lib/libvirt/images/delete.qcow2
linux_adrian_j.qcow2 /var/lib/libvirt/images/linux_adrian_j.qcow2
prueba1.qcow2 /var/lib/libvirt/images/prueba1.qcow2
pruebas_pruebas.img /var/lib/libvirt/images/pruebas_pruebas.img
t1-virtualizacion_pruebas.img /var/lib/libvirt/images/t1-virtualizacion_pruebas.img
vol1.qcow2 /var/lib/libvirt/images/vol1.qcow2
win10.qcow2 /var/lib/libvirt/images/win10.qcow2
Parte 4
Mostrar los comandos usados para crear los dos volúmenes
atlas@olympus:~$ virsh -c qemu:///system vol-create-as discos disco1.qcow2 --format qcow2 1G
Vol disco1.qcow2 created
atlas@olympus:/srv/discos$ sudo qemu-img create -f qcow2 disco2.qcow2 2G
Formatting 'disco2.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=2147483648 lazy_refcounts=off refcount_bits=16
Listar los volúmenes del pool discos mostrando el aprovisionamiento ligero
atlas@olympus:~$ virsh -c qemu:///system vol-list discos --details
Name Path Type Capacity Allocation
-------------------------------------------------------------------------
disco1.qcow2 /srv/discos/disco1.qcow2 file 1.00 GiB 196.00 KiB
disco2.qcow2 /srv/discos/disco2.qcow2 file 2.00 GiB 196.00 KiB
Parte 5
Antes de redimensionar, mostrar un
df -h
Parte 6
Tras redimensionar, mostrar un
df -h
Desarrollo
Ejercicio 1
Mostrar los pools con
virsh
atlas@olympus:~$ virsh -c qemu:///system pool-list
Name State Autostart
-------------------------------
default active yes
isos active yes
¿De qué tipo son?
dir
, y lo demuestro así:
atlas@olympus:~$ virsh -c qemu:///system pool-list --type dir
Name State Autostart
-------------------------------
default active yes
isos active yes
¿Qué se guarda en ellos?
Volúmenes, que serán ficheros qcow2
o iso
dependiendo del pool.
En el pool default
:
atlas@olympus:~$ virsh -c qemu:///system vol-list default
Name Path
------------------------------------------------------------------------------------------------------------------------------------------------------------------
debian-VAGRANTSLASH-bullseye64_vagrant_box_image_11.20220912.1.img /var/lib/libvirt/images/debian-VAGRANTSLASH-bullseye64_vagrant_box_image_11.20220912.1.img
delete.qcow2 /var/lib/libvirt/images/delete.qcow2
linux_adrian_j.qcow2 /var/lib/libvirt/images/linux_adrian_j.qcow2
prueba1.qcow2 /var/lib/libvirt/images/prueba1.qcow2
pruebas_pruebas.img /var/lib/libvirt/images/pruebas_pruebas.img
t1-virtualizacion_pruebas.img /var/lib/libvirt/images/t1-virtualizacion_pruebas.img
vol1.qcow2 /var/lib/libvirt/images/vol1.qcow2
win10.qcow2 /var/lib/libvirt/images/win10.qcow2
En el pool isos
:
atlas@olympus:~$ virsh -c qemu:///system vol-list isos
Name Path
-----------------------------------------------------------------------------------------------------
debian-11.5.0-amd64-netinst.iso /home/atlas/isos/debian-11.5.0-amd64-netinst.iso
OracleLinux-R9-U0-x86_64-dvd.iso /home/atlas/isos/OracleLinux-R9-U0-x86_64-dvd.iso
preseed-debian-11.5.0-amd64-netinst.iso /home/atlas/isos/preseed-debian-11.5.0-amd64-netinst.iso
virtio-win-0.1.221.iso /home/atlas/isos/virtio-win-0.1.221.iso
Win10_21H2_EnglishInternational_x64.iso /home/atlas/isos/Win10_21H2_EnglishInternational_x64.iso
Mostrar los pools con
virt-manager
Ejercicio 2
Crear un pool con virsh de características:
- Nombre: discos
- Tipo: dir
- Directorio: /srv/discos
atlas@olympus:~$ virsh -c qemu:///system pool-define-as discos dir --target /srv/discos
Pool discos defined
Crear el directorio
Iniciar el pool
Mostrar que se ha creado el pool
atlas@olympus:~$ virsh -c qemu:///system pool-list
Name State Autostart
-------------------------------
default active yes
discos active no
isos active yes
Ejercicio 3
Mostrar los volúmenes del pool default con virsh
atlas@olympus:~$ virsh -c qemu:///system vol-list default
Name Path
------------------------------------------------------------------------------------------------------------------------------------------------------------------
debian-VAGRANTSLASH-bullseye64_vagrant_box_image_11.20220912.1.img /var/lib/libvirt/images/debian-VAGRANTSLASH-bullseye64_vagrant_box_image_11.20220912.1.img
delete.qcow2 /var/lib/libvirt/images/delete.qcow2
linux_adrian_j.qcow2 /var/lib/libvirt/images/linux_adrian_j.qcow2
prueba1.qcow2 /var/lib/libvirt/images/prueba1.qcow2
pruebas_pruebas.img /var/lib/libvirt/images/pruebas_pruebas.img
t1-virtualizacion_pruebas.img /var/lib/libvirt/images/t1-virtualizacion_pruebas.img
vol1.qcow2 /var/lib/libvirt/images/vol1.qcow2
win10.qcow2 /var/lib/libvirt/images/win10.qcow2
Mostrar lo mismo pero con virt-manager
Ejercicio 4
Crear un volumen con virsh de características:
- Pool: discos
- Nombre: disco1.qcow2
- Tamaño: 1G
atlas@olympus:~$ virsh -c qemu:///system vol-create-as discos disco1.qcow2 --format qcow2 1G
Vol disco1.qcow2 created
Ejercicio 5
Cambiar al directorio
/srv/discos
Crear una imagen con
qemu-img
de características:
- Nombre: disco2.qcow2
- Tamaño: 2G
atlas@olympus:/srv/discos$ sudo qemu-img create -f qcow2 disco2.qcow2 2G
Formatting 'disco2.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=2147483648 lazy_refcounts=off refcount_bits=16
Refrescar el pool para que se reconozca como volumen
Mostrar los volúmenes del pool discos para comprobar que todo es correcto
atlas@olympus:/srv/discos$ virsh -c qemu:///system vol-list discos
Name Path
------------------------------------------
disco1.qcow2 /srv/discos/disco1.qcow2
disco2.qcow2 /srv/discos/disco2.qcow2
Ejercicio 6
¿Qué característica especial tienen los qcow2?
Aprovisionamiento ligero, es decir, el espacio real ocupado en disco irá creciendo progresivamente.
La VM verá un tamaño virtual del fichero, que será el máximo que éste podrá alcanzar.
Listar los volúmenes del pool discos mostrando el aprovisionamiento ligero
atlas@olympus:~$ virsh -c qemu:///system vol-list discos --details
Name Path Type Capacity Allocation
-------------------------------------------------------------------------
disco1.qcow2 /srv/discos/disco1.qcow2 file 1.00 GiB 196.00 KiB
disco2.qcow2 /srv/discos/disco2.qcow2 file 2.00 GiB 196.00 KiB
Ejercicio 7
Añadir
disco1.qcow2
adebian_adrian_j
con virsh
atlas@olympus:~$ virsh -c qemu:///system attach-disk debian_adrian_j /srv/discos/disco1.qcow2 vdb --driver=qemu --type disk --subdriver qcow2 --persistent
Disk attached successfully
Añadir
disco2.qcow2
con virt-manager
Mostrar que están los 2 discos añadidos:
Formatear ambos discos
Montarlos persistentemente
Obtener los UUID de ambos discos:
Añadir las siguientes líneas al final de /etc/fstab
:
Hacer los cambios efectivos:
Al reiniciar, veríamos que los montajes se mantienen
Ejercicio 8
Parar
debian_adrian_j
Redimensionar con virsh
disco1.qcow2
a 2G
atlas@olympus:~$ virsh -c qemu:///system vol-resize disco1.qcow2 2G --pool discos
Size of volume 'disco1.qcow2' successfully changed to 2G
Redimensionar con qemu-img
disco2.qcow2
a 3G
Mostrar que los discos se han redimensionado correctamente pero los sistemas de ficheros no
Desmontar, redimensionar los sistemas de ficheros de ambos discos, y volver a montar
Mostrar que los sistemas de ficheros se han redimensionado correctamente