LVM
LVM quiere decir Logical Volume Manager.
Las particiones son estáticas. Si quieres cambiarla de tamaño, generalmente debes respaldar todo, reparticionar y restaurar.
Pero se puede crear un “volumen” con varias particiones físicas y luego utilizar ese espacio combinado para construir particiones lógicas. Usar particiones lógicas en lugar físicas facilita el ampliado de particiones, y la posibilidad de tener particiones que ocupan más de un disco físico. Se usa con grandes servidores por lo general, con docenas de discos. Para usos domésticos, basta con planificar bien las particiones físicas,
EL kernel debe tener soporte para LVM.
Instalando LVM
En Debian y Debian based distros
# apt-get install lvm2
Esto instalará en el sistema las herramientas necesarias para trabajar con volúmenes LVM.
En distros basadas en RPM
Descargar los RPM desde internet o utilizando el manejador de paquetes de la distribución(Yast en SuSe y yum en RedHat) o directamente desde internet.
En caso de utilizar esta última opción, deberán instalar el paquete manualmente usando la siguiente instrucción:
# rpm i lvm2
Cómo lo usamos
Dispositivo
- Usamos un gestor de particiones(
fdisk,cfdisk, etc) para configurar las particiones que deseamos usar como parte de volúmenes lógicos como “Linux LVM” - Tipo 0x8e.
- Creamos un “Volumen Físico” en cada partición. Por ejemplo:
# pvcreate /dev/sdb1
Grupo de Volúmenes
- Creamos un ”Grupo de Volúmenes”. Se le asigna un nombre, y se asignan las particiones que la conformarán. En el futuro puede agragarse otras particiones.
Sintaxis: vgcreate <nombreVolúmenLogico> <partición_1> … <partición_n>
# vgcreate miLVM /dev/sdb1 /dev/sdc2
vgdisplay. \ Sintaxis: vgdisplay [<nombre>]
- Creamos el “Volúmen Lógico”, creando además el
device(/dev/miLVM/lvol0) para luego poder operar sobre el mismo.
Sintaxis: lvcreate <opciones> <nombreVolúmenLogico>
lvcreate -L 2000 miLVM
En este caso estamos usando la opción -L con el valor 2000(+/-2GB). Lo que decimos es que queremos crear el volúmen lógico llamado miLVM y asignarle un tamaño de 2000 megabytes. Una vez realizado este paso, se creará un nuevo dispositivo en /dev llamado miLVM y dentro del mismo las “unidades”, normalmente lvoln dónde “n” comienza de 0:
# ls -l /dev/miL* drwx------ 2 root root 80 2008-05-04 06:00 miLVM # ls -l /dev/miLVM lrwxrwxrwx 1 root root 28 2008-05-04 06:00 lvol0 -> /dev/mapper/miLVM-lvol0
lvdisplay. \ Sintaxis: lvdisplay [<nombre>]
# lvdisplay
Preparando la nueva "unidad"
- Creamos el sistema de archivos(ext2, ext3, raiserFS, etc.) para el volúmen
# mkfs.ext3 /dev/miLVM/lvol0- Montamos el nuevo volúmen que está listo para ser usado.
# mount -text3 /dev/miLVM/lvol0 /mnt
Si quisieramos que el volúmen se montara automáticamente cada vez que reiniciamos el sistema, debemos modificar el archivo /etc/fstab, agregando la linea:
/dev/miLVM/lvol0 /mnt ext3 defaults 0 0
Modificando un volúmen lógico
Ahora es fácil modificar, si hay espacio libre en el grupo de volúmenes:
"Agrandando" el volúmen
- Desmontar colúmen
- Asignar más espacio
# umount /mnt # lvexpand -L+2g /dev/miLVM/lvol0
Si no queda más espacio disponible entre los volúmenes físicos, debemos agregar nuevas particiones, preparlas para LVM y asignarla al volumen en cuestión antes de realizar la extensión de tamaño.
- Particionar
- Crear volúmen físico
- Formatear
- Desmontar volúmen
- Añadir otro volúmen físico al volúmen lógico
- Asignar espacio al VL
- Re-montar
/dev/sdc1) y preparada para el LVM.
# pvcreate /dev/sdc1 # lvcreate -L 2000 miLVM # mkfs. # vgextend miLVM /dev/sdc1
- Eliminar un Volúmen Lógico:
# lmremove /dev/miLVM/lvol1- Eliminar un disco con pvmove
- Hacer striping para distribuir la carga de trabajo sobre varios discos.
Chequear particiones
Generalmente se hace durante el arranque si el equipo se apagó o tras un número determinado de montajes. Pero en caso de necesidad chequear una partición ya montada, es peligroso, y en el caso de / no podemos desmontarla. Para hacerlo:
- Pasamos a modo linux single con “init 1” o quizás “telinit 1”
- Remontamos en solo lectura (puede que al entrar en modo normal nos lo pida directamente).
mount -n -o remount,ro /
- Chequeamos con “fsck” (como root, el usuario normal no puede usarlo)