This is an old revision of the document!
Table of Contents
LVM
Logical Volume Manager
Saber el sistema de ficheros de un LV (como el fdisk)
# file --special-files /dev/mapper/datavg-nom_lv /dev/mapper/datavg-nom_lv: Linux rev 1.0 ext2 filesystem data (mounted or unclean)
Montar LVM desde Live CD
ANTECEDENTES
Tenemos un disco duro con dos particiones:
/dev/sda1 ⇒ /boot /dev/sda5 ⇒ extendida LVM
Hemos trasteado el LVM y no arranca. Para montar LVM desde una live-cd:
1. Arrancar desde la live-cd
2. Buscar el VG:
vgscan
3. Activar el VG:
vgchange -a y vg_encontrado_paso_2
4. Montar el LV en cuestión, en mi caso el raíz:
4.1 mkdir /mnt/auxiliar
4.2 mount /dev/mapper/vg_encontrado_paso_2-root /mnt/auxiliar
Reducir tamanyo LV
https://www.redhat.com/archives/linux-lvm/2006-August/msg00081.html
ANTECEDENTES
Tenemos un VG (Grupo de Volúmenes) con 3 LV (Volumen Lógico):
/ /home /swap
Queremos achicar el LV /home para dejar espacio con el objeto de crear en ese espacio liberado un cuarto LV, donde montar /var
1. (Todo como root) obtenemos información del VG:
clear && lvdisplay
--- Logical volume --- LV Name /dev/volumen/root VG Name volumen LV UUID ErCMtp-5H0L-cUv9-AS7L-B1Gq-9fuM-xFtcDN LV Write Access read/write LV Status available # open 1 LV Size 6,68 GB Current LE 1709 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:0 --- Logical volume --- LV Name /dev/volumen/swap_1 VG Name volumen LV UUID ly0S8s-MC2A-31yG-1dba-NYZk-ohQ0-yg1o6l LV Write Access read/write LV Status available # open 2 LV Size 2,59 GB Current LE 664 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:1 --- Logical volume --- LV Name /dev/volumen/home VG Name volumen LV UUID uQkCYh-3u1z-s6yq-0dpA-Q6MK-5PIO-7zAoy9 LV Write Access read/write LV Status available # open 1 LV Size 65,00 GB Current LE 16639 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:2
2. Desmontar la partición (por si las moscas, pero creo que desde el kernel 2.6 con sistemas de ficheros EXT3 NO es necesario). Es mejor si salimos del entorno gráfico:
umount /dev/mapper/volumen-home
3. Entrar en la consola de lvm y realizar unas operaciones:
3.1 lvm 3.2 Buscamos VG:
vgscan
3.3 Activamos el VG:
vgchange -a y VolGroup00
3.4 Generamos los ficheros de dispositivos ¿?:
vgmknodes
3.5 Salimos de la consola lvm:
exit
4. Achicar el sistema de ficheros
4.1 Comprobar el sistema de ficheros del LV:
e2fsck -f /dev/mapper/volumen-home
4.2 Redimensionar la partición ¿? (por ejemplo a 35 Gigas):
resize2fs /dev/mapper/volumen-home 35G
5. Achicar el LV:
5.1 Entrar en la consola lvm:
lvm
5.2 Reducir el LV (NOTA: según el tutorial la ruta es distinta, pero a mí tras avisarme que se podían perder datos me funcionó):
lvreduce -L36G /dev/volumen/home
O:
lvextend -L36G /dev/volumen/home
Creo que tanto da que da lo mismo
5.3 Salir de la consola:
exit
6. Expandir el sistema de ficheros al tamaño total del volumen.
resize2fs /dev/mapper/volumen-home
A mi me dijo que no se hacia nada
7. Aqui se puede volver a montar el sismte a de ficheros y ver los cambios. Más simple reiniciar
Forma 2 en caliente
lvreduce -L19G /dev/mapper/fixe-home
fixe:/home/jose/Desktop/Downloads# lvdisplay --- Logical volume --- LV Name /dev/fixe/root VG Name fixe LV UUID pi5FAr-znWl-Wkma-a5FB-Lvku-Mmv3-e1vcJO LV Write Access read/write LV Status available # open 1 LV Size 332.00 MB Current LE 83 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:0 --- Logical volume --- LV Name /dev/fixe/usr VG Name fixe LV UUID AHwTdB-ev37-LmDi-4ldW-k0fT-GD3Z-ajzZjl LV Write Access read/write LV Status available # open 1 LV Size 4.66 GB Current LE 1192 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:1 --- Logical volume --- LV Name /dev/fixe/var VG Name fixe LV UUID 41g0b1-YrLd-cHte-AoOT-Wtuz-4OSy-B59aJl LV Write Access read/write LV Status available # open 1 LV Size 2.79 GB Current LE 715 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:2 --- Logical volume --- LV Name /dev/fixe/swap_1 VG Name fixe LV UUID ndI2u3-Si6h-tB1U-lLoB-b7o6-cjQt-pIGoAH LV Write Access read/write LV Status available # open 2 LV Size 3.84 GB Current LE 983 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:3 --- Logical volume --- LV Name /dev/fixe/tmp VG Name fixe LV UUID PuyyLe-lwAF-xsK3-XSbX-UabV-YKea-ZUnLl4 LV Write Access read/write LV Status available # open 1 LV Size 380.00 MB Current LE 95 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:4 --- Logical volume --- LV Name /dev/fixe/home VG Name fixe LV UUID DTGGm1-lOem-0po1-BApp-ave5-wh2p-qLWCVk LV Write Access read/write LV Status available # open 1 LV Size 19.00 GB Current LE 4864 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:5
lvreduce -L19G /dev/mapper/fixe-home
WARNING: Reducing active and open logical volume to 19.00 GB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce home? [y/n]: y Reducing logical volume home to 19.00 GB Logical volume home successfully resized
lvextend -L1G /dev/mapper/fixe-root
Extending logical volume root to 1.00 GB Logical volume root successfully resized
resize2fs /dev/mapper/fixe-root
resize2fs 1.41.3 (12-Oct-2008) Filesystem at /dev/mapper/fixe-root is mounted on /; on-line resizing required old desc_blocks = 2, new_desc_blocks = 4 Performing an on-line resize of /dev/mapper/fixe-root to 1048576 (1k) blocks. The filesystem on /dev/mapper/fixe-root is now 1048576 blocks long.
resize2fs /dev/mapper/fixe-home
resize2fs 1.41.3 (12-Oct-2008) Filesystem at /dev/mapper/fixe-home is mounted on /home; on-line resizing required On-line shrinking from 6564864 to 4980736 not supported.
Reducir un LV y crear uno nuevo
Tenemos 80 Gb en home y queremos pasar 20 a una unidad de apoyo
Reducimos tamaño del primer LV:
lvreduce -L60G /dev/mapper/vol64-64_home
Creamos el LV de apoyo:
lvcreate vol64 --name apoyo --size=20G
Formatemos el LV:
mkfs.ext3 /dev/mapper/vol64-apoyo
Ya está listo para montar
Renombrar volumenes
Renombrar un Grupo de Volúmenes (VG)
(Creo que todo como root)
1. Obtenemos el nombre del Grupo de Volúmenes
calero:~# vgscan Reading all physical volumes. This may take a while... Found volume group "calero" using metadata type lvm2
2. Renombramos:
vgrename calero nuevo_nombre_vg
Renombrar un Volumen Lógico (LV)
(Creo que todo como root)
1. Obtenemos el nombre de todos los Volúmenes Lógicos del Grupo de Volúmenes:
calero:~# clear && lvdisplay
- – Logical volume —
LV Name /dev/calero/root
VG Name calero LV UUID KopwfX-2SZG-JJNg-H0xs-6dnb-zwmB-zBUMZR LV Write Access read/write LV Status available # open 1 LV Size 6,52 GB Current LE 1668 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:0 --- Logical volume --- LV Name /dev/calero/swap_1 VG Name calero LV UUID sGM4EI-QMBx-428v-B7nc-OcHB-KSnj-H9I1ze LV Write Access read/write LV Status available # open 2 LV Size 2,53 GB Current LE 648 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:1 --- Logical volume --- LV Name /dev/calero/home VG Name calero LV UUID jlNSaR-X2mN-l6Cs-epeu-PDRv-3iqi-izAUBP LV Write Access read/write LV Status available # open 1 LV Size 65,24 GB Current LE 16702 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:2
2. Renombramos el Volumen Lógico que queramos:
lvrename /dev/calero/home nuevo_nombre_lv
Añadir disco físico
Añadimos el disco físicamente
Al hacer un fdisk veremos que lo tenemos sin particionar
# fdisk -l Disk /dev/hda: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 13 104391 83 Linux /dev/hda2 14 1305 10377990 8e Linux LVM Disk /dev/hdd: 2147 MB, 2147483648 bytes 16 heads, 63 sectors/track, 4161 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Disk /dev/hdd doesn't contain a valid partition table
Creamos partición LVM
Con fdisk creamos una partición en /dev/hdb1 y la creamos tipo LVM:
# fdisk /dev/hdd Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. The number of cylinders for this disk is set to 4161. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-4161, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-4161, default 4161): Using default value 4161 Command (m for help): t Selected partition 1 Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): p Disk /dev/hdd: 2147 MB, 2147483648 bytes 16 heads, 63 sectors/track, 4161 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Device Boot Start End Blocks Id System /dev/hdd1 1 4161 2097112+ 8e Linux LVM Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
Creación PV
# pvcreate /dev/hdd1 Physical volume "/dev/hdd1" successfully created
Ampliamos VG
# vgextend VolGroup00 /dev/hdd1 Volume group "VolGroup00" successfully extended
Ampliamos LV
De los 2Gb añadimos solo 1Gb:
# lvextend -L +1G /dev/VolGroup00/LogVol00 /dev/hdd1
Extending logical volume LogVol00 to 10.12 GB Logical volume LogVol00 successfully resized
Vemos que todavía queda 1Gb libre (Free PE/Size 32/1.00GB):
# vgdisplay
- – Volume group —
VG Name VolGroup00
System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 6 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 3 Act PV 3 VG Size 11.88 GB PE Size 32.00 MB Total PE 380 Alloc PE / Size 348 / 10.88 GB Free PE / Size 32 / 1.00 GB VG UUID bB6L14-jB12-AmVc-IhZ0-PsK0-2kUe-nAvaTZ
Para ampliar al máximo de file system es sin ningún parámetro:
# lvextend /dev/VolGroup00/LogVol00 /dev/hdd1
Extending logical volume LogVol00 to 11.09 GB Logical volume LogVol00 successfully resized
Ampliamos FS
# resize2fs /dev/VolGroup00/LogVol00
resize2fs 1.39 (29-May-2006) Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required Performing an on-line resize of /dev/VolGroup00/LogVol00 to 2654208 (4k) blocks. The filesystem on /dev/VolGroup00/LogVol00 is now 2654208 blocks long.