GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo cambiar la ubicación del grupo de almacenamiento predeterminado de KVM Libvirt

Esta guía explica qué son los grupos de almacenamiento y los volúmenes en Libvirt y cómo cambiar la ubicación predeterminada del grupo de almacenamiento de KVM libvirt usando Virsh programa, Virt-manager y cabina en Linux.

Grupos de almacenamiento y volúmenes en Libvirt

Libvirt proporciona administración de almacenamiento en un sistema host KVM a través de grupos y volúmenes de almacenamiento.

Un grupo de almacenamiento es una cantidad de almacenamiento asignado en el host KVM para que lo utilicen las máquinas virtuales. Un grupo de almacenamiento se divide en volúmenes de almacenamiento y se asigna a las máquinas virtuales como dispositivos de bloque.

En otras palabras, un grupo de almacenamiento es un recurso de almacenamiento en el sistema host KVM que se puede usar para almacenar volúmenes. Y el volumen de almacenamiento es un dispositivo de almacenamiento que se puede asignar a una máquina virtual.

Un volumen de almacenamiento puede ser un dispositivo de bloque, por ejemplo, una partición, un volumen lógico o un archivo. Los discos duros virtuales, los dispositivos de cd/dvd/floppy y las imágenes ISO adjuntas a las máquinas invitadas son ejemplos de volúmenes de almacenamiento.

No puede tener un volumen de almacenamiento sin un grupo de almacenamiento. Primero, debe crear un grupo de almacenamiento y luego crear los volúmenes de almacenamiento dentro del grupo.

De forma predeterminada, todas las máquinas virtuales creadas con libvirt se almacenan en /var/lib/libvirt/images/ localización. Este es el grupo de almacenamiento predeterminado para las imágenes de VM de Libvirt.

Tipos de grupos de almacenamiento

Un grupo de almacenamiento puede ser uno de los siguientes tipos:

  1. Grupo de directorios:use un directorio como un grupo para alojar archivos de imagen. Los archivos pueden tener uno de los tipos de formato de volumen válidos, como raw, qcow, qcow2, dmg, vmdk, vpc o imágenes ISO.
  2. Grupo de sistemas de archivos:use un dispositivo de bloque (por ejemplo, partición o grupo LVM) como grupo en lugar de un directorio de uso en un sistema de archivos montado existente.
  3. Grupo de sistemas de archivos de red:utilice un sistema de archivos de red (p. ej., cifs , glusterfs , nfs etc.) como un grupo para almacenar volúmenes de almacenamiento. En lugar de un directorio o un dispositivo de bloque, requiere un host de red y la ruta de un directorio compartido.
  4. Grupo de volúmenes lógicos:use un grupo de volúmenes LVM como un grupo para almacenar volúmenes.
  5. Grupo de discos:utilice un disco físico como grupo. Los volúmenes se pueden crear agregando particiones al disco.
  6. Grupo iSCSI:use un objetivo iSCSI para almacenar volúmenes. Todos los volúmenes deben asignarse previamente en el servidor iSCSI.
  7. Grupo directo iSCSI:esta es una variante del grupo iSCSI. En lugar de usar iscsiadm, usa libiscsi . Requiere un host, una ruta que es el IQN de destino y un IQN de iniciador.
  8. Grupo SCSI:use un adaptador de bus de host SCSI casi de la misma manera que un objetivo iSCSI.
  9. Grupo de rutas múltiples:en la actualidad, las rutas múltiples no son compatibles.
  10. Grupo RBD:este controlador de almacenamiento proporciona un conjunto que contiene todas las imágenes RBD en un conjunto RADOS. RBD (RADOS Block Device) es parte del proyecto de almacenamiento distribuido Ceph.
  11. Grupo de Sheepdog:use el clúster de Sheepdog como un grupo para almacenar volúmenes.
  12. Gluster pool:utilice el sistema de archivos distribuidos de Gluster como un pool.
  13. Grupo ZFS:use el sistema de archivos ZFS como un grupo.
  14. Grupo de almacenamiento:utilice el almacenamiento definido por software distribuido de Virtuozzo como un grupo.

A los efectos de esta guía, utilizaremos Directory pool .

1. Cambiar la ubicación del grupo de almacenamiento predeterminado de KVM Libvirt

Como ya se indicó, todas las imágenes KVM/Libvirt se almacenan en /var/lib/libvirt/images/ ubicación por defecto. Dado que esta ubicación reside en rootfs partición, es posible que desee moverla a otra ubicación, por ejemplo, $HOME directorio.

Podemos cambiar la ubicación predeterminada de las imágenes KVM Libvirt VM usando virsh programa de línea de comandos y su interfaz gráfica llamada Virt-manager , y también Cabina consola web.

Primero, veremos cómo cambiar la ruta del grupo de almacenamiento predeterminado de Libvirt usando virsh programa.

1.1. Cambie la ubicación del grupo de almacenamiento predeterminado de KVM Libvirt usando el programa virsh

1.1.1. Inicie sesión en su sistema host KVM y apague todos los invitados en ejecución.

Para encontrar la lista de máquinas virtuales en ejecución, simplemente haga lo siguiente:

$ virsh list --all

Apague si hay alguna VM en ejecución.

$ virsh apagado

1.1.2. Enumere todos los grupos de almacenamiento configurados en su máquina host KVM:

$ virsh pool-list 

Salida de muestra:

 Name      State    Autostart
 default   active   no

Como puede ver, solo tengo un grupo de almacenamiento, que es el default . Se crea automáticamente cuando instalamos kvm/libvirt .

1.1.3. Veamos los detalles del grupo de almacenamiento predeterminado usando el comando:

$ virsh pool-info default 

Salida de muestra:

 Name:           default
 UUID:           76f47a3c-7656-4c34-9ab5-c87e5136d532
 State:          running
 Persistent:     yes
 Autostart:      no
 Capacity:       369.22 GiB
 Allocation:     65.60 GiB
 Available:      303.62 GiB

El resultado anterior enumera detalles como el nombre del grupo de almacenamiento, UUID, estado, persistente, inicio automático, capacidad, espacio asignado del grupo de almacenamiento y el espacio disponible restante.

Dado que vamos a cambiar la ruta del grupo de almacenamiento, también debemos encontrarlo.

1.1.4. Para mostrar la ruta del grupo de almacenamiento predeterminado, usamos grep comando con virsh como a continuación:

$ virsh pool-dumpxml default | grep -i path

Salida de muestra:

<path>/var/lib/libvirt/images</path>

Como puede ver en el resultado anterior, el grupo de almacenamiento predeterminado es /var/lib/libvirt/images/ . Vamos a cambiarlo en los pasos siguientes.

1.1.5. Enumere todas las imágenes de VM existentes que están almacenadas en el grupo de almacenamiento predeterminado usando virsh como a continuación:

$ virsh vol-list default | grep "/var/lib/libvirt/images/"

Salida de muestra:

archlinux.img   /var/lib/libvirt/images/archlinux.img

Tengo una imagen de máquina virtual Arch Linux en el grupo de almacenamiento predeterminado.

1.1.6. Detenga y anule la definición del grupo de almacenamiento predeterminado con el comando:

$ virsh pool-destroy default
$ virsh pool-undefine default

1.1.7. Edite el grupo de almacenamiento predeterminado usando el comando:

$ virsh pool-edit default 

Esto abrirá el archivo XML de la máquina virtual en su editor predeterminado.

Encuentra la línea que dice "<path>/var/lib/libvirt/images</path>" bajo el target directiva y cámbiela a una nueva ruta de su elección.

En mi caso, he cambiado el <path> elemento de /var/lib/libvirt/images a /home/sk/.local/share/libvirt/images .

<pool type='dir'>
  <name>default</name>
  <uuid>76f47a3c-7656-4c34-9ab5-c87e5136d532</uuid>
  <capacity unit='bytes'>396452147200</capacity>
  <allocation unit='bytes'>71178977280</allocation>
  <available unit='bytes'>325273169920</available>
  <source>
  </source>
  <target>
    <path>/home/sk/.local/share/libvirt/images</path>
    <permissions>
      <mode>0755</mode>
      <owner>1000</owner>
      <group>1000</group>
      <label>unconfined_u:object_r:svirt_home_t:s0</label>
    </permissions>
  </target>
</pool>

Solo asegúrese de que exista la nueva ruta. Si existe, simplemente créelo y asigne suficientes permisos al nuevo directorio de ruta. Guarde el archivo y ciérrelo.

CONSEJO:

Si no existe un grupo de almacenamiento predeterminado por algún motivo, puede crear uno como el siguiente:

$ virsh pool-define-as --name default --type dir --target /home/sk/.local/share/libvirt/images/

Reemplace la ruta de almacenamiento con la suya propia.

1.1.8. Finalmente, inicie el grupo de almacenamiento predeterminado:

$ virsh pool-start default

1.1.9. Configure el grupo de almacenamiento para que se inicie automáticamente al arrancar el sistema:

$ virsh pool-autostart default

1.1.10. Verifique si la ruta del grupo de almacenamiento de libvirt se ha cambiado o no con el comando:

$ virsh pool-dumpxml default | grep -i path

Ahora debería ver la nueva ruta.

     /home/sk/.local/share/libvirt/images

A partir de ahora, las imágenes virtuales se guardarán en el nuevo grupo de almacenamiento.

1.1.11. Compruebe el estado del grupo de almacenamiento:

$ virsh pool-list 
 Name      State    Autostart
-------------------------------
 default   active   yes

1.1.12. Reinicie el servicio libvirtd:

$ sudo systemctl restart libvirtd

1.1.13. Tenemos que hacer una última cosa. Copie todas las imágenes de VM de la ruta de almacenamiento anterior a la nueva:

$ sudo mv /var/lib/libvirt/images/archlinux.qcow2 /home/sk/.local/share/libvirt/images/

¡Todo listo!

Así es como cambiamos la ubicación del grupo de almacenamiento predeterminado de KVM Libivrt a una nueva desde la línea de comandos usando Virsh programa. Como puede ver, ¡cambiar la ruta de almacenamiento predeterminada para invitados KVM/Libvirt es bastante fácil!

Ahora veamos cómo cambiar la ruta del grupo de almacenamiento predeterminado de Libvirt usando una aplicación gráfica llamada Virt-manager .

1.2. Cambie la ubicación del grupo de almacenamiento predeterminado de KVM Libvirt usando Virt-manager

Director virtual , abreviatura de Virtual Machine Manager, es una aplicación de interfaz gráfica de usuario utilizada para administrar máquinas virtuales a través de libvirt . Para poner esto en otras palabras, Virt-manager es solo una interfaz gráfica para libvirt .

1.2.1. Abra la aplicación Virt-manager. Haga clic derecho en QEMU/KVM y haga clic en Detalles opción.

También puede hacer clic en Editar-> Detalles de conexión desde la interfaz de Virt-manager.

1.2.2. Debajo del Almacenamiento verá la ubicación predeterminada del grupo de almacenamiento.

1.2.3. Haga clic en Detener grupo y luego Eliminar grupo opciones en el panel inferior izquierdo.

Esto desactivará y eliminará el grupo predeterminado.

1.2.4. Haz clic en el más (+) inicie sesión en el panel inferior izquierdo para crear un nuevo grupo de almacenamiento para que lo usen las máquinas virtuales.

Introduzca el nombre del grupo de almacenamiento (por ejemplo, default en mi caso). Elige el tipo de piscina. En nuestro caso, he seleccionado Directorio del sistema de archivos . Especifique la ubicación de destino y haga clic en Finalizar.

1.2.5. Ahora el nuevo almacenamiento está activo. Comprueba el inicio automático cuadro para iniciar automáticamente el nuevo grupo de almacenamiento en el arranque del sistema.

1.2.6. Mueva todas las imágenes de VM del directorio de almacenamiento anterior al nuevo.

$ sudo mv /var/lib/libvirt/images/archlinux.qcow2 /home/sk/.local/share/libvirt/images/

1.2.7. Finalmente, reinicie el servicio libvirtd:

$ sudo systemctl restart libvirtd

1.3. Cambie la ubicación del grupo de almacenamiento predeterminado de KVM Libvirt usando Cockpit

Cabina es una herramienta gratuita de administración de servidores basada en web para monitorear y administrar servidores Linux a través de un navegador web.

1.3.1 Abra su navegador web e inicie sesión en la consola de Cockpit navegando a http://localhost:9090 o http://dirección IP:9090 desde la barra de direcciones.

1.3.2. Haga clic en Máquinas virtuales pestaña en el panel izquierdo. En el lado derecho, haz clic en Grupo de almacenamiento opción.

1.3.3. En la sección Grupos de almacenamiento, verá el grupo de almacenamiento predeterminado. Haga clic en la flecha pequeña para expandir la pestaña de grupos de almacenamiento y haga clic en Desactivar y Eliminar botones.

Nota: Como ya cambié la ubicación de almacenamiento predeterminada, muestra la nueva ruta. En su sistema, mostrará la antigua ruta predeterminada, es decir, /var/lib/libvirt/images .

1.3.4. Ingrese el nombre del grupo de almacenamiento, el tipo y la ruta de destino y haga clic en Crear . Asegúrese de que la casilla de verificación Inicio esté marcada.

1.3.5. Haz clic en Activar botón para iniciar la piscina.

1.3.6. Mueva todas las imágenes de VM del directorio de almacenamiento anterior al nuevo.

$ sudo mv /var/lib/libvirt/images/archlinux.qcow2 /home/sk/.local/share/libvirt/images/

1.3.7. Reinicie el servicio libvirtd:

$ sudo systemctl restart libvirtd

Resolución de problemas

Después de cambiar la ruta del grupo de almacenamiento, probablemente encontrará el siguiente error al iniciar una VM:

Failed to start domain 'Archlinux_default' error: Cannot access storage file '/home/sk/.local/share/libvirt/images/Archlinux_default.img' (as uid:107, gid:107): Permission denied.

Esto se debe a que el qemu Es posible que el usuario no tenga permiso de lectura en el directorio de almacenamiento. Para solucionarlo, consulte el siguiente enlace:

  • [Resuelto] No se puede acceder al archivo de almacenamiento, Permiso denegado Error en KVM Libvirt

Conclusión

En esta guía, discutimos un tema importante de KVM/Libvirt:Grupos de almacenamiento . Aprendimos qué son los grupos de almacenamiento y los volúmenes, y luego cómo cambiar la ubicación predeterminada del grupo de almacenamiento de kvm libvirt usando tres programas, a saber, VIrsh, Virt-manager y Cockpit. Espero que encuentres esto útil.


Linux
  1. Configure el almacenamiento virtual KVM predeterminado en Redhat Linux

  2. Cómo cambiar las aplicaciones predeterminadas de Debian

  3. Cómo cambiar la ubicación predeterminada (/var/cache/yum) de yum cache

  4. Cómo cambiar el shell predeterminado en Linux

  5. Cómo cambiar la ubicación de qmake PREFIX

Cómo usar Vagrant con el proveedor KVM de Libvirt

Cómo cambiar el archivo de registro de Sudo predeterminado en Linux

Cómo configurar un grupo de almacenamiento ZFS en Ubuntu

Cómo cambiar el shell predeterminado en el sistema Linux

Cómo administrar el almacenamiento local usando stratis | Sombrero rojo

Cómo cambiar la configuración predeterminada de Imprimir a archivo...