Continuando con la parte anterior, ahora veremos la manipulación de los LV
Pequeño recordatorio
En el post anterior dejamos configurado 2 PV, /dev/sda y /dev/sdb1 y creamos un VG con nombre MIVG como podemos observar con los comandos «pvscan» y «vgs»
$ sudo pvscan PV /dev/sda lvm2 [<7.27 GiB] PV /dev/sdb1 lvm2 [<3.71 GiB] Total: 2 [10.97 GiB] / in use: 0 [0 ] / in no VG: 2 [10.97 GiB] $ sudo vgs VG #PV #LV #SN Attr VSize VFree MIVG 2 0 0 wz--n- <10.97g <10.97g
Creación de LV
Ya recordado como dejamos nuestra configuración procederemos a crear los LV, que, en términos simples es donde definimos las particiones que usará el sistema de archivos y será el espacio de almacenamiento que podremos usar.
Para esto tenemos una base del comando la cual es
$sudo lvcreate [-L|-l] [opcion][Nombre de VG] -n [Nombre del LV]
En el primer argumento definimos el tamaño del LV que vamos a crear, en este caso podemos usar la opción -L o -l, la diferencia radica que el primero, -L, definirá un espacio fijo para el LV y el segundo podrá ser un porcentaje agregando a continuación del numero «%FREE». Veamos unos ejemplos, creare 3 LV usando distintas opciones para definir el tamaño, primero creare un LV con el 30% de espacio libre, luego creare un LV de tamaño fijo de 5Gb y finalmente nuevamente un LV con el 50% disponible
$ sudo lvcreate MIVG -n PrimerLV -l +30%FREE Logical volume "PrimerLV" created. $ sudo lvcreate MIVG -n SegundoLV -L 5G Logical volume "SegundoLV" created. $ sudo lvcreate MIVG -n TercerLV -l +50%FREE Logical volume "TercerLV" created.
En el siguiente apartado veremos que tamaños tienen nuestros LVs
Validación de LV
Al igual que en los 2 casos anteriores los comandos son «lvdisplay» y «lvs»
$ sudo lvdisplay --- Logical volume --- LV Path /dev/MIVG/PrimerLV LV Name PrimerLV VG Name MIVG LV UUID Zz8e8p-D4Lz-ZJsU-92FN-8IS9-u20a-8KpMBT LV Write Access read/write LV Creation host, time raspberrypi, 2021-10-29 01:48:05 +0100 LV Status available # open 0 LV Size <3.29 GiB Current LE 842 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:0 --- Logical volume --- LV Path /dev/MIVG/SegundoLV LV Name SegundoLV VG Name MIVG LV UUID jIZoAf-42uj-t0SN-nzw4-Vx4a-h4nv-P0H92P LV Write Access read/write LV Creation host, time raspberrypi, 2021-10-29 01:49:09 +0100 LV Status available # open 0 LV Size 5.00 GiB Current LE 1280 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:1 --- Logical volume --- LV Path /dev/MIVG/TercerLV LV Name TercerLV VG Name MIVG LV UUID Al1W0s-P2Nx-P74E-oMH1-Xwan-i7fm-FuTKFw LV Write Access read/write LV Creation host, time raspberrypi, 2021-10-29 01:49:20 +0100 LV Status available # open 0 LV Size <1.34 GiB Current LE 343 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:2 $ sudo lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert PrimerLV MIVG -wi-a----- <3.29g SegundoLV MIVG -wi-a----- 5.00g TercerLV MIVG -wi-a----- <1.34g
Ahora comprobaremos los valores de tamaño que usamos al inicio
en resumen tenemos
- PrimerLV 30%FREE
- SegundoLV 5G
- TercerLV 50%FREE
Para el primer caso y a groso modo el calculo será sencillo
Sabemos que nuestro VG tiene una capacidad total de <10.97G por lo que multiplicamos este valor por 0,3 lo cual nos da como resultado 3,291G
Para el segundo caso no es necesario calcular nada, sabemos que el LV tendrá un valor fijo de 5Gb
En el tercer caso debemos tomar el mismo valor total 10.97G, restarle los 3,291G y los 5G lo que nos va a dar un total disponible de 2,679G, si ejecutamos un vgs antes de crear el tercer LV podremos confirmar el calculo
$ sudo vgs VG #PV #LV #SN Attr VSize VFree MIVG 2 2 0 wz--n- <10.97g <2.68g
Como ven el calculo coincide, y como indicamos que el tercer LV sera el 50% del espacio disponible en el VG. Por lo que tendrá una capacidad de 1,3395G
Resumiendo, teóricamente tenemos los siguientes espacios para los LV’s
- PrimerLV 30%FREE (3,291G)
- SegundoLV 5G (5G)
- TercerLV 50%FREE (1,3395G)
comprobamos que efectivamente es así con «lvs»
$ sudo lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert PrimerLV MIVG -wi-a----- <3.29g SegundoLV MIVG -wi-a----- 5.00g TercerLV MIVG -wi-a----- <1.34g
Y para finalizar como los LV son los que se usan para el sistema de archivos podemos utilizar herramientas como fdisk para conocer el tamaño de un LV
$sudo fdisk -l .... Disk /dev/mapper/MIVG-PrimerLV: 3.3 GiB, 3531603968 bytes, 6897664 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 /dev/mapper/MIVG-SegundoLV: 5 GiB, 5368709120 bytes, 10485760 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 /dev/mapper/MIVG-TercerLV: 1.3 GiB, 1438646272 bytes, 2809856 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
Con esto terminamos esta parte, solo queda formatear la partición como siempre se ha hecho y ya podremos usar nuestra partición con LVM.
fuente: