Antes de ver cómo configurar LVM en Linux, explicaremos que és Logical Volume Management (LVM) es un gestor de volúmenes lógicos de discos que todas las principales distribuciones de GNU/Linux presentan.
Este artículo explica cómo inicializar un grupo de LVM a partir de una partición como primer volumen físico del grupo y crear volúmenes lógicos desde línea de comandos en Linux. El objetivo es comprender todos los pasos involucrados en la inicialización de LVM: crear volúmenes físicos; definir grupos LVM; y crear volúmenes lógicos.
LVM tiene 3 conceptos
- Volumen físico (PV): es un disco completo o una partición de un disco
- Grupo de volumen (VG): corresponde a uno o más PV
- Volumen lógico (LV): representa una parte de un VG. Un LV solo puede pertenecer a un VG. Es en un LV donde podemos crear un sistema de archivos.
Ahora que tienes los conceptos, veámos como configurar lvm en linux.
Como configurar LVM en Linux – Creando LVM
Primero, debes verificar el estado actual del disco con el siguiente comando. Como ves en la imagen hay un disco sdb0 para ser usado.
[simterm][root@todolinux ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 8G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 7G 0 part ├─centos-root 253:0 0 6,2G 0 lvm / └─centos-swap 253:1 0 820M 0 lvm [SWAP] sdb 8:16 0 10G 0 disk sr0 11:0 1 1024M 0 rom [/simterm]
Configuración de LVM
Ahora tienes que configurar el disco sdb que usarás como volumen físico para dar soporte al grupo de LVM, vamos a usar la herramienta fdisk para crear un partición tipo «Linux LVM».
[simterm][root@todolinux ~]# fdisk /dev/sdb Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table Building a new DOS disklabel with disk identifier 0x8fc46edc. Orden (m para obtener ayuda): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Número de partición (1-4, default 1): 1 Primer sector (2048-20971519, valor predeterminado 2048): Se está utilizando el valor predeterminado 2048 Last sector, +sectors or +size{K,M,G} (2048-20971519, valor predeterminado 20971519): Se está utilizando el valor predeterminado 20971519 Partition 1 of type Linux and of size 10 GiB is set Orden (m para obtener ayuda): t Selected partition 1 Hex code (type L to list all codes): L 0 Vacía 24 NEC DOS 81 Minix / old Lin bf Solaris 1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT- 2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 3c PartitionMagic 84 Unidad C: ocult c6 DRDOS/sec (FAT- 4 FAT16 <32M 40 Venix 80286 85 Linux extendida c7 Syrinx 5 Extendida 41 PPC PReP Boot 86 Conjunto de vol da Datos sin SF 6 FAT16 42 SFS 87 Conjunto de vol db CP/M / CTOS / . 7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Utilidad Dell 8 AIX 4e QNX4.x segunda 8e Linux LVM df BootIt 9 AIX bootable 4f QNX4.x tercera 93 Amoeba e1 DOS access a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 52 CP/M a0 Hibernación de eb BeOS fs e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/ 10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 inicio Linux/PA 11 FAT12 oculta 56 Golden Bow a8 UFS de Darwin f1 SpeedStor 12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor 14 FAT16 oculta <3 61 SpeedStor ab arranque de Dar f2 DOS secondary 16 FAT16 oculta 63 GNU HURD o SysV af HFS / HFS+ fb VMFS de VMware 17 HPFS/NTFS ocult 64 Novell Netware b7 BSDI fs fc VMKCORE de VMwa 18 SmartSleep de A 65 Novell Netware b8 BSDI swap fd Linux raid auto 1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep 1c Hidden W95 FAT3 75 PC/IX be arranque de Sol ff BBT 1e Hidden W95 FAT1 80 Old Minix Hex code (type L to list all codes): 8e Changed type of partition 'Linux' to 'Linux LVM' Orden (m para obtener ayuda): p Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Identificador del disco: 0x8fc46edc Disposit. Inicio Comienzo Fin Bloques Id Sistema /dev/sdb1 2048 20971519 10484736 8e Linux LVM Orden (m para obtener ayuda): w ¡Se ha modificado la tabla de particiones! Llamando a ioctl() para volver a leer la tabla de particiones. Se están sincronizando los discos. [/simterm]
Hemos creado nuestra partición de tipo «8e» (Linux LVM)y se han escrito los cambios en el disco. Tener el cuenta que al estar el servidor en uso, podría fallar la lectura de nuestra nueva tabla de particiones, para solventarlo ejecutaremos el comando partprobe. Pero si incluso ejecutando este comando aún no ves la partición creada, no queda otra opción que reiniciar.
Tras el reinicio comprueba las particiones.
[simterm][root@todolinux ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 8G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 7G 0 part ├─centos-root 253:0 0 6,2G 0 lvm / └─centos-swap 253:1 0 820M 0 lvm [SWAP] sdb 8:16 0 10G 0 disk └─sdb1 8:17 0 10G 0 part sr0 11:0 1 1024M 0 rom [/simterm]
Como ves ahora, aparece la nueva partición sdb1 que es con la que trabajaremos.
Asignando el volumen físico, creación de grupo y volúmenes lógicos LVM
Ahora que tienes la partición vacía, es hora de inicializar el volumen físico para nuestra partición /dev/sdb1, luego crear el grupo que llamaremos «vm_grupo» y por último crearemos los volúmenes lógicos para la maquina.
[simterm][root@todolinux ~]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created. [/simterm]
Puedes visualizar la información del volúmen creado con el comnado pvdisplay.
[simterm][root@todolinux ~]# pvdisplay --- Physical volume --- PV Name /dev/sda2 VG Name centos PV Size <7,00 GiB / not usable 3,00 MiB Allocatable yes (but full) PE Size 4,00 MiB Total PE 1791 Free PE 0 Allocated PE 1791 PV UUID P9Saju-R396-DA0A-VA3L-wcgF-wxEj-K2UgDY "/dev/sdb1" is a new physical volume of "<10,00 GiB" --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size <10,00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID PjkRAS-M0d5-MbIa-dZ3V-qET7-Wsvh-YlG3iM [root@todolinux ~]# [/simterm]
Ahora crearemos un grupo de vólumenes llamado «vm_grupo». Lo creamos con el siguiente comando.
[simterm][root@todolinux ~]# vgcreate vm_grupo /dev/sdb1 Volume group "vm_grupo" successfully created [root@todolinux ~]# [/simterm]
Llegamos al paso en el que tenemos que crear un volumen lógico dentro del grupo de volúmenes.
[simterm][root@todolinux ~]# lvcreate -L 2G -n lv_grupo1 vm_grupo Logical volume "lv_grupo1" created. [root@todolinux ~]# lvcreate -L 2G -n lv_grupo2 vm_grupo Logical volume "lv_grupo2" created. [root@todolinux ~]# [/simterm]
La utilidad lvcreate
asigna como parámetro un tamaño de volumen especificado en bytes con la opción -L
, el nombre de volumen lógico con la opción -n
y finalmente el nombre del grupo donde se crea.
Visualizamos nuestro volumen lógico creado.
[simterm][root@todolinux ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root centos -wi-ao---- <6,20g swap centos -wi-ao---- 820,00m lv_grupo1 vm_grupo -wi-a----- 2,00g lv_grupo2 vm_grupo -wi-a----- 2,00g [root@todolinux ~]# [/simterm]
Como configurar LVM en Linux – Formateando y montando volúmenes lógicos
Una vez creado nuestro volúmen lógico, toca darle formato para luego poder montarlos como filesystem. En este punto tienes varias opciones de formatos pero no nos vamos a extender y añadir el formato ext4, el más habitual.
[simterm][root@todolinux ~]# mkfs.ext4 /dev/vm_grupo/lv_grupo1 mke2fs 1.42.9 (28-Dec-2013) Etiqueta del sistema de ficheros= OS type: Linux Tamaño del bloque=4096 (bitácora=2) Tamaño del fragmento=4096 (bitácora=2) Stride=0 blocks, Stripe width=0 blocks 131072 inodes, 524288 blocks 26214 blocks (5.00%) reserved for the super user Primer bloque de datos=0 Número máximo de bloques del sistema de ficheros=536870912 16 bloque de grupos 32768 bloques por grupo, 32768 fragmentos por grupo 8192 nodos-i por grupo Respaldo del superbloque guardado en los bloques: 32768, 98304, 163840, 229376, 294912 Allocating group tables: hecho Escribiendo las tablas de nodos-i: hecho Creating journal (16384 blocks): hecho Escribiendo superbloques y la información contable del sistema de ficheros: hecho [root@todolinux ~]# [/simterm]
NOTA: Para saber el nombre del Filesystem a dar formato, puedes hacer un lvdisplay y mirar el parámetro "LV Path"
Montamos los nuevos FileSystems. Antes de eso debe de existir una ruta que hayas creado para poder ser montado, si montamos el volumen en un directorio con contenido, perderemos el contenido de este.
[simterm][root@todolinux ~]# mkdir /lv_grupo1 /lv_grupo2 [root@todolinux ~]# mount /dev/vm_grupo/lv_grupo1 /lv_grupo1 [root@todolinux ~]# mount /dev/vm_grupo/lv_grupo2 /lv_grupo2 [root@todolinux ~]# [/simterm]
Comprobamos que nuestros volúmenes lógicos están montados y accesibles.
[simterm][root@todolinux ~]# df -h S.ficheros Tamaño Usados Disp Uso% Montado en /dev/mapper/centos-root 6,2G 1,2G 5,1G 19% / devtmpfs 908M 0 908M 0% /dev tmpfs 920M 0 920M 0% /dev/shm tmpfs 920M 8,6M 911M 1% /run tmpfs 920M 0 920M 0% /sys/fs/cgroup /dev/sda1 1014M 142M 873M 14% /boot tmpfs 184M 0 184M 0% /run/user/0 /dev/mapper/vm_grupo-lv_grupo1 2,0G 6,0M 1,8G 1% /lv_grupo1 /dev/mapper/vm_grupo-lv_grupo2 2,0G 6,0M 1,8G 1% /lv_grupo2 [root@todolinux ~]# [/simterm]
Haciendo montaje persistente
Lo normal y mas común es hacer el montaje persistente, esto quiere decir, que en caso de un reinicio de la maquina, los volúmenes lógicos que hemos creado y montado anteriormente puedan estar disponibles. Para hacer persistente estos puntos de montaje tendremos que añadirlos al fichero /etc/fstab
.
Necesitaremos los UUID de cada volumen, estos los obtenemos con el comnado blkid
.
[simterm][root@todolinux ~]# blkid /dev/sda1: UUID="a5c64f26-4a7d-4d65-aa4a-a2e87fe608ca" TYPE="xfs" /dev/sda2: UUID="P9Saju-R396-DA0A-VA3L-wcgF-wxEj-K2UgDY" TYPE="LVM2_member" /dev/sdb1: UUID="PjkRAS-M0d5-MbIa-dZ3V-qET7-Wsvh-YlG3iM" TYPE="LVM2_member" /dev/mapper/centos-root: UUID="d482cede-f376-4f77-b77a-e715ce169635" TYPE="xfs" /dev/mapper/centos-swap: UUID="76327786-94ea-435e-b50e-8172381e08ca" TYPE="swap" /dev/mapper/vm_grupo-lv_grupo1: UUID="7b549cff-1896-47d0-8b25-e7102cb05629" TYPE="ext4" /dev/mapper/vm_grupo-lv_grupo2: UUID="ce03098d-536e-416f-ad16-94f81f3e1ce9" TYPE="ext4" [root@todolinux ~]# [/simterm]
Añadimos al fichero /etc/fstab las líneas de nuestros volúmenes lógicos y debería de quedar de la siguiente manera.
[simterm][root@todolinux ~]# cat /etc/fstab [root@todolinux ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Wed Sep 15 08:42:12 2021 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root / xfs defaults 0 0 UUID=a5c64f26-4a7d-4d65-aa4a-a2e87fe608ca /boot xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 UUID=7b549cff-1896-47d0-8b25-e7102cb05629 /lv_grupo1 ext4 defaults 0 2 UUID=ce03098d-536e-416f-ad16-94f81f3e1ce9 /lv_grupo2 ext4 defaults 0 2 [/simterm]
Ahora ejecutamos "mount -a"
y si todo está correcto, no dará ningún mensaje de error y ya tendremos nuestros volúmenes lógicos montados y preparados para que se monten automáticamente en caso de un reinicio inesperado del sistema.
Comparte
1 comentario
▷ Cómo instalar Apache en CentOS 7 ✔️ [2022] Paso a paso · 25 de septiembre de 2023 a las 15:44
[…] "Te dejo un enlace por si luego quieres aprender como configurar LVM en Linux" […]