Ext4

De Viquipèdia
Dreceres ràpides: navegació, cerca

Ext4 (fourth extended filesystem o «quart sistema d'arxius estès») és un sistema de fitxers transaccional (en anglès journaling), anunciat el 10 d'octubre de 2006 per Andrew Morton, com una millora compatible d'ext3. El 25 de desembre de 2008 es va publicar el nucli Linux 2.6.28, que elimina ja l'etiqueta d'"experimental" de codi d'ext4.[1]

Les principals millores són:

  • Suport de volums de fins a 1024 PiB.
  • Suport afegit de extent.
  • Menor ús del CPU.
  • Millores en la velocitat de lectura i escriptura.

Millores[modifica | modifica el codi]

Sistema d'arxius de grans dimensions[modifica | modifica el codi]

El sistema d'arxius ext4 és capaç de treballar amb volums de grans dimensions, fins a 1 exbibyte i fitxers de mida de fins a 16 TiB.

Extents[modifica | modifica el codi]

Els extents han estat introduïts per reemplaçar al tradicional esquema de blocs usat pels sistemes d'arxius ext2 /3. Un extent és un conjunt de blocs físics contigus, millorant el rendiment en treballar amb fitxers de grans dimensions i reduint la fragmentació. Un extent simple en ext4 és capaç de fer un mapa fins a 128 MiB d'espai contigu amb una mida de bloc igual a 4 KiB.[2]

Compatibilitat cap endavant i cap enrere[modifica | modifica el codi]

El sistema d'arxius ext3 és compatible endavant amb ext4, sent possible muntar un sistema d'arxius ext3 com ext4 i usar-lo transparent.

De la mateixa manera ext4 és parcialment compatible cap enrere amb ext3, ja que pot ser muntat com una partició ext3 amb l'excepció que si la partició ext4 usa extents, es perd aquesta possibilitat.

Extents estan configurats per defecte des de la versió del nucli 2.6.23. Anteriorment, aquesta opció requeria ser activada explícitament (per exemple mount / dev/sda1/mnt/ point-t ext4dev-o extents ).

Assignació persistent d'espai al disc[modifica | modifica el codi]

El sistema d'arxius ext4 permet la reserva d'espai en disc per a un fitxer. Fins ara la metodologia consistia a omplir el fitxer en el disc amb zeros en el moment de la seva creació. Aquesta tècnica no és ja necessària amb ext4, ja que una nova trucada del sistema "preallocate ()" ha estat afegida al nucli Linux per a ús dels sistemes d'arxius que permetin aquesta funció. L'espai reservat per a aquests fitxers quedarà garantit i amb molta probabilitat serà contigu. Aquesta funció té útils aplicacions en streaming i bases de dades.

Assignació retardada d'espai al disc[modifica | modifica el codi]

Ext4 fa ús d'una tècnica de millora de rendiment anomenada Allocate-on-flush, també coneguda com a reserva de memòria retardada. Consisteix a retardar la reserva de blocs de memòria fins que la informació estigui a punt de ser escrita en el disc, a diferència d'altres sistemes d'arxius, els quals reserven els blocs necessaris abans d'aquest pas. Això millora el rendiment i redueix la fragmentació en millorar les decisions de reserva de memòria basada en la grandària real del fitxer.

Límit de 32000 subdirectoris superat[modifica | modifica el codi]

En ext3 el nivell de profunditat en subdirectoris permès estava limitat a 32000. Aquest límit ha estat augmentat a 64000 en ext4, permetent fins i tot anar més enllà d'aquest límit (fent ús de "dir_nlink"). Per permetre un rendiment continu, donada la possibilitat de directoris molt més grans, htree està activat per defecte en ext4. Aquesta funció està implementada des de la versió 2.6.23. htree està també disponible en ext3 quan la funció dir_index està activada.

Journal checksumming[modifica | modifica el codi]

ext4 usa checksums en el registre per millorar la fiabilitat, ja que el journal és un dels fitxers més utilitzats en el disc. Aquesta funció té un efecte col·lateral beneficiós: permet de forma segura evitar una lectura / escriptura de disc durant el procés de registre al journal, millorant el rendiment lleugerament. La tècnica del journal checksumming està inspirada en la investigació de la Universitat de Wisconsin en sistemes d'arxius IRON (Secció 6, sota el nom "checksums de transaccions").[3]

Desfragmentació línia[modifica | modifica el codi]

Fins i tot fent ús de diverses tècniques per evitar la fragmentació, un sistema de llarga durada tendeix a fragmentar amb el temps. Ext4 disposarà d'una eina que permet desfragmentar fitxers individuals o sistemes de fitxers sencers sense desmuntar el disc.[4]

comparativa entre ext3 i ext4.

Revisió del sistema de fitxers i ràpid[modifica | modifica el codi]

En ext4, els grups de blocs no assignats i seccions de la taula d'inodos estan marcats com a tals. Això permet a e2fsck saltar-se'ls completament en les revisions i en gran mesura redueix el temps requerit per comprovar un sistema de fitxers de la mida per al qual ext4 està preparat. Aquesta funció està implementada des de la versió 2.6.24 del nucli Linux.

Assignador multibloc[modifica | modifica el codi]

Ext4 assigna múltiples blocs per a un fitxer en una sola operació, la qual cosa redueix la fragmentació en intentar triar blocs contigus en el disc. L'assignador multibloc està actiu quan s'usa 0_DIRECT o si l'assignació retardada està activa. Això permet al fitxer tenir diversos blocs "bruts" sol·licitats per escriptura a la vegada, a diferència de l'actual mecanisme del nucli de sol·licitud d'enviament de cada bloc al sistema d'arxius de manera separada per assignar.

Timestamps millorats[modifica | modifica el codi]

Com que els ordinadors es tornen en general cada vegada més ràpids i que Linux està passant a ser cada vegada més usat en aplicacions crítiques, la granularitat dels timestamps basats en segons s'està tornant insuficient. Per resoldre això, ext4 tindrà timestamps mesurats en nanosegons. Aquesta funció està actualment implementada en la versió 2.6.23 del nucli. Addicionalment s'han afegit 2 bits del timestamp estès als bits més significatius del camp de segons dels timestamps per retardar gairebé 500 anys el problema de l'any 2038.

Referències[modifica | modifica el codi]

  1. «Anatomy of ext4» (en anglès). IBM. [Consulta: 12 febrer 2015].
  2. «Understanding EXT4 (part 1):Extents» (en anglès). SANS Digital Forensics and Incident Response blog. [Consulta: 12 febrer 2015].
  3. Vijayan Prabhakaran, et al. «IRON File Systems» (PDF). CS Dept, Universitat de Wisconsin.
  4. Http://kernelnewbies.org/Ext4#head-38e6ac2b5f58f10989d72386e6f9cc2ef7217fb0

Vegeu també[modifica | modifica el codi]