Este es un tema muy extenso ya que se pueden realizar muchos cambios trabajando con LVM. Pero vamos a enfocarnos en cada uno de los aspectos del objetivo.
Para esto vamos a partir de que ya sabemos como crear particiones y tambien sabemos como cambiar el “type” a “Linux LVM”. En los siguientes ejemplos vamos a tomar como base la siguiente tabla de particiones:
[root@class2 ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 1288 MB, 1288491008 bytes, 2516584 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 identifier: 0xfb405b3a
Device Boot Start End Blocks Id System
/dev/sdb1 2048 411647 204800 8e Linux LVM
/dev/sdb2 411648 821247 204800 8e Linux LVM
/dev/sdb3 821248 1230847 204800 8e Linux LVM
Ahora vamos a explicar por separado cada una de las partes fundamentales de LVM.
Crear y eliminar volumenes fisicos:
Para crear vamos a utilizar el comando “pvcreate”. Este comando lo que hace es preparar la particion para ser utilizaza posteriormente en un grupo de volumen. Es valido aclarar que se puede crear directamente el volumen de grupo sin crear el fisico. Pero por motivos de aprendizaje es mejor ir paso a paso.
Vamos a preparar las tres particiones de la siguiente forma como volumenes fisicos:
[root@class2 ~]# pvcreate /dev/sdb1 /dev/sdb2 /dev/sdb3
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
Physical volume "/dev/sdb3" successfully created.
Como ven ya tenemos los volumenes fisicos. Pueden hacerlo uno a la vez, pero en este punto podemos hacerlo en solo un comando.
Para ver los volumenes fisicos que tenemos en el sistema, lo podemos lograr de dos formas:
PV VG Fmt Attr PSize PFree
/dev/sda2 rhel lvm2 a-- 6.00g 4.00m
/dev/sdb1 lvm2 --- 200.00m 200.00m
/dev/sdb2 lvm2 --- 200.00m 200.00m
/dev/sdb3 lvm2 --- 200.00m 200.00m
El comando “pvs” nos muestra un resumen, pero para ver una salida mas detallada utilizamos “pvdisplay”
[root@class2 ~]# pvdisplay
PV Size 6.00 GiB / not usable 3.00 MiB
PV UUID fEYFuS-j8o7-euhi-MpRJ-caXu-R2FX-BMzhgq
"/dev/sdb1" is a new physical volume of "200.00 MiB"
--- NEW Physical volume ---
PV UUID VZ635p-1vCd-aXYW-sSxy-2uLJ-f1Lc-k5bTdq
"/dev/sdb2" is a new physical volume of "200.00 MiB"
--- NEW Physical volume ---
PV UUID TYJgBN-SVyX-z8sR-RvOh-LX6x-1Dc7-CFp0A2
"/dev/sdb3" is a new physical volume of "200.00 MiB"
--- NEW Physical volume ---
PV UUID N3DqX6-MMkO-abkf-FXbN-ZBoC-KHaG-hA0I74
Como ven, el comando nos mostro todos los volumenes fisicos, pero tambien podemos decirle que solo nos muestre uno, eso lo hariamos de la siguiente forma:
[root@class2 ~]# pvdisplay /dev/sdb1
"/dev/sdb1" is a new physical volume of "200.00 MiB"
--- NEW Physical volume ---
PV UUID VZ635p-1vCd-aXYW-sSxy-2uLJ-f1Lc-k5bTdq
[root@class2 ~]# pvdisplay /dev/sdb2
"/dev/sdb2" is a new physical volume of "200.00 MiB"
--- NEW Physical volume ---
PV UUID TYJgBN-SVyX-z8sR-RvOh-LX6x-1Dc7-CFp0A2
[root@class2 ~]# pvdisplay /dev/sdb3
"/dev/sdb3" is a new physical volume of "200.00 MiB"
--- NEW Physical volume ---
PV UUID N3DqX6-MMkO-abkf-FXbN-ZBoC-KHaG-hA0I74
Ahora ya tenemos un poco mas de detalles. Por ejemplo pueden ver si el volumen fisico ya ha sido asignado a algun grupo. En este caso el campo “VG Name” esta en blanco. Pero vamos a ver la diferencia con otro que ya este dentro de un grupo.
[root@class2 ~]# pvdisplay /dev/sda2
PV Size 6.00 GiB / not usable 3.00 MiB
PV UUID fEYFuS-j8o7-euhi-MpRJ-caXu-R2FX-BMzhgq
Como ven, este volumen fisico esta dentro del grupo “rhel”. Tambien ahora tenemos otros datos interesantes como “PE Size”.
Tambien pueden ejecutar “pvscan”, es una forma de hacer un scan al sistema en busca de volumenes fisicos.
Ahora bien, para eliminar cual piensan que sea el comando. Pues estan en lo cierto “pvremove”
[root@class2 ~]# pvremove /dev/sdb3
Labels on physical volume "/dev/sdb3" successfully wiped.
Como ven aqui hemos eliminado “sdb3”. Bien simple verdad. Pues hasta este punto ya hemos logrado la primera parte. Ahora continuaremos con los restantes pasos.
En mi ejemplo voy a volver a crear este volumen, ya que lo voy a utilizar mas adelante.
Ahora vamos asignar volúmenes físicos a grupos de volúmenes. Aqui podemos crear un grupo nuevo o agregar el volumen fisico a un grupo existente.
Vamos a comenzar con la creacion de un grupo nuevo utilizando sdb1 y sdb2. Cuando agregamos a un grupo existente no existen muchas opciones, por lo que el trabajo se hace mas simple.
Primero comprovamos los grupos que tenemos de dos maneras tal como lo realizamos anteiormente:
VG #PV #LV #SN Attr VSize VFree
rhel 1 2 0 wz--n- 6.00g 4.00m
[root@class2 ~]# vgdisplay
Alloc PE / Size 1534 / 5.99 GiB
Free PE / Size 1 / 4.00 MiB
VG UUID nNdhJQ-hTri-wfVp-69cw-l1uy-IJqy-iJ6Lys
Con “vgdisplay” nos muestra la informacion mas detallada, pero es valido aclarar que si tenemos mas de un grupo podemos mostrar solo la informacion del grupo que usted quiera con “vgdisplay rhel”
Entonces para agregar los volumenes fisicos al grupo “rhel” ejecutamos lo siguiente:
[root@class2 ~]# vgextend rhel /dev/sdb1 /dev/sdb2
Volume group "rhel" successfully extended
Entonces ahora pasamos a la verificacion:
[root@class2 ~]# vgs ; vgdisplay
VG #PV #LV #SN Attr VSize VFree
rhel 3 2 0 wz--n- 6.38g 396.00m
Alloc PE / Size 1534 / 5.99 GiB
Free PE / Size 99 / 396.00 MiB
VG UUID nNdhJQ-hTri-wfVp-69cw-l1uy-IJqy-iJ6Lys
Bien simple verdad. en la version resumida tenemos que en el grupo hay ahora 3 volumenes fisicos y tenemos un espacio disponible de 396m. Hasta este punto creo que no hay problemas.
Ahora vamos a crear un grupo nuevo, pero para esto voy a regresarme a crear una particion nueva.
[root@class2 ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 1288 MB, 1288491008 bytes, 2516584 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 identifier: 0xfb405b3a
Device Boot Start End Blocks Id System
/dev/sdb1 2048 411647 204800 8e Linux LVM
/dev/sdb2 411648 821247 204800 8e Linux LVM
/dev/sdb3 821248 1230847 204800 8e Linux LVM
/dev/sdb4 1230848 2516583 642868 5 Extended
/dev/sdb5 1232896 2516583 641844 8e Linux LVM
He creado sdb5 dentro de la particion extendida.
Vamos a crear un grupo utilizando sdb3, el nombre del grupo que vamos a darle es “datos1”, y todos los demas valores los vamos a dejar por defecto.
[root@class2 ~]# vgcreate datos1 /dev/sdb3
Volume group "datos1" successfully created
Muy simple verdad. Ahora como siempre vamos a verificar:
[root@class2 ~]# vgdisplay datos1
Free PE / Size 49 / 196.00 MiB
VG UUID T9Jmcp-PCfX-wA8K-JA7k-PTxg-DRcL-M0KkYN
Ahora vamos a crear el grupo datos2 con sdb5 y vamos a establecer el “PE Size”, vamos a tomar para este ejemplo el valor de 16M.
Para esto solo debemos utilizar la opcion correcta en la creacion del grupo. Si tienen dudas, pueden ejecutar “vgcreate –help”
[root@class2 ~]# vgcreate datos2 -s 16M /dev/sdb5
Physical volume "/dev/sdb5" successfully created.
Volume group "datos2" successfully created
[root@class2 ~]# vgdisplay datos2
Free PE / Size 39 / 624.00 MiB
VG UUID XI0r3i-afLk-iJDp-pM71-NseF-OBGe-CuDxNw
Como pueden observar, el “PE Size” se ha establesido. Este valos lo vamos a utilizar en la creacion de volumenes logicos. Pero se preguntaran como elimino un grupo. Pues para esto ejecutamos lo siguiente:
[root@class2 ~]# vgremove datos2
Volume group "datos2" successfully removed
VG #PV #LV #SN Attr VSize VFree
datos1 1 0 0 wz--n- 196.00m 196.00m
rhel 3 2 0 wz--n- 6.38g 396.00m
Pero como tenemos que seguir con este ejercicio, este grupo lo volvere a crear.
[root@class2 ~]# vgcreate datos2 -s 16M /dev/sdb5
Volume group "datos2" successfully created
VG #PV #LV #SN Attr VSize VFree
datos1 1 0 0 wz--n- 196.00m 196.00m
datos2 1 0 0 wz--n- 624.00m 624.00m
rhel 3 2 0 wz--n- 6.38g 396.00m
Ahora bien, creo que es momento de comenzar a crear los volumenes logicos.
Aqui tambien aplican algunos comando que ya hemos visto, solo con la diferencia de que comienzan con “lv…”
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root rhel -wi-ao---- 5.29g
swap rhel -wi-ao---- 716.00m
[root@class2 ~]# lvdisplay
LV UUID AMKnhn-1YOT-kAb4-qDwn-s4P4-xHGu-lHEIPs
LV Write Access read/write
LV Creation host, time class2.example.com, 2017-04-25 08:03:00 -0700
LV UUID bH26KF-gkJa-I1Cn-SeOc-fNO6-YYZo-uKQIu1
LV Write Access read/write
LV Creation host, time class2.example.com, 2017-04-25 08:03:01 -0700
Ahora bien, en la creacionde volumenes logicos, podemos especificar el valor absoluto en “M,G,T” o bien en “LE”. El valor de “Logical Extends” va sujeto al valos de “PE” del grupo al que va a pertenecer el volumen logico. Ejemplo de esto es; si creamos un volumen con 100 LE, entonces el vamos final del volumen sera la multiplicacion de 100 y el valor que tenga el grupo defeinido en “PE”
Entonces visto esto vamos a crear algunos volumenes logicos. Los comando se explican por si solos. Por lo que no creo que necesiten mas explicacion. Las opciones que utilizo las pueden verificar en “man lvcreate” o en “lvcreate –help”
[root@class2 ~]# lvcreate datos1 -n lv_datos1 -L 100M
Logical volume "lv_datos1" created.
[root@class2 ~]# lvcreate datos1 -n lv_datos2 -l 10
Logical volume "lv_datos2" created.
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_datos1 datos1 -wi-a----- 100.00m
lv_datos2 datos1 -wi-a----- 40.00m
root rhel -wi-ao---- 5.29g
swap rhel -wi-ao---- 716.00m
[root@class2 ~]# lvdisplay /dev/datos1/lv_datos1 /dev/datos1/lv_datos2
LV Path /dev/datos1/lv_datos1
LV UUID VfNQDM-957l-hRnH-DlNj-Czcz-Wo7w-BKtANh
LV Write Access read/write
LV Creation host, time class2.example.com, 2017-04-25 09:10:15 -0700
LV Path /dev/datos1/lv_datos2
LV UUID YML1B3-alc1-mAb2-yfjS-4nc6-vzJO-kXBcKN
LV Write Access read/write
LV Creation host, time class2.example.com, 2017-04-25 09:11:33 -0700
Aqui tienen dos volumenes logicos, con su respectiva verificacion. Solo noten que cuando utilizo “-L” en valor lo doy en M,G. Pero si queremos especificar el valor en “LE” entonces utilizamos “-l”.
En este ejemplo he utilizado para la creacion el grupo “datos1”.
Vamos a realizar lo mismo, pero esta vez con el grupo “datos2”, el cual tienes un valor diferente en “PE”
[root@class2 ~]# lvcreate datos2 -n lv_datos2 -L 50M
Rounding up size to full physical extent 64.00 MiB
Logical volume "lv_datos2" created.
[root@class2 ~]# lvcreate datos2 -n lv_datos1 -l 5
Logical volume "lv_datos1" created.
Ahora vamos a ver como quedaron estos dos volumenes logicos
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_datos1 datos1 -wi-a----- 100.00m
lv_datos2 datos1 -wi-a----- 40.00m
lv_datos1 datos2 -wi-a----- 80.00m
lv_datos2 datos2 -wi-a----- 64.00m
root rhel -wi-ao---- 5.29g
swap rhel -wi-ao---- 716.00m
[root@class2 ~]# lvdisplay /dev/datos2/lv_datos2 /dev/datos2/lv_datos1
LV Path /dev/datos2/lv_datos2
LV UUID PXAMLJ-taRU-xrkF-ZyG3-7cFp-X7Vy-9ncQIM
LV Write Access read/write
LV Creation host, time class2.example.com, 2017-04-25 09:15:10 -0700
LV Path /dev/datos2/lv_datos1
LV UUID X6GHEf-krf1-BHHo-hF8w-h9Hn-nQmi-4WRYi0
LV Write Access read/write
LV Creation host, time class2.example.com, 2017-04-25 09:15:34 -0700
Muy simple verdad. Solo hagan su matematica. Como este grupo tiene definido 16M de “PE”, entonces la multiplacion nos arroja que el volumen vas ser de 80M.
Ahora solo les queda darle un sistema de archivos y montar el volumen logico para ser utilizado. Pero esto ya lo hemos visto, asi que ahora es tiempo de que usted practique lo aprendido hoy.
Comentarios