De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

ext3 , o tercer sistema de archivos extendido , es un sistema de archivos registrado que es comúnmente utilizado por el kernel de Linux . Solía ​​ser el sistema de archivos predeterminado para muchas distribuciones populares de Linux . Stephen Tweedie reveló por primera vez que estaba trabajando en extender ext2 en Journaling the Linux ext2fs Filesystem en un artículo de 1998, y más tarde en una publicación de la lista de correo del kernel de febrero de 1999. El sistema de archivos se fusionó con el núcleo principal de Linux en noviembre de 2001 desde la versión 2.4.15 en adelante. [3] [4] [5] Su principal ventaja sobre ext2 es el diario, que mejora la confiabilidad y elimina la necesidad de verificar el sistema de archivos después de un apagado incorrecto. Su sucesor es ext4 . [6]

Ventajas [ editar ]

El rendimiento (velocidad) de ext3 es menos atractivo que los sistemas de archivos Linux de la competencia, como ext4, JFS , ReiserFS y XFS , pero ext3 tiene una ventaja significativa porque permite actualizaciones in situ desde ext2 sin tener que realizar copias de seguridad y restaurar datos . Los puntos de referencia sugieren que ext3 también usa menos potencia de CPU que ReiserFS y XFS. [7] [8] También se considera más seguro que los otros sistemas de archivos de Linux, debido a su relativa simplicidad y una base de pruebas más amplia. [9] [10]

ext3 agrega las siguientes características a ext2:

  • Un diario
  • Crecimiento del sistema de archivos en línea
  • Indexación HTree para directorios más grandes [11]

Sin estas características, cualquier sistema de archivos ext3 también es un sistema de archivos ext2 válido. Esta situación ha permitido que utilidades de mantenimiento del sistema de archivos maduras y bien probadas para mantener y reparar sistemas de archivos ext2 también se utilicen con ext3 sin cambios importantes. Los sistemas de archivos ext2 y ext3 comparten el mismo conjunto estándar de utilidades, e2fsprogs , que incluye una herramienta fsck . La estrecha relación también hace que la conversión entre los dos sistemas de archivos (tanto hacia adelante a ext3 como hacia atrás a ext2) sea sencilla.

ext3 carece de funciones de sistema de archivos "modernas", como la asignación dinámica de inodos y las extensiones . Esta situación a veces puede ser una desventaja, pero para la recuperabilidad, es una ventaja significativa. Los metadatos del sistema de archivos están todos en ubicaciones fijas y bien conocidas, y las estructuras de datos tienen cierta redundancia. En caso de corrupción significativa de datos, ext2 o ext3 pueden recuperarse, mientras que un sistema de archivos basado en árbol puede no serlo.

Límites de tamaño [ editar ]

El número máximo de bloques para ext3 es 2 32 . El tamaño de un bloque puede variar, afectando el número máximo de archivos y el tamaño máximo del sistema de archivos: [12]

  1. ^ En Linux, el tamaño de bloque de 8 KiB solo está disponible en arquitecturas que permiten páginas de 8 KiB, como Alpha .

Niveles de diario [ editar ]

Hay tres niveles de registro en diario disponibles en la implementación de Linux de ext3:

Diario (riesgo más bajo)
Tanto los metadatos como el contenido del archivo se escriben en el diario antes de comprometerse con el sistema de archivos principal. Debido a que el diario es relativamente continuo en el disco, esto puede mejorar el rendimiento si el diario tiene suficiente espacio. En otros casos, el rendimiento empeora, porque los datos deben escribirse dos veces: una en el diario y otra en la parte principal del sistema de archivos. [13]
Ordenado (riesgo medio)
Solo se registran los metadatos; el contenido del archivo no, pero se garantiza que el contenido del archivo se escribe en el disco antes de que los metadatos asociados se marquen como confirmados en el diario. Este es el valor predeterminado en muchas distribuciones de Linux. Si hay un corte de energía o un pánico del kernel mientras se escribe o se agrega un archivo, el diario indicará que el nuevo archivo o los datos agregados no se han "confirmado", por lo que el proceso de limpieza lo eliminará. (Por lo tanto, los archivos nuevos y agregados tienen el mismo nivel de protección de integridad que el nivel "registrado"). Sin embargo, los archivos que se sobrescribenpuede estar dañado porque la versión original del archivo no está almacenada. Por lo tanto, es posible terminar con un archivo en un estado intermedio entre nuevo y antiguo, sin suficiente información para restaurar uno u otro (los nuevos datos nunca llegaron al disco por completo y los datos antiguos no se almacenan en ningún lugar). Peor aún, el estado intermedio podría intercalar datos antiguos y nuevos, porque el orden de escritura se deja en manos del hardware del disco. [13] [14]
Reescritura (mayor riesgo)
Solo se registran los metadatos; el contenido del archivo no lo es. El contenido puede escribirse antes o después de la actualización de la revista. Como resultado, los archivos modificados justo antes de un bloqueo pueden dañarse. Por ejemplo, un archivo al que se está agregando puede marcarse en el diario como más grande de lo que realmente es, lo que genera basura al final. Las versiones anteriores de archivos también pueden aparecer inesperadamente después de la recuperación de un diario. La falta de sincronización entre los datos y el diario es más rápida en muchos casos. JFS utiliza este nivel de registro en diario, pero garantiza que cualquier "basura" debida a datos no escritos se ponga a cero al reiniciar. XFS también utiliza esta forma de registro en diario.

En los tres modos, se asegura que la estructura interna del sistema de archivos sea consistente incluso después de un bloqueo. En cualquier caso, solo se verá afectado el contenido de datos de los archivos o directorios que se estaban modificando cuando el sistema se bloqueó; el resto estará intacto después de la recuperación.

Desventajas [ editar ]

Funcionalidad [ editar ]

Debido a que ext3 pretende ser compatible con versiones anteriores de ext2, muchas de las estructuras en disco son similares a las de ext2. En consecuencia, ext3 carece de características recientes, como extensiones , asignación dinámica de inodos y subasignación de bloques . [15] Un directorio puede tener como máximo 31998 subdirectorios , porque un inodo puede tener como máximo 32.000 enlaces (cada subdirectorio directo aumenta su contador de enlaces de inodo de carpeta principal en la referencia ".."). [dieciséis]

ext3, como la mayoría de los sistemas de archivos de Linux actuales, no debe ser fsck -ed mientras el sistema de archivos está montado para escritura. [6] Intentar verificar un sistema de archivos que ya está montado en modo lectura / escritura (muy probablemente) detectará inconsistencias en los metadatos del sistema de archivos. Cuando los metadatos del sistema de archivos están cambiando y fsck aplica cambios en un intento de llevar los metadatos "inconsistentes" a un estado "consistente", el intento de "arreglar" las inconsistencias corromperá el sistema de archivos.

Desfragmentación [ editar ]

No existe una herramienta de desfragmentación ext3 en línea que funcione a nivel del sistema de archivos. Hay una ext2 desfragmentador fuera de línea, e2defrag. Sin embargo, e2defragpuede destruir datos, dependiendo de los bits de funciones activados en el sistema de archivos; no sabe cómo manejar muchas de las funciones más nuevas de ext3. [17]

Hay herramientas de desfragmentación del espacio de usuario, como Shake [18] y defrag. [19] [20] Shake funciona asignando espacio para todo el archivo como una sola operación, lo que generalmente hará que el asignador encuentre espacio contiguo en el disco. Si hay archivos que se utilizan al mismo tiempo, Shake intentará escribirlos uno al lado del otro. Defrag funciona copiando cada archivo sobre sí mismo. Sin embargo, esta estrategia solo funciona si el sistema de archivos tiene suficiente espacio libre. No existe una verdadera herramienta de desfragmentación para ext3. [21]

Sin embargo, como dice la Guía del administrador del sistema Linux, "Los sistemas de archivos modernos de Linux mantienen la fragmentación al mínimo al mantener todos los bloques en un archivo juntos, incluso si no se pueden almacenar en sectores consecutivos. Algunos sistemas de archivos, como ext3, asigna efectivamente el bloque libre más cercano a otros bloques en un archivo. Por lo tanto, no es necesario preocuparse por la fragmentación en un sistema Linux ". [22]

Si bien ext3 es resistente a la fragmentación de archivos, ext3 puede fragmentarse con el tiempo o para patrones de uso específicos, como escribir archivos grandes lentamente. [23] [24] En consecuencia, ext4 (el sucesor de ext3) tiene una utilidad de desfragmentación del sistema de archivos en línea e4defrag [25] y actualmente admite extensiones (regiones de archivos contiguas).

Recuperar [ editar ]

ext3 no admite la recuperación de archivos eliminados. El controlador ext3 elimina archivos de forma activa limpiando los inodos de archivo [26] por motivos de seguridad en caso de colisión.

Todavía existen varias técnicas [27] y algún software gratuito [28] y propietario [29] para la recuperación de archivos eliminados o perdidos mediante el análisis de diario del sistema de archivos; sin embargo, no garantizan la recuperación de ningún archivo específico.

Compresión [ editar ]

e3compr [30] es un parche no oficial para ext3 que realiza una compresión transparente . Es un puerto directo de e2compr y aún necesita más desarrollo. Se compila y arranca bien con kernels ascendentes [ cita requerida ] , pero el registro en diario aún no está implementado.

Falta de compatibilidad con instantáneas [ editar ]

A diferencia de varios sistemas de archivos modernos, ext3 no tiene soporte nativo para instantáneas , la capacidad de capturar rápidamente el estado del sistema de archivos en momentos arbitrarios. En cambio, se basa en instantáneas de nivel de volumen y menos eficientes en espacio proporcionadas por el LVM de Linux . El sistema de archivos Next3 es una versión modificada de ext3 que ofrece soporte para instantáneas, pero conserva la compatibilidad con el formato ext3 en disco. [31]

Sin suma de verificación en el diario [ editar ]

ext3 no realiza la suma de comprobación al escribir en el diario. En un dispositivo de almacenamiento con caché adicional, si la barrera = 1 no está habilitada como una opción de montaje (en / etc / fstab ), y si el hardware está realizando un almacenamiento en caché de escritura desordenado, se corre el riesgo de daños graves en el sistema de archivos durante un choque. [32] [33] [34] Esto se debe a que los dispositivos de almacenamiento con cachés de escritura informan al sistema que los datos se han escrito por completo, incluso si se escribieron en el caché (volátil).

Si las escrituras en el disco duro se realizan fuera de orden (debido a que los discos duros modernos almacenan en caché las escrituras para amortizarvelocidades de escritura), es probable que se escriba un bloque de confirmación de una transacción antes de que se escriban los otros bloques relevantes. Si ocurre un corte de energía o un bloqueo irrecuperable antes de que se escriban los otros bloques, será necesario reiniciar el sistema. Al reiniciar, el sistema de archivos reproducirá el registro de forma normal y reproducirá los "ganadores" (transacciones con un bloque de confirmación, incluida la transacción no válida anterior, que resultó estar etiquetada con un bloque de confirmación válido). La escritura en disco inacabada anterior continuará, pero utilizando datos de diario corruptos. Por lo tanto, el sistema de archivos sobrescribirá por error los datos normales con datos corruptos mientras se reproduce el diario. Si se han utilizado sumas de comprobación, donde los bloques de la transacción del "falso ganador" se etiquetaron con una suma de comprobación mutua,el sistema de archivos podría haberlo sabido mejor y no reproducir los datos corruptos en el disco. Se ha añadido la suma de comprobación del diario a ext4.[35]

Los sistemas de archivos que atraviesan la interfaz del mapeador de dispositivos (incluidas las implementaciones de software RAID y LVM) pueden no admitir barreras y emitirán una advertencia si se utiliza esa opción de montaje. [36] [37] También hay algunos discos que no implementan correctamente la extensión de vaciado de la caché de escritura necesaria para que funcionen las barreras, lo que provoca una advertencia similar. [38] En estas situaciones, donde las barreras no son compatibles o no son prácticas, es posible realizar un orden de escritura confiable desactivando la caché de escritura del disco y usando la data=journalopción de montaje. [32] Es posible que sea necesario desactivar la caché de escritura del disco incluso cuando haya barreras disponibles.

Las aplicaciones como las bases de datos esperan que una llamada a fsync () elimine las escrituras pendientes en el disco, y la implementación de la barrera no siempre borra la memoria caché de escritura de la unidad en respuesta a esa llamada. [39] También existe un problema potencial con la implementación de la barrera relacionada con el manejo de errores durante eventos, como una falla en la unidad. [40] También se sabe que a veces algunas tecnologías de virtualización no reenvían correctamente fsync o flush comandos a los dispositivos subyacentes (archivos, volúmenes, disco) desde un sistema operativo invitado. [41] De manera similar, algunos discos duros o controladores implementan el vaciado de caché de forma incorrecta o no implementan nada, pero aún así anuncian que es compatible y no devuelven ningún error cuando se usa.[42] Hay tantas formas de manejar fsync y escribir el manejo de caché de manera incorrecta, es más seguro asumir que el vaciado de caché no funciona a menos que sea probado explícitamente, sin importar cuán confiables sean los componentes individuales.

Casi extinción debido a la limitación del sello de fecha [ editar ]

Ext3 almacena las fechas como tiempo Unix usando cuatro bytes en el encabezado del archivo. 32 bits no dan suficiente margen para continuar procesando archivos más allá del 18 de enero de 2038, el problema del año 2038 . [43] Se espera que este "Milenio de Geek" cause una interrupción generalizada si no se trata de manera oportuna. [ cita requerida ]

ext4 [ editar ]

Dependencia del tiempo de fsck en el recuento de inodos (ext3 vs ext4)

El 28 de junio de 2006, Theodore Ts'o , el principal desarrollador de ext3, [44] anunció una versión mejorada, llamada ext4. El 11 de octubre de 2008, los parches que marcan ext4 como código estable se fusionaron en los repositorios de código fuente de Linux 2.6.28, marcando el final de la fase de desarrollo y recomendando su adopción. En 2008, Ts'o declaró que aunque ext4 tiene características mejoradas, como ser mucho más rápido que ext3, no es un avance importante, utiliza tecnología antigua y es un recurso provisional; Ts'o cree que Btrfs es la mejor dirección, porque "ofrece mejoras en escalabilidad, confiabilidad y facilidad de administración". [45] Btrfs también tiene "varias de las mismas ideas de diseño que tenía reiser3 / 4 ".[46]

Ver también [ editar ]

  • Lista de sistemas de archivos
  • Comparación de sistemas de archivos
  • Atributos de archivo extendidos
  • Ext2Fsd
  • Next3 , versión modificada de ext3 que toma instantáneas

Referencias [ editar ]

  1. ^ El número máximo de inodos (y por lo tanto el número máximo de archivos y directorios) se establece cuando se crea el sistema de archivos. Si V es el tamaño del volumen en bytes, entonces el número predeterminado de inodos viene dado por V / 2 13 (o el número de bloques, el que sea menor), y el mínimo por V / 2 23 . El valor predeterminado se consideró suficiente para la mayoría de las aplicaciones. El número máximo de subdirectorios en un directorio se fija en 32000.
  2. ^ "ReactOS 0.4.2 lanzado" . reactos.org . Consultado el 17 de agosto de 2016 .
  3. ^ Stephen C. Tweedie (mayo de 1998). "Registro del sistema de archivos Linux ext2fs" (PDF) . Actas de la 4ª edición anual de LinuxExpo, Durham, NC . Consultado el 23 de junio de 2007 .
  4. ^ Stephen C. Tweedie (17 de febrero de 1999). "Re: fsync en archivos grandes" . Lista de correo del kernel de Linux .
  5. ^ Rob Radez (23 de noviembre de 2001). "2.4.15-final" . Lista de correo del kernel de Linux .
  6. ^ a b "Capítulo 6. El sistema de archivos Ext4 Red Hat Enterprise Linux 6" .
  7. ^ Piszcz, Justin. "Benchmarking Filesystems Part II" . Gaceta de Linux (122).
  8. ^ Ivers, Hans. "Comparación de sistemas de archivos (ext3, reiser, xfs, jfs) en Debian Etch" . Cite journal requiere |journal=( ayuda )
  9. Smith, Roderick W. (9 de octubre de 2003). "Introducción a los archivos y sistemas de archivos de Linux" . Linux.com. Archivado desde el original el 30 de agosto de 2011.
  10. Trageser, James (23 de abril de 2010). "¿Qué sistema de archivos Linux elegir para su PC? Ext2, Ext3, Ext4, ReiserFS (Reiser3), Reiser4, XFS, Btrfs" .
  11. ^ Cao, Mingming. "Indexación de directorios" . Características encontradas en Linux 2.6 .
  12. ^ Matthew Wilcox. "Documentación / sistemas de archivos / ext2.txt" . Documentación de las fuentes del kernel de Linux .
  13. ↑ a b Daniel Robbins (1 de diciembre de 2001). "Subprocesos comunes: guía avanzada del implementador del sistema de archivos, parte 8" . IBM developerWorks . Archivado desde el original el 13 de octubre de 2007.
  14. ^ onloooker curioso: Acelerando los sistemas de archivos ext3 . Evuraan.blogspot.com (9 de enero de 2007). Consultado el 22 de junio de 2013.
  15. ^ Radez, Rob (2005). "Extensiones, asignación retrasada" . futuro de ext3 .
  16. ^ Robert Nichols (2007-04-03) Re: ¿Cuántos subdirectorios? linux.derkeiler.com
  17. ^ Andreas Dilger. "Publicar en la lista de correo de usuarios de ext3" . Publicación de la lista de correo de usuarios de ext3 .
  18. ^ Agitar . Vleu.net. Consultado el 22 de junio de 2013.
  19. ^ Defrag escrito en shell . Ck.kolivas.org (19 de agosto de 2012). Consultado el 22 de junio de 2013.
  20. ^ Defrag escrito en Python . Bazaar.launchpad.net. Consultado el 22 de junio de 2013.
  21. ^ RE: buscando el programa de desfragmentación / movimiento de archivos ext3 . Redhat.com (4 de marzo de 2005). Consultado el 22 de junio de 2013.
  22. ^ 5.10. Sistemas de archivos . Tldp.org (9 de noviembre de 2002). Consultado el 22 de junio de 2013.
  23. ^ "Mejora cerrada # 849 (fija) - preasignación para evitar la fragmentación" . trac.transmissionbt.com . El sistema de archivos predeterminado de Ubuntu ("ext3") fragmentará archivos grandes (> 1 GB) y de crecimiento lento (<1 MB / s)
  24. ^ Oliver Diedrich (27 de octubre de 2008). "Ajuste del sistema de archivos de Linux Ext3" . Encontramos áreas libres muy fragmentadas en un servidor IMAP de uso intensivo que almacena todos sus correos electrónicos en archivos individuales, aunque aún estaban disponibles más de 900 GB del espacio total en disco de 1,4 TB.
  25. ^ Ext4 - Principiantes del kernel de Linux . Kernelnewbies.org (19 de mayo de 2011). Consultado el 22 de junio de 2013.
  26. ^ Preguntas frecuentes sobre Linux ext3 . Batleth.sapienti-sat.org. Consultado el 22 de junio de 2013.
  27. ^ CÓMO recuperar archivos eliminados en un sistema de archivos ext3 Archivado el 19 de septiembre de 2010 en Wayback Machine . Xs4all.nl (7 de febrero de 2008). Consultado el 22 de junio de 2013.
  28. ^ PhotoRec - Recuperación de archivos GPL . Cgsecurity.org. Consultado el 22 de junio de 2013.
  29. ^ Recuperación estándar de UFS Explorer versión 4 . Ufsexplorer.com. Consultado el 22 de junio de 2013.
  30. ^ e3compr - compresión ext3 . Sourceforge.net. Consultado el 22 de junio de 2013.
  31. ^ Jonathan Corbet. "El sistema de archivos Next3" . LWN.
  32. ^ a b Re: Corrupción frecuente de metadatos con ext3 + apagado completo . Archives.free.net.ph. Consultado el 22 de junio de 2013.
  33. ^ Re: Corrupción frecuente de metadatos con ext3 + apagado completo . Archives.free.net.ph. Consultado el 22 de junio de 2013.
  34. ^ Red Hat Enterprise Linux, Capítulo 20. Barreras de escritura
  35. ^ ext4: agrega la función de suma de comprobación del diario . Article.gmane.org (2008-02-26). Consultado el 22 de junio de 2013.
  36. ^ Re: ¿Se admite la barrera de escritura sobre el mapeador de dispositivos o no? . Oss.sgi.com. Consultado el 22 de junio de 2013.
  37. ^ Archivos XFS y cero. Archivado el 30 de abril de 2008 en la Wayback Machine . Madduck.net (11 de julio de 2008). Consultado el 22 de junio de 2013.
  38. ^ Sincronización de barrera . foros.opensuse.org (marzo de 2007)
  39. ^ Re: Propuesta de fsync () y fdatasync () duraderos "adecuados" . Mail-archive.com (26 de febrero de 2008). Consultado el 22 de junio de 2013.
  40. ^ Barreras de E / S, a partir de la versión 2.6.31 del kernel . Mjmwired.net. Consultado el 22 de junio de 2013.
  41. ^ Virtualización y modos IO = Complejidad extra . Mysqlperformanceblog.com (21 de marzo de 2011). Consultado el 22 de junio de 2013.
  42. ^ SSD, XFS, LVM, fsync, caché de escritura, barrera y transacciones perdidas . Mysqlperformanceblog.com (2 de marzo de 2009). Consultado el 22 de junio de 2013.
  43. ^ Clark, Libby (19 de febrero de 2015). "10 aspectos destacados del informe del kernel de Linux de Jon Corbet" . Consultado el 26 de enero de 2019 .
  44. ^ "Theodore Ts'o": Propuesta y plan para el trabajo de desarrollo futuro de ext2 / 3 . LKML. Consultado el 22 de junio de 2013.
  45. Ryan Paul (13 de abril de 2009). "Los panelistas reflexionan sobre el kernel en Linux Collaboration Summit" . Ars Technica . Consultado el 22 de agosto de 2009 .
  46. Theodore Ts'o (1 de agosto de 2008). "Re: reiser4 para 2.6.27-rc1" . linux-kernel (lista de correo) . Consultado el 31 de diciembre de 2010 .

Enlaces externos [ editar ]

  • "Preguntas frecuentes sobre Linux ext3" . desde 2004-10-14.
  • Presentación de ext3: guía del implementador del sistema de archivos avanzado de IBM developerWorks, Parte 7
  • Paragon ExtBrowser Free ext2 / ext3 controlador de Windows
  • Sistema de archivos Ext2 para Windows GPL Controlador del sistema de archivos ext2 / ext3 para Windows 2000 / XP / 2003 / VISTA / 2008 (código abierto, admite lectura y escritura, admite inodo de 256 bytes como máximo para acceder a discos más grandes)
  • Sistema de archivos instalable Ext2 para Windows Controlador del sistema de archivos ext2 / ext3 para MS Windows NT4.0 / 2000 / XP / Vista / 7/8 / 8.1 / Server 2003/2008/2008 R2 / 2012/2012 R2 (freeware, código cerrado, compatible con lectura y escritura, admite inodos de 256 bytes como máximo para acceder a discos más grandes)
  • Controlador del sistema de archivos EXT2 IFS ext2 / ext3 (solo lectura) para MS Windows NT / 2000 / XP (código abierto), última versión en el archivo web
  • Explore2fs Una herramienta GUI similar a un explorador para acceder a los sistemas de archivos ext2 / ext3 en MS Windows
  • "Ext2read" Una aplicación de Windows para leer / copiar archivos ext2 / ext3 / ext4 con extensión y soporte LVM2.
  • UFS Explorer Standard Recovery versión 4 Software comercial de recuperación de datos y recuperación de archivos para sistemas de archivos Ext2 / Ext3.
  • Herramientas de cambio de tamaño ext2 / ext3
  • Presentación sobre EXT3 Journaling Filesystem por el Dr. Stephen Tweedie en el Simposio Linux de Ottawa, 20 de julio de 2000
  • Estado del arte: Dónde estamos con el sistema de archivos Ext3 de Mingming Cao, Theodore Y. Ts'o, Badari Pulavarty, Suparna Bhattacharya, IBM Linux Technology Center, 2005
  • Tutorial : determinación de los límites de tamaño de EXT3
  • fuse-ext2 Un controlador de sistema de archivos ext2 / ext3 de código abierto para FUSE . (Compatible con Mac OS X 10.4 y posterior ( Universal Binary ), usando MacFuse )
  • Puerto de Windows de Ext2 / Ext4 y otros FS en CROSSMETA
  • Red Hat Enterprise Linux, [1] Capítulo 22. Barreras de escritura .
  • El apocalipsis del reloj de Linux en 2038 se avecina y no hay un 'plan serio'