Está en la página 1de 39

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

1 de 39

LVM
LVM es una implementacin de un administrador de volmenes lgicos para el kernel Linux. Se escribi originalmente en 1998 por Heinz Mauelshagen, que se bas en el administrador de volmenes de Veritas usado en sistemas HP-UX. LVM incluye muchas de las caractersticas que se esperan de un administrador de volmenes, incluyendo: Redimensionado de grupos lgicos Redimensionado de volmenes lgicos Instantneas de slo lectura (LVM2 ofrece lectura y escritura) RAID0 de volmenes lgicos

LVM no implementa RAID1 o RAID5, por lo que se recomienda usar software especfico de RAID para estas operaciones, teniendo las LV por encima del RAID En la siguiente imagen podemos observar cmo trabaja LVM. Los volmenes lgicos agrupan particiones fsicas de disco, y stos a su vez, aunque no est representado en la figura, se engloban en un grupo lgico. De esta forma, /home se compone de hda3, hda4 y hdb3, y a su vez, /usr engloba a hda1, hda2, hdb1 y hdb2.

COSAS QUE RESALTAR

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

2 de 39

La gestin de volmenes lgicos proporciona una vista de alto nivel sobre el almacenamiento en un ordenador, en vez de la tradicional vista de discos y particiones.

Los volmenes de almacenamiento bajo el control de LVM pueden ser redimensionados y movidos a voluntad, aunque esto quiz necesite actualizar las herramientas del sistema.

LVM tambin permite la administracin en grupos definidos por el usuario, permitiendo al administrador del sistema tratar con volmenes llamados, por ejemplo, "ventas" o "desarrollo", en vez de nombres de dispositivos fsicos, como "sda" o "sdb"

VENTAJAS DE USAR LVM EN UN SISTEMA PEQUEO


Una de las decisiones que afronta un usuario instalando Linux es cmo particionar el disco duro. La necesidad de estimar cuanto espacio ser necesario para el sistema, para los temporales o para los datos personales, puede convertirse en algo problemtico, por lo que muchos usuarios optan por crear una particin que ocupe todo el disco y all introducir los datos. An habiendo estimado correctamente cuando espacio se necesita para /home, /usr, /tmp, o cualquier otro directorio importante, es bastante comn que nos quedemos sin espacio en estas particiones, cuando tenemos espacio de sobra en alguna otra. Con el uso de un administrador de volmenes lgicos, el disco completo puede ser asignado a un nico grupo lgico y definir distintos volmenes lgicos para almacenar /home u otros directorios. En el caso que nos quedemos sin espacio, por ejemplo, en /home, y tenemos espacio en /opt, podramos redimensionar /home y /opt y usar el espacio que le hemos quitado a /opt y aadrselo a /home. Hay que tener en cuenta, que para realizar esto, nuestro sistema de archivos debe soportar el redimensionado. Otra alternativa sera dejar una cierta cantidad de espacio del disco sin asignar y cuando fuera necesario, expandir el volumen.

VENTAJAS DE USAR LVM EN UN SISTEMA GRANDE


Administrar un sistema con muchos discos es un trabajo que consume tiempo, y se hace particularmente complejo si el sistema contiene discos de distintos tamaos. Balancear los

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

3 de 39

requerimientos de almacenamiento de distintos usuarios (a menudo conflictivos) puede ser una tarea muy laboriosa y compleja. Los grupos de usuarios (llammosles por ejemplo administracin, desarrollo, etc...) pueden tener sus volmenes lgicos y stos pueden crecer lo que sea necesario, y el administrador puede realizar las operaciones oportunas sobre dichos volmenes. Cuando un nuevo disco se aade al sistema, no es necesario mover los datos de los usuarios. Simplemente se aade el nuevo disco al grupo lgico correspondiente y se expanden los volmenes lgicos todo lo que se considere adecuado. Tambin se pueden migrar los datos de discos antiguos a otros nuevos, de forma totalmente transparente al usuario.

ANATOMA DE UNA LVM


Una LVM se descompone en tres partes: Volmenes fsicos (PV): Son los discos duros, particiones o cualquier otra "cosa" que parezca un disco duro (raid's) Volmenes lgicos (LV): Es el equivalente a una particin en un sistema tradicional. La LV es visible como un dispositivo estndar de bloques, por lo que puede contener un sistema de achivos (por ejemplo /home) Grupos de volmenes (VG): Es la parte superior de la LVM. Es la "caja" en la que tenemos nuestros volmenes lgicos (LV) y nuestros volmenes fsicos (PV). Se puede ver como una unidad administrativa en la que se engloban nuestros recursos. Hay que hacer notar que mientras una PV no se aada a la VG, no podemos comenzar a usarla. A su vez, una PV se divide en chunks de datos, que se conocen como PE (physical extents), que son del mismo tamao que los PE de la VG. Adems, una LV se divide tambin en LE (logical extents), cuyo tamao es el mismo para todas las LV de la VG. Por ejemplo, teniendo como referencia la imagen del comienzo, supongamos que tenemos una VG llamada CASA, con 4MB de PE, a la que queremos aadir una LV para /tmp/. Aadimos dos particiones de disco, /dev/sda4 y /dev/sdb3, que se llamarn PV1 y PV2 (se las puede renombrar a discrecin del usuario). Las PV's pueden ser de distinto tamao y por lo tanto, tendrn un nmero distinto de PE, por lo que supongamos que tenemos para PV1 99 PE's y para PV2 248 PE's. Ahora, podemos crear la LV que necesitamos, que puede ser de cualquier tamao entre 1 y 347 (99+248) PE. De esta forma, se crea una tabla que relaciona PE's y LE's, y si por ejemplo escribimos 4 MB en el LE nmero 1 de la LV, se correspondern, por ejemplo, con el PE 51 de la PV1.

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

4 de 39

La tabla que relaciona PE's y LE's, se llama tabla de mapeo, y la correspondencia puede ser de dos tipos: Directo: Se asigna un rango de PE's a otro rango de LE's en orden. Por ejemplo, las LE's del nmero 1 al 99 se mapean sobre las PE's del 100 al 347 de PV2. Entrelazado: Las LE's se entrelazan sobre las PE's de los volmenes fsicos, por ejemplo: Destino Primer chunk de la LE1 Segundo chunk de la LE1 Tercer chunk de la LE1 Origen Primer chunk de la PV1 Primer chunk de la PV2 Segundo chunk de la PV1

PASO A PASO PARA CREAR VOLUMENES LVM


Ver los discos y particiones disponibles para crear el volumen LVM [root@server ~]# fdisk -l Disk /dev/sda: 17.1 GB, 17179869184 bytes 255 heads, 63 sectors/track, 2088 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot /dev/sda1 /dev/sda2 * Start 1 14 End 13 1057 Blocks 104391 8385930 Id 83 8e System Linux Linux LVM

Para efectos del laboratorio, crear 3 particiones tipo LVM de 512 MB cada una [root@server ~]# fdisk /dev/sda The number of cylinders for this disk is set to 2088. 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) Command (m for help): p

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

5 de 39

Disk /dev/sda: 17.1 GB, 17179869184 bytes 255 heads, 63 sectors/track, 2088 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot /dev/sda1 /dev/sda2 Command (m for help): n Command action e p e Partition number (1-4): 3 First cylinder (1058-2088, default 1058): Using default value 1058 Last cylinder or +size or +sizeM or +sizeK (1058-2088, default 2088): Using default value 2088 Command (m for help): p Disk /dev/sda: 17.1 GB, 17179869184 bytes 255 heads, 63 sectors/track, 2088 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot /dev/sda1 /dev/sda2 /dev/sda3 * Start 1 14 1058 End 13 1057 2088 Blocks 104391 8385930 8281507+ Id 83 8e 5 System Linux Linux LVM Extended extended primary partition (1-4) * Start 1 14 End 13 1057 Blocks 104391 8385930 Id 83 8e System Linux Linux LVM

Command (m for help): n Command action l p l First cylinder (1058-2088, default 1058): Using default value 1058 logical (5 or over) primary partition (1-4)

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

6 de 39

Last cylinder or +size or +sizeM or +sizeK (1058-2088, default 2088): +512M Command (m for help): n Command action l p l First cylinder (1121-2088, default 1121): Using default value 1121 Last cylinder or +size or +sizeM or +sizeK (1121-2088, default 2088): +512M Command (m for help): n Command action l p l First cylinder (1184-2088, default 1184): Using default value 1184 Last cylinder or +size or +sizeM or +sizeK (1184-2088, default 2088): +512M Command (m for help): p Disk /dev/sda: 17.1 GB, 17179869184 bytes 255 heads, 63 sectors/track, 2088 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot /dev/sda1 /dev/sda2 /dev/sda3 /dev/sda5 /dev/sda6 /dev/sda7 * Start 1 14 1058 1058 1121 1184 End 13 1057 2088 1120 1183 1246 Blocks 104391 8385930 8281507+ 506016 506016 506016 Id 83 8e 5 83 83 83 System Linux Linux LVM Extended Linux Linux Linux logical (5 or over) primary partition (1-4) logical (5 or over) primary partition (1-4)

Command (m for help): t Partition number (1-7): 5 Hex code (type L to list codes): L

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

7 de 39

0 1 2 3 4 5 6 7 8 9 a b c e f 10 11 12 14 16 17 18 1b 1c

Empty FAT12 XENIX root XENIX usr FAT16 <32M Extended FAT16 HPFS/NTFS AIX AIX bootable W95 FAT32

1e 24 39 3c 40 41 42 4d 4e 4f 51

Hidden W95 FAT1 75 NEC DOS Plan 9 PartitionMagic Venix 80286 PPC PReP Boot SFS QNX4.x 80 81 82 83 84 85 86

PC/IX Old Minix Linux swap Linux OS/2 hidden C: Linux extended

be bf c4 c6 c7 da

Solaris boot Solaris DRDOS/sec (FATDRDOS/sec (FATDRDOS/sec (FATSyrinx Non-FS data CP/M / CTOS / . Dell Utility BootIt DOS access DOS R/O SpeedStor BeOS fs EFI GPT EFI (FAT-12/16/ Linux/PA-RISC b SpeedStor SpeedStor DOS secondary Linux raid auto LANstep BBT

Minix / old Lin c1

NTFS volume set db NTFS volume set de Linux LVM Amoeba Amoeba BBT BSD/OS FreeBSD OpenBSD NeXTSTEP Darwin UFS NetBSD Darwin boot BSDI fs BSDI swap df e1 e3 e4 ee ef f0 f1 f4 f2 fd fe

QNX4.x 2nd part 87 QNX4.x 3rd part 8e OnTrack DM CP/M OnTrackDM6 EZ-Drive Golden Bow Priam Edisk SpeedStor Novell Netware Novell Netware 93 9f a5 a6 a7 a8 a9 b7 b8 OnTrack DM6 Aux 94 OnTrack DM6 Aux a0

OS/2 Boot Manag 50 W95 FAT32 (LBA) 52 W95 FAT16 (LBA) 53 W95 Ext'd (LBA) 54 OPUS Hidden FAT12 55 56

IBM Thinkpad hi eb

Compaq diagnost 5c Hidden FAT16 <3 61 Hidden FAT16 AST SmartSleep Hidden W95 FAT3 63 65 Hidden HPFS/NTF 64 Hidden W95 FAT3 70

GNU HURD or Sys ab

DiskSecure Mult bb

Boot Wizard hid ff

Hex code (type L to list codes): 8e Changed system type of partition 5 to 8e (Linux LVM) Command (m for help): p Disk /dev/sda: 17.1 GB, 17179869184 bytes 255 heads, 63 sectors/track, 2088 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot /dev/sda1 /dev/sda2 * Start 1 14 End 13 1057 Blocks 104391 8385930 Id 83 8e System Linux Linux LVM

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

8 de 39

/dev/sda3 /dev/sda5 /dev/sda6 /dev/sda7

1058 1058 1121 1184

2088 1120 1183 1246

8281507+ 506016 506016 506016

5 8e 83 83

Extended Linux LVM Linux Linux

Command (m for help): t Partition number (1-7): 6 Hex code (type L to list codes): 8e Changed system type of partition 6 to 8e (Linux LVM) Command (m for help): t Partition number (1-7): 7 Hex code (type L to list codes): 8e Changed system type of partition 7 to 8e (Linux LVM) Command (m for help): p Disk /dev/sda: 17.1 GB, 17179869184 bytes 255 heads, 63 sectors/track, 2088 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot /dev/sda1 /dev/sda2 /dev/sda3 /dev/sda5 /dev/sda6 /dev/sda7 * Start 1 14 1058 1058 1121 1184 End 13 1057 2088 1120 1183 1246 Blocks 104391 8385930 8281507+ 506016 506016 506016 Id 83 8e 5 8e 8e 8e System Linux Linux LVM Extended Linux LVM Linux LVM Linux LVM

Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot.

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

9 de 39

Syncing disks. Una vez que se actualiza la tabla de particiones hay que retomar los cambios sin reiniciar el servidor, si no se ejecuta este comando no se vern los cambios hechos en la tabla de particiones con los comandos anteriores. [root@server ~]# partprobe /dev/sda [root@server ~]# fdisk -l Disk /dev/sda: 17.1 GB, 17179869184 bytes 255 heads, 63 sectors/track, 2088 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot /dev/sda1 /dev/sda2 /dev/sda3 /dev/sda5 /dev/sda6 /dev/sda7 * Start 1 14 1058 1058 1121 1184 End 13 1057 2088 1120 1183 1246 Blocks 104391 8385930 8281507+ 506016 506016 506016 Id 83 8e 5 8e 8e 8e System Linux Linux LVM Extended Linux LVM Linux LVM Linux LVM

Ahora se inicializan las particiones que seran controladas por LVM, si no se hace esto LVM no tiene sentido, ya que no sabr cuales particiones o discos debe utilizar [root@server ~]# pvcreate /dev/sda5 /dev/sda6 /dev/sda7 Physical volume "/dev/sda5" successfully created Physical volume "/dev/sda6" successfully created Physical volume "/dev/sda7" successfully created Con el comando anterior, se agregaron las particiones de disco satisfactoriamente. Observe, que el grupo OSBOOT fue creado durante la instalacion, no tiene que ver con el laboratorio. [root@server ~]# pvdisplay --- Physical volume --PV Name VG Name PV Size Allocatable PE Size (KByte) Total PE Free PE Allocated PE PV UUID /dev/sda2 OSBOOT 7.97 GB / not usable 0 yes 32768 255 39 216 ax7eyX-kKDN-5fpY-QPaj-gxRk-lh9k-ZKipdZ

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

10 de 39

--- NEW Physical volume --PV Name VG Name PV Size Allocatable PE Size (KByte) Total PE Free PE Allocated PE PV UUID 493.97 MB NO 0 0 0 0 e72s1S-TFhY-2Ke3-hlG4-Xli0-tXE1-xWyqjM /dev/sda5 <-------RECIEN ADICIONADA

--- NEW Physical volume --PV Name VG Name PV Size Allocatable PE Size (KByte) Total PE Free PE Allocated PE PV UUID 493.97 MB NO 0 0 0 0 tJsiYh-mGcY-lS2x-i0a7-0ctm-E6px-5OXVib /dev/sda6 <-------RECIEN ADICIONADA

--- NEW Physical volume --PV Name VG Name PV Size Allocatable PE Size (KByte) Total PE Free PE Allocated PE PV UUID 493.97 MB NO 0 0 0 0 SX0yXV-dP98-GGuH-fSO3-pLUH-1ycl-7LdPvL /dev/sda7 <-------RECIEN ADICIONADA

Se crea el grupo sobre el cual gira el concepto de espacio y asignacin. Los volmenes que se crearan solo podran pertenecer a un solo grupo, no se puede compartir espacio entre grupos. [root@server ~]# vgcreate FONACIT /dev/sda5 /dev/sda6 Volume group "FONACIT" successfully created

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

11 de 39

[root@server ~]# vgdisplay FONACIT --- Volume group --VG Name System ID Format Metadata Areas Metadata Sequence No VG Access VG Status MAX LV Cur LV Open LV Max PV Cur PV Act PV VG Size PE Size Total PE Alloc PE / Size Free PE / Size VG UUID lvm2 2 1 read/write resizable 0 0 0 0 2 2 984.00 MB 4.00 MB 246 0 / 0 246 / 984.00 MB JKZS5b-7fCF-VPWH-K8vB-EeNV-MU4C-YrvPOi <-------TAMAO DEL GRUPO (MAX TAMAO VOLUMEN) <-------POSEE SOLO DE PARTICIONES FONACIT <-------RECIEN ADICIONADO

Se crea un volumen de 400MB cuyo nombre sera DATA dentro del grupo FONACIT [root@server ~]# lvcreate -L +400M -n DATA /dev/FONACIT Logical volume "DATA" created [root@server ~]# lvdisplay /dev/FONACIT/DATA --- Logical volume --LV Name VG Name LV UUID LV Write Access LV Status # open LV Size Current LE Segments Allocation Read ahead sectors /dev/FONACIT/DATA FONACIT ZqM72T-huss-aMKF-Why1-DBTZ-b8XF-ug2csX read/write available 0 400.00 MB 100 1 inherit 0 <-------TAMAO DEL VOLUMEN

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

12 de 39

Block device

253:2

Se crea el File system EXT3 en el volumen recien configurado, como si estuviese trabajando con una particin creada por el programa fdisk. [root@server ~]# mke2fs -j /dev/FONACIT/DATA mke2fs 1.35 (28-Feb-2004) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 102400 inodes, 409600 blocks 20480 blocks (5.00%) reserved for the super user First data block=1 Maximum filesystem blocks=67633152 50 block groups 8192 blocks per group, 8192 fragments per group 2048 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 38 mounts or 180 days, whichever comes first. existir) [root@server ~]# mkdir /mnt1 [root@server ~]# mount [root@server ~]# df -h Filesystem /dev/sda1 none /dev/hdc /dev/mapper/FONACIT-DATA Size Used Avail Use% Mounted on 1.9G 13M 0 918M 11M 3.9G 82M 188M 0 358M 33% / 14% /boot 0% /dev/shm 100% /media/cdrom 3% /mnt1 99M 188M 918M 388M /dev/mapper/OSBOOT-RootVol 6.0G /dev/FONACIT/DATA /mnt1 Use tune2fs -c or -i to override. Se monta el FS creado sobre el volumen DATA en el directorio /mnt1 (/mnt1 es un directorio y debe

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

13 de 39

Se observa qe existen 358MB libres para almacenar en /mnt1, por lo que se crea un archivo de 350MB (el unico proposito es ocupar el espacio disponible) [root@server ~]# dd if=/dev/zero of=/mnt1/swapfile bs=1M count=350 350+0 records in 350+0 records out [root@server ~]# df -h Filesystem Size 6.0G /dev/sda1 none /dev/hdc 99M 188M 918M 388M Used Avail Use% Mounted on 2.2G 13M 0 918M 362M 3.5G 82M 188M 39% / 14% /boot 0% /dev/shm /dev/mapper/OSBOOT-RootVol

0 100% /media/cdrom 5.8M 99% /mnt1

/dev/mapper/FONACIT-DATA Al estar al 99% se pretende agregar espacio al grupo y luego al volumen, para luego hacer que los cambios se reflejen en el FS on line (sin que los usuarios noten el cambio). Lo primero sera aumentar el espacio en el grupo, a menos que tenga suficiente espacio libre. [root@server ~]# vgextend FONACIT /dev/sda7 Volume group "FONACIT" successfully extended [root@server ~]# vgdisplay FONACIT --- Volume group --VG Name System ID Format Metadata Areas Metadata Sequence No VG Access VG Status MAX LV Cur LV Open LV Max PV Cur PV Act PV VG Size PE Size lvm2 3 3 read/write resizable 0 1 1 0 3 3 1.44 GB 4.00 MB <----NUEVO TAMAO DEL GRUPO FONACIT

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

14 de 39

Total PE Alloc PE / Size Free PE / Size VG UUID

369 100 / 400.00 MB 269 / 1.05 GB JKZS5b-7fCF-VPWH-K8vB-EeNV-MU4C-YrvPOi

Ahora se aumenta el espacio del volumen (se le agrega 800MB) [root@server ~]# lvextend -L +800M /dev/FONACIT/DATA

Extending logical volume DATA to 1.17 GB Logical volume DATA successfully resized [root@server ~]# df -h Filesystem Size 6.0G /dev/sda1 none /dev/hdc 99M 188M 918M 388M Used Avail Use% Mounted on 1.9G 13M 0 918M 362M 3.9G 82M 188M 33% / 14% /boot 0% /dev/shm /dev/mapper/OSBOOT-RootVol

0 100% /media/cdrom 5.8M 99% /mnt1 <--FS PERMANECE CON EL MISMO TAMAO

/dev/mapper/FONACIT-DATA Si observa bien el cambio de tamao ocurre sobre el volumen y no sobre el file system [root@server ~]# lvdisplay /dev/FONACIT/DATA --- Logical volume --LV Name VG Name LV UUID LV Write Access LV Status # open LV Size Current LE Segments Allocation Read ahead sectors Block device /dev/FONACIT/DATA FONACIT ZqM72T-huss-aMKF-Why1-DBTZ-b8XF-ug2csX read/write available 1 1.17 GB 300 3 inherit 0 253:2 <---- NUEVO TAMAO DEL VOLUMEN

Se aumenta el espacio del File System on line, quiere decir, que debe estar montado para que funcione [root@server ~]# ext2online /mnt1 ext2online v1.1.18 - 2001/03/18 for EXT2FS 0.5b [root@server ~]# df -h

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

15 de 39

Filesystem

Size 6.0G

Used Avail Use% Mounted on 1.9G 13M 0 918M 363M 3.9G 82M 188M 33% / 14% /boot 0% /dev/shm

/dev/mapper/OSBOOT-RootVol /dev/sda1 none /dev/hdc 99M 188M 918M 1.2G

0 100% /media/cdrom 741M 33% /mnt1 <-------------- NUEVO TAMAO

/dev/mapper/FONACIT-DATA

PROCEDIMIENTO

PARA

ELIMINAR

EL

VOLUMEN,

GRUPO

PARTICIONES DEL CONTROL DE LVM


[root@server ~]# umount /mnt1 [root@server ~]# lvremove /dev/FONACIT/DATA Do you really want to remove active logical volume "DATA"? [y/n]: y Logical volume "DATA" successfully removed [root@server ~]# vgremove /dev/FONACIT Volume group "FONACIT" successfully removed [root@server ~]# pvremove /dev/sda[5-7] Labels on physical volume "/dev/sda5" successfully wiped Labels on physical volume "/dev/sda6" successfully wiped Labels on physical volume "/dev/sda7" successfully wiped

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

16 de 39

RAID
En 1987, la Universidad de Berkeley (California), public un artculo describiendo varios tipos de arreglos de discos, acuando en el proceso el trmino RAID (acrnimo de Redundant Arreglo of Inexpensive Disks). Bsicamente, la idea era combinar mltiples discos duros independientes y pequeos en un arreglo (o matriz) de disco capaz de alcanzar un rendimiento superior al de un slo disco grande y caro, en otros trminos, se pretenda hacer trabajar varios discos modestos como un disco profesional de alto rendimiento. Adicionalmente, el arreglo de discos aparece ante el sistema como un disco lgico nico. El tiempo transcurrido entre errores (MTBF) para el arreglo de discos es, en el modelo terico de la Universidad de Berkeley, igual al MTBF de un disco individual dividido por el nmero de discos presentes en el arreglo. Esto se consigue alcanzando una cierta tolerancia a errores que pasa por guardar la informacin redundantemente de varios modos. En aquel documento original, tambin nacieron cinco tipos de arquitecturas RAID: desde RAID-1 hasta RAID-5 fueron definidas entonces, cada una de ellas proporcionando diferentes niveles de tolerancia a errores de disco y rendimientos. Despus de aquello, tambin se ha ido poniendo de moda el trmino RAID-0 para designar los arreglos de discos no redundantes. Hoy en dia, algunos de los niveles RAID originalmente definidos (concretamente, los niveles 2 y 3) son solo utilizados en sistemas muy especializados. Tambin ha ido apareciendo un nuevo nivel denominado "lineal", y se ha ido haciendo frecuente esto de ver el nivel 0 combinado con el nivel 1.

NIVELES RAID
Ahora viene una breve descripcin de los niveles RAID que soporta la capa de RAID por software de Linux. Buena parte de esto que vamos a ver son slo los fundamentos tericos de los sistemas RAID. Y ahora es cuando os saltis esta seccin los que ya conocis RAID. Ya volveris luego, cuando tengis problemas, malditos. :) El soporte RAID de Linux incorpora los siguientes niveles: Modo lineal. Dos o ms discos se combinan en un nico dispositivo fsico. Los discos se suceden marcialmente unos detrs de otros de tal manera que las escrituras en el dispositivo RAID primero llenarn el disco 0, a continuacin el disco 1 y as sucesivamente. Los discos no tienen por qu ser del mismo tamao. No existe redundancia alguna en este nivel. Si un disco falla se perdern todos los datos.

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

17 de 39

El rendimiento de las lecturas y las escrituras no mejora en las lecturas/escrituras individuales, pero si varios usuarios usan un mismo dispositivo, tal vez, tenga la suerte de que un usuario use efectivamente el primer disco y otro usuario acceda a archivos que por casualidad residan en el segundo disco. Si esto ocurre, es de esperar una mejora significativa en los rendimientos. RAID-0 Tambin llamado modo "stripe" o "rayado". Es como el anterior, salvo que las lecturas y escrituras se realizan en paralelo en los dispositivos. Los dispositivos deben tener aproximadamente el mismo tamao. Puesto que todos los accesos se realizan en paralelo, los discos se llenan por igual. Si un dispositivo es mucho mayor que los otros dispositivos, el espacio extra todava se utilizar en el dispositivo RAID durante las escrituras en el extremo superior del dispositivo RAID, aunque slo se acceder a este disco ms grande. Naturalmente, esto perjudica el rendimiento. Como en el modo lineal, tampoco hay redundancia en este nivel. Si elimina un disco de un grupo RAID-0, el dispositivo RAID no perder simplemente un bloque consecutivo de datos, sino que se llenar con pequeos agujeros por todo el dispositivo. El rendimiento de las lecturas y las escrituras mejora siempre, ya que las lecturas y las escrituras se realizan en paralelo sobre los dispositivos. Normalmente, sta es la razn principal para usar RAID-0. Si los buses a los discos son suficientemente rpidos, puede obtener casi N*P MB/seg. RAID-1 Este es el primer modo que incorpora redundancia. RAID-1 se puede usar en dos o ms discos con cero o ms discos de reserva. Este modo mantiene en un disco un duplicado exacto de la informacin en el otro(s) disco(s). Por supuesto, los discos deben ser del mismo tamao. Si un disco es mayor que otro, su dispositivo RAID ser del tamao del disco ms pequeo. Si se eliminan (o fallan) hasta N-1 discos, todos los datos todava permanecern intactos. Si existen discos de reserva disponibles y el sistema (es decir, las controladoras SCSI o los chipsets IDE, etc.) sobreviven al desastre, comenzar inmediatamente la reconstruccin de un duplicado en uno de los discos de reserva, despus de la deteccin del fallo del disco. Normalmente, el rendimiento de las lecturas aumenta hasta casi N*P, mientras que el rendimiento de las escrituras es el mismo que el de un nico dispositivo o, tal vez, incluso menos. Las lecturas se pueden hacer en paralelo pero, cuando se escribe, la CPU debe transferir N veces la cantidad de datos que normalmente transferira (recuerde, se deben enviar N copias idnticas de todos los datos a los discos). Esto ltimo es un problema cuando el arreglo RAID-1 es grande de verdad, puesto que el bus PCI puede saturarse al transportar todas esas copias redundantes de datos (el colapso del bus PCI es uno de esos escasos problemas que se pueden resolver mediante el uso de solucines RAID por hardware).

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

18 de 39

RAID-5 Este es quizs el modo RAID ms til cuando buscamos combinar un mayor nmero de discos fsicos y todava conservar alguna redundancia. RAID-5 se puede usar sobre 3 o ms discos, con cero o ms discos de reserva. El tamao del dispositivo RAID-5 resultante ser (N-1)*S. En RAID-5 la informacin de paridad se distribuye uniformemente entre los discos participantes, evitando el problema del cuello de botella. Si uno de los discos falla, los datos sobreviven, gracias a la informacin de paridad. Si existen discos de reserva disponibles, la reconstruccin comenzar inmediatamente despus del fallo del dispositivo. Si dos discos fallan simultneamente, todos los datos se perdern. RAID-5 puede sobrevivir a un fallo de disco, pero no a dos o ms. Lo normal sera que el rendimiento general de acceso a disco mejore sensiblemente en RAID-5, pero es difcil predecir en qu medida. Las velocidad en los accesos de lectura suele mejorar en la misma proporcin que tenemos con los sistemas RAID-0, mientras que las lecturas pueden llegar a aproximarse a las cifras en RAID-1 o, por el contrario, ms lentas (se requiere una lectura previa a la escritura para as poder calcular la informacin de paridad!). En definitiva, que la eficiencia en lecturas depende determinantemente de la cantidad de memoria RAM en la mquina y del uso que se haga del arreglo.

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

19 de 39

PASO A PASO PARA CREAR VOLUMENES RAID


El objetivo de este PASO A PASO, es crear particiones de tipo RAID, luego volumenes con niveles de raid linear y mirror, observando en el ltimo caso como se sincroniza ante una posible falla de disco Crear 4 particiones tipo RAID de 512MB [root@server etc]# fdisk /dev/sda The number of cylinders for this disk is set to 2088. 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) Command (m for help): p Disk /dev/sda: 17.1 GB, 17179869184 bytes 255 heads, 63 sectors/track, 2088 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot /dev/sda1 /dev/sda2 /dev/sda3 * Start 1 14 1058 End 13 1057 2088 Blocks 104391 8385930 8281507+ Id 83 8e 5 System Linux Linux LVM Extended

Command (m for help): n Command action l p l First cylinder (1058-2088, default 1058): Using default value 1058 Last cylinder or +size or +sizeM or +sizeK (1058-2088, default 2088): +512M Command (m for help): n Command action logical (5 or over) primary partition (1-4)

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

20 de 39

l p l

logical (5 or over) primary partition (1-4)

First cylinder (1121-2088, default 1121): Using default value 1121 Last cylinder or +size or +sizeM or +sizeK (1121-2088, default 2088): +512M Command (m for help): n Command action l p l First cylinder (1184-2088, default 1184): Using default value 1184 Last cylinder or +size or +sizeM or +sizeK (1184-2088, default 2088): +512M Command (m for help): n Command action l p l First cylinder (1247-2088, default 1247): Using default value 1247 Last cylinder or +size or +sizeM or +sizeK (1247-2088, default 2088): +512M Command (m for help): p Disk /dev/sda: 17.1 GB, 17179869184 bytes 255 heads, 63 sectors/track, 2088 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot /dev/sda1 /dev/sda2 /dev/sda3 /dev/sda5 /dev/sda6 * Start 1 14 1058 1058 1121 End 13 1057 2088 1120 1183 Blocks 104391 8385930 8281507+ 506016 506016 Id 83 8e 5 83 83 System Linux Linux LVM Extended Linux Linux logical (5 or over) primary partition (1-4) logical (5 or over) primary partition (1-4)

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

21 de 39

/dev/sda7 /dev/sda8

1184 1247

1246 1309

506016 506016

83 83

Linux Linux

Command (m for help): t Partition number (1-8): 5 Hex code (type L to list codes): fd Changed system type of partition 5 to fd (Linux raid autodetect) Command (m for help): t Partition number (1-8): 6 Hex code (type L to list codes): fd Changed system type of partition 6 to fd (Linux raid autodetect) Command (m for help): t Partition number (1-8): 7 Hex code (type L to list codes): fd Changed system type of partition 7 to fd (Linux raid autodetect) Command (m for help): t Partition number (1-8): 8 Hex code (type L to list codes): fd Changed system type of partition 8 to fd (Linux raid autodetect) Command (m for help): p Disk /dev/sda: 17.1 GB, 17179869184 bytes 255 heads, 63 sectors/track, 2088 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot /dev/sda1 /dev/sda2 /dev/sda3 /dev/sda5 /dev/sda6 /dev/sda7 /dev/sda8 * Start 1 14 1058 1058 1121 1184 1247 End 13 1057 2088 1120 1183 1246 1309 Blocks 104391 8385930 8281507+ 506016 506016 506016 506016 Id 83 8e 5 fd fd fd fd System Linux Linux LVM Extended Linux raid autodetect Linux raid autodetect Linux raid autodetect Linux raid autodetect

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

22 de 39

Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot. Syncing disks. [root@server etc]# partprobe /dev/sda Crear 1 Volumen linear de 2 dispositivos [root@server ~]# mdadm --create --help Usage: mdadm --create device -chunk=X --level=Y --raid-devices=Z devices

This usage will initialise a new md array, associate some devices with it, and activate the array. place of the relevant device name. Before devices are added, they are checked to see if they already contain raid superblocks or filesystems. They are also checked to see if the variance in device size exceeds 1%. If any discrepancy is found, the user will be prompted for confirmation before the array is created. caution. If the --size option is given then only that many kilobytes of each device is used, no matter how big each device is. If no --size is given, the apparent size of the smallest drive given is used for raid level 1 and greater, and the full device is used for other levels. Options that are valid with --create (-C) are: --chunk= --rounding= --level= -l -c : chunk size of kibibytes : rounding factor for linear array (==chunk size) : raid level: 0,1,4,5,6,linear,multipath and synonyms The presence of a '--run' can override this In order to create an array with some devices missing, use the special word 'missing' in

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

23 de 39

--parity= --layout=

-p

: raid5/6 parity algorithm: {left,right}-{,a}symmetric : same as --parity

--raid-devices= -n : number of active devices in array --spare-devices= -x: number of spares (eXtras) devices in initial array --size= --force --run --readonly -z -f -R -o : Size (in K) of each drive in RAID1/4/5/6 - optional : Honour devices as listed on command line. : insert a missing drive for RAID5. : insist of running the array even if not all : devices are present or some look odd. : start the array readonly - not supported yet. Don't

[root@server ~]# mdadm --create /dev/md0 --level=linear --raid-devices=2 /dev/sda[56] mdadm: array /dev/md0 started. Observar si se creo el volumen [root@server ~]# cat /proc/mdstat Personalities : [linear] md0 : active linear sda6[1] sda5[0] 1011840 blocks 64k rounding unused devices: <none> [root@server ~]# lsmod | grep linear linear /dev/md0: Version : 00.90.01 Creation Time : Tue May 15 23:32:54 2007 Raid Level : linear Array Size : 1011840 (988.13 MiB 1036.12 MB) Raid Devices : 2 Total Devices : 2 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Tue May 15 23:32:54 2007 State : clean Active Devices : 2 Working Devices : 2 9025 1 [root@server ~]# mdadm --detail /dev/md0

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

24 de 39

Failed Devices : 0 Spare Devices : 0 Rounding : 64K Number 0 1 Major 8 8 Events : 0.1 crear un File System y montarlo [root@server ~]# mke2fs -j /dev/md0 mke2fs 1.35 (28-Feb-2004) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 126720 inodes, 252960 blocks 12648 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=260046848 8 block groups 32768 blocks per group, 32768 fragments per group 15840 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 35 mounts or 180 days, whichever comes first. [root@server ~]# mkdir /mnt2 [root@server ~]# mount /dev/md0 /mnt2 [root@server ~]# df -h Filesystem Size Used Avail Use% Mounted on Use tune2fs -c or -i to override. Minor 5 6 RaidDevice State 0 1 active sync active sync /dev/sda5 /dev/sda6

UUID : 7231db62:861aaab2:a25d666c:fc60f44c

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

25 de 39

/dev/mapper/OSBOOT-RootVol 7.2G /dev/sda1 none /dev/md0 99M 188M 973M 4.0G 13M 0 18M 2.9G 82M 188M 906M 59% / 14% /boot 0% /dev/shm 2% /mnt2

Copiar algunos datos como para observar la funcionalidad del volumen. [root@server ~]# cp -rf /etc/sysconfig/network-scripts/ /mnt2/ [root@server ~]# ls -l /mnt2 total 20 drwx-----drwxr-xr-x 2 root root 16384 May 15 23:33 lost+found 2 root root 4096 May 15 23:33 network-scripts

PROCEDIMIENTO PARA ELIMINAR EL VOLUMEN RECIEN CREADO


[root@server ~]# umount /mnt2 [root@server ~]# mdadm --stop /dev/md0 [root@server ~]# mdadm --detail /dev/md0 mdadm: md device /dev/md0 does not appear to be active. [root@server ~]# cat /proc/mdstat Personalities : [linear] <---- Indica que el modulo todavia esta en RAM unused devices: <none> [root@server ~]# mdadm --zero-superblock /dev/sda[56] <-- Para que no aparezcan en boot se blanquea la info de RAID [root@server ~]# rmmod linear <--- Se elimina el modulo de RAM [root@server ~]# cat /proc/mdstat Personalities : unused devices: <none> <---- Detiene y elimina el Volumen

PROCEDIMIENTO PARA CREAR UN VOLUMEN EN MIRROR


Se crea volumen (md0) con 2 dispositivos tipo Mirror (level=1) [root@server ~]# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda[56] mdadm: /dev/sda5 appears to contain an ext2fs file system size=1011840K size=1011840K mtime=Tue May 15 23:33:33 2007 mtime=Tue May 15 23:33:33 2007 mdadm: /dev/sda6 appears to contain an ext2fs file system Continue creating array? y <----- Estas advertencias son debido a que antes se habia creado FS en los dispositivos del nuevo volumen

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

26 de 39

mdadm: array /dev/md0 started. [root@server ~]# cat /proc/mdstat Personalities : [raid1] <--- Se cargo el modulo en RAM md0 : active raid1 sda6[1] sda5[0] 505920 blocks [2/2] [UU] [==>..................] resync = 10.3% (53184/505920) speed=26592K/sec <--- Se estan sincronizando los elementos del RAID unused devices: <none> [root@server ~]# mdadm --detail /dev/md0 /dev/md0: Version : 00.90.01 Creation Time : Tue May 15 23:39:33 2007 Raid Level : raid1 Array Size : 505920 (494.06 MiB 518.06 MB) Device Size : 505920 (494.06 MiB 518.06 MB) Raid Devices : 2 Total Devices : 2 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Tue May 15 23:39:33 2007 State : clean, recovering Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 finish=0.2min

Rebuild Status : 40% complete Number Major Minor 5 6 1 RaidDevice State 0 active sync active sync /dev/sda5 <--- este estado es

0 8 mientras sincronizan 1 8 Events : 0.6

/dev/sda6

UUID : c4ba63ff:2a49a30b:9c28629e:aee6e173

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

27 de 39

Con este script podran ver si existe sync o si ya se sincronizaron los volumenes [root@server ~]# while true > do > if egrep -i "resync|recover" /proc/mdstat > /dev/null > then > egrep -i "resync|recover" /proc/mdstat > echo > sleep 5 > else > echo "Resync or Recover Done" > break > fi > done Resync or Recover Done <---- QUIERE DECIR QUE YA SE SINCRONIZARON Para hacer la prueba de la redundancia se crear un File System sobre el volumen md0 [root@server ~]# mke2fs -j /dev/md0 mke2fs 1.35 (28-Feb-2004) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 126480 inodes, 505920 blocks 25296 blocks (5.00%) reserved for the super user First data block=1 Maximum filesystem blocks=67633152 62 block groups 8192 blocks per group, 8192 fragments per group 2040 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

28 de 39

This filesystem will be automatically checked every 31 mounts or 180 days, whichever comes first. Se monta para poder copiar datos [root@server ~]# mount /dev/md0 /mnt2 [root@server ~]# cp -rf /etc/sysconfig/network-scripts/ /mnt2/ [root@server ~]# ls -l /mnt2/ total 13 drwx-----drwxr-xr-x 2 root root 12288 May 15 23:40 lost+found 2 root root 1024 May 15 23:40 network-scripts Use tune2fs -c or -i to override.

Se agrega una particion SPARE por si falla un elemento del Mirror, esta entre de forma automtica e inicie el proceso de sincronizacin [root@server ~]# mdadm /dev/md0 --add /dev/sda7 mdadm: hot added /dev/sda7 [root@server ~]# mdadm --detail /dev/md0 /dev/md0: Version : 00.90.01 Creation Time : Tue May 15 23:39:33 2007 Raid Level : raid1 Array Size : 505920 (494.06 MiB 518.06 MB) Device Size : 505920 (494.06 MiB 518.06 MB) Raid Devices : 2 Total Devices : 3 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Tue May 15 23:41:01 2007 State : clean Active Devices : 2 Working Devices : 3 Failed Devices : 0 Spare Devices : 1 <-- Monitorea los cambios

Number 0

Major 8

Minor 5

RaidDevice State 0 active sync /dev/sda5

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

29 de 39

6 7

1 -1

active sync spare

/dev/sda6 <---- esta reservado por

2 8 si falla sda5 o sda6 Events : 0.18

/dev/sda7

UUID : c4ba63ff:2a49a30b:9c28629e:aee6e173 Se emula la falla de un disco, para forzar el proceso de intercambio y sincronizacin [root@server ~]# mdadm /dev/md0 -f /dev/sda6

mdadm: set /dev/sda6 faulty in /dev/md0 [root@server ~]# mdadm --detail /dev/md0 /dev/md0: Version : 00.90.01 Creation Time : Tue May 15 23:39:33 2007 Raid Level : raid1 Array Size : 505920 (494.06 MiB 518.06 MB) Device Size : 505920 (494.06 MiB 518.06 MB) Raid Devices : 2 Total Devices : 3 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Tue May 15 23:41:18 2007 State : clean, degraded, recovering Active Devices : 1 Working Devices : 2 Failed Devices : 1 Spare Devices : 1

Rebuild Status : 6% complete Number 0 1 2 Major 8 0 8 Minor 5 0 7 RaidDevice State 0 -1 1 -1 active sync removed spare /dev/sda7 /dev/sda6 <--- al estar fallando faulty /dev/sda5

3 8 6 entra el spare a sincronizar Events : 0.21

UUID : c4ba63ff:2a49a30b:9c28629e:aee6e173

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

30 de 39

[root@server ~]# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sda7[2] sda6[3](F) sda5[0] 505920 blocks [2/1] [U_] [======>..............] recovery = 30.7% speed=31168K/sec <--- SE OBSERVA EL PROCESO DE RESYNC unused devices: <none> Con este script podran ver si existe sync o si ya se sincronizaron los volumenes [root@server ~]# while true > do > if egrep -i "resync|recover" /proc/mdstat > /dev/null > then > egrep -i "resync|recover" /proc/mdstat > echo > sleep 5 > else > echo "Resync or Recover Done" > break > fi > done [=========>...........] speed=39477K/sec [===========>.........] speed=24373K/sec Resync or Recover Done [root@server ~]# mdadm --detail /dev/md0 /dev/md0: Version : 00.90.01 Creation Time : Tue May 15 23:39:33 2007 Raid Level : raid1 Array Size : 505920 (494.06 MiB 518.06 MB) Device Size : 505920 (494.06 MiB 518.06 MB) Raid Devices : 2 Total Devices : 3 recovery = 46.6% (236864/505920) finish=0.1min (155840/505920) finish=0.1min

recovery

57.5%

(292480/505920)

finish=0.1min

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

31 de 39

Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Tue May 15 23:41:33 2007 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 1 Spare Devices : 0

Number 0

Major 8

Minor 5

RaidDevice State 0 1 -1 active sync active sync faulty /dev/sda5 /dev/sda7 <--- Sigue el volumen

1 8 7 redundante pero con otro device 2 8 Events : 0.22 [root@server ~]# ls -l /mnt2 total 13 drwx-----6

/dev/sda6

UUID : c4ba63ff:2a49a30b:9c28629e:aee6e173

2 root root 12288 May 15 23:40 lost+found 1024 May 15 23:40 network-scripts <--- Siguen los datos

drwxr-xr-x 2 root root aunque fallo un disco ese disco e incorporar uno nuevo.

Ahora bien, imagine que efectivamente se dao un disco, lo siguiente es el procedimiento para eliminar

[root@server ~]# mdadm /dev/md0 --remove /dev/sda6 mdadm: hot removed /dev/sda6 [root@server ~]# mdadm --detail /dev/md0 /dev/md0: Version : 00.90.01 Creation Time : Tue May 15 23:39:33 2007 Raid Level : raid1 Array Size : 505920 (494.06 MiB 518.06 MB) Device Size : 505920 (494.06 MiB 518.06 MB) Raid Devices : 2 Total Devices : 2

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

32 de 39

Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Tue May 15 23:42:01 2007 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0

Number 0 SPARE 1

Major 8 8

Minor 5 7

RaidDevice State 0 1 active sync /dev/sda5 /dev/sda7 <----YA NO ESTA EL active sync

UUID : c4ba63ff:2a49a30b:9c28629e:aee6e173 Events : 0.25 [root@server ~]# mdadm /dev/md0 --add /dev/sda6 <--- Se agrega el nuevo disco y se coloca como SPARE mdadm: hot added /dev/sda6 [root@server ~]# mdadm --detail /dev/md0 /dev/md0: Version : 00.90.01 Creation Time : Tue May 15 23:39:33 2007 Raid Level : raid1 Array Size : 505920 (494.06 MiB 518.06 MB) Device Size : 505920 (494.06 MiB 518.06 MB) Raid Devices : 2 Total Devices : 3 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Tue May 15 23:42:08 2007 State : clean Active Devices : 2 Working Devices : 3 Failed Devices : 0

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

33 de 39

Spare Devices : 1

Number 0 1 2

Major 8 8 8

Minor 5 7 6

RaidDevice State 0 1 -1 active sync active sync spare /dev/sda5 /dev/sda7

/dev/sda6

UUID : c4ba63ff:2a49a30b:9c28629e:aee6e173 Events : 0.26

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

34 de 39

CUOTAS
El almacenamiento en disco se puede restringir mediante la implementacin de cuotas de disco. Las cuotas se pueden configurar para usuarios individuales o para grupos. Este tipo de flexibilidad hace posible darle a cada usuario una pequea porcin del disco para que maneje sus archivos personales (tales como correo o informes), mientras que se le permite tener ms espacio para manejar los proyectos en los que estn trabajando. Adems, se puede configurar las cuotas no slo para que controlen el nmero de bloques de disco sino tambin el nmero de inodos. Debido a que los inodos son usados para almacenar informacin relacionada a los archivos, esto permite controlar el nmero de archivos que pueden ser creados. El soporte de cuotas de disco ha sido integrado en el kernel Linux desde la versin 1.3.46. Se necesita utilizar un kernel posterior para poder beneficiarse de las cuotas. El paquete software necesario que permite gestionar las cuotas es quota. Adems necesitamos tener esa opcin compilada en el kernel respondiendo afirmativamente a la opcin Quota support. Con esto conseguiremos limitar el espacio de disco consumido por usuario o por un grupo de usuarios.

ACTIVACIN DE LAS CUOTAS


Existen dos tipos de cuotas: las cuotas asociadas a los usuarios y las cuotas asociadas a los grupos de usuarios. Las primeras definen el nmero mximo de archivos y de bloques de disco asociados a cada usuario, las segundas definen el nmero mximo de archivos asociados a cada grupo de usuarios. Los dos tipos de cuotas pueden ser activados separadamente. Para activar las cuotas para los usuarios es necesario indicar la opcin usrquota para los sistemas de archivos referidos en /etc/fstab. Las cuotas que conciernen a los grupos son reguladas por la opcin grpquota. Los archivos de definicin de cuotas se llaman respectivamente quota.user y quota.group y estn situados en la raz de cada sistema de archivos involucrado. He aqu un ejemplo del archivo /etc/fstab: /dev/hda2 /dev/hdb2 /dev/sda1 / /home /usr/src ext3 ext3 ext3 defaults,rw 0 1 defaults,rw,usrquota,grpquota 0 1 defaults,rw,usrquota 0 1

La activacin de las cuotas es lanzada por El comandoquotaon. Para activarlas automticamente a la inicializacin del sistema, se debe agregar al archivo de inicializacin (/etc/rc.d) las lneas:

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

35 de 39

quotaon -avug Para crear los archivos de cuotas (aquota.user y aquota.group) en el sistema de archivos, se usa la opcin -c del comando quotacheck. quotacheck -acug /home Puede ser igualmente necesario verificar la coherencia de la informacin sobre gestin de cuotas despus de bloqueos repentinos. Para esto se utiliza El comandoquotacheck: quotacheck -avug Si las utilidades han sido compiladas con-DEXTc2DIRECT, El comandoquotacheck debe ejecutarse relativamente rpido, en caso contrario puede ser muy lento, pues debe explorar todos los directorios del disco. Es aconsejable de todas maneras ejecutar quotacheck durante la inicializacin del sistema antes de la activacin de las cuotas con quotaon.

CUOTAS DE USUARIO
El comando edquota es utilizado para asignar una cuota a un usuario o a un grupo de usuarios. Su sintxis es: edquota -u usuario edquota -g grupo Este comando carga un editor de texto que contiene la definicin de cuotas asignadas al usuario o al grupo y toma en cuenta el nuevo valor cuando el archivo es reescrito. Para cada usuario o grupo existen dos limitaciones: el nmero de archivos y el nmero de bloques disco (expresados en bloques de 1024 bytes). Para cada uno existen dos lmites: El lmite "suave": cuando este lmite es alcanzado o superado un mensaje advierte al usuario cada vez que un nuevo bloque o archivo es escrito. El lmite "duro": cuando este lmite es alcanzado el usuario no puede escribir nuevos archivos o nuevos bloques. El lmite "suave" se transforma en lmite "duro" cuando ha sido alcanzado o superado transcurrido cierto tiempo (7 das por defecto, conocido como perodo de gracia). Se puede definir una plantilla de usuario al cual se le asignan las cuotas y utilizarla para adjudicar cuotas a los dems usuarios del sistema. edquota -p usuarioplantilla -u usuario Todo usuario puede obtener el estado de la cuota que le ha sido asignada (limites como el nmero de archivos y de bloques que le han sido atribuidos) gracias a el comando quota.

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

36 de 39

El superusuario puede obtener las mismas informaciones sobre cualquier usuario o grupo con el mismo comando: quota -u usuario o quota -g grupo Adems es posible utilizar el comando repquota para obtener una lista de cuotas asociadas a uno o varios sistemas de archivos.

PASO A PASO PARA ACTIVAR CUOTAS EN UN FILE SYSTEM


Determinar sobre cual sistema de archivos se activarn el sistema de cuotas [root@cliente1 ~]# df -h Filesystem Size 7.0G /dev/sda1 tmpfs 99M 252M 248M [root@cliente1 ~]# mount /dev/mapper/OSBoot-RootVol on / type ext3 (rw,acl) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) /dev/sda1 on /boot type ext3 (rw) tmpfs on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) /dev/mapper/OSBoot-HomeVol on /home type ext3 (rw) No esta habilitada la cuota Para activar las cuotas por sistema de archivos debe agregar la opcin de cuotas para usuarios o grupos (si va a utilizar ambos conceptos, coloque ambas opciones) [root@cliente1 ~]# vi /etc/fstab /dev/OSBoot/RootVol LABEL=/boot devpts tmpfs proc / /boot /dev/pts /dev/shm /proc ext3 ext3 devpts tmpfs proc defaults,acl defaults gid=5,mode=620 defaults defaults 1 2 0 0 0 0 0 0 1 1 Used Avail Use% Mounted on 1.9G 11M 0 11M 4.8G 83M 252M 226M 28% / 12% /boot 0% /dev/shm 5% /home /dev/mapper/OSBoot-RootVol

/dev/mapper/OSBoot-HomeVol

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

37 de 39

sysfs /dev/OSBoot/SwapVol /dev/OSBoot/HomeVol 0 0

/sys swap /home

sysfs swap

defaults defaults ext3

0 0 0 0

defaults,usrquota,grpquota

Retome los cambio hechos en el archivo /etc/fstab [root@cliente1 ~]# mount -o remount /home [root@cliente1 ~]# mount /dev/mapper/OSBoot-RootVol on / type ext3 (rw,acl) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) /dev/sda1 on /boot type ext3 (rw) tmpfs on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) /dev/mapper/OSBoot-HomeVol on /home type ext3 (rw,usrquota,grpquota) Observe que los archivos de meta datos no existen, lo que quiere decir, que las cuotas no funcionarn hasta que ellos exsitan. [root@cliente1 ~]# cd /home [root@cliente1 home]# ll total 16 drwx------ 14 cramos cramos drwx-----drwxr-xr-x drwxr-xr-x drwxr-xr-x 2 root 2 user1 2 user2 2 user3 root staff sales admin 1024 Jun 1024 Jun 1024 Jun 1024 Jun 7 12:19 cramos 7 11:33 user1 7 10:39 user2 7 09:47 user3 12288 Jun 10 18:06 lost+found

[root@cliente1 home]# clear Para crear los archivos de meta datos que utilizar el sistema de cuotas ejecute el siguiente comando, al no utilizar la opcin a, se debe definir sobre cuales sistemas de archivo se activarn los archivos de meta datos. [root@cliente1 home]# quotacheck -cvug /home quotacheck: Scanning /dev/mapper/OSBoot-HomeVol user quota file: No such file or directory [/home] quotacheck: Cannot stat old

quotacheck: Cannot stat old group quota file: No such file or directory quotacheck: Cannot stat old user quota file: No such file or directory quotacheck: Cannot stat old group quota file: No such file or directory done

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

38 de 39

quotacheck: Checked 43 directories and 52 files quotacheck: Old file not found. quotacheck: Old file not found. [root@cliente1 home]# ls /home aquota.group aquota.user cramos lost+found user1 user2 user3 Ahora defina el editor de preferencia para modificar las cuotas del usuario o grupo [root@cliente1 ~]# export EDITOR=vim Supongamos que le vamos a colocar una cuota al usuario user1 de mnimo 10MB y Mximo 12MB [root@cliente1 ~]# edquota -u user1 Disk quotas for user user1 (uid 501): Filesystem hard /dev/mapper/OSBoot-HomeVol 0 Los numerous 10000 y 12000 son bloques de 1024, quiere decir, que si desea nmeros ms reales la cantidad en MB multiliquela por 1024. [root@cliente1 ~]# quotaon /home [root@cliente1 ~]# su - user1 [user1@cliente1 ~]$ ls -lah total 6.0K drwxr-xr-x 2 user1 staff 1.0K Jun 10 18:51 . drwxr-xr-x 7 root root 1.0K Jun 10 18:51 .. 2 Jun 176 Jun 124 Jun 7 11:36 archivo.acl1 7 09:47 .bash_profile 7 09:47 .bashrc 939 Jun 10 18:51 .bash_history -rw-rwxr-- 1 user1 staff -rw------- 1 user1 staff -rw-r--r-- 1 user1 staff -rw-r--r-- 1 user1 staff blocks 12000 soft 10000 hard 12000 inodes 8 soft 0

[user1@cliente1 ~]$ dd if=/dev/zero of=prueba-acl-3 bs=1M count=10 dm-2: warning, user block quota exceeded. 10+0 records in 10+0 records out 10485760 bytes (10 MB) copied, 0.143219 seconds, 73.2 MB/s [user1@cliente1 ~]$ ls -lah total 11M drwxr-xr-x 2 user1 staff 1.0K Jun 10 18:52 . drwxr-xr-x 7 root root 1.0K Jun 10 18:51 .. 2 Jun 7 11:36 archivo.acl1 -rw-rwxr-- 1 user1 staff

ADMINISTRACIN AVANZADA DE DISCOS

Pgina

39 de 39

-rw------- 1 user1 staff -rw-r--r-- 1 user1 staff -rw-r--r-- 1 user1 staff -rw-r--r-- 1 user1 staff 1+0 records in 1+0 records out

939 Jun 10 18:51 .bash_history 176 Jun 124 Jun 7 09:47 .bash_profile 7 09:47 .bashrc

10M Jun 10 18:52 prueba-acl-3

[user1@cliente1 ~]$ dd if=/dev/zero of=prueba-acl-4 bs=1M count=1

1048576 bytes (1.0 MB) copied, 0.010103 seconds, 104 MB/s [user1@cliente1 ~]$ dd if=/dev/zero of=prueba-acl-5 bs=1M count=1 dm-2: write failed, user block limit reached. dm-2: write failed, user block limit reached. dd: writing `prueba-acl-5': Disk quota exceeded 1+0 records in 0+0 records out 696320 bytes (696 kB) copied, 0.00891375 seconds, 78.1 MB/s [user1@cliente1 ~]$ ls -lah total 12M drwxr-xr-x 2 user1 staff 1.0K Jun 10 18:52 . drwxr-xr-x 7 root root 1.0K Jun 10 18:51 .. 2 Jun 176 Jun 124 Jun 7 11:36 archivo.acl1 7 09:47 .bash_profile 7 09:47 .bashrc 939 Jun 10 18:51 .bash_history -rw-rwxr-- 1 user1 staff -rw------- 1 user1 staff -rw-r--r-- 1 user1 staff -rw-r--r-- 1 user1 staff -rw-r--r-- 1 user1 staff

10M Jun 10 18:52 prueba-acl-3

-rw-r--r-- 1 user1 staff 1.0M Jun 10 18:52 prueba-acl-4 -rw-r--r-- 1 user1 staff 680K Jun 10 18:52 prueba-acl-5

También podría gustarte