El sistema operativo Linux es bastante flexible. Puede ser utilizado tanto en escritorios como en servidores. Lo principal es elegir el sistema de archivos correcto para tus necesidades. En este artículo, analizaremos en detalle el sistema de archivos ZFS.
Contenido
- ¿Qué es un sistema de archivos ZFS?
- Historia de la evolución del sistema de archivos ZFS
- Estructura del sistema de archivos ZFS
- Las características del sistema de archivos ZFS
- Desventajas del sistema de archivos ZFS
- Seguridad de datos en ZFS
- ZFS y Mac OS
- Las mejores alternativas al sistema de archivos ZFS
¿Qué es un sistema de archivos ZFS?
La tarea principal de los desarrolladores del sistema de archivos ZFS fue crear un sistema de archivos moderno que pudiera trabajar con grandes cantidades de datos. Al mismo tiempo, el rendimiento no debería verse degradado, además el sistema de archivos ZFS debía tener todas las características modernas.
Sun Microsystems quería crear un nuevo tipo de sistema de archivos para su sistema operativo Solaris, que estuviera a la vanguardia de su tiempo. Por eso incluyó muchas innovaciones como la estructura de diseño de datos, soporte de agrupación y más.
Incluso el concepto de un sistema de archivos ZFS fue innovador: ZFS necesitaba incluir un administrador de volúmenes lógicos, proporcionar una gestión de volumen conveniente y adherirse a los principios de un sistema de archivos ligero. Además, ZFS debía ofrecer redundancia.
En 2005, el equipo de desarrollo liderado por Matthew Arena y Jeff Bonwick presentó un sistema de archivos que cumplía con todos estos requisitos.
ZFS es muy rápido, tecnológicamente innovador y efectivo. Además, es de 128 bits en lugar de los habituales 64 bits. De esta manera, los desarrolladores pusieron un gran énfasis en su relevancia en el futuro.
ZFS fue capaz de reunir muchas soluciones que se utilizan en otros sistemas de archivos de forma aislada. Por ejemplo, ZFS utiliza de alguna manera LVM (Administrador de volúmenes), RAID de Linux (aunque un poco modificado), algunas características de XFS, instantáneas y más. Si desea obtener más información sobre RAID de Linux, lea el artículo «RAID: ¿qué es y qué tipo es mejor usar?«
La tecnología LVM se describe en detalle en el artículo «LVM: qué es, ventajas y desventajas«.
No se puede omitir que el sistema de archivos ZFS utiliza la tecnología copy-on-write. Esto significa que cuando se sobrescribe un archivo, no se reescribe físicamente. En su lugar, se asigna un nuevo bloque y se escribe una nueva copia dentro. Luego, en lugar de eliminar los archivos antiguos, se actualizan los metadatos que apuntan al nuevo bloque, y la información original solo se eliminará si no hay suficiente espacio en disco. Esta solución aumenta significativamente las capacidades de recuperación de datos, ya que siempre se puede ver la versión anterior de los archivos en caso de que la información esté corrupta.
El uso del método copy-on-write permite no utilizar el registro de diario y aún así poder recuperar datos perdidos.
Todas estas ventajas y el gran potencial de ZFS son las razones por las que todavía se habla tanto de él.
Historia de la evolución del sistema de archivos ZFS
Después del lanzamiento del sistema de archivos ZFS, su código fuente se integró en el kernel del sistema operativo Solaris. En el mismo año, comenzó la portabilidad a otros sistemas operativos y para 2008, ZFS se había portado a FreeBSD. Después de eso, comenzó la portabilidad de ZFS a Linux. Sin embargo, el proceso de portabilidad se complicó debido al cambio de licencia a la Licencia Común de Desarrollo y Distribución (CDDL). Aunque se basa en los principios de distribución de software libre, es incompatible con los principios de la licencia GNU/Linux. La portabilidad se completó, pero en el sistema operativo Linux, ZFS solo se puede usar de manera muy limitada. Para resolver este problema, las distribuciones modernas de Linux ofrecen métodos para instalar ZFS. Es decir, el usuario primero instala la distribución de Linux deseada y luego utiliza el método sugerido para instalar el sistema de archivos ZFS.
Los métodos más efectivos para instalar ZFS en Linux son utilizar el módulo FUSE o instalar un módulo ZFS en el kernel de Linux por separado.
Poco después, Oracle adquirió Sun Microsystems junto con todas las licencias y cerró el código de ZFS. Por lo tanto, no fue posible un desarrollo libre adicional. Esto hizo que muchos desarrolladores clave cambiaran a otras empresas y crearan el proyecto OpenZFS, que se adhiere al concepto de desarrollo libre.
Sin embargo, la licencia nunca cambió, ya que muchos desarrolladores de ZFS tenían los derechos de autor. En consecuencia, fue más fácil dejar las cosas como estaban y utilizar los métodos propuestos por las distribuciones de Linux, en lugar de buscar permiso de cada uno de los desarrolladores.
Actualmente existen 37 versiones del sistema de archivos ZFS, cada una con nuevas mejoras.
También vale la pena señalar que el sistema de archivos ZFS está evolucionando activamente. Su perspectiva técnica, junto con mejoras continuas de rendimiento y características, puede hacer que ZFS sea el sistema número uno para sistemas de servidores en los próximos años.
Estructura del sistema de archivos ZFS
La estructura del sistema de archivos ZFS está organizada como un árbol de Merkle o árbol hash. Vale la pena mencionar que el árbol hash se utiliza en la cadena de bloques de criptomonedas (por ejemplo, en Bitcoin o Ethereum). De hecho, el sistema de archivos ZFS es un administrador de discos y LVM en un solo paquete.
Es decir, en el nivel más bajo, varios discos físicos se combinan en un grupo virtual – VDEV (Dispositivo Virtual). Puede haber una gran cantidad de estos grupos. La redundancia también se proporciona en este nivel. La paridad se realiza dentro de cada grupo de discos. Es posible elegir Mirror (análogo de RAID-1) o RAID-Z (funciona según el principio de RAID-5 con varias modificaciones). Este último tipo se divide en varios niveles: RAID-Z1 – utiliza dos discos para el almacenamiento de datos y un disco para los datos de paridad, RAID-Z2 – utiliza dos discos para el almacenamiento de datos y dos discos para los datos de paridad, y RAID-Z3 – utiliza dos discos para los datos de usuario y tres discos para los datos de paridad. El tipo de RAID-Z se elige según lo que el usuario necesite más: confiabilidad o rendimiento.
Luego, todos los VDEVs (grupos de discos) se combinan en un pool común. Este es un LVM, que combina varios arreglos RAID.
Encima de esta estructura se encuentra el propio sistema de archivos con los datos del usuario.
La estructura del sistema de archivos ZFS permite agregar nuevos grupos de discos de forma dinámica, y cada grupo puede tener su propia configuración. En el nivel de software, se trata como un VDEV separado independientemente de la configuración.
Las características del sistema de archivos ZFS
En esta parte del artículo, echaremos un vistazo a las características más interesantes del sistema de archivos ZFS y explicaremos por qué a la gente le gusta tanto.
Los desarrolladores han implementado una gran cantidad de características útiles en ZFS, las más destacadas son las siguientes:
1) Se ha aumentado enormemente el tamaño máximo de archivo escribible, que ahora es de 16 exbibytes;
2) El tamaño máximo de un volumen es de 256 zebibytes, y el número de dichos volúmenes puede ser de cualquier tamaño;
3) ZFS es un sistema de archivos de 128 bits – en la práctica, esto significa que proporciona la capacidad de 16 millones de sistemas de 32 o 64 bits. Por lo tanto, es casi imposible llenar un pool de 128 bits. Uno de los creadores de ZFS, Jeff Bonwick, incluso bromeó al respecto. Dijo que se necesita más energía para alimentar un pool de ese tamaño que para hervir el océano;
4) Los snapshots se utilizan para monitorear el estado del sistema – el snapshot registra el estado original del sistema de archivos y el estado en el momento actual. Si se elimina un archivo del sistema, también se elimina del snapshot. Al escribir nueva información, se resaltan nuevos bloques. La característica principal es que no se necesita espacio adicional para los snapshots;
5) Verificación de integridad de datos y corrección automática de datos – cada vez que se escribe nueva información, el sistema de archivos crea un checksum para ella. Al leer los datos, se compara el checksum. Si hay una discrepancia, el sistema de archivos marca el error y trata de corregirlo automáticamente;
6) Al menos dos copias de checksums para metadatos – por lo general, se encuentran en diferentes lugares para mayor seguridad;
7) Alta velocidad de compresión sobre la marcha – mucho depende del algoritmo. Por ejemplo, si se utiliza el algoritmo LZ4, ZFS alcanzará fácilmente una velocidad de escritura de 800 MB/seg por núcleo, y la velocidad de lectura es de un mínimo de 4,5 GB/seg.
8) Atomicidad – el sistema de archivos ZFS es atómico debido al árbol de Merkle. La integridad del bloque está garantizada por la naturaleza transaccional del sistema de archivos. Esta solución permite no utilizar el registro WAL. La desventaja de esta solución es la necesidad de conocer muchos comandos y utilidades;
9) Soporte de agrupación – los discos se pueden unir en grupos VDEV, que a su vez se pueden unir en pools;
10) Mayor rendimiento – ZFS puede trabajar con cientos de pools (no discos, sino pools) sin pérdida de rendimiento;
11) La capacidad de crear un sistema de archivos ligero – en ZFS, manipular el sistema de archivos es más fácil que en otros sistemas de archivos. Todas las manipulaciones se parecen más a trabajar con directorios que con un sistema de archivos;
12) Gracias al método de copia en escritura, nunca perderá un archivo mientras lo escribe en el disco;
13) Canal de transferencia de datos automáticamente expandible – al conectar discos adicionales, es necesario aumentar el ancho de banda, de lo contrario, el rendimiento disminuirá. ZFS ha tenido esto en cuenta. Por lo tanto, al conectar nuevos VDEVs, el sistema de archivos configurará automáticamente los discos y expandirá el canal de datos;
14) La capacidad de programar el trabajo de datos – esta característica se vuelve útil en servidores, por ejemplo. Es cuando hay «tiempo de inactividad de la CPU» que se pueden utilizar esos recursos para trabajar con datos. De esta manera, se pueden utilizar los recursos de hardware de su máquina de manera más eficiente.
Como puede ver, ZFS es un sistema de archivos muy potente y ni siquiera hemos mencionado todas las características finas que lo hacen tan útil. Pero lo más importante es que con ZFS puede crear un sistema de almacenamiento local enorme, rápido y expandible.
Desventajas del sistema de archivos ZFS
En el párrafo anterior de este artículo, revisamos las principales ventajas del sistema de archivos ZFS. Ahora es el momento de hablar de sus desventajas, que también son bastante numerosas:
- No es demasiado rápido en discos duros – debido a su estructura, ZFS requiere un acceso aleatorio rápido, del cual los discos duros no pueden presumir. En consecuencia, a medida que aumenta el número de discos duros, el rendimiento puede disminuir. Ha habido casos en los que una computadora doméstica con un disco duro no muy rápido ha visto su rendimiento disminuir tanto que es insoportable usar la computadora. Por lo tanto, solo se puede obtener todo el potencial en unidades SSD;
- Necesidad de conocer un gran número de comandos y utilidades – para obtener el máximo efecto, debe ser capaz de «comunicarse» con este sistema de archivos en su idioma;
- Incapacidad para cambiar la estructura del disco en VDEV – solo se puede configurar cada grupo de discos VDEV una vez (número de discos, redundancia, etc.). No es posible hacer cambios una vez que se ha aplicado la configuración. Actualmente se está desarrollando un parche que podrá solucionar este problema;
- Necesidad de una gran cantidad de RAM – aunque los requisitos mínimos especifican un mínimo de 4 GB de RAM, en la práctica es mejor usar al menos 8 GB o más.
- Alto nivel de fragmentación de datos – ocurre debido a las peculiaridades del sistema de archivos. Actualmente, no hay un desfragmentador normal;
- Imposibilidad de reducir el número de VDEV – se planea una solución para este problema pronto;
- Falta de asignación de cuotas entre los usuarios – en este momento, este problema se resuelve creando un sistema de archivos de diferentes tamaños para cada usuario;
- No se pueden mezclar VDEV y ZPOOL – es decir, no se puede crear un equivalente de RAID 10 o RAID 01, ya que la redundancia solo se puede organizar en un nivel inferior, dentro de cada grupo de discos VDEV;
- Degradación severa del rendimiento si se eliminan grandes cantidades de datos;
- Aumento de la carga en el procesador al usar RAID Z – ocurre debido a la necesidad de calcular los datos de paridad. También es la situación con el software RAID 5. Sin embargo, RAID 5 generalmente se usa en almacenamientos más pequeños. Los almacenamientos ZFS suelen ser muy grandes, por lo que el hardware debe ser muy potente;
A pesar de todas las desventajas, actualmente no hay ningún sistema de archivos que pueda manejar almacenamientos grandes de manera tan efectiva como ZFS. Y dada la activa evolución de ZFS, la razón de su popularidad se vuelve clara.
Seguridad de datos en ZFS
El sistema de archivos ZFS presta mucha atención no solo al trabajo con grandes cantidades de datos, sino también a su seguridad. Está claro que no sería muy agradable si los datos de un conjunto de cien discos desaparecieran repentinamente debido a una falla en un solo disco.
Uno de los métodos para proteger los datos ha sido la implementación de RAID Z. Como se mencionó anteriormente, esta tecnología se basa en RAID 5. Si falla algún disco, RAID Z permite simplemente sacar el disco duro dañado e insertar uno nuevo. Lo principal es que debe ser del mismo tamaño. El sistema de archivos se encargará del resto. El usuario solo notará una ligera degradación del rendimiento causada por el recálculo del algoritmo que restaura los datos en el nuevo disco.
El sistema de archivos ZFS analiza automáticamente su estado comparando instantáneas. Si hay un problema, ZFS corregirá el error y, si eso no es posible, se mostrará un mensaje. En cualquier caso, se podrá recuperar los datos. Esto se debe al método «copia en escritura» en el que se basa todo ZFS. Cuando se sobrescribe un dato, se escribe un nuevo bloque sin cambiar el dato antiguo.
También evita la pérdida de datos debido a cortes de energía mientras se está modificando el archivo.
SHA-256 es otra tecnología que protege los datos de pérdidas. El sistema de archivos genera automáticamente un valor de suma de comprobación cuando se escribe el archivo y recalcula el valor de suma de comprobación cuando se copia el archivo. Si hay alguna diferencia en la comparación, ZFS reconocerá inmediatamente los errores.
El uso de las tecnologías mencionadas reduce notablemente la posibilidad de pérdida o corrupción de datos. Es una de las razones por las que muchos proyectos grandes han prestado atención al sistema de archivos ZFS.
ZFS y Mac OS
En 2009, Apple anunció que estaba portando el sistema de archivos ZFS a Mac OS. Desafortunadamente, el proceso de portabilidad no se completó y para la presentación de la nueva versión de Mac OS, todas las referencias a ZFS habían sido eliminadas. Las razones del rechazo de ZFS no fueron reveladas.
Dado que Windows es, con mucho, el sistema más popular del mundo, tarde o temprano se vuelve necesario abrir una unidad ZFS en Windows. Puede haber muchas razones para esto, desde la transferencia básica de archivos hasta tareas más especializadas.
En cualquier caso, el sistema operativo Windows no admite ZFS de forma nativa, ya que los sistemas de archivos nativos de Windows son NTFS y FAT (16, 32).
¿Pero qué pasa si necesitas abrir una unidad ZFS en Windows?
Hay varias formas de hacerlo.
La primera forma es utilizar RS Partition Recovery. El programa es fácil de usar y te permite trabajar con los datos en la unidad ZFS de inmediato. Ni siquiera necesitas reiniciar tu ordenador.
Pero lo más importante es que puedes recuperar datos perdidos si se pierden, la estructura de archivos del disco está dañada o el disco está formateado. La función de recuperación hace que RS Partition Recovery se destaque de la competencia porque a menudo Windows no funciona correctamente con el sistema de archivos ZFS. Esto puede llevar a la pérdida de datos importantes.
También vale la pena mencionar que RS Partition Recovery admite TODOS los sistemas de archivos modernos, incluyendo Btrfs, Ext2,3,4, XFS, HFS, UFS y muchos otros.
Todas las características mencionadas anteriormente de RS Partition Recovery lo convierten en un programa «imprescindible» para cada usuario.
La segunda forma es instalar un controlador especial llamado ZFSin.
Este controlador agrega soporte para ZFS a nivel nativo. Pero las cosas no son tan buenas como parecen a primera vista.
El hecho es que con bastante frecuencia el controlador ZFSin entra en conflicto con los controladores del sistema operativo. Pero lo más triste es que esto casi siempre lleva a una Pantalla Azul de la Muerte de Windows o a un bloqueo del sistema operativo.
Además, si tu unidad flash ZFS está conectada al sistema durante un conflicto de controladores, hay una alta probabilidad de que los datos o la estructura lógica de la unidad se corrompan.
Por lo tanto, en lugar de soportar ZFS en Windows, es muy probable que termines con un sistema operativo no funcional. Esa es la razón por la cual el primer método es preferible al segundo.
Las mejores alternativas al sistema de archivos ZFS
Si después de analizar todas las ventajas y desventajas, no estás seguro de que quieras utilizar ZFS, o no quieres aprender muchos comandos, puedes considerar las mejores alternativas a este sistema de archivos.
Si hablamos de alternativas para uso doméstico, la mejor alternativa es utilizar Ext4. Sí, es más lento que ZFS y no tiene muchas características modernas.
Pero, al mismo tiempo, es robusto y fácil de manejar y puede proporcionar suficiente rendimiento para la mayoría de los usuarios.
Cuando hablamos de utilizarlo en un servidor, la mejor alternativa es el sistema de archivos Btrfs. Al igual que ZFS, todavía está en desarrollo, pero es más fácil de mantener y lo suficientemente rápido para manejar. Las desventajas de Btrfs son su ecosistema inmaduro y la cantidad relativamente pequeña de datos que maneja (en comparación con ZFS).
La elección de un sistema de archivos depende completamente de las necesidades y habilidades del usuario. Solo te hemos mostrado las fortalezas y debilidades de ZFS y esperamos haber ayudado a tomar la decisión correcta.