Sistemas de Archivos
Si alguna vez tuviste que formatear un pendrive o más avanzado aun, un disco duro, te habrá surgido la duda de que sistema de archivos utilizar, ante todas las opciones que tenemos disponibles en sistemas de archivos. Especialmente si usas GNU/Linux, donde el abanico es más amplio aun. Vamos a hacer un recorrido por los diferentes formatos que podemos utilizar y un poco de su historia.
¿Qué son los sistemas de archivos?
Un disco duro externo USB, un disco duro interno sea HDD o SSD, un pendrive o una tj. SD. Todos estos que mencionamos son medios de almacenamiento, lo que quiere decir que cuando se formatea se está creando una infraestructura en donde se van a alojar los datos luego.
En este punto es donde entra en juego el sistema de archivos, un componente del sistema operativo que se encarga de administrar la memoria de cada unidad. Se encarga de asignarle a los archivos el espacio que necesiten, ordenarlos, permitir tener acceso a ellos y administrar el espacio libre.
Sería como un bibliotecario, que ordena y registra la posición exacta en la que se ha escrito un fichero dentro de la unidad, y así el sistema operativo puede acceder rápidamente a ellos, saber dónde empieza y donde termina cada uno. Siguiendo con el ejemplo, cada sistema de archivo como cada bibliotecario, tiene una manera de organizarse y gestionar el orden de diferente forma.
Cada sistema de archivo tiene sus propias ventajas y limitaciones, por lo que es importante conocerlos para elegir el que mejor se ajuste a la necesidad que tengas.
Características de los sistemas de archivos más comunes
Estos son algunos de los sistemas de archivos más conocidos: FAT, FAT32, exFAT, NTFS, HFS+ (Mac OS Plus), ext2, ext3, ext4, Swap, BtrFS, F2FS, XFS, OpenZFS. Vamos a ir Viendo cada uno, sus pros y sus contras, según para q lo necesitemos.
Sistema de archivos FAT
Significa, Tabla de asignación de archivos. Se utilizaba en MS-DOS. Ya hoy en día poco utilizada, pero todavía podemos llegar a encontrar algún dispositivo antiguo que necesite de este formato. Tienen un tamaño limitado, máximo de 4GB en Windows. Luego fueron viniendo nuevas versiones como F12, F16 o VFAT.
Sistema de archivos FAT32
Fue una actualización del sistema de archivo FAT, superando el límite de FAT16, manteniendo compatibilidad con MS-DOS. Esta versión surge con Windows 95 en 1996. Tenemos un límite de tamaño máximo de 1 archivo de 4GB, pero en Windows XP situaron el límite de FAT32 en 64gb.
Lo más destacado es que es muy versátil gracias a su enorme compatibilidad con prácticamente todos los dispositivos y sistemas operativos, razón por la cual la mayoría de las unidades USB que te compres estarán formateadas en este sistema de archivos.
Como ya mencionamos tiene varias limitaciones, el tamaño de los archivos, y a su vez las unidades de almacenamiento con este formato no puede ser mas de 8TB.
Sistema de archivos exFAT
Podríamos decir que el sistema exFAT es una actualización de FAT32, introducida por Microsoft en Windows Vista (aproximadamente en el 2006), con la intención de acabar con la limitación de 4GB por archivo que tenía FAT32.
En cuestión de compatibilidad podes usarlo en Windows, MacOS o GNU/Linux. Es un sistema de archivos muy recomendado para unidades externas como USB o Tarjetas SD donde vayas a guardar archivos que su tamaño sea mayor a 4GB. No tiene características avanzadas en cuanto a seguridad y cifrado.
Sistema de archivos NTFS (Windows)
Se trata de otra alternativa a FAT32 promovida por Microsoft, de hecho es el sistema de archivos que Windows utiliza por defecto. Sin los límites del tamaño máximo de archivo de FAT32, NTFS es una muy buena opción para discos duros y otras unidades externas, por lo menos si sos usuario de Windows. También compatible con GNU/Linux.
Su mayor desventaja es que no es totalmente compatible con todos los sistemas operativos. Por ejemplo, de forma nativa macOS puede leer las unidades formateadas en él, pero no puede escribir en ellas. Esto quiere decir que si tenes un disco duro con NTFS no podrás guardar nada de tu Mac a no ser que lo formatees con otro sistema de archivos o usar aplicaciones de terceros.
Sistema de archivos HFS+ (MacOS)
Como NTFS es el sistema de archivos de referencia en Windows, Apple creo el sistema HFS+ a su medida. Se da la casualidad de que mientras los sistemas GNU/Linux pueden trabajar con él sin problemas, en Windows solo podrás leer el contenido de los discos formateados en él, pero no escribir en ellos.
Eso hace de este sistema de archivos el perfecto si estamos dentro del ecosistema de Apple utilizando sus dispositivos, pero si eres usuario de Windows vas a tener que utilizar otros, también podemos utilizar aplicaciones de terceros en Windows, bajo Linux el proceso es un poco más complejo.
Sistemas de archivos Ext2, Ext3, Ext4 (GNU/Linux)
Estos 3 los podríamos agrupar, ya que van de la mano. Así como Apple y Microsoft tienen sus propios sistemas de archivos, estos 3 (cada uno evolución del anterior) son utilizados en distribuciones GNU/Linux. El principal inconveniente es que solo puede ser utilizado en este sistema operativo.
Significa Extended4 (Fourth Extended Filesystem), o conocido como EXT4, lo utiliza la mayoría de las distribuciones Linux. Tiene soporte para SSD y ya viene incluido en el Kernel, por lo que no tenemos que configurar nada para usarlo.
Sistema de archivos SWAP (GNU/Linux)
Más conocido como espacio de intercambio (archivo de paginación o memoria virtual), es una zona del disco (fichero o partición) que se usa para guardar las imágenes de los procesos que no se mantuvieron en la memoria física. En lugar de utilizar espacio en la memoria RAM, el swap utiliza el disco duro para almacenar datos temporales, así se reduce el uso de la RAM. En una época muy utilizada, ya hoy en día no tanto, por lo que dejo de ser una necesidad en Ubuntu desde la versión 17.04. De no crearse la partición SWAP, el sistema operativo por defecto crea un archivo llamado swapfile.
A su vez, con la implementación de discos SSD y las cantidades que hoy se manejan de memoria RAM, dejo de ser necesario la utilización de swap, dejando de lado casos puntuales.
Sistema de archivos BtrFS (GNU/Linux)
Es el acrónimo de “b-tree file system”. Fue diseñado por Oracle con la intención de suceder a EXT. Aunque al día de hoy no lo ha conseguido. Este sistema de archivos cuenta con una gran cantidad de funciones avanzadas que mejoran el funcionamiento general de todo tipo de unidades, como desfragmentación avanzada y compresión de datos.
Utilizado en algunas distribuciones de Linux por defecto, esta optimizado para SSD ya que no activa journaling por defecto, cuenta con TRIM y más funciones. Una de las desventajas es que por ser muy nuevo, aun es algo inestable, lo que nos puede ocasionar errores y con ello perdida de datos.
Sistema de archivos F2FS (GNU/Linux)
Este sistema de archivos fue creado originalmente para trabajar con unidades basadas en NAND, como memorias USB o unidades SSD, diseñado por Samsung. Cuando formateamos una unidad con él, se divide el espacio en partes muy pequeñas de manera que en lugar de reutilizar un mismo sector una y otra vez, los datos se van guardando en diferentes partes, alargando la vida útil de las unidades.
No es recomendado para unidades mecánicas, como el anterior al ser un sistema moderno está sujeto a errores, no se destaca ni por rendimiento, ni velocidad, ni seguridad de los datos, tampoco es un sistema que esté disponible para todas las distribuciones Linux aun.
Sistema de archivos XFS (GNU/Linux)
Este sistema de archivos fue creado originalmente para estaciones de trabajo especializadas en renderizado 3D. Sin embargo, a pesar de tener ya tiene entre nosotros, es uno de los sistemas de archivos favoritos de muchos usuarios.
Este formato está especialmente diseñado para sistemas que realizan muchas lecturas y escrituras de datos en los discos. Ofrecen un rendimiento sobresaliente incluso en situaciones de máxima carga de trabajo, cuenta con sistemas de validación de datos para evitar perder información.
Su principal ventaja es el gran rendimiento en unidades o grupo de unidades muy grandes, optimizado para funcionar en unidades SSD, TRIM y funciones de desfragmentación. Como desventaja podríamos decir que tiene journaling y no se puede desactivar, más complejo de configurar por lo que necesitas conocimientos avanzados.
Sistema de archivos OpenZFS (GNU/Linux)
Es un fork de Zettabyte File System (ZFS) desarrollado por Sun. Luego de muchos problemas con su licencia, finalmente en 2010 comenzó el desarrollo de este sistema y en el 2016 aprox. distribuciones como Ubuntu lo soportan de forma nativa.
OpenZFS es un sistema de archivos especialmente diseñado para funcionar en sistemas RAID. Además de ser compatible con todas las configuraciones de RAID este sistema de archivos se destaca por soportar también RAIDZ, una configuración que mejora la redundancia y reduce la perdida de datos ante corte inesperado de energía.
Como el anterior, este no es un sistema para usuarios sin conocimientos, y no se recomienda usarlo si no se va a configurar un RAID. RAIDZ consume gran cantidad de recursos.
Conclusión
Como resumen, podríamos decir que:
FAT32 para pendrives o unidades externas, en las cuales no vayamos a guardar archivos de más de 4GB, sino podes usar sin limitaciones exFAT. Ambos compatibles con todos los sistemas operativos.
NTFS si sos usuario de Windows, para discos externos USB, discos internos HDD o SSD.
Si sos usuario de MacOS, HFS+ es el indicado para sus discos.
Si utilizamos distribuciones GNU/Linux, y queremos ir a lo seguro, EXT4 es el indicado para instalar el Sistema Operativo, el que recomienda la mayoría de las distros. Ahora si queremos sacar más partido de los discos SSD, podríamos elegir BtrFS, teniendo en cuenta alguno de sus riesgos.
Por ultimo en servidores como por ejemplo NAS, donde vamos a configurar RAID, y queremos sacar el máximo provecho, podemos utilizar ZFS u OpenZFS, montando luego las unidades en RAIDZ.
En futuros posteos vamos a hablar de Tabla de particiones, métodos de formateo y demás guías que nos ayudaran a entender mejor el sistema de archivos.