jueves, 8 de octubre de 2009

Jugando con LVs y xfs

Esto no va ser un manual ni sobre LVs ni xfs, simplemente un mini-howto basado en un caso real
Una pequeña introducción, algunas veces sucede que no tenemos la posibilidad de sentarnos frente al servidor que deseamos instalar y el mismo tampoco cuenta con una consola de administración remota al estilo Drac (de Dell) o ilom (de Sun). Por lo que no nos queda otra opción que otra persona realice la instalación del sistema base y habilite ssh para que podamos acceder remotamente.
Este es el caso, usando Debian 5 con una instalación base con Lvs (es una de las opciones que nos ofrece al instalar).
Bueno, sin más preámbulo, este es el escenario con el que nos encontramos al acceder por primera vez al equipo:

Miro FS montado:

debian5:~# df

S.ficheros Bloques de 1K Usado Dispon Uso% Montado en
/dev/mapper/debian5-root
329233 81766 230469 27% /
tmpfs 972976 0 972976 0% /lib/init/rw
udev 10240 668 9572 7% /dev
tmpfs 972976 0 972976 0% /dev/shm
/dev/sda1 233335 16379 204508 8% /boot
/dev/mapper/debian5-home
296395632 195628 281143928 1% /home
/dev/mapper/debian5-tmp
376807 10289 347062 3% /tmp
/dev/mapper/debian5-usr
4805760 397960 4163680 9% /usr
/dev/mapper/debian5-var
2882592 272504 2463656 10% /var

Como vemos tiene el /boot montado sobre la partición sda1 y luego utiliza lvs creados sobre el VG debian5.

Miro los LVs creados:

debian5:~# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
home debian5 -wi-ao 287,17G
root debian5 -wi-ao 332,00M
swap_1 debian5 -wi-ao 2,53G
tmp debian5 -wi-ao 380,00M
usr debian5 -wi-ao 4,66G
var debian5 -wi-ao 2,79G

Miro los VGs creados:

debian5:~# vgs
VG #PV #LV #SN Attr VSize VFree
debian5 1 6 0 wz--n- 297,85G 0


Miro los discos:

debian5:~# fdisk -l

Disco /dev/sda: 320.0 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000c9f92

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sda1 * 1 31 248976 83 Linux
/dev/sda2 32 38913 312319665 8e Linux LVM

Disco /dev/sdb: 320.0 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000e0177


Hasta aca toda la información que recolectamos, nuestro objetivo es crear un lv (que llamaremos events) con el máximo de tamaño posible, para ello eliminaremos el lv "home" (que luego volveremos a crear con menos espacio) y utilizaremos el disco sdb para extender el vg debian5 y poder crear el lv "events" que deseamos y darle fs xfs.

Manos a la obra:

Primero instalo las herramientas que necesitaré: (xfsprogs)

debian5:~# apt-get install xfsprogs

Desmonto el /home

debian5:~# umount /home/

Elimino el lv y lo vuelvo a crear (si, ya se que podria reducir el tamaño del actual)

debian5:~# lvremove /dev/debian5/home
Do you really want to remove active logical volume "home"? [y/n]: y
Logical volume "home" successfully removed


debian5:~# lvcreate -n home -L 10G debian5
/dev/cdrom: open failed: Sistema de ficheros de sólo lectura
Logical volume "home" created

Le damos FS ext3 al LV

debian5:~# mkfs.ext3 /dev/debian5/home

Verificamos con mount -a (la entrada del home ya estaba en el fstab originalmente)

debian5:~# mount -a

Particionamos el disco sdb, formato 8e (Linux LVM)

Esto lo hicimos de forma interactiva, en un post anterior mío encontraran la forma de hacerlo con un script.

debian5:~# fdisk /dev/sdb

El número de cilindros para este disco está establecido en 38913.
No hay nada malo en ello, pero es mayor que 1024, y en algunos casos
podría causar problemas con:
1) software que funciona en el inicio (p.ej. versiones antiguas de LILO)
2) software de arranque o particionamiento de otros sistemas operativos
(p.ej. FDISK de DOS, FDISK de OS/2)

Orden (m para obtener ayuda): n

Orden (m para obtener ayuda): n
Acción de la orden
e Partición extendida
p Partición primaria (1-4)

p

Número de partición (1-4): 1
Primer cilindro (1-38913, valor predeterminado 1):
Se está utilizando el valor predeterminado 1
Último cilindro o +tamaño o +tamañoM o +tamañoK (1-38913, valor predeterminado 38913):
Se está utilizando el valor predeterminado 38913

Orden (m para obtener ayuda): t
Se ha seleccionado la partición 1
Código hexadecimal (escriba L para ver los códigos): 8e
Se ha cambiado el tipo de sistema de la partición 1 por 8e (Linux LVM)

Orden (m para obtener ayuda): p

Disco /dev/sdb: 320.0 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000e0177

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sdb1 1 38913 312568641 8e Linux LVM

Orden (m para obtener ayuda): w
¡Se ha modificado la tabla de particiones!

Llamando a ioctl() para volver a leer la tabla de particiones.
Se están sincronizando los discos.


Creamos el PV (PHISICAL VOLUME) y extendemos el VG

debian5:~# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created

debian5:~# vgextend debian5 /dev/sdb1
Attempt to close device '/dev/cdrom' which is not open.
Volume group "debian5" successfully extended

Miramos el espacio que ahora tenemos disponible en el VG debian5

debian5:~# vgs
VG #PV #LV #SN Attr VSize VFree
debian5 2 6 0 wz--n- 595,93G 575,26G


Creamos el LV events y le damos formato xfs

debian5:~# lvcreate -n events -L 575G debian5
Logical volume "events" created

debian5:~# mkfs.xfs /dev/debian5/events
Warning - device mapper device, but no dmsetup(8) found
Warning - device mapper device, but no dmsetup(8) found
meta-data=/dev/debian5/events isize=256 agcount=4, agsize=37683200 blks
= sectsz=512 attr=2
data = bsize=4096 blocks=150732800, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096
log =internal log bsize=4096 blocks=32768, version=2
= sectsz=512 sunit=0 blks, lazy-count=0
realtime =none extsz=4096 blocks=0, rtextents=0


Creamos el punto de montaje para este lv y agregamos la entrada al fstab

debian5:~# mkdir -p /events
debian5:~# vim /etc/fstab

Importante: Tener siempre en cuenta cuando se modifica el archivo fstab como es la jerarquia de los directorios y como los montará.
Por ejemplo: este es el archivo fstab actual

# /etc/fstab: static file system information.
#
#
proc /proc proc defaults 0 0
/dev/mapper/debian5-root / ext3 errors=remount-ro 0 1
/dev/sda1 /boot ext2 defaults 0 2
/dev/mapper/debian5-home /home ext3 defaults 0 2
/dev/mapper/debian5-events /events xfs defaults 0 2
/dev/mapper/debian5-tmp /tmp ext3 defaults 0 2
/dev/mapper/debian5-usr /usr ext3 defaults 0 2
/dev/mapper/debian5-var /var ext3 defaults 0 2
/dev/mapper/debian5-swap_1 none swap sw 0 0
/dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0

Si el punto de montaje para el LV "events" sería /var/events en vez de /events, este archivo produciría un error al querer montar el LV events, ya que intentaría montar un lv en /var/events cuando aún no montó /var. Por eso es que siempre deben tener en cuenta el orden en que va montando.



Por último
Probamos nuevamente con mount -a y luego vemos los FS montados con el comando df

debian5:~# mount -a
debian5:~# df
S.ficheros Bloques de 1K Usado Dispon Uso% Montado en
/dev/mapper/debian5-root
329233 82640 229595 27% /
tmpfs 972976 0 972976 0% /lib/init/rw
udev 10240 676 9564 7% /dev
tmpfs 972976 0 972976 0% /dev/shm
/dev/sda1 233335 16379 204508 8% /boot
/dev/mapper/debian5-tmp
376807 10289 347062 3% /tmp
/dev/mapper/debian5-usr
4805760 400164 4161476 9% /usr
/dev/mapper/debian5-var
2882592 274256 2461904 11% /var
/dev/mapper/debian5-home
10321208 154232 9642688 2% /home
/dev/mapper/debian5-events
602800128 4256 602795872 1% /events


pepo.

No hay comentarios:

Publicar un comentario