1. Comparación de algunos sistemas de archivos

Durante la instalación, Usted puede elegir diferentes sistemas de archivos para sus particiones de manera tal que se formatearán utilizando algoritmos diferentes.

A menos que sea un especialista, la elección de un sistema de archivos no es obvia. Le proponemos una presentación rápida de los tres sistemas de archivos más corrientes, los cuales están disponibles en su totalidad bajo Mandrakelinux.

1.1. Diferentes sistemas de archivos utilizables

1.1.1. Ext2

El Segundo sistema de archivos extendido (Second Extended Filesystem, su forma abreviada es ext2FS, o simplemente ext2) ha sido el sistema de archivos predeterminado de GNU/Linux por muchos años. Reemplazó al Sistema de archivos extendido (Extended File System) (de allí, el término “Segundo”). ext2 corrigió ciertos problemas y limitaciones que tenía su predecesor.

ext2 respeta los estándares comunes para los sistemas de archivos tipo UNIX®. Desde que fue concebido, se diseñó para evolucionar, a la vez que ofrece una gran robustez y buen rendimiento.

[Nota]Nota

Debe estar desmontado para poder cambiarle el tamaño.

1.1.2. Ext3

Como su nombre lo sugiere, el Tercer sistema de archivos extendido (Third Extended File System) es el sucesor de ext2. Es compatible con este último pero está mejorado agregando la característica transaccional.

Una de las mayores fallas de los sistemas de archivos “tradicionales”, como ext2, es la baja tolerancia a caídas del sistema abruptas (fallas de energía o programas que se cuelgan). En general, una vez que se vuelve a iniciar el sistema, dichos eventos implican un examen prolongado de la estructura del sistema de archivos e intentos para corregir errores, que algunas veces resulta en una corrupción aun mayor del sistema de archivos. Esta corrupción podría causar una pérdida total o parcial de los datos grabados.

Las transacciones responden a este problema. Para simplificar, digamos que la idea es grabar las acciones (tales como el guardar un archivo) antes de llevarlas a cabo efectivamente. Podemos comparar su funcionamiento al de un capitán de un bote que anota en su cuaderno de bitácora los eventos diarios. El resultado: un sistema de archivos coherente siempre. Y si ocurren problemas, la verificación es muy rápida y las reparaciones eventuales, muy limitadas. Entonces, el tiempo que toma verificar un sistema de archivos ya no es más proporcional al tamaño del mismo sino al uso verdadero que se hace del mismo.

Por lo tanto, ext3 ofrece la tecnología de sistemas de archivos transaccional, a la vez que mantiene la estructura de ext2, asegurando una compatibilidad excelente. Esto hace que sea fácil cambiar entre ext2 y ext3.

[Nota]Nota

Al igual que ext2, debe estar desmontado para poder cambiarle el tamaño.

1.1.3. ReiserFS

A diferencia de ext3, reiserfs se escribió desde cero. Es un sistema de archivos transaccional como ext3, pero su estructura interna es radicalmente diferente ya que utiliza conceptos de árboles binarios, inspirado en el software de bases de datos y también tiene un tamaño de bloque variable, lo que lo hace óptimo para el uso con varios (miles o cientos de miles) archivos pequeños. También tiene un buen rendimiento con archivos grandes, adaptándose así a usos múltiples.

[Nota]Nota

Se le puede cambiar el tamaño “al vuelo”, sin desmontar el sistema de archivos.

1.1.4. JFS

JFS es el sistema de archivos transaccional diseñado y utilizado por IBM. Al principio era cerrado y propietario, IBM decidió recientemente abrir el acceso al movimiento de software libre. Su estructura interna es muy similar a la de reiserfs.

[Aviso]Aviso

No se le puede cambiar el tamaño bajo GNU/Linux.

1.1.5. XFS

XFS es el sistema de archivos transaccional diseñado por SGI y utilizado en su sistema operativo Irix. Al principio era propietario y cerrado, SGI decidió abrir el acceso al movimiento de software libre. Su estructura de datos tiene un montón de características diferentes, tales como soporte para ancho de banda en tiempo real, extensiones, y sistemas de archivos distribuidos (clustered file systems), pero no en la versión libre.

[Aviso]Aviso

Con GNU/Linux sólo se le puede cambiar el tamaño por uno mayor. No se puede reducir. El cambio de tamaño sólo se puede realizar sobre un sistema de archivos montado.

1.2. Diferencias entre esos sistemas de archivos

Tabla 9.1. Características de los sistemas de archivos

 Ext2Ext3ReiserFSJFSXFS
EstabilidadExcelenteMuy BuenaBuenaMediaBuena
Herramientas para recuperar archivos borradosSí (complejas)Sí (complejas)NoNoNo
Tiempo de re-arranque luego de una caídaLargo, incluso muy largoCortoMuy cortoMuy cortoMuy corto
Estado de los datos en caso de una caídaEn general, bueno, pero existe un riesgo alto de pérdida parcial o total de los datosMuy buenoMedio[a]Muy bueno.Muy bueno.
Soporte para ACLNoNo

[a] Es posible mejorar los resultados en la recuperación de una caída haciendo transaccionales a los datos y no sólo a los metadatos, añadiendo la opción data=journal en el archivo /etc/fstab.

El tamaño máximo de un archivo depende de muchos parámetros (por ejemplo, el tamaño del bloque para ext2/ext3), y es probable que evolucione dependiendo de la versión del núcleo y la arquitectura. De acuerdo con los límites del sistema de archivos, el tamaño máximo disponible en este momento es de alrededor de 2 TeraBytes (TB, 1TB = 1024GB) para ext2 o ext3 en máquinas estándar de 32 bits. Puede ir hasta 4 PetaBytes (PB, 1PB = 1024 TB) para JFS. Desafortunadamente, estos valores también están limitados al tamaño máximo de bloque del dispositivo[25].

En el núcleo 2.6.X este límite del dispositivo de bloques podría extenderse usando un núcleo compilado con el soporte para dispositivos de bloque grandes habilitado (CONFIG_LDB=y). Para más información, consulte Añadiendo soporte para tamaños de archivo arbitrarios a la especificación UNIX simple, Soporte para archivos grandes en Linux, y Dispositivos de bloque grandes. Con esto y el soporte adecuado en el sistema de archivos se puede llegar hasta 16TB (en máquinas de 32 bits) sin trucos especiales del sistema de archivos como los que utiliza JFS para el tamaño del sistema de archivos.

1.3. ¿Y con respecto al rendimiento?

Siempre es muy difícil comparar el rendimiento entre los sistemas de archivos. Todas las pruebas tienen sus limitaciones y los resultados deben ser interpretados con cuidado. Hoy día, ext2 está muy maduro pero el desarrollo del mismo es muy lento; por otro lado los sistemas de archivos transaccionales como ext3 y reiserfs están bastante maduros en este punto. Las características nuevas de reiserfs se incluyen en Reiser4[26]. Por otro lado XFS tiene un montón de características, y a medida que el tiempo pasa más características avanzadas funcionarán en Linux. JFS tomó un enfoque diferente, y están integrando característica por característica en Linux. Esto hace que el proceso sea más lento, pero también va a terminar con una base de código muy clara. Las comparaciones hechas hace una semana o un mes ya son antiguas. No olvide que el hardware de hoy día (especialmente en lo que concierne a las capacidades de los discos rígidos) ha nivelado bastante las diferencias entre los mismos. XFS tiene la ventaja que en este momento es el que mejor se desempeña con archivos grandes.

Cada sistema de archivos ofrece ventajas y desventajas. De hecho, todo depende de cómo utilice su máquina. Una simple máquina de escritorio estará bien con ext2. Para un servidor, se prefiere un sistema de archivos transaccional como ext3. Tal vez debido a su génesis reiserfs es más adecuado para un servidor de base de datos. JFS se prefiere en los casos donde el rendimiento del sistema de archivos es la cuestión principal. XFS es interesante si necesita cualquiera de las características avanzadas que ofrece.

Para un uso “normal”, los cuatro sistemas de archivos dan aproximadamente los mismos resultados. reiserfs permite acceder rápidamente a los archivos pequeños, pero es bastante lento para manipular archivos grandes (de muchos megabytes). En la mayoría de los casos, las ventajas que brindan las posibilidades transaccionales de reiserfs hacen que sus inconvenientes sean de mínima importancia. Note que de manera predeterminada reiserfs se monta con la opción notail. Esto significa que no hay optimización alguna para los archivos pequeños.



[25] Se debe estar preguntando cómo lograr tales capacidades con discos que apenas almacenan 320-400GB. Por ejemplo, usando una tarjeta RAID con 8 discos de 250GB en RAID-stripping, logra 2TB de almacenamiento. Combinando el almacenamiento de varias tarjetas RAID usando RAID por software de GNU/Linux, o usando LVM (Logical Volume Manager, Administrador de volúmenes lógicos) debería ser posible superar (si el tamaño del bloque lo permite) el límite de 4TB.

[26] Al momento de realizar este manual, Reiser4 no estaba incluido en el núcleo 2.6.X