Creative Commons License
Excepto donde se indique otra cosa, todo el contenido de este lugar está bajo una licencia de Creative Commons.
Taquiones > sysadmin > LVM: mini guía

LVM: una mini guía

Introducción

Todas estas notas están sacadas del HOWTO oficial.

Asumimos un sistema que dispone de un disco IDE particionado y de un disco SATA nuevo y flamante.

  • IDE: /dev/hda:
    • Partición raíz: /dev/hda1
    • Intercambio: /dev/hda2
    • Partición independiente: /dev/hda3
  • SATA: /dev/sda
    • Sin particionar

Y anotamos este esquema retocado de interrelaciones entre elementos en un sistema LVM:

/dev/hda3   /dev/sda        (volúmenes físicos PV)
    |          |
    ------------
          |
        data                (grupo de volúmenes VG)
          |
 -------------------
 |        |        |
/usr     /boot    /var      (volúmenes lógicos LV)
 |        |        |
ext3     ext2     xfs       (sistemas de ficheros)

Inicializar discos ó particiones

Antes de poder utilizar un disco, ó una partición completa con LVM es necesario crear los volúmenes físicos:

# pvcreate /dev/hda3
# pvcreate /dev/sda

En caso de que LVM se queje de no poder usar un disco que tenga una tabla de particionado (procedente de un uso anterior), el siguiente truco (muy peligroso) permite continuar el proceso sin más:

# dd if=/dev/zero of=/dev/sda bs=1k count=1
# blockdev --rereadpt /dev/sda

Agrupando

Creamos un grupo de volumen, en la práctica una etiqueta, como contenedor del resto de los volúmenes:

# vgcreate data /dev/hda3

y lo activamos antes de usarlos:

# vgchange -a y data

Ahora añadimos el segundo disco, aunque podemos incluirlo en la creación:

# vgextend data /dev/sda

El volumen lógico

En este caso tenemos dos opciones, usar todo el espacio para un volumen lógico ó dividirlo en bloques. Como esto sólo es una chuleta voy a decantarme por la primera opción:

  1. Localizamos cuántos bloques tiene el grupo

    # vgdisplay data | egrep "Total PE"
    Total PE             102455
    
  2. Creamos el volumen lógico (llamado databases) usando todo el grupo:

    # lvcreate -l 102455 data -n databases
    
  3. Construímos un sistema de archivos sobre él, sabiendo que el punto de montaje es el dispositivo /dev/data/databases; esto es, nombre de grupo y nombre de volumen lógico:

    # mkfs -t xfs /dev/data/databases
    
  4. Construímos un sistema de archivos sobre él, sabiendo que el punto de montaje es el dispositivo /dev/data/databases; esto es, nombre de grupo y nombre de volumen lógico:

    # mkfs -t xfs /dev/data/databases
    
  5. Creamos un punto de montaje (a elegir):

    # mkdir /db
    
  6. Lo incluímos en la tabla de montajes:

    /db   /dev/data/databases    xfs    defaults   0   2
    

Y si posteriormente conseguimos robar un tercer disco, digamos /dev/hdb, y queremos añadírselo íntegro a nuestro grupo:

  1. Creamos un volúmen físico con el nuevo disco:

    # pvcreate /dev/hdb
    
  2. Lo añadimos al grupo

    # vgextend data /dev/hdb
    
  3. Extendemos el volumen lógico sobre él

    1. Determinamos cuánto hay disponible en el nuevo volumen

      # pvdisplay /dev/hdb | grep "Total PE"
      Total PE             71302
      
    2. Añadimos al volumen lógico los nuevos bloques (ojo con el signo más, que es importante para indicar que añadimos):

      # lvextend -l+71302 /dev/data/databases
      
    3. Y extendemos el sistema de archivos, siendo en nuestro caso de esta forma:

      # xfs_grow /db
      

    Sin desmontar antes el dispositivo en el caso de los XFS.