Ext4


Ext4

ext4

ext4
Desarrollador Mingming Cao, Dave Kleikamp, Alex Tomas, Andrew Morton, y otros
Nombre completo Fourth extended file system
Introducido 10 de octubre de 2006 (Linux 2.6.19)
Identificador de la partición 0x83 (MBR)
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT)
Estructuras
Contenido del directorio Table, Tree
Localización de archivo bitmap (free space), table (metadata)
Bloques malos Table
Límites
Máxima dimensión de archivo 16 TiB (usando bloques de 4k )
Máximo número de archivos 4 mil millones (4x10⁹) (especificado en el tiempo de creación del sistema de archivos)
Tamaño máximo del nombre de archivo 256 bytes
Tamaño máximo del volumen 1024 PiB = 1 EiB
Caracteres permitidos en nombres de archivo Todos los bytes excepto NULL y '/'
Características
Fechas registradas modificación (mtime), modificación de atributo (ctime), acceso (atime), borrado (dtime), creación (crtime)
Rango de fecha 14 de diciembre de 1901 - 25 de abril de 2514
Bifurcaciones No
Atributos extents, noextents, mballoc, nomballoc, delalloc, nodelalloc, data=journal, data=ordered, data=writeback, commit=nrsec, orlov, oldalloc, user_xattr, nouser_xattr, acl, noacl, bsddf, minixdf, bh, nobh, journal_dev
Permisos de acceso a archivos POSIX
Compresión transparente No
Cifrado transparente No
Sistemas operativos soportados Linux

ext4 (fourth extended filesystem o «cuarto sistema de archivos extendido») es un sistema de archivos con registro por diario (en inglés Journaling), anunciado el 10 de octubre de 2006 por Andrew Morton, como una mejora compatible de ext3. El 25 de diciembre de 2008 se publicó el kernel Linux 2.6.28, que elimina ya la etiqueta de "experimental" de código de ext4.

Las principales mejoras son:

  • Soporte de volúmenes de hasta 1024 PiB.
  • Soporte añadido de extent.
  • Menor uso del CPU.
  • Mejoras en la velocidad de lectura y escritura.

Contenido

Mejoras

Sistema de archivos de gran tamaño

El sistema de archivos ext4 es capaz de trabajar con volúmenes de hasta 1 exbibyte[1] y ficheros de tamaño de hasta 16 TiB.

Extents

Los extents han sido introducidos para reemplazar al tradicional esquema de bloques usado por los sistemas de archivos ext2/3. Un extent es un conjunto de bloques físicos contiguos, mejorando el rendimiento al trabajar con ficheros de gran tamaño y reduciendo la fragmentación. Un extent simple en ext4 es capaz de mapear hasta 128MiB de espacio contiguo con un tamaño de bloque igual a 4KiB.[2]

Compatibilidad hacia adelante y hacia atrás

El sistema de archivos ext3 es compatible adelante con ext4, siendo posible montar un sistema de archivos ext3 como ext4 y usarlo transparentemente.

Del mismo modo ext4 es parcialmente compatible hacia atrás con ext3 ya que puede ser montado como una partición ext3 con la excepción de que si la partición ext4 usa extents, se pierde esta posibilidad.

Extents están configurados por defecto desde la versión del kernel 2.6.23. Anteriormente, esta opción requería ser activada explícitamente (por ejemplo mount /dev/sda1 /mnt/point -t ext4dev -o extents).

Asignación persistente de espacio

El sistema de archivos ext4 permite la reserva de espacio en disco para un fichero. La actual metodología consiste en rellenar el fichero en el disco con ceros en el momento de su creación. Esta técnica no es ya necesaria con ext4, ya que una nueva llamada del sistema "preallocate()" ha sido añadida al kernel Linux para uso de los sistemas de archivos que permitan esta función. El espacio reservado para estos ficheros quedará garantizado y con mucha probabilidad será contiguo. Esta función tiene útiles aplicaciones en streaming y bases de datos.

Asignación retrasada de espacio

Ext4 hace uso de una técnica de mejora de rendimiento llamada Allocate-on-flush, también conocida como reserva de memoria retrasada. Consiste en retrasar la reserva de bloques de memoria hasta que la información esté a punto de ser escrita en el disco, a diferencia de otros sistemas de archivos, los cuales reservan los bloques necesarios antes de ese paso. Esto mejora el rendimiento y reduce la fragmentación al mejorar las decisiones de reserva de memoria basada en el tamaño real del fichero.

Límite de 32000 subdirectorios superado

En ext3 el nivel de profundidad en subdirectorios permitido estaba limitado a 32000. Este límite ha sido aumentado a 64000 en ext4, permitiendo incluso ir más allá de este límite (haciendo uso de "dir_nlink"). Para permitir un rendimiento continuo, dada la posibilidad de directorios mucho más grandes, htree está activado por defecto en ext4. Esta función está implementada desde la versión 2.6.23. htree está también disponible en ext3 cuando la función dir_index está activada.

Journal checksumming

ext4 usa checksums en el registro para mejorar la fiabilidad, puesto que el journal es uno de los ficheros más utilizados en el disco. Esta función tiene un efecto colateral beneficioso: permite de forma segura evitar una lectura/escritura de disco durante el proceso de registro en el journal, mejorando el rendimiento ligeramente. La técnica del journal checksumming está inspirada en la investigación de la Universidad de Wisconsin en sistemas de archivos IRON (Sección 6, bajo el nombre "checksums de transacciones").[3]

Desfragmentación online

Incluso haciendo uso de diversas técnicas para evitar la fragmentación, un sistema de larga duración tiende a fragmentarse con el tiempo. Ext4 dispondrá de una herramienta que permite desfragmentar ficheros individuales o sistemas de ficheros enteros.

comparativa entre ext3 y ext4.

Chequeo del sistema de ficheros más rápido

En ext4, los grupos de bloques no asignados y secciones de la tabla de inodos están marcados como tales. Esto permite a e2fsck saltárselos completamente en los chequeos y en gran medida reduce el tiempo requerido para chequear un sistema de archivos del tamaño para el que ext4 está preparado. Esta función está implementada desde la versión 2.6.24 del kernel Linux.

Asignador multibloque

Ext4 asigna múltiples bloques para un fichero en una sola operación, lo cual reduce la fragmentación al intentar elegir bloques contiguos en el disco. El asignador multibloque está activo cuando se usa 0_DIRECT o si la asignación retrasada está activa. Esto permite al fichero tener diversos bloques "sucios" solicitados para escritura al mismo tiempo, a diferencia del actual mecanismo del kernel de solicitud de envío de cada bloque al sistema de archivos de manera separada para su asignación.

Timestamps mejorados

Puesto que los ordenadores se tornan en general cada vez más rápidos y que Linux está pasando a ser cada vez más usado en aplicaciones críticas, la granularidad de los timestamps basados en segundos se está volviendo insuficiente. Para resolver esto, ext4 tendrá timestamps medidos en nanosegundos. Ésta función está actualmente implementada en la versión 2.6.23 del kernel. Adicionalmente se han añadido 2 bits del timestamp extendido a los bits más significativos del campo de segundos de los timestamps para retrasar casi 500 años el problema del año 2038.

Opciones de montaje

Por defecto

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 caida de energia, se perderan, 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 numero mejor será el rendimiento del sistema. Ponerlo a 0 tendrá el mismo efecto que el valor por defecto.
1(*)> Activa / desactiva el uso de barreras en el codigo jbd. Barrier= 0 Lo desactiva, Barrier = 1 lo activa. Tambien requiere un IO que soporte barreras, y si el jbd coge un error en la escritura en una barrera, se desactivara con una advertencia...
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.
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"
nogrpid/sysvgroups Les da a los objetos el mismo ID de grupo que a su creador.
bh/nobh Ext3 relaciona los buffer heads a paginas de datos y a
  • Información del mapeo de la caché.
  • Linka paginas 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 ólo para el modo "writeback").
delalloc Aplaza la escritura de bloques hasta que este en el tiempo de escritura.

No por defecto

Opción Características
ro
Journal_checksum
journal_async_commit
Actualiza el journal del sistema de ficheros de ext3 al formato actual.
journal_dev=devnum Cuando cambian los valores minimos 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 numeros minimos 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 despues de que sus metadatos hayan sido introducidos en el journal.

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 tendra 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" actue como en sistemas Minix.
debug Información extra sobre la depuración es enviada al registro del sistema (syslog).
errors=remount-ro
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
stripe=n Numero de bloques del sistema de archivos que el mballoc (asignador multibloque) intentara usar para la asignacion de tamaño y la alineacion. Para sistemas RAID 5 o 6 debe ser el numero de discos de datos.
max_batch_time=usec
min_batch_time=usec


journal_ioprio=prio La prioridad de I/O (de 0 a 7 donde 0 es la maxima prioridad) que sera usada por las operaciones de entrada y salida proporcionadas por kjournald2 durante una operacion de subida. Por defecto esta a 3.



Referencias

  1. «Migrating to Ext4». Consultado el 2008-12-14.
  2. «Ext4 overview». Consultado el 2008-01-15.
  3. Vijayan Prabhakaran, et al. "IRON File Systems" (PDF). CS Dept, University of Wisconsin.

Véase también

Obtenido de "Ext4"

Wikimedia foundation. 2010.

Mira otros diccionarios:

  • Ext4 — Разработчик Mingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave Kleikamp, Theodore Ts o, Eric Sandeen, Sam Naghshineh и другие Файловая система Fourth extended file system Дата представления Стабильная версия: 21 октября 2008 Тестовая… …   Википедия

  • ext4 — Hersteller Mingming Cao, Dave Kleikamp, Alex Tomas, Theodore Ts o, andere Vollständige Bezeichnung Fourth extended filesystem Erstveröffentlichung 14. Oktober 2008 (Testversion seit: Linux 2.6.19,Final: Linux 2.6.28) Partitionskennung 0x83 (MBR …   Deutsch Wikipedia

  • Ext4 — Diffuseur de logiciel Nom anglais Fourth extended file system Introduction Stable: 24 décembre 2008 Instable: 29 novembre 2006 (Linux …   Wikipédia en Français

  • ext4 — Nom anglais Fourth extended file system Introduction Stable: 24 décembre 2008 Instable: 29 novembre 2006 (Linux) Identificateur de partition 0x83 Structure …   Wikipédia en Français

  • Ext4 — Hersteller Mingming Cao, Dave Kleikamp, Alex Tomas, Theodore Ts o, andere Vollständige Bezeichnung Fourth extended file system Erstveröffentlichung 14. Oktober 2008 (Testversion seit: Linux 2.6.19,Final: Linux 2.6.28) Partitionskennung 0x83 (MBR) …   Deutsch Wikipedia

  • Ext4 — lowercase|title=ext4Infobox filesystem name = ext4 full name = Fourth extended file system developer = Mingming Cao, Andreas Dilger, Alex Tomas, Dave Kleikamp, Theodore Ts o, Eric Sandeen, Sam Naghshineh, others introduction os = Linux 2.6.19… …   Wikipedia

  • ext4 — Разработчик …   Википедия

  • Comparison of Linux distributions — Technical variations of Linux distributions include support for different hardware devices and systems or software package configurations. Organizational differences may be motivated by historical reasons. Other criteria include security,… …   Wikipedia

  • Comparison of file systems — The following tables compare general and technical information for a number of file systems. Contents 1 General information 2 Limits 3 Metadata 4 Features …   Wikipedia

  • Сравнение дистрибутивов Linux — Для улучшения этой статьи желательно?: Проставив сноски, внести более точные указания на источники. Эти таблицы сравнивают общую и техническую информацию о некоторых …   Википедия


Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.