Instalación de LVM2 en Gentoo

By 27 de enero de 2008 Gentoo, Linux No Comments
Contenido:

1. Introducción

Esta guía está basada en un ejemplo que usa dos discos duros IDE. Significa que probablemente tendrá que cambiar el disco, los nombres y los tamaños de las particiones según su configuración y sus propias necesidades.

Aviso:
No es la intención que este documento sea un tutorial de LVM2. Servirá como información suplementaria al procedimiento de instalación de Gentoo, tal como se describe en la Parte 1 del Manual. Asegúrese de leer el Manual de Instalación antes de comenzar el proceso de instalación.

Nota:
Para un HOWTO completo acerca de LVM, navegue a
http://tldp.org/HOWTO/LVM-HOWTO.

Requisitos iniciales

Si va a hacer una instalación desde cero, hará falta usar un CD del cual pueda arrancar que soporte LVM2, tal como el CD de Instalación Gentoo. Puede encontrar el CD de Instalación para la plataforma x86 en nuestros servidores espejo bajo /releases/x86/current/installcd. Tal vez estén soportadas otras plataformas también.

Si instala LVM2 en un sistema existente con espacio de sobra en disco duro, habrá que activar el módulo LVM2 (dm-mod). Este módulo está disponible en las fuentes gentoo-sources. La compilación del núcleo y el hacer funcionar a LVM2 serán cubiertos más adelante en esta misma guía.

¡No todos los núcleos 2.4 de Gentoo soportan LVM2!

Aviso:
El LVM2 disponible en el CD de instalación 2005.0 está erróneamente enlazado dinámicamente contra la biblioteca (libgpm) ubicada en /usr. Esto significa que no puede tener su /usr en un ambiente LVM. Instale la última versión o la versión 2.0.33 (no la -r1) que están construidas estáticamente.

Las particiones

Nuestro sistema de ejemplo tiene dos discos duros IDE y serán particionados de la siguiente manera:

  • /dev/hda1 -- /boot
  • /dev/hda2 -- partición de intercambio (swap)
  • /dev/hda3 -- /
  • /dev/hda4 -- Será usado por LVM2
  • /dev/hdb1 -- Será usado por LVM2

Importante:
Ponga cuidado a los nombres de las particiones, ya que es fácil confundir las a y las b, y los números de las particiones. Un movimiento en falso y podemos borrar la partición equivocada. ¡Está advertido!

OK, hora de comenzar ...

2. Instalación

Siga el manual con los siguientes cambios en el capítulo 4.

Preparando los discos:

Use fdisk como dice el Manual, pero use el esquema de particiones antes mencionado como ejemplo. Acuérdese que este es sólo un ejemplo, adáptelo según sus necesidades.

Cree una pequeña partición física para /boot (hda1). En este ejemplo, /boot no será gestionado por LVM2. Esta partición contendrá el gestor de arranque y el/los núcleo(s). 64MB deben ser suficientes para varias generaciones de núcleos.

Cree una partición de intercambio (hda2).

Cree una partición raíz / (hda3). Si le interesa intentar colocar su partición raíz bajo control de LVM (cosa que no recomendamos), vea la sección de recursos al final de esta guía para un enlace a un mini-howto acerca de cómo hacer esto. La partición raíz no requiere ser grande si decide mantener los directorios /opt /usr /home /var y /tmp en un grupo de volúmenes (vg) LVM2. En este caso, 1GB debería ser suficient

Nota:
No recomendamos colocar los siguientes directorios en una
partición LVM2: /etc, /lib, /mnt, /proc, /sbin, /dev y /root. De esta manera podrá ingresar a su sistema (que aunque estuviese incompleto, sería utilizable como root) si ocurriese algún desastre.

Asumiendo que las particiones /boot, de intercambio y raíz no usan el disco físico completo, cree una cuarta partición y asígnele el tipo 8e (Linux LVM). Si tiene más de un disco físico que quiera usar con LVM, cree una partición en cada uno y asígneles el mismo tipo (8e).

Nota:
Tomando en cuenta el tamaño enorme de los discos duros actuales,
podría considerar dividir el disco en particiones más pequeñas en
vez de crear una sola partición enorme para agregarla a un grupo de
volúmenes LVM2 en un sólo bloque. Después de todo, LVM2 permite
aumentar fácilmente el tamaño de los volúmenes. Esto puede dejarle
particiones no asignadas que pueda usar fuera del control de un grupo
LVM2. Un consejo, no use su espacio de disco hasta que sepa que
lo necesite. Como ejemplo, podemos citar un colaborador que
subdividió su disco duro de 160 Gb en 8 particiones de
20 Gb c/u.

Cree los sistemas de archivos en /dev/hda1 y
/dev/hda3, además cree y active la partición de
intercambio en /dev/hda2 tal como se describe en el
manual.

Cargue el módulo LVM2 dm-mod.

Listado de Código 2.1: Cargar el módulo LVM2

# modprobe dm-mod

Antes de realizar la exploración y activación del LVM, querrá editar
el archivo /etc/lvm/lvm.conf para excluir algunos
dispositivos. LVM realizará de forma predeterminada la exploración de
todos los dispositivos, incluso de su lector de CD-ROM, lo cual puede
generar mensajes de error. En el siguiente ejemplo, la línea que
permite la exploración de todos los dispositivos es reemplazada por
una que rechaza todos los dispositivos con excepción de nuestros dos
discos duros IDE.

Listado de Código 2.2: Activar LVM

(Evitar explorar todos los dispositivos salvo nuestros discos duros)

# nano -w /etc/lvm/lvm.conf

(Busque la siguiente línea)

filter = [ "a/.*/" ]



(Reemplácela con la siguiente para explorar /dev/hda y /dev/hdb y

rechazar cualquier otra cosa)

filter = [ "a|/dev/hd[ab]|", "r/.*/" ]

(Guarde el archivo y salga de nano)

# vgscan

Reading all physical volumes.  This may take a while...

No volume groups found



(Haga disponible otros grupos de volúmenes previamente configurados)

# vgchange -a y

Prepare las particiones.

Listado de Código 2.3: Preparar las particiones

# pvcreate /dev/hda4 /dev/hdb1  No physical volume label read from /dev/hda4

Physical volume "/dev/hda4" successfully created

No physical volume label read from /dev/hdb1

Physical volume "/dev/hdb1" successfully created

Configure un grupo de volúmenes. Este es el resultado de combinar
varias unidades físicas en un único dispositivo lógico.

En nuestro ejemplo, /dev/hda1, /dev/hda2 y
/dev/hda3 son las particiones /boot, de
intercambio y raíz, por lo que necesitamos
combinar /dev/hda4 y /dev/hdb1. Esto se
puede hacer con un solo comando, pero como es un ejemplo didáctico,
crearemos un grupo de volúmenes y luego lo aumentaremos.

Listado de Código 2.4: Crear y aumentar un grupo de volúmenes

(Cree un grupo de volúmenes llamado vg)# vgcreate vg /dev/hda4

/etc/lvm/backup: fsync failed: Invalid argument (Ignore esta advertencia)

Volume group "vg" successfully created(Aumente el tamaño de un grupo de volúmenes existente)

# vgextend vg /dev/hdb1

/etc/lvm/backup: fsync failed: Invalid argument

(Ignore esta advertencia nuevamente y más adelante también)

Volume group "vg" successfully extended

Cree los volúmenes lógicos. Estos son el equivalente a una partición
creada con fdisk en un ambiente sin LVM2. En nuestro ejemplo,
crearemos las siguientes particiones:

Directorio Tamaño
/usr 10 GB
/home 5 GB
/opt 5 GB
/var 10 GB
/tmp 2 GB

Como usaremos LVM2, no nos preocuparemos mucho acerca de los tamaños
de las particiones, ya que las podemos aumentadar a voluntad.

Nota:
Como comenta Terje Kvernes, es más fácil aumentar el tamaño de una
partición que reducirla, de manera que tal vez quiera empezar con
particiones más pequeñas y aumentarlas según lo requerido.

Listado de Código 2.5: Crear y aumentar los volúmenes lógicos

# lvcreate -L10G -nusr  vg  Logical volume "usr" created (Los mensajes adicionales  similares no los mostramos)

# lvcreate -L5G  -nhome vg

# lvcreate -L5G  -nopt  vg

# lvcreate -L10G -nvar  vg

# lvcreate -L2G  -ntmp  vg

(Como ejemplo, aumentemos un volumen lógico en 5 Gbytes)

# lvextend -L+5G /dev/vg/home

Cree los sistemas de archivos en los volúmenes lógicos de la misma
forma que lo haría en una partición regular. Usamos ext3 en los
volúmenes lógicos, pero cualquier sistema de archivos escogido
servirá:

Listado de Código 2.6: Crear los sistemas de archivos

# mke2fs -j /dev/vg/usr# mke2fs -j /dev/vg/home# mke2fs -j /dev/vg/opt

# mke2fs -j /dev/vg/var

# mke2fs -j /dev/vg/tmp

Monte sus particiones como dice el Manual y monte los volúmenes
lógicos LVM2 como si fuesen particiones. Reemplace el

/dev/hdxx de costumbre con
/dev/vg/nombre_del_volumen_lógico.

Listado de Código 2.7: Montar sus volúmenes lógicos

(Asegúrese de montar primero su partición raíz, tal comoaparece en el Manual)

# mkdir /mnt/gentoo/usr

# mount /dev/vg/usr /mnt/gentoo/usr# mkdir /mnt/gentoo/home

# mount /dev/vg/home /mnt/gentoo/home

# mkdir /mnt/gentoo/opt

# mount /dev/vg/opt /mnt/gentoo/opt

# mkdir /mnt/gentoo/var

# mount /dev/vg/var /mnt/gentoo/var

# mkdir /mnt/gentoo/tmp

# mount /dev/vg/tmp /mnt/gentoo/tmp

Nota:
El resto de la instalación es prácticamente igual, así que no la
repetiremos. Sólo le diremos dónde están las diferencias.

Al configurar su núcleo, asegúrese que soporte LVM2 (ya que no todos
de la serie 2.4 lo hacen). Seleccione el módulo LVM2 de la siguiente
manera:

Listado de Código 2.8: Seleccionar el módulo LVM2 en un núcleo 2.4.x

Multi-device support (RAID and LVM)  --->  [*] Multiple devices driver support (RAID and LVM)

< >  RAID support

(Note que LVM no está seleccionado a propósito, esto era para LVM1)

< >  Logical volume manager (LVM) support

<M>  Device-mapper support

< >   Mirror (RAID-1) support

Listado de Código 2.9: Seleccionar el módulo LVM2 en un núcleo 2.6.x

Device Drivers  ---> Multi-device support (RAID and LVM)  --->

[*] Multiple devices driver support (RAID and LVM)

< >   RAID support

<M>   Device mapper support

El módulo compilado se llama dm-mod.ko

Luego de construir su núcleo e instalar sus módulos, agregue la
siguiente línea a su /etc/modules.autoload.d/kernel-{KV},
donde {KV} representa la versión del núcleo (bien sea 2.4 ó 2.6) para
que el módulo LVM2 sea cargado al arrancar la máquina:

Listado de Código 2.10: Agregar el módulo LVM2 a /etc/modules.autoload.d/kernel-2.6

# nano -w /etc/modules.autoload.d/kernel-2.6(Agregue la siguiente línea)

dm-mod

Ahora instale el paquete lvm2.

Importante:
Verifique que el enlace simbólico /usr/src/linux apunte a
las fuentes de núcleo que está usando porque el ebuild de lvm2 depende
del ebuild del mapeador de dispositivos que a su vez revisará la
presencia del archivo de fuentes requerido en

/usr/src/linux/include/linux.

Listado de Código 2.11: Instalar vía emerge el paquete LVM2

# emerge lvm2

Edite /etc/lvm/lvm.conf tal como se
describe previamente. El archivo que
editó antes es parte de su entorno de instalación y desaparecerá luego
del siguiente reinicio del sistema. Esta vez, edite el archivo
verdadero dentro de su nueva instalación de Gentoo.

Al editar su archivo /etc/fstab, siga el Manual y agregue
sus volúmenes como lo requiera. Una vez más, algunas líneas como
ejemplo:

Listado de Código 2.12: Extracto del /etc/fstab

/dev/hda1     /boot   ext3    noauto,noatime 1 2/dev/hda2     none    swap    sw             0 0

/dev/hda3     /       ext3    noatime        0 1

# Volúmenes lógicos

/dev/vg/usr   /usr    ext3    noatime        0 2

/dev/vg/home  /home   ext3    noatime        0 2

/dev/vg/opt   /opt    ext3    noatime        0 2

/dev/vg/var   /var    ext3    noatime        0 2

/dev/vg/tmp   /tmp    ext3    noatime        0 2

Al llegar al final de la parte de instalación del Manual, no se olvide
desmontar todos los volúmenes lógicos también y para finalizar, ejecute
el siguiente comando antes de reiniciar:

Listado de Código 2.13: Cerrar operaciones del LVM2

# vgchange -a n

Reinicie su máquina y todas las particiones deberán estar montadas y
visibles.

3. Continuar luego de reiniciar

Si interrumpió la instalación de Gentoo en cierto punto y quiere
continuar, primero necesita crear los nodos de los dispositivos de
vólumen:

Listado de Código 3.1: Reactivar los volúmenes

# vgscan --mknodes

En cambio en los CDs de Instalación con herramientas no tan actuales
puede que sea necesario reactivar los volúmenes:

Listado de Código 3.2: Reactivar los volúmenes

(Primero desactive todos los volúmenes)# vgchange -a n

(Exporte todos los volúmenes)

# vgexport -a vg

(Importe todos los volúmenes)# vgimport -a vg

(Reactive todos los volúmenes)

# vgchange -a y

Leave a Reply

Your email address will not be published.