stringtranslate.com

ext3

ext3 , o tercer sistema de archivos extendido , es un sistema de archivos registrado 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 la extensión de ext2 en Journaling the Linux ext2fs Filesystem en un artículo de 1998, y más tarde en una publicación en la lista de correo del kernel de febrero de 1999. El sistema de archivos se fusionó con el kernel 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 registro en diario , que mejora la confiabilidad y elimina la necesidad de verificar el sistema de archivos después de un cierre incorrecto. Su sucesor es ext4 . [6]

Ventajas

El rendimiento (velocidad) de ext3 es menos atractivo que el de 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 ni restaurar datos. . Los puntos de referencia sugieren que ext3 también utiliza menos potencia de CPU que ReiserFS y XFS. [7] [8] También se considera más seguro que otros sistemas de archivos de Linux, debido a su relativa simplicidad y su base de pruebas más amplia. [9] [10]

ext3 agrega las siguientes características a ext2:

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 las utilidades de mantenimiento de sistemas 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 características "modernas" del sistema de archivos, como la asignación dinámica de inodos y las extensiones . Esta situación a veces puede ser una desventaja, pero en términos de recuperabilidad es una ventaja significativa. Todos los metadatos del sistema de archivos se encuentran en ubicaciones fijas y conocidas, y las estructuras de datos tienen cierta redundancia. En caso de corrupción importante de datos, ext2 o ext3 pueden ser recuperables, mientras que un sistema de archivos basado en árbol puede no serlo.

Límites de tamaño

El número máximo de bloques para ext3 es 2 32 . El tamaño de un bloque puede variar, afectando la cantidad máxima 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

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

Diario (menor riesgo)
Tanto los metadatos como el contenido del archivo se escriben en el diario antes de enviarse al sistema de archivos principal. Dado 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)
Sólo se registran los metadatos; el contenido del archivo no lo es, 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 en el kernel mientras se escribe o se agrega un archivo, el diario indicará que el nuevo archivo o los datos agregados no han sido "confirmados", por lo que serán eliminados por el proceso de limpieza. (Por lo tanto, los archivos adjuntos y nuevos tienen el mismo nivel de protección de integridad que el nivel "registrado".) Sin embargo, los archivos que se sobrescriben pueden dañarse porque la versión original del archivo no se almacena. 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 datos nuevos nunca llegaron al disco por completo y los datos antiguos no se almacenan en ningún lado). Peor aún, el estado intermedio podría intercalar datos antiguos y nuevos, porque el orden de escritura queda en manos del hardware del disco. [13] [14]
Reescritura (mayor riesgo)
Sólo se registran los metadatos; el contenido del archivo no lo es. Los contenidos pueden escribirse antes o después de la actualización de la revista. Como resultado, los archivos modificados justo antes de un fallo pueden dañarse. Por ejemplo, un archivo 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 los archivos también podrían aparecer inesperadamente después de una recuperación del 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 elimine al reiniciar. XFS también utiliza esta forma de registro en diario.

En los tres modos, se garantiza que la estructura interna del sistema de archivos será consistente incluso después de una falla. En cualquier caso, sólo se verán afectados los contenidos de datos de archivos o directorios que estuvieran siendo modificados cuando el sistema falló; el resto quedará intacto después de la recuperación.

Desventajas

Funcionalidad

Debido a que ext3 pretende ser compatible con versiones anteriores del ext2 anterior, muchas de las estructuras en el 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 el contador de enlaces de inodo de su carpeta principal en la referencia ".."). [dieciséis]

En ext3, como ocurre con la mayoría de los sistemas de archivos Linux actuales, la herramienta del sistema " fsck " no debe usarse mientras el sistema de archivos está montado para escritura. [6] Intentar verificar un sistema de archivos que ya está montado en modo lectura/escritura detectará (muy probablemente) 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 dañará el sistema de archivos.

Desfragmentación

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

Existen 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 en disco contiguo. 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 sólo funciona si el sistema de archivos tiene suficiente espacio libre. No existe una verdadera herramienta de desfragmentación para ext3. [21]

Sin embargo, como indica la Guía del administrador del sistema Linux, "los sistemas de archivos Linux modernos mantienen la fragmentación al mínimo al mantener todos los bloques de un archivo juntos, incluso si no se pueden almacenar en sectores consecutivos. Algunos sistemas de archivos, como ext3, "Asignar 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 debido a 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

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

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

Compresión

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

Falta de soporte para instantáneas

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 a nivel de volumen que ocupan menos espacio y que proporciona Linux LVM . 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

ext3 no realiza sumas de verificación al escribir en el diario. En un dispositivo de almacenamiento con caché adicional, si barrier=1 no está habilitado como opción de montaje (en /etc/fstab ) y si el hardware realiza un almacenamiento en caché de escritura desordenado, se corre el riesgo de sufrir una corrupción grave del sistema de archivos durante el proceso. 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 desordenadas (debido a que los discos duros modernos almacenan en caché las escrituras para amortizar las velocidades 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 se produce 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 normalmente 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 reproduce el diario. Si se hubieran utilizado sumas de verificación, donde los bloques de la transacción del "falso ganador" estuvieran etiquetados con una suma de verificación mutua, el sistema de archivos podría haberlo sabido mejor y no reproducir los datos corruptos en el disco. Se agregó la suma de verificación del diario a ext4. [35]

Es posible que los sistemas de archivos que pasan por la interfaz del asignador de dispositivos (incluidas las implementaciones de software RAID y LVM) no admitan 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 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 el 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 una llamada a fsync() para vaciar las escrituras pendientes en el disco, y la implementación de la barrera no siempre borra el 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 los comandos fsync o vaciado 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 manera incorrecta o no lo implementan en absoluto, pero aun así anuncian que es compatible y no devuelven ningún error cuando se usa. [42] Hay tantas maneras de manejar fsync y escribir el manejo de caché incorrectamente, que es más seguro asumir que el vaciado de caché no funciona a menos que se pruebe explícitamente, independientemente de cuán confiables se crean que son los componentes individuales.

Extinción cercana debido a la limitación del sello de fecha

Ext3 almacena fechas como hora Unix usando cuatro bytes en el encabezado del archivo. 32 bits no ofrecen suficiente margen para continuar procesando archivos más allá del 18 de enero de 2038: el problema del año 2038 . [43]

ext4

Dependencia del tiempo de fsck en el recuento de inodos (ext3 frente a 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 afirmó 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 una solución provisional; Ts'o cree que Btrfs es la mejor dirección, porque "ofrece mejoras en escalabilidad, fiabilidad y facilidad de gestión". [45] Btrfs también tiene "varias de las mismas ideas de diseño que tenía reiser3 / 4 ". [46]

Ver también

Referencias

  1. ^ La cantidad máxima de inodos (y, por lo tanto, la cantidad máxima 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 solicitudes. El número máximo de subdirectorios en un directorio se fija en 32000.
  2. ^ "Lanzamiento de ReactOS 0.4.2". reaccionaros.org . Consultado el 17 de agosto de 2016 .
  3. ^ Stephen C. Tweedie (mayo de 1998). "Registro del sistema de archivos ext2fs de Linux" (PDF) . Actas de la cuarta edición anual de LinuxExpo, Durham, Carolina del Norte . 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. ^ ab "Capítulo 6. El sistema de archivos Ext4 Red Hat Enterprise Linux 6".
  7. ^ Piszcz, Justin. "Evaluación comparativa de sistemas de archivos, parte II". Gaceta de Linux (122).
  8. ^ Ivers, Hans. "Comparación de sistemas de archivos (ext3, reiser, xfs, jfs) en Debian Etch". Archivado desde el original el 13 de septiembre de 2008 . Consultado el 3 de noviembre de 2010 . {{cite journal}}: Citar diario requiere |journal=( ayuda )
  9. ^ Smith, Roderick W. (9 de octubre de 2003). "Introducción a los sistemas de archivos y 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 que se encuentran en Linux 2.6 . Archivado desde el original el 18 de julio de 2019 . Consultado el 1 de abril de 2009 .
  12. ^ Mateo Wilcox. "Documentación/sistemas de archivos/ext2.txt". Documentación fuente del kernel de Linux .
  13. ^ ab Daniel Robbins (1 de diciembre de 2001). "Hilos comunes: guía del implementador del sistema de archivos avanzado, parte 8". IBM DeveloperWorks . Archivado desde el original el 13 de octubre de 2007.
  14. ^ Espectador curioso: acelerando los sistemas de archivos ext3. Evuraan.blogspot.com (9 de enero de 2007). Recuperado el 22 de junio de 2013.
  15. ^ Rádez, Rob (2005). "Extensiones, asignación retrasada". futuro de ext3 .
  16. ^ Robert Nichols (3 de abril de 2007) Re: ¿Cuántos subdirectorios? Archivado el 6 de octubre de 2008 en Wayback Machine 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. Recuperado el 22 de junio de 2013.
  19. ^ Defrag escrito en shell. Ck.kolivas.org (19 de agosto de 2012). Recuperado el 22 de junio de 2013.
  20. ^ Desfragmentar escrito en Python. Bazaar.launchpad.net. Recuperado el 22 de junio de 2013.
  21. ^ RE: buscando programa de desfragmentación/movimiento de archivos ext3. Redhat.com (4 de marzo de 2005). Recuperado el 22 de junio de 2013.
  22. ^ 5.10. Sistemas de archivos. Tldp.org (9 de noviembre de 2002). Recuperado el 22 de junio de 2013.
  23. ^ "Mejora cerrada n.º 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). "Ajustando el sistema de archivos 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 todavía estaban disponibles más de 900 GB del espacio total en disco de 1,4 TB.
  25. ^ Ext4: novatos en el kernel de Linux. Kernelnewbies.org (19 de mayo de 2011). Recuperado el 22 de junio de 2013.
  26. ^ Preguntas frecuentes sobre Linux ext3. Batleth.sapienti-sat.org. Recuperado 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). Recuperado el 22 de junio de 2013.
  28. ^ PhotoRec: recuperación de archivos con licencia GPL. Cgsecurity.org. Recuperado el 22 de junio de 2013.
  29. ^ Recuperación estándar de UFS Explorer versión 4. Ufsexplorer.com. Recuperado el 22 de junio de 2013.
  30. ^ e3compr - compresión ext3. Fuenteforge.net. Recuperado el 22 de junio de 2013.
  31. ^ Jonathan Corbet. "El sistema de archivos Next3". LWN.
  32. ^ ab Re: Corrupción frecuente de metadatos con ext3 + apagado completo Archivado el 28 de septiembre de 2007 en Wayback Machine . Archives.free.net.ph. Recuperado el 22 de junio de 2013.
  33. ^ Re: Corrupción frecuente de metadatos con ext3 + apagado total Archivado el 28 de septiembre de 2007 en Wayback Machine . Archives.free.net.ph. Recuperado el 22 de junio de 2013.
  34. ^ Red Hat Enterprise Linux, Capítulo 20. Barreras de escritura
  35. ^ ext4: agregue la función de suma de verificación del diario. Artículo.gmane.org (26 de febrero de 2008). Recuperado el 22 de junio de 2013.
  36. ^ Re: ¿Se admite o no la barrera de escritura sobre el asignador de dispositivos? Archivado el 4 de mayo de 2009 en Wayback Machine . Oss.sgi.com. Recuperado el 22 de junio de 2013.
  37. XFS y archivos puestos a cero Archivado el 30 de abril de 2008 en Wayback Machine . Madduck.net (11 de julio de 2008). Recuperado el 22 de junio de 2013.
  38. ^ Sincronización de barreras. forums.opensuse.org (marzo de 2007)
  39. ^ Re: Propuesta para fsync() y fdatasync() duraderos "adecuados". Mail-archive.com (26 de febrero de 2008). Recuperado el 22 de junio de 2013.
  40. ^ Barreras de E/S, a partir de la versión 2.6.31 del kernel. Mjmwired.net. Recuperado el 22 de junio de 2013.
  41. ^ Virtualización y modos IO = Complejidad adicional. Mysqlrendimientoblog.com (21 de marzo de 2011). Recuperado el 22 de junio de 2013.
  42. ^ SSD, XFS, LVM, fsync, caché de escritura, barrera y transacciones perdidas. Mysqlrendimientoblog.com (2009-03-02). Recuperado el 22 de junio de 2013.
  43. ^ Clark, Libby (19 de febrero de 2015). "Diez 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. Recuperado el 22 de junio de 2013.
  45. ^ Ryan Paul (13 de abril de 2009). "Los panelistas reflexionan sobre el kernel en la Cumbre de Colaboración de Linux". Ars Técnica . Consultado el 22 de agosto de 2009 .
  46. ^ Theodore Ts'o (1 de agosto de 2008). "Re: reiser4 para 2.6.27-rc1". kernel-linux (lista de correo) . Consultado el 31 de diciembre de 2010 .

enlaces externos