sábado, 9 de febrero de 2019

Sistemas de Archivos Linux

Ya hemos visto una introducción a los sistemas de archivos genéricos, a continuación vamos a ver los sistemas de archivos específicos para Linux.

Ext2 (Second Extended File System) 

Ext2 es un sistema de archivos para el kernel Linux. La principal desventaja de ext2 es que no implementa el registro por diario (Journaling) que sí implementa su sucesor ext3, el cual es totalmente compatible. 
Ext2 fue el sistema de ficheros por defecto de las distribuciones de Linux Red Hat Linux, Fedora Core y Debian hasta ser reemplazado por su sucesor ext3. 
El sistema de ficheros tiene una tabla donde se almacenan los i-nodos. Un i-nodo almacena información del archivo (ruta o path, tamaño, ubicación física). En cuanto a la ubicación, es una referencia a un sector del disco donde están todas y cada una de las referencias a los bloques del archivo fragmentado. Estos bloques son de tamaño especificable cuando se crea el sistema de archivos, desde los 512 bytes hasta los 4 KB, lo cual asegura un buen aprovechamiento del espacio libre con archivos pequeños. 
Los límites son un máximo de 2 TB de archivo, y de 4 TB para la partición. 

Sistemas de Archivos Linux

Ext3 (Third Extended File System) 

Ext3 es un sistema de archivos con registro por diario (journaling). Es el sistema de archivo más usado en distribuciones Linux, aunque en la actualidad está siendo remplazado por su sucesor, ext4. 

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 un árbol binario balanceado (árbol AVL) e incorpora el asignador de bloques de disco Orlov. 

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 de prueba. 
El sistema de archivo ext3 agrega a ext2 lo siguiente: 

Registro por diario.  
Índices en árbol para directorios que ocupan múltiples bloques. 
Crecimiento en línea. 

El límite de tamaño de los archivos y las particiones dependen del tamaño del bloque. El límite del tamaño del sistema de archivos es de 232 bloques. Para bloques de 1KB es de 16 GB para el archivo y de 2 TB para la partición. 

Como ext3 está hecho para ser compatible con ext2, 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 31.998 subdirectorios por cada directorio, que se derivan de su límite de 32.000 links por inodo. 

No hay herramienta de desfragmentación online para ext3 que funcione en nivel del sistema de archivos. De todas maneras ext3 mantiene la fragmentación al mínimo manteniendo los bloques de un archivo juntos, aunque no puedan ser guardados en sectores consecutivos. Ext3 es más resistente a la fragmentación que Fat, pero nada evita que los sistemas ext3 se puedan fragmentar con el tiempo. 

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. 


Ext4 (Fourth Extended File System) 

Ext4 es un sistema de archivos transaccional (journaling), anunciado como una mejora compatible de ext3. En 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 PB. 
Soporte añadido de extent. 
Menor uso del CPU. 
Mejoras en la velocidad de lectura y escritura. 

El sistema de archivos ext4 es capaz de trabajar con volúmenes de gran tamaño, particiones hasta 1 EB y ficheros hasta 16 TB de tamaño. 

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 128 MB de espacio contiguo con un tamaño de bloque igual a 4 KB. 
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. 

El sistema de archivos ext4 permite la reserva de espacio en disco para un fichero. Hasta ahora la metodología consistía 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. 

En ext3 el nivel de profundidad en subdirectorios permitido estaba limitado a 32.000. Este límite ha sido aumentado a 64.000 en ext4. Ext4 dispondrá de una herramienta que permite desfragmentar ficheros individuales o sistemas de ficheros enteros sin desmontar el disco. 

No hay comentarios:

Publicar un comentario