Por motivos de rendimiento, en lugar de utilizar un volumen LVM grande, podría reemplazarse por varios volúmenes pequeños en bandas (RAID0). No hay ningún comando para transformar directamente un volumen lógico de un solo disco en un volumen lógico seccionado. Esta publicación explicará el procedimiento para realizar la conversión.
Nota :Antes de comenzar, realice una copia de seguridad completa del volumen o del sistema de archivos.Este procedimiento se puede realizar en un sistema vivo, sin necesidad de reiniciar. El procedimiento consiste en crear un espejo entre el volumen original y los nuevos volúmenes rayados. Una vez que se completa la duplicación, podemos eliminar el volumen original del espejo dejando solo los volúmenes rayados.
Para poder realizar la conversión, el número de extensiones lógicas (LE) en el volumen lógico (LV) LVM debe ser divisible por el número de volúmenes físicos (PV) que se utilizarán en el futuro LV seccionado.
Verifique el número de LE asignado:
# lvdisplay --- Logical volume --- LV Path /dev/<VOLUME_GROUP>/<LOGICAL_VOLUME> LV Name <LOGICAL_VOLUME> VG Name <VOLUME_GROUP> LV UUID <VOLUME_UUID> LV Write Access read/write LV Creation host, time <HOSTNAME>, 2020-12-10 08:38:44 +0000 LV Status available # open 1 LV Size <10.00 GiB Current LE 2559 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:0
En este caso, el número de LE es 2559.
Para saber el número de LE necesarios, puede utilizar:
– le =número de LE asignados, del comando anterior (2559 en este caso)
– pv =número de PV rayados que se utilizarán en el futuro (por ejemplo, 5)
$ le=2559; pv=5; echo $((le%pv?(le/pv+1)*pv:le)) 2560
En este caso se necesita un LE adicional. Ejemplo para extender el LV:
# lvresize --extents +1 /dev/<VOLUME_GROUP>/<LOGICAL_VOLUME> /dev/sdb Size of logical volume <VOLUME_GROUP>/<LOGICAL_VOLUME> changed from <10 GiB (2559 extents) to <10 giB (2560 extents). Logical volume <VOLUME_GROUP>/<LOGICAL_VOLUME> successfully resized.
Después de preparar el LV, proceda:
1. Agregue los nuevos PV al LV creando un espejo rayado. El número de franjas debe ser el número de PV:
# lvconvert --type mirror -m 1 --mirrorlog core --stripes 2 /dev/<VOLUME_GROUP>/<LOGICAL_VOLUME> /dev/<PV1> /dev/<PV2> ... /dev/<PV5>
2. Eliminar el PV inicial del LV:
# lvconvert -m0 <VOLUME_GROUP>/<LOGICAL_VOLUME> /dev/<INITIAL_PV>
3. Eliminar el PV de LVM:
# vgreduce <VOLUME_GROUP> /dev/<INITIAL_PV> # pvremove /dev/<INITIAL_PV>