GNU/Linux >> Tutoriales Linux >  >> Linux

¿Qué es ZFS? ¿Por qué la gente está loca por eso?

Hoy, echaremos un vistazo a ZFS, un sistema de archivos avanzado. Discutiremos de dónde proviene, qué es y por qué es tan popular entre los técnicos y las empresas.

Aunque soy de los EE. UU., prefiero pronunciarlo ZedFS en lugar de ZeeFS porque suena más genial. Eres libre de pronunciarlo como quieras.

Nota:Verá que ZFS se repite muchas veces en el artículo. Cuando hablo de características e instalación, me refiero a OpenZFS. ZFS (desarrollado por Oracle) y OpenZFS han seguido caminos diferentes desde que Oracle cerró OpenSolaris. (Más sobre eso más adelante).

Historia de ZFS

El sistema de archivos Z (ZFS) fue creado por Matthew Ahrens y Jeff Bonwick en 2001. ZFS fue diseñado para ser un sistema de archivos de próxima generación para OpenSolaris de Sun Microsystems. En 2008, ZFS fue portado a FreeBSD. El mismo año se inició un proyecto para migrar ZFS a Linux. Sin embargo, dado que ZFS tiene una licencia común de desarrollo y distribución, que es incompatible con la licencia pública general de GNU, no se puede incluir en el kernel de Linux. Para solucionar este problema, la mayoría de las distribuciones de Linux ofrecen métodos para instalar ZFS.

Poco después de que Oracle comprara Sun Microsystems, OpenSolaris pasó a ser de código cerrado. Todo el desarrollo posterior de ZFS también se convirtió en código cerrado. Muchos de los desarrolladores de ZFS no estaban contentos con este giro de los acontecimientos. Dos tercios de los principales desarrolladores de ZFS, incluidos Ahrens y Bonwick, abandonaron Oracle debido a esta decisión. Se unieron a otras empresas y crearon el proyecto OpenZFS en septiembre de 2013. El proyecto ha encabezado el desarrollo de código abierto de ZFS.

Volvamos al problema de la licencia mencionado anteriormente. Dado que el proyecto OpenZFS está separado de Oracle, algunos probablemente se pregunten por qué no cambian la licencia a algo que sea compatible con la GPL para que pueda incluirse en el kernel de Linux. Según el sitio web de OpenZFS, cambiar la licencia implicaría ponerse en contacto con cualquier persona que haya contribuido con el código a la implementación actual de OpenZFS (incluyendo el código ZFS común inicial hasta OpenSolaris) y obtenga su permiso para cambiar la licencia. Dado que este trabajo es casi imposible (porque algunos colaboradores pueden estar muertos o ser difíciles de encontrar), han decidido mantener la licencia que tienen.

¿Qué es ZFS? ¿Cuáles son sus características?

Como dije antes, ZFS es un sistema de archivos avanzado. Como tal, tiene algunas características interesantes. Tales como:

  • Almacenamiento compartido
  • Copia en escritura
  • Instantáneas
  • Verificación de integridad de datos y reparación automática
  • RAID-Z
  • Tamaño máximo de archivo de 16 exabytes
  • Almacenamiento máximo de 256 cuatrillones de zettabytes

Analicemos un par de esas funciones.

Almacenamiento agrupado

A diferencia de la mayoría de los sistemas de archivos, ZFS combina las características de un sistema de archivos y un administrador de volúmenes. Esto significa que, a diferencia de otros sistemas de archivos, ZFS puede crear un sistema de archivos que abarque una serie de unidades o un grupo. No solo eso, sino que también puede agregar almacenamiento a un grupo agregando otra unidad. ZFS se encargará de la partición y el formateo.

Copia en escritura

Copy-on-write es otra característica interesante (y genial). En la mayoría de los sistemas de archivos, cuando se sobrescriben los datos, se pierden para siempre. En ZFS, la nueva información se escribe en un bloque diferente. Una vez que se completa la escritura, los metadatos de los sistemas de archivos se actualizan para señalar la nueva información. Esto garantiza que si el sistema falla (o sucede algo más) mientras se realiza la escritura, se conservarán los datos antiguos. También significa que el sistema no necesita ejecutar fsck después de un bloqueo del sistema.

Instantáneas

La copia en escritura conduce a otra característica de ZFS:las instantáneas. ZFS utiliza instantáneas para realizar un seguimiento de los cambios en el sistema de archivos. “La instantánea contiene la versión original del sistema de archivos, y el sistema de archivos en vivo contiene los cambios realizados desde que se tomó la instantánea. No se utiliza espacio adicional. A medida que se escriben nuevos datos en el sistema de archivos en vivo, se asignan nuevos bloques para almacenar estos datos”. Si se elimina un archivo, también se elimina la referencia de la instantánea. Por lo tanto, las instantáneas están diseñadas principalmente para realizar un seguimiento de los cambios en los archivos, pero no para la adición y creación de archivos.

Las instantáneas se pueden montar como de solo lectura para recuperar una versión anterior de un archivo. También es posible revertir el sistema en vivo a una instantánea anterior. Todos los cambios realizados desde la instantánea se perderán.

Verificación de integridad de datos y reparación automática

Cada vez que se escriben datos nuevos en ZFS, se crea una suma de comprobación para esos datos. Cuando se leen esos datos, se verifica la suma de comprobación. Si la suma de comprobación no coincide, ZFS sabe que se ha detectado un error. ZFS intentará corregir el error automáticamente.

RAID-Z

ZFS puede manejar RAID sin necesidad de software o hardware adicional. Como era de esperar, ZFS tiene su propia implementación de RAID:RAID-Z. RAID-Z es en realidad una variación de RAID-5. Sin embargo, está diseñado para superar el error de agujero de escritura RAID-5, "en el que los datos y la información de paridad se vuelven inconsistentes después de un reinicio inesperado". Para utilizar el nivel básico de RAID-Z (RAID-Z1), necesita al menos dos discos para almacenamiento y uno para paridad. RAID-Z2 requería al menos dos unidades de almacenamiento y dos unidades para paridad. RAID-Z3 requiere al menos dos unidades de almacenamiento y tres unidades para paridad. Cuando se agregan unidades a los grupos RAID-Z, deben agregarse en múltiplos de dos.

Enorme potencial de almacenamiento

Cuando se creó ZFS, se diseñó para ser la última palabra en sistemas de archivos. En un momento en que la mayoría de los sistemas de archivos eran de 64 bits, los creadores de ZFS decidieron saltar directamente a 128 bits para probarlo en el futuro. Esto significa que ZFS "ofrece 16 billones de billones de veces la capacidad de los sistemas de 32 o 64 bits". De hecho, Jeff Bonwick (uno de los creadores) dijo que alimentar un "pool de almacenamiento de 128 bits completamente lleno requeriría, literalmente, más energía que hervir los océanos".

¿Cómo instalar ZFS?

Si desea usar ZFS listo para usar, necesitará instalar FreeBSD o un sistema operativo que use el kernel de illumos. illumos es una bifurcación del kernel de OpenSolaris.

De hecho, la compatibilidad con ZFS es una de las razones principales por las que algunos usuarios experimentados de Linux optan por BSD.

Si desea probar ZFS en Linux, puede usarlo como su sistema de archivos de almacenamiento. Recientemente, Ubuntu 19.10 introdujo la capacidad de instalar ZFS en su raíz de forma inmediata. Obtenga más información sobre el uso de ZFS en Ubuntu. Si está interesado en probar ZFS en Linux, el proyecto ZFS en Linux tiene varios tutoriales sobre cómo hacerlo.

Advertencia

Este artículo ha cantado los beneficios de ZFS. Ahora déjame contarte un problema rápido con ZFS. El uso de RAID-Z puede ser costoso debido a la cantidad de unidades que necesita comprar para agregar espacio de almacenamiento.

¿Alguna vez has usado ZFS? ¿Cómo fue tu experiencia? Háganos saber en los comentarios a continuación.

Si encuentra este artículo interesante, tómese un minuto para compartirlo en las redes sociales, Hacker News o Reddit.



Linux
  1. ¿Cuáles son los usos legítimos del comando "tocar"?

  2. ¿Qué hace Exec 3?

  3. ¿Por qué Ls y Hexdump no están de acuerdo sobre el tamaño del archivo?

  4. ¿Cuáles son las diferencias entre grep, awk y sed?

  5. ¿Qué son la página mapeada en memoria y la página anónima?

¿Qué es umask en Linux?

¿Por qué la gente está loca por Arch Linux? ¿Qué tiene de especial?

¿Qué son los inodos en Linux?

¿Qué es el archivo .bashrc en Linux?

¿Por qué cPanel? ¿Qué funciones tiene cPanel?

¿Qué es un archivo .sh?