ext3

sistema de Archivos utilizado en distribuciones Linux

ext3 (third extended filesystem o "tercer sistema de archivos extendido") es un sistema de archivos con registro por diario (journaling). Fue el sistema de archivos más usado en distribuciones Linux, aunque en la actualidad ha sido remplazado por su sucesor, ext4.

ext3
Desarrollador Stephen Tweedie
Nombre completo Third extended file system
Sistemas operativos compatibles Linux, BSD, Windows (a través de IFS)
Introducción Noviembre de 2001 (Linux 2.4.15)
Identificador de la partición 0x83 (MBR)
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT)
Estructuras
Contenido del directorio Tabla, Árbol HTree
Localización de archivo bitmap (espacio libre), tabla (metadatos)
Bloques malos Tabla
Límites
Tamaño máximo del nombre de archivo 255 bytes
Características
Fechas registradas modification (mtime), attribute modification (ctime), access (atime)
Rango de fecha 14 de diciembre de 1901-18 de enero de 2038
Bifurcaciones
Atributos No-atime, append-only, synchronous-write, no-dump, h-tree (directory), immutable, journal, secure-delete, top (directorio), allow-undelete
Permisos de acceso a archivos Permisos Unix, ACLs y atributos de seguridad arbitrarios (Linux 2.6 y posteriores)
Compresión transparente No
Cifrado transparente No (establecido a nivel de bloque de dispositivos)

La principal diferencia con ext2 es el registro por diario. Un sistema de archivos ext3 puede ser montado y usado como un sistema de archivos ext2. Otra diferencia importante es que ext3 utiliza una variante de árbol b, el árbol HTree e incorpora el asignador de bloques de disco Orlov.

Ventajas editar

Aunque su velocidad y escalabilidad es menor que sus competidores, como JFS, ReiserFS o XFS, tiene la ventaja de permitir actualizar de ext2 a ext3 sin perder los datos almacenados ni tener que formatear el disco. Tiene un menor consumo de CPU y está considerado más seguro que otros sistemas de ficheros en Linux dada su relativa sencillez y su mayor tiempo en uso.

El sistema de archivo ext3 agrega a ext2 lo siguiente:

Límites de tamaño editar

Ext3 tiene dos límites de tamaño distintos. Uno para archivos y otro para el tamaño del sistema de archivos entero. El límite del tamaño del sistema de archivos es de 232 bloques

Tamaño del bloque Tamaño máximo de los archivos Tamaño máximo del sistema de ficheros
1 KiB 16 GiB 2 TiB
2 KiB 256 GiB 8 TiB
4 KiB 2 TiB 16 TiB
8 KiB[límites 1] 2 TiB 32 TiB
  1. 8 KiB el tamaño del bloque solo está disponible en arquitecturas que permitan 8 KiB, como Alpha.

Niveles del journaling editar

Hay tres niveles posibles de journaling (registro por diario)

Diario (riesgo bajo)
Los metadatos y los ficheros de contenido son copiados al diario antes de ser llevados al sistema de archivos principal. Como el diario está en el disco continuamente puede mejorar el rendimiento en ciertas ocasiones. En otras ocasiones el rendimiento es peor porque los datos deben ser escritos dos veces, una al diario y otra a la parte principal del sistema de archivos.
Pedido (riesgo medio)
Solo los metadatos son registrados en el diario, los contenidos no, pero está asegurado que el contenido del archivo es escrito en el disco antes de que el metadato asociado se marque como transcrito en el diario. Es el sistema por defecto en la mayoría de las distribuciones de Linux. Si hay un bajón de tensión o kernel Panic cuando el fichero se está escribiendo o está empezando, el diario indicará que el nuevo archivo o el intento no ha sido pasado, por lo que será purgado por el proceso de limpiado.
Reescritura (riesgo alto)
Solo los metadatos son registrados en el diario, el contenido de los archivos no. Los contenidos pueden estar escritos antes o después de que el diario se actualice. Como resultado, los archivos modificados correctamente antes de una ruptura pueden volverse corruptos. Por ejemplo, un archivo pendiente de ser marcado en el diario como mayor de lo que actualmente es, convirtiendo en basura al final de la comprobación. Las versiones antiguas de los archivos pueden aparecer inesperadamente después de una recuperación de diario. La carencia de sincronización entre los datos y el diario es rápidamente subsanada en muchos casos. JFS usa este nivel de journaling, pero se asegura de que cualquier basura es borrada al reiniciar

Desventajas editar

Funcionalidad editar

Como ext3 está hecho para ser compatible con ext2, la mayoría de las estructuras del sistema de archivos son similares a las del ext2. Por ello, ext3 carece de muchas características de los diseños más recientes como las extensiones, la localización dinámica de los inodos, y la sublocalización de los bloques. Hay un límite de 31998 subdirectorios por cada directorio, que se derivan de su límite de 32000 enlaces por inodo. Ext3, como la mayoría de los sistemas de archivos actuales de Linux, no puede ser chequeado por el fsck mientras el sistema de archivos está montado para la escritura. Si se intenta chequear un sistema de ficheros que está montado puede detectar falsos errores donde los datos no han sido volcados al disco todavía, y corromper el sistema de archivos al intentar arreglar esos errores.

Fragmentación editar

No hay herramienta de desfragmentación en línea para ext3 que funcione en nivel del sistema de archivos. Existe un desfragmentador offline para ext2, e2defrag, pero requiere que el sistema de archivos ext3 sea reconvertido a ext2 antes de iniciarse. Además, dependiendo de los bits encendidos en el sistema, e2defrag puede destruir datos. No sabe cómo tratar la mayoría de las nuevas características de ext3. Hay herramientas de usuario para desfragmentar como Shake y Defrag. Shake trabaja localizando para todo el archivo como una operación, lo que generalmente causa que el localizador encuentre espacio continuo en el disco. También intenta escribir archivos usados al mismo tiempo que otros. Defrag trabaja copiando cada archivo sobre sí mismo. De todas formas solo funcionan si el sistema de archivos esta razonablemente vacío. No existe una verdadera herramienta de desfragmentación para ext3. Como se viene diciendo, la guía de administración de Linux dice: "Los modernos sistemas de archivos de Linux mantienen la fragmentación al mínimo manteniendo los bloques de un archivo juntos, aunque no puedan ser guardados en sectores consecutivos. Algunos sistemas de archivos, como ext3, localizan efectivamente los bloques libres más cercanos a otros en el archivo. Por ello no es necesario preocuparse por la fragmentación en un sistema de Linux" Mientras ext3 es más resistente a la fragmentación que Fat, nada evita que los sistemas ext3 se puedan fragmentar con el tiempo. Consecuentemente el sucesor de ext3, ext4, incluye una utilidad de desfragmentación y soporte para extensiones (regiones contiguas del fichero).

Compresión editar

El soporte para la compresión está disponible como un parche no oficial para ext3. Este parche es un porte directo de e2compr pero necesita un mayor desarrollo ya que todavía no implementa el journaling. El actual parche es llamado e3compr y puede ser bajado aquí: [1]

No hay comprobación en el diario editar

Ext3 no hace la suma de verificación cuando está escribiendo en el diario. Si barrier = 1 no está habilitado como una opción de montaje, y si el hardware está escribiendo fuera de orden, se corre el riesgo de una corrupción muy amplia del sistema de archivos en caso de que haya un fallo repentino del hardware.

Ext3 en Windows editar

Aunque Windows no tiene un soporte nativo para ext2 ni ext3, pueden instalarse drivers para poder acceder a ese tipo de sistemas de archivos. Se puede instalar en todos los sistemas de windows con arquitectura x86.

Este driver hace que se puedan montar las particiones sin tener que usar programas aparte. Nos muestra el sistema de archivos como si fuese una partición más dentro de windows.

Para bajarse el driver: [2].

Otra opción es usar un programa para poder ver y copiar los archivos que hay en una partición con ext3 y ext2 pero no monta la partición. El programa es Explore2fs y nos permite:

  • Lectura ext2
  • Lectura ext3
  • Arrastrar y soltar
  • Soporte de disquetes de 1440 KiB
  • LS120 Floppy Disk Support*
  • Soporte de discos ZIP & Jazz
  • Soporte de discos USB & CF
  • Soporte de CDROM
  • Exporta archivo como binario
  • Exporta archivo como texto
  • Exportar directorio
  • Ver y ejecutar archivos
  • Soporte para discos duros grandes
  • Soporte para archivos grandes
  • LVM2, detección de ReiserFS
  • Soporte Unicode UTF8

Está disponible para las versiones de windows:

   * Windows 95
   * Windows 98
   * Windows 98SE
   * Windows ME
   * Windows NT 4.0 
   * Windows 2000
   * Windows XP
   * Windows XP SP2
   * Windows Server 2003 

Página principal del programa

Opciones de montaje editar

Por defecto editar

Opción Características
data=ordered Todo los datos son forzados fuera del sistema de archivos principal antes de enlazarlos con los metadatos del journal
commit=nrsec Se le puede decir a ext3 que sincronize todos los datos y metadatos cada "nrsec" segundos. El valor por defecto son 5 segundos. Esto quiere decir que si hay una caída de energía se perderán como mucho 5 segundos de trabajo (el sistema de ficheros no se verá dañado gracias al journaling). Este valor por defecto (o cualquiera inferior) repercutirá en el rendimiento, pero es adecuado para proteger los datos. Mientras mayor sea el número mejor será el rendimiento del sistema. Ponerlo a 0 tendrá el mismo efecto que el valor por defecto.
orlov Esta opción activa el nuevo sistema Orlov de asignación de bloques de disco duro.
bsddf Hace que el comando "df" funcione como en sistemas BSD.
errors=remount-ro Vuelve a montar el sistema de ficheros en modo de sólo lectura tras un error.
data_err=ignore Tan sólo muestra un mensaje de error si ha ocurrido un error en el buffer de un fichero en modo "ordenado"
Les da a los objetos el mismo ID de grupo que a su creador.
bh/nobh Ext3 relaciona los buffer heads a páginas de datos y a
  • a) Información del mapeo de la caché.
  • b) Linka páginas en transacciones para asegurar el orden.
    • La opción "bh" fuerza al sistema a usar buffer heads.
    • La opción "nobh" trata de evitar asociar buffer heads (disponible sólo para el modo "writeback").

No por defecto editar

Opción -
journal=update Actualiza el journal del sistema de ficheros de ext3 al formato actual.
journal=inum Cuando ya existe un journal, esta opción es ignorada. En cualquier otro caso esta opción especifica el número de inodos que representarán el archivo journal del sistema de ficheros ext3
journal_dev=devnum Cuando cambian los valores mínimos y/o máximos del journal de dispositivos externos, esta opción le permite al usuario especificar la nueva localización del journal. El dispositivo journal es identificado por sus nuevos números mínimos y máximos codificados en devnum.
noload No carga el journal al montar la unidad.
data=journal Todos los datos son introducidos en el journal antes de empezar a escribir en el sistema de ficheros principal.
data=writeback No se guarda el orden de los datos, los datos pueden ser escritos en el sistema de ficheros principal después de que sus metadatos hayan sido introducidos en el journal.
barrier=1 Esta opción habilita/deshabilita las barreras. Barrier=0 lo deshabilita y Barrier=1 lo habilita. Si Barrier=0 y el hardware tiene problemas escribiendo en la caché se corre el riesgo de que el sistema de ficheros se corrompa.
oldalloc Esta opción deshabilita el sistema Orlovde asignación de bloques de disco duro.
user_xattr Habilita los Atributos Extendidos de Usuario. También se tendrá que tener habilitada la opción de tener atributos extendidos en el kernel (CONFIG_EXT3_FS_XATTR).
nouser_xattr. Deshabilita los Atributos Extendidos de Usuario.
acl Habilita el soporte a la Lista de Acceso de Control POSIX. También se tendrá que tener habilitado el soporte ACL en el kernel (CONFIG_EXT3_FS_POSIX_ACL)
noacl Deshabilita el soporte a la Lista de Acceso de Control POSIX.
reservation
noreservation
minixdf Hace que "df" actúe como en sistemas Minix.
check=none/nonecheck No hace comprobaciones extra de los bitmaps al montar la unidad.
debug Información extra sobre la depuración es enviada al registro del sistema (syslog).
errors=continue Continua trabajando si se ha producido un error en el sistema de ficheros.
errors=panic Para el ordenador si ocurre un error.
data_err=abort Aborta el journal si ocurre un error en el buffer de un fichero en modo "ordenado".
grpid/bsdgroups Le da a los objetos la misma ID de grupo que a su creador.
resgid=n El ID de grupo que deberán usar los bloques reservados.
resuid=n El ID del usuario que deberán usar los bloques reservados.
sb=n Usa superbloques alternativos en la posición "n".
quota
noquota
grquota
usrquota

Ext4 editar

Existe una versión más reciente de este sistema de archivos llamada Ext4 que implementa un gran cantidad de nuevas características

Para hacerse una mejor idea de las diferencias con el sistema de archivos ext4 mirar la siguiente tabla

 
Tabla comparativa entre ext3 y ext4

Véase también editar

Enlaces externos editar