domingo, octubre 15, 2006, 10:21 PM - GNU/Linux, Tecnología, Opinión

En los últimos días el patio ha estado revuelto con la detención de Han Reiser, creador del sistema de ficheros Reiserfs. Desde esta entrada no voy a entrar a juzgar esto, y recuerdo que todo el mundo es inocente hasta que se demuestre lo contrario.
Pues bien, el tema de que sistema de ficheros a usar es algo que más de uno pregunta cuando está empezando con esto de GNU/Linux, pero luego es algo que tiende a olvidarse. Hay otros que les surge la vena fanática y juran y perjuran que el sistema de ficheros X es mucho mejor que cualquier otro bajo cualquier circustancia.
A lo largo de este post voy a intentar aclarar un poco el tema. No voy a entrar en benchmarks detallados ni en discusiones muy técnicas. Tan sólo pretendo crear la curiosidad en ti, querido lector (término que también incluye a las féminas, pero a ellas las quiero más) acerca de este mundo tan desconocido y a la vez tan importante.
Vamos a empezar por el principio. ¿Qué demonios es un sistema de ficheros?
El sistema de ficheros es la forma en la que el sistema operativo organiza los archivos y ficheros en el disco duro para que no sea sólo un montón de información caótica desperdigada por el disco. Es un sistema que gestiona cómo se organizan los archivos, dándoles un sentido y una estructura. Sin él, no podríamos comunicarnos con el disco duro de la manera a la que estamos acostumbrados, accediendo a ficheros en vez de a trozos de datos sueltos, que es lo que el disco duro almacena en realidad. Cuando uno "formatea" un disco duro lo que hace ni más ni menos es que particionar dicho disco y poner un sistema de ficheros sobre esa(s) partición(es) creada(s).
El primer punto a tener en cuenta es que un sistema de ficheros reside al menos sobre una partición. Podemos crear particiones que ocupen todo el disco o bien múltiples particiones por disco. Por otra parte, un sistema GNU/Linux puede usar más de un sistema de fichero a la vez, pero como es lógico, cada uno en su partición. Así, es posible tener una partición con el sistema de archivos X y otras dos particiones con el sistema de archivos Y.
Pues bien, llega la hora de elegir. ¿Qué sistema de ficheros he de usar? Pues como casi todo en esta vida, la respuesta es depende. Éstas son algunas de las cosas a tener en cuenta:
* ¿Sobre que soporte hardware vamos a crear el sistema de ficheros? No es lo mismo un simple disco ATA que un raid 5 sobre una SAN
* ¿Qué uso se le va a dar al sistema de ficheros? ¿Importa más la latencia o aprovechar el espacio? No son iguales las necesidades de un servidor de ficheros para 500 usuarios que las de un sistema de escritorio
* ¿Que nivel de criticidad tienen los datos que se van a almacenar sobre este sistema de ficheros? No sólo hay que tener en cuenta la tolerancia a fallos sino las herramientas de recuperación existentes.
* ¿Va a haber más de un equipo accediendo simultáneamente a este sistema de ficheros (clustering-SAN)?
*¿Cuál va ser el uso principal del sistema de ficheros? ¿Mucha lectura y poca escritura? ¿El inverso? El sistema de ficheros de un servidor web con relativamente pocas actualizaciones no tiene porque ser el mismo que el de una máquina con mucha carga transaccional
*¿Cuál es el tamaño típico de un fichero en ese sistema de archivos? No es igual tratar imágenes de DVD de 4,4 gigabytes de tamaño que un servidor de correo electrónico donde cada correo ocupará a lo sumo 5 o 10 megabytes...
Como puedes ver, hay más de una desición a tomar. Y como el "bueno, bonito, barato" no existe, pues uno debe tomar una solución de comprimiso. Veamos un pequeño resumen de los sistemas de ficheros disponibles y mi opinión sobre cada uno de ellos:
- ext3: El sistema de archivos típico por excelencia en un sistema GNU/Linux. Muy probado, con una buena robustez y muy buenas herramientas de recuperación. Si uno no quiere equivocarse (que no es lo mismo que acertar), elige este sistema de ficheros "todo terreno", que sin ser excelente en nada es razonablemente bueno para casi todo.
- XFS. Un sistema de archivos pensado para soluciones "high end" donde lo que más importa es el rendimiento. Está diseñado para trabajar con ficheros grandes, con concurrencia de acceso por parte de varios procesos. Si uno usa raids respaldados por baterías/SAN y trabaja con ficheros enormes (GIS, edición de vídeo no lineal, imágenes médicas) y tiene un buen hardware, es la elección natural.
- Reiserfs. Diseñado para ser muy eficiente con ficheros pequeños y/o se realizan muchas operaciones de creación y borrado de ficheros. Se comporta muy bien en sistemas de correo, news o proxy.
- RedHat Global File System y/o Veritas Storage Foundation Cluster File System: Dos sistemas de ficheros especializados (el primero de ellos GPL) para clustering empleando infraestructura SAN.
Existen otros sistemas de ficheros, como JFS (no lo he probado, no opino), Reiser4 (que no queda nada claro su futuro tras la detención de su autor), el prometedorZFS (no hay port nativo a Linux, aunque se está en ello ) y algún otro más para usos especializados.
Si tras leerte todo esto te sigues preguntando: "bueno, ¿entonces qué es lo que pongo?", pues nada, las respuestas rápidas:
* Una estación de trabajo: reiserfs o ext3
* Un servidor genérico con buen hardware: xfs o ext3
* Un servidor con mucha I/O de ficheros pequeños o muchas creaciones de ficheros pequeños: reiserfs
* Quiero hacer un cluster de multiacceso a la SAN: GFS
* No se qué poner: ponte ext3
Por último, aclararos que cada distribución de Linux añade parches adicionales a su kernel para incrementar las funcionalidades del sistema de ficheros, por lo que es necesario leer antes de elegir. Por ejemplo, el soporte de ext3 en una RedHat Enterprise Linux está muy mejorado (listas de control de acceso, mejoras de rendimiento, backports) que el de un ext3 básico de una Slackware por poner un ejemplo.
Que ustedes se lo monten bien!
[ 4 comentarios ] ( 1019 visualizaciones ) | [ 0 trackbacks ] | enlace permanente |




( 3 / 841 )




