Vous êtes sur la page 1sur 14

Sistemas de archivos

En computacin, un sistema de archivos es un mtodo para almacenar y organizar informacin en ordenadores. Este mtodo les permite acceder y manipular dicha informacin. Un sistema de archivos puede utilizar complementariamente un dispositivo de almacenamiento para organizar los datos, tal es el caso de un disco duro, un dispositivo externo como un CD-ROM, etc. No es rigurosamente necesario contar con dichos dispositivos, ya que un sistema de ficheros puede a su vez manejar datos que existan en servidores de archivos virtuales a travs de protocolos de red como NFS, SMB, etc. La mayora de los sistemas de archivos usan a los dispositivos de almacenamiento paraofrecer acceso a arreglos de bloques de tamao fijo llamados sectores. Un sector en estos dispositivos normalmente es de 512 bytes de tamao. El sistema de ficheros es el responsable de la organizacin de la informacin almacenada en estos sectores, as como su conjuncin en archivos y directorios. Los sistemas de archivos proveen las abstracciones de datos necesarias para que el usuario trabaje con la informacin que necesite sin necesidad de saber cmo est organizada fsica o lgicamente en su ordenador.

El sistema de archivos ext3


Introduccin.
Los sistemas de ficheros son uno de los principales componentes de un sistema operativo yde ellos se espera que sean rpidos y extremadamente fiables. Sin embargo a veces ocurren fallos imprevistos y las mquinas se caen inesperadamente bien por fallos hardware, por fallos software o por fallos elctricos. Despus de un apagado incorrecto dejar de nuevo el sistema de ficheros en un estadoconsistente puede llevar mucho tiempo. Las capacidades de los discos duros crecen y este tiempo se va convirtiendo en un serio problema, el sistema se queda "offline" muchos minutos mientras el disco es escaneado, chequeado y reparado. Aunque los discos duros cada vez son ms rpidos, el crecimiento de su velocidad es muy pequeo en comparacin con el enorme crecimiento de su capacidad (desafortunadamente el doble de capacidad de un disco supone emplear el doble de tiempo en su recuperacin utilizando las tcnicas tradicionales de chequeo). Cuando la disponibilidad del sistema es muy importante este tiempo no se puede desperdiciar, as que es necesario un mecanismo para evitar realizar un chequeo completo del disco cada vez que se apague incorrectamente la mquina. Este nuevo mecanismo debe permitir que el sistema de ficheros sea fiable y tenga compatibilidad con las aplicaciones actuales. Para ello se crearon los sistemas de ficheros con journalingo sistemas de ficheros transaccionales, los cuales permiten que la consistencia de los datos del sistema de ficheros

se mantenga despus de un apagado incorrecto de la mquina. En este documento se describen las ventajas de tener un sistema de ficheros con journaling ext3.

Conceptos bsicos de sistemas de ficheros.


Un fichero es una abstraccin muy importante en informtica. Los ficheros sirven paraalmacenar datos de forma permanente y ofrecen un pequeo conjunto de primitivas muy potentes (abrir, leer, avanzar puntero, cerrar, etc.). Los ficheros se organizan normalmente en estructuras de rbol, donde los nodos intermedios son directorios capaces de agrupar otros ficheros. El sistema de ficheros es la forma en que el sistema operativo organiza, gestiona y mantienela jerarqua de ficheros en los dispositivos de almacenamiento, normalmente discos duros. Cada sistema operativo soporta diferentes sistemas de ficheros. Para mantener la modularizacin del sistema operativo y proveer a las aplicaciones con una interfaz de programacin (API) uniforme, los diferentes sistemas operativos implementan una capa superior de abstraccin denominada Sistema de Ficheros Virtual (VFS: Virtual File System). Esta capa de software implementa las funcionalidades comunes de los diversos sistemas de ficheros implementados en la capa inferior. Los sistemas de ficheros soportados por Linux se clasifican en tres categoras: 1. Basados en disco: discos duros, disquetes, CD-ROM, etc. (Estos sistemas son ext2, ext3,ReiserFS, XFS, JFS, ISO9660, etc.) 2. Sistemas remotos (de red): NFS, Coda, Samba, etc. 3. Sistemas especiales: procfs, ramfs y devfs. El modelo general de ficheros puede ser interpretado como orientado a objetos, donde losobjetos son construcciones de software (estructura de datos y funciones y mtodos asociados) de los siguientes tipos: y Super bloque: mantiene informacin relacionada a los sistemas de ficheros montados. Est representado por un bloque de control de sistema almacenado en el disco (para sistemas basados en disco). y i-nodo: mantiene informacin relacionada a un fichero individual. Cada i-nodo contiene la meta-informacin del fichero: propietario, grupo, fecha y hora de creacin, modificacin y ltimo acceso, ms un conjunto de punteros a los bloques del disco quealmacenan los datos del fichero. Almacena toda la informacin acerca del fichero exceptoel fichero en s. y Fichero: mantiene la informacin relacionada a la interaccin de un fichero abierto y unproceso. Este objeto existe slo cuando un proceso interacta con el fichero. y Dentry: enlaza una entrada de directorio (pathname) con su fichero correspondiente. Los objetos "dentry" recientemente usados son almacenados en una cach (dentry cache) para acelerar la translacin desde un nombre de fichero al i-nodo correspondiente.Desde hace mucho tiempo, el sistema de ficheros estndar en Linux es el ext2. ste fuediseado por Wayne Davidson con la colaboracin de Stephen Tweedie y Theodore Ts'o. Es unamejora al sistema anterior, ext, diseado

por Rmy Card. El ext2 est basado en i-nodos (asignacinindexada). Cada i-nodo mantiene la meta-informacin del fichero y los punteros a los bloques conlos datos "reales"'. Donde encajan los Sistemas de Ficheros dentro del Sistema Operativo

Sistemas de ficheros con journaling en Linux


Al trabajar con un ordenador, para mejorar el rendimiento de las operaciones de E/S, losdatos del disco son temporalmente almacenados en la memoria RAM (Linux utiliza para ello dosmecanismos el page-cache y el buffer-cache). Los problemas surgen si hay un corte de suministroelctrico antes que los datos modificados en la memoria (dirty buffers) sean grabados nuevamente aldisco. Se generara una inconsistencia en el estado global del sistema de ficheros. Por ejemplo, unnuevo fichero que todava no fue ``creado'' en el disco u otros que hayan sido borrados pero sus inodosy bloques de datos todava permanecen como ``activos'' en el disco. El "fsck" (file system check) fue la herramienta que resolva dichas inconsistencias, pero el"fsck" tiene que analizar la particin completa y verificar las interdependencias entrei-nodos,bloques de datos y contenidos de directorios. Con la ampliacin de la capacidad de los discos, larecuperacin de la consistencia del sistema de fichero se ha convertido en una tarea que requieremucho tiempo, por lo que crea problemas serios de disponibilidad de las mquinas afectadas. Estaes la razn principal de que los sistemas de ficheros hayan importado de las bases de datos lastcnicas de transacciones y recuperacin, y as hayan aparecido los sistemas de ficheros conjournaling. Un sistema con journaling es un sistema de ficheros tolerante a fallos en el cual la integridadde los datos est asegurada porque las modificaciones de la meta-informacin de los ficheros sonprimero grabadas en un registro cronolgico (log o journal, que simplemente es una lista detransacciones) antes que los bloques originales sean modificados. En el caso de un fallo del sistema,un sistema con journaling asegura que la consistencia del sistema de ficheros es recuperada. Elmtodo ms comn es el de grabar previamente cualquier modificacin de la meta-informacin enun rea especial del disco, el sistema realmente grabar los datos una vez que la actualizacin de losregistros haya sido completada. A la hora de recuperar la consistencia despus de un fallo, el mdulo de recuperacinanalizar el registro y slo repetir las operaciones incompletas en aquellos ficheros inconsistentes,es decir que la operacin registrada no se haya llevado a cabo finalmente, con lo que se recuperarla consistencia del sistema de ficheros casi al instante, ya que en vez de examinar todos los metadatos(como hace el "fsck"), slo se inspeccionan aquellas porciones de los meta-datos que hansido cambiadas recientemente. La demanda de sistemas de ficheros que soporten terabytes de datos, miles de ficheros pordirectorios y compatibilidad con arquitecturas de 64 bits ha hecho que en los ltimos aos hayacrecido el inters de la disponibilidad de sistemas con journaling en Linux, ya que utilizando estossistema de ficheros se simplifican los reinicios de la mquina, se reduce la fragmentacin y seaceleran las operaciones de entrada/salida. Los primeros sistemas de ficheros con journaling fueron creados a mediados de los ochentae incluyen a Veritas (VxFS), Tolerant y JFS de IBM. Linux tiene ahora disponibles cuatro sistemasde ficheros transaccionales: ReiserFS de Namesys, XFS de Silicon Graphics (SGI), JFS de IBM yel ext3 que fue desarrollado por Stephen Tweedie, co-desarrollador del ext2. Cada uno de ellos tieneunas caractersticas especficas que le diferencian del resto, alguno se comportan mejor que otros enalgunos casos (pero no en todos), por ejemplo ReiserFS es bueno leyendo ficheros pequeos omedianos, XFS tiene mejor rendimiento

para ficheros grandes y con JFS se facilita mucho lamigracin de sistemas con OS/2 Warp y AIX a Linux.

Principales caractersticas del sistema de ficheros ext3.


El sistema de ficheros ext3 es una extensin con journaling del sistema de ficheros ext2.Como ya hemos visto con el journaling se obtiene una enorme reduccin en el tiempo necesariopara recuperar un sistema de ficheros despus de una cada, y es por tanto muy recomendable enentornos donde la alta disponibilidad es muy importante, no slo para reducir el tiempo derecuperacin de mquinas independientes sino tambin para permitir que un sistema de ficheros deuna mquina cada sea recuperado en otra mquina cuando tenemos un clster con algn discocompartido. Adems se posibilita que el sistema de ficheros cado de una mquina (por ejemplo unservidor) est disponible cuanto antes para el resto de mquinas a travs de la red (nfs, samba, ftp,http, etc.). El principal objetivo del ext3 es por tanto la disponibilidad, es decir, cuando se apagueincorrectamente la mquina tener el sistema totalmente disponible al momento despus de volver aarrancar sin necesidad de que se tenga que esperar a pasar un "fsck", el cual tarda mucho tiempo.Adems con ext3 se ha aadido el journaling de manera que sea totalmente compatible con lossistemas de ficheros ext2 (es posible migrar sistemas de ficheros ext2 existentes a ext3 y viceversamuy fcilmente). La mayora de distribuciones de Linux en la actualidadya incluye ext3 como opcin, y es actualmente el sistemade ficheros oficialmente soportado por dicha empresa (en las

nuevas distribuciones es opcionalformatear las particiones del disco con el antiguo ext2). El resto de distribuciones tambin lo estnincluyendo (incluso se puede usar ext3 en Debian GNU/Linux 3.0 Woody), por lo que en pocotiempo se espera que el ext3 sustituya al ext2 como sistema de ficheros estndar en Linux. Ext3 en realidad es ext2 con un fichero adicional de registro, es decir, es una capa adicionalsobre ext2 que mantiene un fichero de registro log de transacciones. Debido a que est integrado enel ext2 puede que no explote todas las posibilidades de los sistemas de journaling puros, pero seest trabajando es este rea para mejorarlo.

Ventajas de utilizar ext3


Podemos decir que hay cuatro razones principales para migrar de un sistema de ficherosext2 a ext3: disponibilidad, integridad de los datos, velocidad y fcil migracin.
y Disponibilidad

Despus de un apagado incorrecto de la mquina los sistemas de ficheros ext2 no pueden sermontados de nuevo hasta que su consistencia haya sido chequeada por el programa "fsck". Eltiempo que tarda el programa "fsck" est determinado por el tamao del sistema de ficheros, hoy enda muy grandes (decenas de gigabytes), por lo que se tarda mucho tiempo en recuperar el sistemade ficheros. Adems cuantos ms ficheros tengamos en el sistema de ficheros ms se tardar enchequear su consistencia. Chequear sistemas de ficheros de decenas de gigabytes puede llevarvarios minutos, esto limita seriamente la disponibilidad. En contraste el ext3 no requiere un chequeo del disco, incluso despus de un apagadoincorrecto del sistema. Esto es debido a que los datos son escritos al disco de tal manera que elsistema de ficheros siempre esta consistente. Slo se realizar un "fsck" en el caso de falloshardware raramente dados (por ejemplo fallos fsicos del disco duro), y en el caso de que el sistemade ficheros est configurado para que se chequee completamente de forma automtica cada ciertoperiodo de tiempo o cada cierto nmero de montajes para prevenir posibles fallos. Adems con ext3se utiliza (si fuese necesario) exactamente el mismo "fsck" que se utiliza con ext2.El tiempo necesario para recuperar un sistema de ficheros ext3 despus de un apagadoincorrecto no depende del tamao del sistema de ficheros ni del nmero de archivos que tenga, slodepende del tamao del "journal" (espacio usado para almacenar la informacin transaccional)utilizado para mantener la consistencia. Con el tamao que se utiliza por defecto para el "journal"(tamao fijado automticamente por la utilizad de creacin del sistema de ficheros "mkfs") se tardaalrededor de un segundo en restaurar un sistema de ficheros inconsistente (dependiendo de lavelocidad del hardware).
l

Integridad de los datos

Usando ext3 el sistema de ficheros puede proporcionar garantas ms fuertes respecto a laintegridad de los datos en el caso de un apagado incorrecto del sistema. Pudiendo escoger el tipo ynivel de proteccin que se le da a los datos. Se puede escoger mantener la consistencia de los datospero permitir daos en los datos dentro

del sistema de ficheros en el caso de un apagado incorrecto,esto puede dar un pequeo aumento de la velocidad bajo algunas pero no todas las circunstancias. Alternativamente, se puede escoger asegurar que los datos son consistentes con el estado delsistema de ficheros, esto significa que nunca habr "datos basura" de un fichero recientementeescrito despus de una cada del sistema. Esta ltima opcin es la utilizada por defecto. EL ext3 escribe tres tipos de bloques de datos en el registro: 1. Meta-informacin: Contiene el bloque de meta-informacin que est siendo actualizadopor la transaccin. Cada cambio en el sistema de ficheros, por pequeo que sea, es escritoen el registro. Sin embargo es relativamente barato ya que varias operaciones de E/Spueden ser agrupadas en conjuntos ms grandes y pueden ser escritas directamente desdeel sistema page-cache. 2. Bloques descriptores: Estos bloques describen a otros bloques del registro para que luegopuedan ser copiados al sistema principal. Los cambios en estos bloques son siempreescritos antes que los de metainformacin. 3. Bloques cabeceras: Describen la cabecera y cola del registro ms un nmero de secuenciapara garantizar el orden de escritura durante la recuperacin del sistema de ficheros. Con ext3 se mantiene la consistencia tanto en la meta-informacin (i-nodos o metadatos)como en los datos de los ficheros (datos propiamente dichos). A diferencia de los dems sistemas dejournaling mencionados anteriormente, la consistencia de los datos tambin est asegurada.
y Velocidad

A pesar de escribir a veces algn dato ms de una vez, ext3 es en algunos casos incluso msrpido que el ext2 por que el journaling del ext3 optimiza el movimiento de cabeza del disco duro.Con ext3 se puede escoger entre tres modos de journaling diferentes para optimizar la velocidad,equilibrando esta con una mayor o menor integridad de los datos dependiendo de las necesidades. Los diferentes modos son: o data=writeback: limita la garanta de integridad de los datos, permitiendo a los antiguosdatos aparecer en ficheros despus de una cada, para un posible pequeo incremento dela velocidad en algunas circunstancias. Este es el modo jouraling por defecto en muchosotros sistemas de ficheros journaling, esencialmente proporciona las garantas mslimitadas de integridad en los datos y simplemente evita el chequeo en el reinicio delsistema. o data=ordered (modo por defecto): garantiza que los datos son consistentes con el sistemade ficheros. Los ficheros escritos recientemente nunca aparecern con contenidos basuradespus de una cada. o data=journal: requiere un "journal" grande para una velocidad razonable en la mayorade los casos y por lo tanto tarda ms tiempo recuperar el sistema en el caso de un apagadoincorrecto, pero es algunas veces es ms rpido para algunas operaciones ya que funcionamuy bien si se escriben muchos datos al mismo tiempo (por ejemplo en los spools decorreo o servidores

NFS sincronizados). No obstante, utilizar el modo "journal" para unuso normal resulta con frecuencia un poco ms lento. El modo por defecto (ordered) es el recomendable, pudiendo cambiar el modo en el montajedel sistema de ficheros.
Fcil migracin

y y

Las particiones ext3 no tienen una estructura de ficheros diferentes a los de ext2, por lo queno slo se puede pasar de ext2 a ext3, sino que lo opuesto tambin funciona, esto es til sobre todosi en algn caso el registro se corrompe accidentalmente, por ejemplo debido a sectores malos deldisco. Es decir, existe total compatibilidad entre ext2 y ext3, se puede convertir un sistema deficheros ext2 a ext3 y viceversa fcilmente, adems de poder montar un sistema de ficheros ext3como ext2(ya que la estructura de formateo del disco es la misma). Es posible por tanto cambiar fcilmente de ext2 a ext3 y beneficiarse de las ventajas de unsistema de ficheros journaling robusto sin necesidad de reformatear el disco. Podemos pasar de unsistema a otro sin necesidad de tener que realizar un tedioso proceso de backup, formateo yrestauracin de los datos, con la posibilidad de que se produzca algn error (con los otros sistemasde ficheros con journaling es necesario formatear la particin con su propia utilidad de formateo).El programa "tune2fs" puede aadir el journal a un sistema de ficheros ext2 ya existente. Si elsistema de ficheros estaba ya montado cuando se migraba, el journal ser visible como un fichero"journal" en el directorio raz del sistema de ficheros. Si no estaba montado el journal estar ocultoy no aparecer en el sistema de ficheros (as ocurre si se crea durante la instalacin del sistema). El sistema de ficheros ext3 se ha beneficiado de la prolongada historia de mejoras ycorreccin de errores que tiene el ext2 (del cual aparte su cdigo fuente) y continuar siendo as.Esto significa que ext3 comparte la robustez del ext2, pero tambin las nuevas caractersticas que sehan aadido al ext2. Resumiendo, ext3 es totalmente compatible en ambos sentidos con ext2. Se puede migrar unsistema ex2 a ext3 muy fcilmente, se puede montar un sistema ext3 como ext2 sin modificar nadadel sistema de ficheros journal y tambin eliminar el journal para volver al sistema ext2 anterior. El ext3 como el ext2 tiene mltiples desarrolladores y organizaciones involucradas en sudesarrollo, por lo que su evolucin no depende de una sola persona o empresa. Ext3 proporciona y hace uso de una capa genrica de journaling (Journaling BlockDevice, JBD) la cual puede ser usada en otros contextos. El ext3 no slo puede hacer"journal" un sistema de ficheros estndar, tambin otros dispositivos soportados porLinux (NVRAM, disk-on-chip, USB flash memory drives, etc.) pueden ser utilizados conext3. Ext3 tiene una amplia compatibilidad con todas las plataformas, trabaja tanto enarquitecturas de 32 como de 64 bits, y tanto en sistemas little-endian como bigendian.Algunos sistemas operativos (por ejemplo algunos clones y variantes de UNIX y BeOS)pueden acceder a ficheros en un sistema de ficheros ext2, estos sistemas tambin lopueden hacer en un sistema de ficheros ext3. Ext3 no requiere profundos cambios en el corazn del ncleo y no requiere tampoconuevas llamadas al sistema. Ext3 est integrado actualmente en los

kernelsresponsabilidad de Alan Cox y Linus Torvalds lo incluir muy pronto en su kernel oficial.Seguramente el ext3 ser el sistema de ficheros estndar de Linux en un futuro prximo. Ext3 reserva uno de los i-nodos especiales de ext2 para el registro de journal, pero losdatos del mismo pueden estar en cualquier conjunto de bloques, y en cualquier sistema deficheros. Inclusive se puede compartir el registro de journal entre sistemas distintos. El programa de recuperacin de sistemas de ficheros e2fsck tiene un muy reconocidoxito en la recuperacin de datos cuando el software o el hardware falla y corrompe unsistema de ficheros. Ext3 usa el mismo cdigo que el e2fsck para salvar el sistema deficheros despus de una posible corrupcin, y por consiguiente tiene la misma robustezque el ext2 contra posibles prdidas catastrficas de datos cuando haya fallos decorrupcin en los mismos.

Todas estas peculiaridades del ext3 son totalmente transparentes al usuario el cual trabajarigual que lo haca con ext2, incluido el montaje y utilizacin de otros sistemas de ficheros (NFS,dispositivos de almacenamiento externos, etc.).

El sistema de archivos ext2


El sistema de ficheros ext2,del ingls Second Extended File System, es el predeterminado para versiones anteriores de Linux. Fue desarrollado como una versin mejorada del sistema de ficheros ext. Tiene las mismas caractersticas que ext3, con la nica diferencia de que ext2 no provee las caractersticas de journaling. Cuando se trata de un disco duro pequeo (de unos cuantos Gigabytes), es recomendable utilizar ext2 en lugar de ext3 como sistema de archivos, ya que la caracterstica de journaling requiere que se aparte una porcin del disco para el journal, sin embargo dicha caracterstica es de utilidad limitada en sistemas de ficheros pequeos. La razn consiste en que durante el reinicio despus de un apagado no limpio, ext2 requiere que el programa e2fsck corra una prueba de consistencia y repare cualquier inconsistencia antes de que el sistema de archivos pueda ser montado, lo cual demora unos cuantos minutos en el caso de sistemas de archivos pequeos pero en el caso de sistemas de archivos con varios Gigabytes puede llegar a demorar horas. Dentro de los sistemas de archivos nativos de Linux, ext2 es el ms porttil, debido a que es en el que ms se facilita transferir informacin desde y hacia otros sistemasde archivos. El ext2 es un sistema de archivos para el kernel Linux. Fue diseado originalmente por Rmy Card. Es totalmente compatible con su sucesor el sistema de archivos ext3. Durante muchos aos ext2 fue el sistema de archivos por defecto de las distribuciones de LinuxRed Hat Linux, Fedora Core y Debian hasta ser reemplazado por su sucesor ext3. El sistema de archivos tiene un tipo de tabla FAT de tamao fijo, donde se almacenan los i-nodos. Los i-nodos son una versin muy mejorada de FAT, donde un puntero i-nodo almacena informacin del archivo (ruta o path, tamao, ubicacin fsica). En cuanto a la ubicacin, es una referencia a un sector del disco donde estn todos y cada una de las referencias a los bloques del archivo fragmentado. Estos bloques son de tamao

especificable cuando se crea el sistema de archivos, desde los 512 bytes hasta los 4 kB, lo cual asegura un buen aprovechamiento del espacio libre con archivos pequeos. Los lmites son un mximo de 2 terabytes de archivo, y de 4 para la particin.

Estructuras de datos ext2


El espacio en ext2 est dividido en bloques, y los bloques organizados en grupos, anlogamente los grupos de cilindro del sistema de archivos Unix. Esto se hace para reducir la fragmentacin externa y reducir al mnimo el nmero de bsquedas de disco cuando se lee una gran cantidad de datos consecutivos. Cada bloque contiene un superbloque grupo, el grupo de bloques de mapa de bits, mapa de bits i-nodo, seguidos por los bloques de datos reales. El superbloque contiene informacin importante que es crucial para el arranque del sistema operativo, con lo que las copias se realizan en cada bloque de grupo de cada bloque en el sistema de archivos. Sin embargo, slo la primera copia de la misma, que se encuentra en el primer bloque del sistema de archivos, se utiliza en el arranque. El grupo descriptor almacena el valor del bloque de mapa de bits, mapa de bits inodo y el comienzo de la tabla de i-nodos por cada bloque de grupo y stos, a su vez, se almacena en un grupo descriptor tabla. Dentro de cada inodo existe la siguiente informacin: y Nmero de inodo y Tipo de fichero y Propietario de dicho fichero y Permisos del fichero y Fecha de creacin del mismo

Lmites del sistema de archivos


La razn de algunos lmites en el sistema de archivos ext2 son el formato de archivo de los datos y el kernel del sistema operativo. Mayormente estos factores se determinar una vez que cuando el sistema de archivos es creado. El tamao de bloque de 8 KB slo esposible en arquitectura alfa por defecto. Tambin hay muchos programas que no puede manejar archivos de ms de 2 GB. El lmite de subnivel de directorios es de unos 32768. Si el nmero de archivos en un directorio superior a 10000 a 15000 archivos, el usuario normalmente ser advertido de que las operaciones pueden durar mucho tiempo. El lmite terico a la cantidad de archivos en un directorio es de 1,3 1020, aunque este no es relevante en situaciones prcticas.

Unix File System


Unix File System (UFS) es un sistema de archivos utilizado por varios sistemas operativos UNIX y POSIX. Es un derivado del Berkeley Fast File System (FFS), el cual es desarrollado desde FS UNIX (este ltimo desarrollado en los Laboratorios Bell). Casi todos los derivativos de BSD incluyendo a FreeBSD, NetBSD, OpenBSD, NeXTStep, y Solaris utilizan una variante de UFS. En Mac OS X est disponible como una alternativa al HFS. En Linux, existe soporte parcial al sistema de archivos UFS, de solo lectura, y utiliza sistema de archivos nativo de tipo ext3, con un diseo inspirado en UFS.

Diseo
Un sistema de archivos UFS se compone de las siguientes partes: y unos pocos bloques al inicio de la particin reservados para bootstrap (el cual debe ser inicializado separadamente del sistema de archivos). y un superbloque que contiene un nmero mgico (del ingls magicnumber) identificando esto como un UFS, y algunos otros nmeros vitales describiendo la geometra y parmetros de puesta a punto del comportamiento. y una coleccin de grupos de cilindros. Cada grupo de cilindros tiene estos componentes: o un respaldo del superbloque. o una cabecera de cilindro, con estadsticas, lista de espacio libre, etc. acerca de este bloque de cilindros, similar a los que se encuentran en el superbloque. o un nmero de inodos, cada cual conteniendo los atributos del archivo. o un nmero de bloques de datos. Los inodos son numerados secuencialmente. Los primeros inodos estn reservados por razones histricas, seguidos por los inodos del directorio raz. Los archivos de directorio contienen slo la lista de archivos en el directorio y el inodo asociado para cada archivo. Todos los metadatos (metadata) son mantenidos en el inodo.

Historia y evolucin
Las ms tempranas versiones de UNIX utilizaban un sistema de archivos al que se referan simplemente como FS. FS slo inclua el bloque de booteo, superbloque, un puado de inodos y los bloques de datos. Esto funcionaba bien para los pequeos discos que los UNIX de aquel tiempo estaban diseados, pero la tecnologa avanz y los discos comenzaron a crecer, moviendo la cabeza hacia atrs y adelante entre el grupo de inodos y los bloques de datos a los que ellos se referan, causando thrash (basura). BSD optimiz esto en el FFS invirtiendo los grupos de cilindros, dividiendo el disco en grupos ms pequeos, cada uno con su propio grupo de inodos y bloques de datos. Lo que realiza el BSD FFS es tratar de localizar los bloques de datos asociados y los metadatos en el mismo grupo de cilindros, e idealmente, todos el contenido de un directorio (datos y metadatos para todo el archivo) en el mismo o cercano por el grupo de cilindros, esto logrando reducir la fragmentacin causada por la dispersin del contenido de los directorios por todo el disco.

Algunos de los parmetros de rendimiento en el superbloque incluyen un nmero de pistas y sectores, velocidad de rotacin del disco, y alineamiento de los sectores entre pistas. En un sistema completamente optimizado, la cabeza puede ser movida entre pistas cercanas para leer los sectores fragmentados de alternarse las pistas mientras espera que el disco gire. Mientras los discos se hicieron grandes, y ms grandes, las optimizaciones del sector de nivel pasaron a ser obsoletas (especialmente con discos que usaban numeracin de lineal y sectores variables por pista). Con discos ms grandes, y archivos ms grandes, las lecturas fragmentadas se transformaron en un problema ms grande. Para combatir esto, BSD increment el tamao de los bloques del sistema de archivos de un sector a 8k. Esto tuvo efectos varios. La oportunidad de que los sectores de archivos estuvieran contiguos es mucho ms alta. La cantidad de gastos indirectos para enumerar los bloques del archivo se reduce. El nmero de bloques representable en el ancho de un bit fijo fue incrementado (permitiendo discos ms grandes). Con bloques de tamao ms grande, los discos con muchos archivos pequeos podran perder mucho espacio, as que BSD aadi "block levelfragmentation", donde el ltimo bloque parcial de datos de muchos archivos podra ser guardado en un solo bloque de "fragmento" en vez de en muchos bloques vacos.

Implementaciones
La mayora de los proveedores de sistemas POSIX adapt UFS a sus propias necesidades, aadiendo extensiones propietarias que podran no ser reconocidas por versiones de UNIX de otros desarrolladores. Sorprendentemente, muchos han continuado usando el tamao original de bloques y campos de datos con de la misma amplitud que el UFS original, as que algn grado de compatibilidad (lectura) se mantiene entre plataformas. FreeBSD 5.0 introdujo UFS2, el cual aade soporte para volmenes sobre un 1TB (TeraByte) y para imgenes del sistema de archivos. Ha sido portado a NetBSD. El sistema de archivos ext2 de Linux fue escrito desde cero (scratch) basado en conceptos de UFS. ext2 Permite configurar tamaos de bloques en el momento de la creacin del sistema de archivos para soportar discos ms grandes. Adems tiene campos de datos de 64 bits en el inodo para aceptar archivos ms grandes. Ext3 aade journaling. ReiserFS fue el primer sistema de archivos con journaling incluido en el ncleo Linux y es ms rpido trabajando con archivos pequeos. Linux incluye una implementacin de UFS para compatibilidad binaria al nivel de lectura con otros UNIX, pero como no existe una implementacin estandar para las extensiones de los proveedores de terceras partes, Linux slo tiene actualmente soporte experimental de escritura para UFS. Desde Solaris 7, Sun Microsystems incluy UFS Logging en el Entorno Operativo Solaris, el cual brinda sistemas de archivos con soporte de Journaling a UFS. El UFS de Solaris tambin tiene extensiones para archivos grandes, discos grandes y otras caractersticas.

Conclusiones.
Por todas las razones que hemos visto no slo se puede confiar en el sistema de ficheros

ext3, sino que adems es recomendable utilizarlo ya que Red Hat lo ha incluido como sistema de ficheros estndar de su distribucin habiendo realizado todas las pruebas necesarias en mltiples configuraciones diferentes para ver su robustez, con un resultado positivo en todas ellas. Incluso desde hace ms de ocho aos el ext3 est funcionando en grandes servidores (por ejemplo los servidores de rpmfind.net). Actualmente Linux es conocido como un sistema operativo muy estable, la problemtica se genera cuando el hardware no es tan fiables como se deseara o la persona que lo utiliza no lo hace correctamente, ya que en la mayora de los casos, cuando un sistema falla normalmente es debido a un fallo hardware o a un fallo humano. A veces se producen apagados incorrectos de las mquinas, y por tanto es necesario esperar a que se realice un chequeo y recuperacin del disco durante varios (a veces muchos) minutos para poder volver a utilizarla, y adems se corre el peligro de una prdida importante de informacin. Ya se han realizado las primeras pruebas de una instalacin de Linux Mobile System en un USB Flash Memory Drive con sistema de ficheros ext3 con un resultado totalmente satisfactorio. Siendo totalmente transparente el cambio de sistema de ficheros a ext3 para el usuario. Por lo que en prximas versiones de Linux Mobile System se incluir el sistema de ficheros transaccional ext3 como sistema de ficheros por defecto.

Fuentes de informacin.
Este documento esta basado en la informacin recopilada de las siguientes fuentes:
y y y y y y y y "Journal File System in Linux". Ricardo Galli. 2001. "Journaling the Linux ext2 Filesystem". Sthephen C. Tweedie. 1998. "Ext3, Journaling Filesystem". Stephen C. Tweedie. 2000. "Whitepaper: Red Hat's New Journaling File System: ext3". Michael K. Johnson. Red Hat Inc. 2001. "Red Hat Linux/x86 7.2 Release Notes". Red Hat Inc. 2001. "Advanced filesystemimplementor's guide". (IBM DeveloperWorks). Daniel Robbins. 2001. "Journaling File Systems". (Linux Magazine). Steve Best. 2002. "Linux Filesystems". William von Hagen. 2002.

http://linuxmobile.sourceforge.net/files/LMS_ext3.pdf http://biblioteca.utec.edu.sv/siab/virtual/articulos_soft_libre/Sistemas_de_ficheros_EXT2,_HFS+_ y_NTFS.pdf http://es.wikipedia.org/wiki/Ext2 http://es.wikipedia.org/wiki/Ext3 http://biblioteca.universia.net/html_bura/ficha/params/title/the-viva-filesystem/id/46480812.html

Vous aimerez peut-être aussi