lunes, 4 de octubre de 2010

Crear un volumen con LVM en Linux

El LVM se ha convertido en el administrador de volúmenes más popular en las distros Linux debido a que nos facilita mucho tareas como extender el tamaño de los volúmenes, concatenar discos y todo esto con una licencia GNU, por lo que el ahorro en licencias de software privativo (por ejemplo: Veritas Storage Foundation) es muy significativo, lamentablemente no cuenta con una forma de definir arreglos RAID, por lo que en un ambiente de alta disponibilidad, se recomienda el uso de arreglos físicos.

Para este ejemplo voy a cambiar de distro y voy a ocupar Fedora 13, voy a empezar con agregar un disco nuevo, el cual, fue reconocido por el sistema con el dispositivo /dev/sdb (noten que en Linux, el uso de dispositivo “raw” no aplica, solo por bloques).

El LVM se compone de tres capas, el volumen físico (PV), el cuál, es una partición o un disco completo cedido al LVM; el grupo de volúmes (VG), es una agrupación de uno o más PV’s, y finalmente, el volumen lógico (LV), es una parte de un VG que contiene un filesystem o forma parte del swap.

Voy a crear un PV utilizando el total del disco nuevo:

pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created

Ahora el VG:

vgcreate vg_appl /dev/sdb
  Volume group "vg_appl" successfully created

Y continuamos con el LV:

[root@fedora ~]# lvcreate -n apache -L 10G vg_appl
  Logical volume "apache" created

Ya que tenemos listo nuestro LV, (para el cuál, creó el dispositivo /dev/vg_appl/apache) vamos a crearle un filesystem, voy a crearlo tipo ext4 que es el que utiliza por default esta distro:

mkfs.ext4 /dev/vg_appl/apache
mke2fs 1.41.10 (10-Feb-2009)
Etiqueta del sistema de ficheros=
Tipo de SO: Linux
Tamaño del bloque=4096 (bitácora=2)
Tamaño del fragmento=4096 (bitácora=2)
Stride=0 blocks, Stripe width=0 blocks
655360 nodos-i, 2621440 bloques
131072 bloques (5.00%) reservados para el superusuario
Primer bloque de datos=0
Número máximo de bloques del sistema de ficheros=2684354560
80 bloque de grupos
32768 bloques por grupo, 32768 fragmentos por grupo
8192 nodos-i por grupo
Respaldo del superbloque guardado en los bloques:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Escribiendo las tablas de nodos-i: hecho
Creating journal (32768 blocks): hecho
Escribiendo superbloques y la información contable del sistema de ficheros: hecho

Este sistema de ficheros se revisará automáticamente cada 38 montajes o
180 días, lo que suceda primero.  Utilice tune2fs -c o -i para cambiarlo.

En mi caso, no necesito que le dé un fsck cada 38 montajes, por lo que voy a seguir la recomendación y voy a cambiarlo:

tune2fs -c -1 -i 0 /dev/vg_appl/apache
tune2fs 1.41.10 (10-Feb-2009)
Se pone la cuenta de montajes máxima a -1
Se pone el intervalo entre revisiones en 0 segundos

Lo monto:

mkdir /apache
mount -t ext4 /dev/vg_appl/apache /apache

Reviso que este correcto:

df -h
S.ficheros            Size  Used Avail Use% Montado en
/dev/mapper/vg_fedora-lv_root
                      2.9G  747M  2.2G  26% /
tmpfs                 502M  208K  502M   1% /dev/shm
/dev/sda1             291M   60M  217M  22% /boot
/dev/mapper/vg_fedora-lv_home
                      2.9G  1.1G  1.8G  37% /home
/dev/mapper/vg_fedora-lv_opt
                      2.0G  930M  954M  50% /opt
/dev/mapper/vg_fedora-lv_usr
                      3.9G  2.8G  922M  76% /usr
/dev/mapper/vg_fedora-lv_var
                      2.0G  320M  1.6G  17% /var
/dev/mapper/vg_appl-apache
                      9.9G  151M  9.2G   2% /apache

Observen que el dispositivo asociado a mi filesystem es un mapa, el cual, vamos a utilizarlo para definir en el archivo /etc/fstab a este filesystem para que lo monte en forma automática. Agregamos la siguiente línea:

/dev/mapper/vg_appl-apache      /apache ext4    defaults        1 2

Y listo, tenemos un nuevo filesystem sobre LVM.

Una ventaja de utilizar un filesystem ext3 o ext4 para este volumen es que es posible extender su tamaño si se requiere alguna vez, también se puede reducir, pero esto no es recomendado ya que puede haber perdida de datos, suponiendo que queremos crecer el filesystem a 15Gb.

lvextend -L +5G -r /dev/vg_appl/apache
fsck from util-linux-ng 2.17.2
e2fsck 1.41.10 (10-Feb-2009)
/dev/mapper/vg_appl-apache está montado.

¡¡ATENCIÓN!!  Ejecutar e2fsck en un sistema de ficheros montado
puede causar GRAVES daños al sistema de ficheros.

¿De verdad quiere continuar? (s/n)? si

/dev/mapper/vg_appl-apache: recuperando el fichero de transacciones
/dev/mapper/vg_appl-apache: limpio, 11/655360 ficheros, 79663/2621440 bloques
  Extending logical volume apache to 15.00 GiB
  Logical volume apache successfully resized
resize2fs 1.41.10 (10-Feb-2009)
Filesystem at /dev/dm-2 is mounted on /apache; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/dm-2 to 3932160 (4k) blocks.
El sistema de ficheros en /dev/dm-2 tiene ahora 3932160 bloques.

No hay comentarios.: