Apéndice C: LVM

Presentaremos ahora una serie de herramientas que son muy útiles a la hora de desplegar entornos virtualizados, desde la gestión de discos hasta la construcción y manejo de instancias de máquinas virtuales.

LVM

LVM (Logical Volume Manager) [1] es un sistema del núcleo de Linux para virtualizar la gestión de los dispositivos de almacenamiento. Permite añadir y eliminar discos a un grupo, crear volúmenes lógicos dentro de un grupo y cambiar su tamaño dinámicamente sin interrumpir el funcionamiento.

[1]http://sources.redhat.com/lvm/

La mayoría de las distribuciones incluyen el soporte para LVM en el núcleo por defecto así que, en todo caso, sería necesario tener el paquete lvm2 instalado para poder ser utilizado en nuestro sistema.

Para configurar LVM procederemos en primer lugar a formatear los discos con el tipo de partición específico de Linux LVM (8E). Sobre estas particiones (que pueden ocupar la totalidad del disco o no) crearemos uno o más grupos. Un grupo puede estar formado por varios discos (particiones) físicos. Dentro de cada grupo se pueden crear uno o varios volúmenes lógicos.

Ejemplo de configuración LVM

Ejemplo de configuración LVM

En este ejemplo tenemos un grupo vdisk sobre 3 discos físicos sda1, sdb1 y sdc1. Este grupo tiene dos volúmenes srv y var.

Utilizar LVM tiene sentido incluso cuando tenemos un único disco duro en el sistema, pues nos permitirá cambiar dinámicamente el tamaño de las particiones donde guardamos los datos. E incluso alargar el tamaño de nuestro sistema dinámicamente si añadimos nuevos discos físicos.

Una configuración típica de LVM es instalar el sistema en una partición pequeña (unos 4GB) ext3 al principio del disco y usar el resto para una partición con un volumen físico LVM en un grupo donde repartimos el espacio para puntos de montaje donde residen datos que esperamos que varíen a lo largo del tiempo como /var, /srv o /home.

Ejemplos prácticos

Ejemplo práctico A

Configuración de LVM:

user@host:~$ sudo aptitude update

user@host:~$ sudo aptitude install lvm2 xfsprogs

user@host:~$ sudo cfdisk /dev/sda
  • Nos dirigimos a Free Space ‣ New ‣ Primary, (todo el espacio).
  • Posteriormente vamos a Type, pulsamos enter y luego 8E.
  • Más tarde, nos situamos en Write y pulsamos yes.
  • Finalmente, salimos con Quit.

Reiniciamos el sistema para releer la tabla de particiones, aunque esto también podría hacerse con kpartx:

user@host:~$ sudo pvcreate /dev/sda4

user@host:~$ sudo pvdisplay

user@host:~$ sudo pvdisplay -C

user@host:~$ sudo vgcreate vdisk /dev/sda4

user@host:~$ sudo vgdisplay

user@host:~$ sudo vgdisplay -C

user@host:~$ sudo lvcreate vdisk --name home --size 3G

user@host:~$ sudo lvcreate vdisk --name srv --size 1.7G

user@host:~$ sudo lvdisplay

user@host:~$ sudo lvdisplay -C

user@host:~$ sudo lvremove vdisk/srv

user@host:~$ sudo lvdisplay -C

user@host:~$ sudo lvcreate vdisk --name srv --size 1G

user@host:~$ sudo mkfs.xfs /dev/vdisk/srv ; sudo mkfs.xfs /dev/vdisk/home

user@host:~$ sudo mount -t xfs /dev/vdisk/srv /srv

user@host:~$ df -h

user@host:~$ sudo lvextend /dev/vdisk/srv -L+0.7G

user@host:~$ sudo xfs_growfs /srv

user@host:~$ df -h

añadimos a /etc/fstab:

/dev/mapper/vdisk-srv  /srv     xfs     noatime         0       2
/dev/mapper/vdisk-home /home    xfs     noatime         0       2

user@host:~$ sudo mount -a

Para más información sobre LVM puede ir a http://www.howtoforge.com/linux_lvm

Ejemplo práctico B

Creación de una máquina virtual con vmbuilder:

user@host:~$ sudo aptitude install ubuntu-vm-builder

user@host:~$ sudo vmbuilder kvm ubuntu --suite hardy --arch i386

user@host:~$ cd ubuntu-kvm ; \
             qemu-img convert -f qcow2 disk0.qcow2 -O raw disk0.raw

user@host:~/ubuntu-kvm$ vboxmanage convertdd disk0.raw disk0.vdi

English - Español

Contenidos

Other documents

Tema anterior

Apéndice B: Escenarios avanzados de red

Próximo tema

Apéndice A: Entorno de pruebas con VirtualBox