LVM
De Wikillano
LVM
Instalación:
root@svn:~# apt-get install lvm2
Estado de los discos:
root@svn:~# fdisk -l
Disk /dev/sda: 2684 MB, 2684354560 bytes 255 heads, 63 sectors/track, 326 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 7 56196 83 Linux /dev/sda2 8 262 2048287+ 83 Linux /dev/sda3 263 326 514080 5 Extended /dev/sda5 263 326 514048+ 82 Linux swap / Solaris Disk /dev/sdb: 5368 MB, 5368709120 bytes 255 heads, 63 sectors/track, 652 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sdb1 1 652 5237158+ 83 Linux root@svn:~#
Tengo un disco /dev/sdb1 ya particionado y listo para usarse.
damos formato LVM al disco anterior:
root@svn:/lib# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created root@svn:/lib#
Ahora definiremos un grupo VG : volume group (VG) que englobará nuestros discos, en nuestro caso por ahora 1"/dev/sdb1"
root@svn:/lib# vgcreate vol1 /dev/sdb1 Volume group "vol1" successfully created root@svn:/lib#
con vgdisplay podemos ver los volúmenes creados VG y si le pasamos la opción -v (verbose) podremos ver los VLogicos. y discos físicos implicados.
root@svn:/lib# vgdisplay --- Volume group --- VG Name vol1 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 4,99 GB PE Size 4,00 MB Total PE 1278 Alloc PE / Size 0 / 0 Free PE / Size 1278 / 4,99 GB VG UUID Rk8nPx-jcFd-L0CH-b7I1-2vTX-CM1P-ai7W2v
Ahora toca crear la partición lógica (filesystem), en este caso creo una que se llama data y ocupará toda la capacidad 4,99G del vol1
El comando para realizar esta tarea es lvcreate
root@svn:~# lvcreate -L4,99G -n data vol1 Rounding up size to full physical extent 4,99 GB Logical volume "data" created root@svn:~#
Con el parámetro -L definimos el tamaño que tendrá el volumen mientras que con -n fijamos el nombre. Una vez hecho esto dispondremos de un nuevo punto de montaje en /dev/grupo_volumen/volumen_logico
También tenemos el comnado lvdisplay para ver los volúmenes lógico creados, en este caso vemos el que acabamos de crear.
root@svn:~# lvdisplay --- Logical volume --- LV Name /dev/vol1/data VG Name vol1 LV UUID qsh6Qw-jFy8-QkhR-ZLWB-P5KJ-3qXS-oUMzPZ LV Write Access read/write LV Status available # open 0 LV Size 4,99 GB Current LE 1278 Segments 1 Allocation inherit Read ahead sectors 0 Block device 253:0
Despues de crear el volumenLógico tenemos que darle el formato que deseamos ext3 en mi caso.
root@svn:~# mkfs.ext3 /dev/vol1/data
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
655360 inodes, 1308672 blocks
65433 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information:
done
This filesystem will be automatically checked every 30 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. root@svn:~#
ahora ya tenemos este volumen listo para montarlo y utilizarlo.
root@svn:~# mkdir /data root@svn:~# mount -t ext3 /dev/vol1/data /data root@svn:~#
comprobación:
root@svn:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 1,9G 390M 1,4G 22% /
varrun 62M 48K 62M 1% /var/run
varlock 62M 0 62M 0% /var/lock
udev 10M 68K 10M 1% /dev
devshm 62M 0 62M 0% /dev/shm
/dev/sda1 52M 13M 37M 26% /boot
/dev/mapper/vol1-data
5,0G 139M 4,6G 3% /data
Estaría bien añadir la linea de montaje en el fstab para automatizar este proceso.
/dev/vol1/data /data ext3 rw,suid,exec 0 0
EJ: imaginar que ahora necesitamos más espacio en /data, en nuestro VG "vol1" ya no tiene más espacio para agrandar el VL "/data" pero podriamos comprar un HD nuevo y incluirlo en nuestro VG vol1, de esta manera obtendriamos espacio libre con el cual podríamos ampliar el filesystem /data.
estado actual de nuestra VG vol1:
root@svn:~# vgdisplay --- Volume group --- VG Name vol1 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 1 Act PV 1 VG Size 4,99 GB PE Size 4,00 MB Total PE 1278 Alloc PE / Size 1278 / 4,99 GB Free PE / Size 0 / 0 -------------------------------> no hay más espacio para asignar! VG UUID Rk8nPx-jcFd-L0CH-b7I1-2vTX-CM1P-ai7W2v
Añadimos un disco nuevo de 500MB a nuestro sistema le damos formato etc...
aquí lo tenemos:
Disk /dev/sdc: 536 MB, 536870912 bytes 64 heads, 32 sectors/track, 512 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System /dev/sdc1 1 512 524272 83 Linux
Le damos formato lvm root@svn:~# pvcreate /dev/sdc1 Physical volume "/dev/sdc1" successfully created root@svn:~#
Agregamos el disco nuevo al VG Vol1 mediante vgextend:
root@svn:~# vgextend vol1 /dev/sdc1 Volume group "vol1" successfully extended
como se puede observar ahora disponemos de 500MB más.
root@svn:~# vgdisplay --- Volume group --- VG Name vol1 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 2 Act PV 2 VG Size 5,49 GB PE Size 4,00 MB Total PE 1405 Alloc PE / Size 1278 / 4,99 GB Free PE / Size 127 / 508,00 MB VG UUID Rk8nPx-jcFd-L0CH-b7I1-2vTX-CM1P-ai7W2v
ahora vamos a agrandar nuestro VL /data co nel comando lvextend Para redimensionar la partición siempre tenemos que poner el tamaño que ya tiene más el que queremos añadir. en este caso yo añadire los 500MB a /data que tiene 4,99.
tenemos dos datos el PE / tamaño
Alloc PE / Size 1278 / 4,99 GB Free PE / Size 127 / 508,00 MB
para simplificar podemos sumar los datos PE y ejecutar lo siguiente
root@svn:~# lvextend -l 1405 /dev/vol1/data Extending logical volume data to 5,49 GB Logical volume data successfully resized root@svn:~#
como podemos comprobar el VL ya tiene el nuevo tamaño,
root@svn:~# lvdisplay --- Logical volume --- LV Name /dev/vol1/data VG Name vol1 LV UUID qsh6Qw-jFy8-QkhR-ZLWB-P5KJ-3qXS-oUMzPZ LV Write Access read/write LV Status available # open 1 LV Size 5,49 GB Current LE 1405 Segments 2 Allocation inherit Read ahead sectors 0 Block device 253:0
pero si miramos el estado de las particiones vemos que no es así realmente:
/dev/mapper/vol1-data
5,0G 139M 4,6G 3% /data
ahora debemos darle formato a la parte que hemos añadido con el comando resize2fs
root@svn:~# resize2fs /dev/vol1/data resize2fs 1.39 (29-May-2006) Filesystem at /dev/vol1/data is mounted on /data; on-line resizing required Performing an on-line resize of /dev/vol1/data to 1438720 (4k) blocks. The filesystem on /dev/vol1/data is now 1438720 blocks long.
Listo!
/dev/mapper/vol1-data
5,5G 139M 5,0G 3% /data
También existe la manera de reducir nuestros volumenes lógicos, en el caso de que no se esten utilizando ya que podemos perder información:
root@svn:~# lvreduce -L3G /dev/vol1/data WARNING: Reducing active and open logical volume to 3,00 GB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce data? [y/n]: n Logical volume data NOT reduced
NOTA FINAL:
También podemos crear otra VG, y en ella añadir discos y crear mas VL.
