Discos del Infierno
Introductión a LVM.
La mayoría de las instalaciones que realizamos, usando una Distro cualquiera sea, de
ellas, como puede ser debian, redhat, Tuquito o Condorlinux(1), se realizan, por lo
general utilizando discos communes.
Imaginemos esto, que hacemos una instalación, donde particionamos de la siguiente
manera.
/
/boot
/var
10 Gb
200 mb
1 Gb
Esta puede ser una tabla de particionado genérico, no digo que sea la mas óptima, es solo
para ejemplos.
Supongamos, que nuestro directorio /var, esta lleno, por que estamos usando un
servidor de correo sendmail(2), y nos quedamos sin espacio. También supongamos, que
tenemos todo este particionado en un disco Serial Ata , al que el sistema lo detecto como
sda, y que para darle mas espacio a /var, debería agregar un nuevo disco, y copiar todos
los datos de /var/, al nuevo disco, crear la partición vía fdisk, editar el /etc/fstab, y todas
esas cosas que Uds, por supuesto que ya saben.
Podríamos haber evitado esto desde el principio, si en el diseño de la Instalación
Hubiéramos optado por usar, LVM, o Linux Volume Manager.
Vamos a Dar una Definición de Lvm, pero para no rompernos la cabeza, voy a tomar
una definición de Daniel Coletti, en su documento
“Logical Volume Manager (LVM) . Administrador de Volúmenes Lógicos”.
El LVM es un módulo que se le agrega al núcleo Linux y genera una
abstracción entre los
discos físicos y los dispositivos para accederlos. Con la ayuda de
herramientas de administración, el administrador puede acceder a los
beneficios de utilizar LVM.
Básicamente lo que se logra es tener un nuevo dispositivo que apunta no a
un disco o una
partición, sino a un grupo de discos y particiones como un todo (manejar
muchos espacios de disco como si fuera un único disco).
Es importante aclarar, que si bien se puede “migrar” un OS, a LVM, lo mas
conveniente es el diseño del LVM, antes del Comenzar la instalación.
Para la siguiente explicación, Utilizare una Instalación en vmware, sobre debian etch.
Conceptos a Definir.
(También tomado del mismo texto, de Daniel Coletti).
Entrando en detalle vamos a encontrarnos inicialmente con tres nuevos conceptos
que utiliza
el LVM, Volumen Físico, Volumen Lógico y Grupo Volumen. Los Volúmenes Físicos
(VF) son los discos o particiones de un disco, los Volúmenes Lógicos (VL) son
dispositivos donde se pueden crear sistemas de archivos y por último, el Grupo
Volumen (GV) es un área donde se juntan los VF y VL.
Una aclaración fundamental.
Para que el Sistema Operativo trabaje con LVM, deberá esto estar soportado en el
kernel. Si bien el Kernel que utiliza debian etch, ya trae por defecto el soporte a LVM
y a Raid, esta aclaración es valida por si estamos compilando nuestro propio Kernel.
Habilitando el Soporte a Raid y LVM en el Kernel:
Multi-device support (RAID and LVM). -> .Logical volumen manager (LVM)
support.
Luego, lo que debemos hacer, es instalar el soporte a LVM, para eso, lo que debemos
hacer, es
debian:/#apt-get install lvm2
Vamos, a tomar una medición de cuanto disco rígido tenemos ocupado en este
momento.
debian:/# df k
S.ficheros Bloques de 1K Usado Dispon Uso% Montado en
/dev/sda3 2877872 881244 1850440 33% /
tmpfs 128484 0 128484 0% /lib/init/rw
udev 10240 68 10172 1% /dev
tmpfs 128484 0 128484 0% /dev/shm
/dev/sda2 279999 28188 237353 11% /boot
/dev/mapper/gv1vl1 7845572 411752 7035280 6% /var
Y luego, en el vmware, agrego un disco virtual, para hacer el sistema Volume
Manager.
Lo primero que debo hacer con este disco virtual, es formatearlo.
debian:~# fdisk /dev/sdc
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF
disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
The number of cylinders for this disk is set to 1044.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1044, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044):
Using default value 1044
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Lo que haremos sobre esta partición creada, es montar un Volumen Lógico, y luego le
asignaremos el directorio /var. Luego, una vez que el Volumen Lógico este creado, le
agregaremos otro disco mas, de 2 GB aproximadamente.
Lo primero que hacemos, es generar
pvcreate /dev/sdc1
Luego,
vgcreate gv1 /dev/sdc1
Luego,
lvcreate L 7,6 GB n vl1 gv1
Luego,
mkfs.ext3 /dev/gv1/vl1
Montamos la partición del volumen, para ver que todo este marchando como esperamos
mount /dev/gv1/vl1 /mnt
Copiamos todo lo del /var/ actual, a lo que va a ser el nuevo /var, que ahora esta en /mnt
Nota:
Quizas tengas que hacer
debian:/#aptget install rsync
Luego
debian:/#rsync ax /var/. /mnt
Luego, movemos el actual /var, a /usr (Por ejemplo, por si algo falla). Por ultimo,
debemos editar el /etc/fstab, para que tenga una apariencia parecida a esta. Nota: En tu
equipo seguro sera distinto, es dependiente a la tabla de particionamiento.
debian:~# cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/sda3 / ext3 defaults,errors=remountro 0 1
/dev/sda2 /boot ext3 defaults 0 2
/dev/sda1 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/gv1/vl1 /var ext3 defaults,errors=remountro 0 1
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
Una vez, que hacemos esto, booteamos el equipo. Si todo anda bien, al realizar un mount,
veremos algo similar a esto.
debian:~# mount
/dev/sda3 on / type ext3 (rw,errors=remountro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sda2 on /boot type ext3 (rw)
/dev/mapper/gv1vl1 on /var type ext3 (rw,errors=remountro)
Veamos la última línea,
/dev/mapper/gv1vl1 on /var type ext3 (rw,errors=remountro)
Esto significa, que ya tenemos un volumen lógico, y en el , montado el directorio /var.
Viendo las diferencias:
Realizando un df, vemos que el tamaño ocupado en /, disminuyo, y que se genero un
volumen logico.
debian:/# df
S.ficheros Bloques de 1K Usado Dispon Uso% Montado en
/dev/sda3 2877872 618312 2113372 23% /
tmpfs 128484 0 128484 0% /lib/init/rw
udev 10240 68 10172 1% /dev
tmpfs 128484 0 128484 0% /dev/shm
/dev/sda2 279999 28188 237353 11% /boot
/dev/mapper/gv1vl1 7845572 411752 7035280 6% /var
Agregando Discos al volumen logico.
Supongamos, aunque este no es el caso, que necesitamos agregar un disco nuevo, a
nuestro volumen lógico. Para esto, conectamos un disco mas, que nuestro OS, lo va a
detectar como sdb, y obviamente, lo formateamos.
debian:/# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
debian:/# vgextend gv1 /dev/sdb1
Volume group "gv1" successfully extended
debian:/# vgdisplay v
Finding all volume groups
Finding volume group "gv1"
Volume group
VG Name gv1
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 9,99 GB
PE Size 4,00 MB
Total PE 2558
Alloc PE / Size 1946 / 7,60 GB
Free PE / Size 612 / 2,39 GB
VG UUID J3TtQIwo2UIQgpDNvUjsNzlUo6yPjYHW
Logical volume
LV Name /dev/gv1/vl1
VG Name gv1
LV UUID cqX3IWN1Gqxo75NQDJhFyZp6Ia0nVah6
LV Write Access read/write
LV Status available
# open 1
LV Size 7,60 GB
Current LE 1946
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:0
Physical volumes
PV Name /dev/sdc1
PV UUID gMTq2tH27D7X1avRARBJfo56KWoCR02x
PV Status allocatable
Total PE / Free PE 2047 / 101
PV Name /dev/sdb1
PV UUID Q4FSVyIzHdGZHxbj0JsW6j7aJBo1HW80
PV Status allocatable
Total PE / Free PE 511 / 511
debian:/# lvextend L +1,6G /dev/gv1/vl1
Rounding up size to full physical extent 1,60 GB
Extending logical volume vl1 to 9,20 GB
Logical volume vl1 successfully resized
debian:/# resize2fs p /dev/gv1/vl1
resize2fs 1.40WIP (14Nov2006)
Filesystem
Comentarios de: Discos del Infierno - Introducción a LVM (0)
No hay comentarios