las tribulaciones técnicas de santib90

mayo 22, 2007

Primeros pasos con LVM (Logical Volume Manager)

Filed under: linux — santib90 @ 4:41 pm

Hace algunas semanas instalé un servidor Debian Etch en una localización remota para realizar backups off-site de mis datos. Elegí el software rsync por razones de sencillez y optimización de ancho de banda. En un próximo post explicaré cómo lo configuré.

El equipo remoto (llamado rsync-debian) esta virtualizado en un ESX server 3.0.1 de VmWare. El sstema funciona muy bien y resulta tan cómodo que alguno de mis colegas me han pedido acceso al servidor para realziar ellos sus backups off-site. Esto plantea el problema de que el espacio en disco que reservé en su día al disco en rsync-debian se queda corto. Como ya preveía algo así, tuve la precaución de instalar Etch con la opción de particionado LVM. Ahora resulta que tengo la partición home a sin espacio de disco y me tengo que meter en harina con el LVM. Este es el resultado del comando “df”:

lvm-0.png

Primero voy a averiguar algo de información sobvre cómo particiono Etch el sistema con LVM, del que no tengo ni idea.

El fichero fstab pinta tal que así:

lvm-1.png

Y el volumen LVM esta configurado tal que así:

lvm-0b.png

Luego hago un “lvscan” para ver las unidades lógicas que estan configuradas:

rsync:~# lvscan
ACTIVE ‘/dev/rsync/root’ [5.30 GB] inherit
ACTIVE ‘/dev/rsync/swap_1’ [688.00 MB] inherit
ACTIVE ‘/dev/rsync/home’ [13.79 GB] inherit

evidentemente, tengo que expandir la unidad /dev/rsync/home

(NOTA: no se de dónde viene la diferencia de nomenclatura entre la unidad lógica “/dev/rsync/home” y la especificación “/dev/mapper/rsync-home” que aparece en el fstab. Tendre que investigarlo cuando tenga tiempo.

Por supuesto, primero pido al administrador del ESX que añada un nuevo disco virtual al equipo rsync-debian, este disco será el “/dev/sdb” (son preferibles los discos SCSI). Miro a ver si Etch detecta bien el nuevo disco con “fdisk -l”:

lvm-2.png

Bien, veo que lo detecta perfectamente y que aparece como sin particionar. Pasamos a crea la partición física (que luego incorporaremos al volumen “/dev/rsync” y la unidad lógica “dev/rsync/home”. Ejeuto el fdisk y voy creando la partición con el máximo tamaño disponible (40 Gb en este caso) y especifico el tipo de partición como “8e” para el LVM:

rsync:/etc# fdisk /dev/sdb
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 5221.
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): p

Disk /dev/sdb: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-5221, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-5221, default 5221):
Using default value 5221

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): L

0 Empty 1e Hidden W95 FAT1 80 Old Minix be Solaris boot
1 FAT12 24 NEC DOS 81 Minix / old Lin bf Solaris
2 XENIX root 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
5 Extended 41 PPC PReP Boot 85 Linux extended c7 Syrinx
6 FAT16 42 SFS 86 NTFS volume set da Non-FS data
7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM df BootIt
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e1 DOS access
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS e4 SpeedStor
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
f W95 Ext’d (LBA) 54 OnTrackDM6 a5 FreeBSD ee EFI GPT
10 OPUS 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor a9 NetBSD f4 SpeedStor
16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fd Linux raid auto
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fe LANstep
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid ff BBT
1c Hidden W95 FAT3 75 PC/IX
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.

Bien, ya he creado la nueva partición (/dev/sdb1) en el segunto disco (/dev/sdb). Ahora tengo que crear un volumen físico LVM en esa nueva partición. Esto se hace con el comando “pvcreate”

rsync:~# pvcreate /dev/sdb1
Physical volume “/dev/sdb1” successfully created

Ahora desmontaré la partición /home por si las moscas:

rsync:~# umount /dev/rsync/home

paso a extender el volumen LVM “/etc/rsync” con el volumen físico recien creado “/dev/sdb1”:

rsync:~# vgextend rsync /dev/sdb1
Volume group “rsync” successfully extended

antes de tocar la unidad lógica “/dev/rsync/home” hago una comprobación del sistema de ficheros:

rsync:~# e2fsck -f /dev/rsync/home
e2fsck 1.40-WIP (14-Nov-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/rsync/home: 26483/1807968 files (0.8% non-contiguous), 3432971/3613696 blocks

Parece que todo esta bien, pasamos a extender la unidad lógica “dev/rsync/home” con el comando “lvextend”, especificando los 40GB como parámetro (parece que 1 Gb son 1000 Mb en lugar de 1024, al estilo de las unidaes de disco, no estrictamente binario)

rsync:~# lvextend -L +40000 /dev/rsync/home /dev/sdb1
Extending logical volume home to 52.85 GB
Logical volume home successfully resized

Y finalmente tenemos que ampliar el sistema de archivos (ext3 en nuestro caso). Usamos el comando “resize2fs” para ello. Parece que si no le pasamos argumentos lo amplía al máximo tamaño disponible (que es justo lo que quiero)

rsync:~# resize2fs /dev/rsync/home
resize2fs 1.40-WIP (14-Nov-2006)
Resizing the filesystem on /dev/rsync/home to 13853696 (4k) blocks.
The filesystem on /dev/rsync/home is now 13853696 blocks long.

Antes de usar la unidad lógica recién expandida, la monto en el filesystem:

rsync:~# mount /dev/rsync/home

y ejecuto de nuevo elcomando “df” para ver si ya tengo espacio disponible:

rsync:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/rsync-root
5466908 632248 4556952 13% /
tmpfs 128484 0 128484 0% /lib/init/rw
udev 10240 60 10180 1% /dev
tmpfs 128484 0 128484 0% /dev/shm
/dev/sda1 241116 13262 215406 6% /boot
/dev/mapper/rsync-home
54549912 13515348 38817976 26% /home

¡¡¡BIEN !! Como vemos por ese comando, he pasado de una ocupación en “/home” del 100% inicial a un 26%.

3 comentarios »

  1. Perfecto este articulo!! Enhorabuena por la gran explicación y muchas gracias!!

    Comentario por Roberto Sánchez Sánchez — julio 20, 2012 @ 7:17 am


RSS feed for comments on this post. TrackBack URI

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Blog de WordPress.com.

A %d blogueros les gusta esto: