====== Gestor de volúmenes lógicos (LVM) ====== LVM es un gestor de volúmenes lógicos. Permite crear un volumen lógico a partir de una o varias particiones físicas. Una vez creado el volumen lógico, se pueden crear particiones lógicas sobre dicho volumen. Utilizar LVM frente al particionado tradicional presenta un gran número de ventajas: se pueden hacer particiones lógicas que se extiendan sobre varios discos, asignar un espacio inicial mayor al espacio físico disponible, añadir nuevos discos al volumen, reemplazar discos antiguos, stripping entre varios discos, redimensionar particiones lógicas, capturas del estado de la partición en un instante dado, etc. Básicamente permite cambiar una distribución inicial de particiones que puede haberse vuelto obsoleta con el tiempo y realizar copias de seguridad de una foto fija de un sistema en producción. A continuación se muestra una configuración básica de LVM en Gentoo. Para obtener un conocimiento más detallado de los comandos y opciones que proporciona LVM se puede consultar por ejemplo [[ https://www.howtoforge.com/linux_lvm | A Beginner's Guide To LVM]]. ===== Instalar LVM en Gentoo ===== En primer lugar, aunque no es estrictamente necesario, ya que depende de si se van a utilizar aplicaciones que puedan utilizar LVM, conviene activar la variable USE ''lvm''. A continuación se deben activar las siguientes opciones en el kernel para poder montar particiones lógicas (//Device mapper support//), hacer fotos fijas de la partición (//Snapshot target//), reservar más espacio del disponible actualmente (//Thin provisioning target//) y para mover el contenido de una partición física a otras (//Mirror target//): Device Drivers --> [x] Multiple devices driver support (RAID and LVM) ---- <*> Device mapper support <*> Snapshot target <*> Thin provisioning target <*> Mirror target Por último, se debe instalar el paquete ''lvm2'': # emerge -av lvm2 Una vez instalado, hay que seguir los pasos indicados para añadir el demonio ''lvm'' al sistema de arranque. ===== Crear, formatear y montar particiones lógicas con LVM ===== Para poder utilizar particiones lógicas, los pasos a seguir son: - Crear una o varias particiones físicas LVM. - Crear un volumen lógico que englobe una o más particiones físicas LVM. - Crear particiones lógicas dentro de un volumen lógico. ==== Crear una o varias particiones físicas LVM ==== Para crear una partición física LVM a partir de una partición física existente se debe utilizar el comando ''pvcreate''. Antes de utilizar dicho comando es conveniente haber hecho dicha partición del tipo //Linux LVM// (mediante una herramienta de particionado como ''fdisk''). Por ejemplo, dado el siguiente particionado: Disk /dev/sda: 2,7 TiB, 3000592982016 bytes, 5860533168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: D103C342-A5AD-4881-8D22-8AD5A972B546 Disposit. Start Final Size Tipo /dev/sda1 2048 10239 4M BIOS boot partition /dev/sda2 10240 417791 199M Linux filesystem /dev/sda3 417792 168189951 80G Linux filesystem /dev/sda4 168189952 5860532223 2,7T Linux LVM En el que la única partición destinada a LVM es la partición ''/dev/sda4'', se puede crear la partición física LVM utilizando el siguiente comando: # pvcreate /dev/sda4 Para comprobar que se ha creado dicha partición física se puede utilizar el comando ''pvscan''. # pvscan PV /dev/sda4 lvm2 [2,65 TiB] Total: 1 [2,65 TiB] / in use: 0 [0 ] / in no VG: 1 [2,65 TiB] Para obtener información más detallada sobre la partición física LVM se puede utilizar el comando ''pvdisplay''. ==== Crear un volumen lógico que englobe una o más particiones físicas LVM ==== Un volumen lógico se crea por medio del comando ''vgcreate''. El primer parámetro de dicho comando es el nombre que le queramos dar al volumen lógico, los siguientes parámetros especifican cada una de las particiones físicas LVM que conformarán dicho volumen. Así, por ejemplo, para crear un volumen lógico llamado ''vg'' a partir de la partición ''/dev/sda4'', se utilizaría el siguiente comando: # vgcreate vg /dev/sda4 Volume group "vg" successfully created Al igual que antes, para comprobar qué volúmenes lógicos LVM están disponibles, se puede utilizar el comando ''vgscan'': # vgscan Reading all physical volumes. This may take a while... Found volume group "vg" using metadata type lvm2 Para obtener información más detallada sobre el volumen lógico LVM, se puede utilizar el comando ''vgdisplay''. ==== Crear particiones lógicas dentro de un volumen lógico ==== Para crear una partición lógica dentro de un volumen lógico se utiliza el comando ''lvcreate''. Dicho comando permite definir, entre otras cosas, el tamaño de la partición y su nombre. Así, para crear una partición lógica llamada 'swap' de 4GB dentro del volumen ''vg'', se utilizaría el comando: # lvcreate --name swap --size 4G vg Logical volume "swap" created Se puede comprobar que se ha creado con ''lvscan'': # lvscan ACTIVE '/dev/vg/swap' [4,00 GiB] inherit Una vez creada la partición ya puede utilizarse: # mkswap /dev/vg/swap Setting up swapspace version 1, size = 4194300 KiB no label, UUID=97d64e88-4979-4ddb-b8eb-89bda3c82e5f # swapon /dev/vg/swap Para que la partición se monte automáticamente en el siguiente arranque, se debe añadir la correspondiente línea al fichero ''/etc/fstab/'': /dev/vg/swap none swap sw 0 0 Para crear una partición con el nombre ''home'' de 2T dentro del volumen ''vg'' y formatearla como ext4 se utilizarían los comandos: # lvcreate --name home --size 2T vg Logical volume "home" created # lvscan ACTIVE '/dev/vg/swap' [4,00 GiB] inherit ACTIVE '/dev/vg/home' [2,00 TiB] inherit # mkfs.ext4 /dev/vg/home # mount /dev/vg/home /home Al igual que antes, para que la partición se monte automáticamente en el siguiente arranque, se debe añadir la correspondiente línea al fichero ''/etc/fstab/'': /dev/vg/home /home ext4 noatime 0 2