Unidad 05 Administracin de Discos Parte II Redes y Comunicaciones de Datos Copyright 2007 por TECSUP Sistemas Operativos III Discos en Linux - Parte II 2 2 Introduccin Cuando trabajamos con discos duros, muchas veces nos encontramos con dos problemas frecuentes: Cmo asignar espacio de disco a un usuario para que no consuma todo el espacio disponible a otros usuarios. Cmo hacer cuando un disco duro ha llenado toda su capacidad y necesito mas espacio. Puedo poner otro disco, pero cmo hago si quiero que acten como si fueran uno solo. Linux soluciona estos problemas con dos conceptos muy utilizados: Cuotas de disco y Volmenes lgicos. Sistemas Operativos III Discos en Linux - Parte II 3 3 Objetivos Conocer sobre las cuotas de discos en Linux. Utilizar comandos para configurar las cuotas de discos. Conocer sobre volmenes lgicos. Utilizar comandos para configurar volmenes lgicos. Administrar volmenes lgicos. Sistemas Operativos III Discos en Linux - Parte II 4 4 Contenido Sistema de Archivos SWAP Agregando ms espacio SWAP Cuota de Disco Administrando Cuotas de disco LVM (Logic Volume Manger) Implementado LVMs Sistemas Operativos III Discos en Linux - Parte II 5 5 Sistema de archivos Swap El espacio Swap, o de "intercambio", es lo que se conoce como memoria virtual. La diferencia entre la memoria real y la virtual es que est ltima utiliza espacio en el disco duro en lugar de un mdulo de memoria. Cuando la memoria real se agota, el sistema copia parte de su contenido directamente en el espacio Swap a fin de poder realizar otras tareas. Utilizar memoria virtual tiene como ventaja el proporcionar la memoria adicional necesaria cuando la memoria real se ha agotado y se tiene que realizar un proceso. El inconveniente radica en que, como consecuencia de utilizar espacio en el disco duro, la utilizacin de sta es mucho muy lenta. Sistemas Operativos III Discos en Linux - Parte II 6 6 Agregar mas espacio Swap En algunos casos ser necesario agregar ms espacio de memoria de intercambio. Linux tiene como ventaja que puede trabajar con diferentes particiones swap en uno o varios discos. Para crear una nueva particin swap debemos hacer lo siguiente: Crear una particin del tamao deseado utilizando fdisk o cfdisk Sistemas Operativos III Discos en Linux - Parte II 7 7 Agregar ms espacio Swap Utilizar el programa: # mkswap /dev/hda6 (asumimos que hda6 es la particin creada) Activar la particin swap: # swapon /dev/hda6 Tomar en cuenta lo siguiente: -Si desea que la particin Swap sea montada al inicio del Sistema operativo automticamente, debe agregar una entrada en el archivo /et/fstab. -El programa mkswap tiene una opcin c, esta opcin permite verificar si la particin que se va a formatear tiene sectores defectuosos. Ejm: # mkswap c /dev/hda6 Sistemas Operativos III Discos en Linux - Parte II 8 8 Cuotas de Disco Las cuotas de disco le dan la habilidad al Sistema Operativo de limitar la cantidad de espacio en disco y/o el nmero de archivos que un usuario puede disponer en un determinado Sistema de Archivos. Actualmente utilizamos sistemas multiusuario en los que resulta deseable limitar la cantidad de recursos de los que puede disponer cada usuario o grupo de usuarios. De este modo, se impide que un usuario agote todo el espacio disponible en un disco para otos usuarios. Las cuotas permiten especificar lmites en dos aspectos del almacenamiento en disco: - El nmero de inodos que puede poseer un usuario o un grupo. - El nmero de bloques de disco que puede ocupar un usuario o un grupo. La idea que se esconde detrs de las cuotas es que se obliga a los usuarios a mantenerse debajo de su limite de consumo de disco, quitndoles su habilidad de consumir espacio ilimitado de disco en un sistema. Las cuotas se manejan en base al usuario y al sistema de archivos. Si el usuario espera crear archivos en ms de un sistema de archivos, las cuotas deben activarse en cada sistema de archivos por separado. Sistemas Operativos III Discos en Linux - Parte II 9 9 CARPETAS CARPETAS ARCHIVO ARCHIVO QUOTA QUOTA QUOTA Cuotas de Disco Sistemas Operativos III Discos en Linux - Parte II 10 10 Configurando Cuotas Primero debemos habilitar las cuotas de disco en /etc/rc.conf. Aadimos la siguiente lnea: enable_quotas="YES" Hay una variable que le permitir efectuar un control ms exhaustivo sobre el arranque de cuotas. Normalmente se revisa la integridad de cuotas de cada sistema de archivos en el arranque. quotacheck se asegura de que los datos que hay en su base de datos de cuotas reflejen realmente los datos del sistema de archivos. Es un proceso que lleva mucho tiempo y que afectar significativamente al tiempo que tardar su sistema en arrancar. Si desea saltarse ese paso, puede usar una variable al efecto en /etc/rc.conf: check_quotas="NO" Sistemas Operativos III Discos en Linux - Parte II 11 11 Configurando Cuotas Hay que editar el archivo /etc/fstab para habilitar las cuotas de disco para cada sistema de archivos. Aqu habilitaremos cuotas por usuario, por grupo, o ambos en todos los sistemas de archivos. Para habilitar cuotas para un usuario debemos aadir la opcin userquota en el campo de opciones en la entrada de /etc/fstab que corresponda al sistema de archivos en el que queremos habilitar las cuotas. Ejm: /dev/hdb2 /home ext3 rw,userquota 1 2 En el caso de las cuotas de grupo usamos la opcin groupquota en lugar de userquota. /dev/hda2 /home ext3 rw,groupquota 1 2 Para habilitar cuotas por usuario y por grupo modifique la entrada de este modo: /dev/hda2 /home ext3 rw,userquota,groupquota 1 2 Sistemas Operativos III Discos en Linux - Parte II 12 12 Configurando Cuotas Por defecto los archivos de cuota se guardan en el directorio raz del sistema de archivos con los nombres quota.user y quota.group para cuotas de usuario y grupo respectivamente. Al reiniciar el sistema, /etc/rc ejecutar automticamente los comandos apropiados para crear los archivos de cuota iniciales que requieran todas las entradas en /etc/fstab, as que no hay necesidad de crear archivos de cuota de longitud cero. Aunque es posible especificar otra ubicacin para los archivos de cuota, no es recomendable hacerlo debido a que las diversas herramientas de gestin de cuotas no parecen sobrellevar esto adecuadamente. Sistemas Operativos III Discos en Linux - Parte II 13 13 Configurando Limites de Cuota Los limites de cuotas se hacen utilizando edquota. Puede limitar el uso de disco basndose en: el espacio en disco (cuotas de bloque) en el nmero de archivos (cuotas de inodo) una combinacin de ambas. Cada uno de estos lmites a su vez se divide en dos categoras: lmites duros y suaves. Un lmite duro no puede ser excedido. Una vez que un usuario alcanza su lmite duro no puede realizar ms ubicaciones en el sistema de archivos en cuestin. Por ejemplo, si el usuario tiene un lmite duro de 500 kbytes en un sistema de archivos y est utilizando 490 kbytes, el usuario solo puede ocupar otros 10 kbytes. Un intento de ocupar 11 kbytes ms fallar. Los lmites suaves pueden excederse por un periodo; este periodo de tiempo recibe el nombre de periodo de gracia, que por defecto es una semana. Si un usuario sobrepasa su periodo de gracia el lmite suave se convertir en un lmite duro y no se permitirn usos de disco adicionales. Cuando el usuario devuelve su cuota de uso de recursos a un punto por debajo de su lmite suave el periodo de gracia se reinicia. Sistemas Operativos III Discos en Linux - Parte II 14 14 Configurando Limites de Cuota # edquota -u usuario1 Quotas for user test: /usr: kbytes in use: 65, limits (soft = 50, hard = 75) inodes in use: 7, limits (soft = 50, hard = 60) /usr/var: kbytes in use: 0, limits (soft = 50, hard = 75) inodes in use: 0, limits (soft = 50, hard = 60) Se ven dos lneas por cada sistema de archivos que tenga habilitadas las cuotas. Una vez hechas las modificaciones, los nuevos lmites de cuota se aplicarn en cuanto se salga del editor. Algunas veces se quieren activar lmites de cuota en un rango de UIDs. Esto puede realizarse con la opcin -p de edquota. Primero se asigna el lmite de cuota deseado a un usuario y luego ejecute edquota -p protouser startuid-enduid. Ejm: si el usuario rgonzales tiene el lmite de cuota deseado, el siguiente comando puede usarse para duplicar esos lmites de cuota para los UIDs de 10,000 hasta 19,999: # edquota p rgonzales 10000-19999 Sistemas Operativos III Discos en Linux - Parte II 15 15 Revisando los Limites de Cuota Utilizamos el comando quota o repquota. El comando quota permite revisar cuotas individuales de usuario o grupo y uso del disco. Un usuario puede examinar solamente su propia cuota y la cuota de un grupo al que pertenezca. # quota -v Disk quotas for user test (uid 1002): Filesystem usage quota limit grace files quota limit grace /usr 65* 50 75 5days 7 50 60 /usr/var 0 50 75 0 50 60 Sistemas Operativos III Discos en Linux - Parte II 16 16 Revisando los Limites de Cuota repquota permite obtener un resumen de todas las cuotas y uso del disco de todos los sistemas de archivos con cuotas habilitadas. Solo el superusuario puede ver todas las cuotas de todos los usuarios. # repquota -a Block limits File limits User used soft hard grace used soft hard grace Root -- 17 0 0 3 0 0 ftp -- 1 0 0 1 0 0 Jfg -- 19043 2560 3072 1146 0 0 Opciones Disponibles: -a Imprime las cuotas de todo los sistemas de archivos que aparecen en /etc/fstab. -g Imprime solo las cuotas de grupo. -n Muestra los IDs de usuarios y grupos en vez de usar los nombres. -u Imprimir solo cuotas de usuario. -v Imprime una cabecera antes de cada cuota de un sistema de archivos. Sistemas Operativos III Discos en Linux - Parte II 17 17 LVM Es una implementacin de un administrador de volmenes lgicos para el kernel Linux. 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. La gestin de volmenes lgicos proporciona una vista de alto nivel sobre el almacenamiento de datos en una Computadora, 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 informatica", en vez de nombres de dispositivos fsicos, como "sda" o hdb. Sistemas Operativos III Discos en Linux - Parte II 18 18 LVM Una LVM se descompone en tres partes: Volmenes fsicos (PV) Grupos de volmenes (VG) Volmenes lgicos (LV) Volmenes fsicos (PV): Son los discos duros, particiones o cualquier otra "cosa" que parezca un disco duro (raid's). 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. 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). Sistemas Operativos III Discos en Linux - Parte II 19 19 LVM 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 . 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. Ejm: 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. Ejm: Destino Origen Primer chunk de la LE1 Primer chunk de la PV1 Segundo chunk de la LE1 Primer chunk de la PV2 Tercer chunk de la LE1 Segundo chunk de la PV1 Sistemas Operativos III Discos en Linux - Parte II 20 20 SNAPSHOT Los snapshots (instantneas) permiten al administrador crear un nuevo dispositivo que ser una copia exacta de la LV, congelada en algn punto del tiempo. No es necesario que los datos en la LV se encuentren en un estado consistente, ya que muchos sistemas de archivos en el kernel 2.6 lo realizan de forma automtica. En LVM1 los snapshots son de solo lectura. En LVM2 los snapshots son de lectura y escritura. Esta caracterstica es muy til debido a que podemos crear nuestra instantnea, montarla y probar un programa. Si algo falla, la desmontamos, la borramos y volvemos a colocar el volumen original. Sistemas Operativos III Discos en Linux - Parte II 21 21 Creando LVMs con LVM2 En CentOS usaremos la versin 2 de LVM para crear un grupo de volmenes. Vamos a asumir que tenemos 3 discos duros: /dev/hda /dev/hdb /dev/hdc Utilizando fdisk haremos una particin en cada disco. Sistemas Operativos III Discos en Linux - Parte II 22 22 Creando LVMs con LVM2 Creamos un PV por cada particin creada, para esto utilizamos el comando pvcreate: pvcreate /dev/hda1 pvcreate /dev/hdb1 pvcreate /dev/hdc1 Agregamos estos 3 PV a un Grupo de Volmenes (VG) llamado data: vgcreate data /dev/hda1 /dev/hdb1 /dev/hdc1 vgchange -a y disk Sistemas Operativos III Discos en Linux - Parte II 23 23 Creando LVMs con LVM2 Creando particiones LV, crearemos 5 particiones: home, var, root, usr, swap de tamaos 45, 40, 10, 15, 1 respectivamente. lvcreate -L45G -nhome data lvcreate -L40G -nvar data lvcreate -L10G -nroot data lvcreate -L15G -nusr data lvcreate -L1G -nswap data -L indica el tamao del LV, se puede medir en megas (M), gigas (G). -n indica cmo se llamar el LV La ltima entrada es el nombre del VG del que tomaremos la informacin. As que ahora tendremos el VG llamado data conteniendo 5 LV: home, var, root, usr y swap. Una vez hecho esto podemos formatearlos : mkfs t ext3 /dev/disk/home mkfs t ext3 /dev/disk/var mkfs t ext3 /dev/disk/root mkfs t ext3 /dev/disk/usr mkswap /dev/disk/swap Sistemas Operativos III Discos en Linux - Parte II 24 24 Enlaces Particiones SWAP http://www.linuxparatodos.net/geeklog/staticpages/ind ex.php?page=como-swap Sobre Cuotas: http://www.tldp.org/HOWTO/Quota.html#toc4 http://www.linuxparatodos.net/geeklog/staticpages/ind ex.php?page=04-disk-quota&mode=print Sobre LVM: http://es.wikipedia.org/wiki/Logical_Volume_Manager Sistemas Operativos III Discos en Linux - Parte II 25 25 Preguntas 1. Con que comando se activa la particin Swap? 2. Dnde se configura el uso de cuotas para un sistema de archivos? 3. Qu son PV y LV? Sistemas Operativos III Discos en Linux - Parte II 26 26 Respuestas 1. swapon /dev/hda2 2. /etc/fstab 3. PV es un Volumen fsico, hace referencia a un disco duro. LV es un Volumen Lgico, hace referencia a una particin tradicional.