Académique Documents
Professionnel Documents
Culture Documents
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.
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.
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
para ficheros grandes y con JFS se facilita mucho lamigracin de sistemas con OS/2 Warp y AIX a Linux.
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.
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
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.).
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.
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.