Durante la instalación, Usted puede elegir diferentes sistemas de archivos para sus particiones. Esto quiere decir que puede formatear sus particiones de acuerdo con 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.
El Segundo sistema de archivos extendido (Second Extended Filesystem, su forma abreviada es ext2, 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.
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 al incorporar las transacciones.
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.
A diferencia de ext3, reiserfs se creó 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.
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.
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.
Tabla 9.1. Características de los sistemas de archivos
Ext2 | Ext3 | ReiserFS | JFS | XFS | |
---|---|---|---|---|---|
Estabilidad | Excelente | Buena | Buena | Media | Buena |
Herramientas para recuperar archivos borrados | Sí (complejas) | Sí (complejas) | No | No | No |
Tiempo de re-arranque luego de una caída | Largo, incluso muy largo | Corto | Muy corto | Muy corto | Muy corto |
Estado de los datos en caso de una caída | En general, bueno, pero existe un riesgo alto de pérdida parcial o total de los datos | Muy bueno | Medio[a] | Muy bueno. | Muy bueno. |
Soporte para ACL | Sí | Sí | No | No | Sí |
[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) y 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, que en el núcleo 2.4.X es (sólo para la arquitectura x86) de 2TB[22] incluso en el modo RAID. 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.
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 ReiserFS4[23]. 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 y que los archivos grandes se acceden a una velocidad normal.
[22] Se debe estar preguntando cómo lograr tales capacidades con discos que apenas almacenan 320-400TB. 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 Linux, o usando LVM (Logical Volume Manager, Administrador de volúmenes lógicos) debería ser posible incluso superar (si el tamaño del bloque lo permite) el límite de 2TB.
[23] Al momento de realizar este manual, ReiserFS4 no estaba incluido en el núcleo 2.6.X