robot de la enciclopedia para niños

ZFS (sistema de archivos) para niños

Enciclopedia para niños
Datos para niños
ZFS (sistema de archivos)
Desarrollador
Nombre completo Z File System
Sistemas operativos compatibles
  • Solaris (Oracle)
  • Illumos y derivados (OpenZFS)
  • Familia BSD y derivados
  • OSv
  • Darwin (macOS Mountain Lion y posteriores)
  • Linux (módulo de kernel nativo o vía FUSE)
  • Windows (driver nativo en desarrollo)
Introducción (OpenSolaris)
Identificador de la partición 83 (en Linux)
Estructuras
Contenido del directorio Extensible Hash table
Límites
Máximo número de archivos 248
Tamaño máximo del volumen 16 exabytes
Características
Bifurcaciones Sí (llamada Extended Attributes)
Atributos POSIX
Permisos de acceso a archivos POSIX
Compresión transparente
Cifrado transparente Sí (solo en Oracle Solaris, planeado en OpenZFS)
Deduplicación de datos
Copy-on-write

ZFS es un sistema de archivos muy avanzado. Fue creado por la empresa Sun Microsystems (ahora parte de Oracle). Su nombre original significaba "Zettabyte File System", que se refiere a una cantidad de datos gigantesca.

ZFS fue anunciado oficialmente en septiembre de 2004. Su código final se lanzó el 16 de noviembre de 2005. Esto fue parte de una versión de OpenSolaris, un sistema operativo.

El equipo que diseñó e implementó ZFS estuvo liderado por Jeff Bonwick.

Este sistema es especial por varias razones. Puede manejar una cantidad enorme de información. También combina dos funciones en una: la de organizar archivos y la de gestionar el espacio de almacenamiento. Además, es fácil de usar y muy eficiente.

¿Cómo organiza ZFS la información?

Espacios de almacenamiento (Storage Pools)

Imagina que tienes muchos discos duros. Los sistemas de archivos normales usan un solo disco. ZFS, en cambio, los agrupa todos en un gran "espacio de almacenamiento" virtual. Es como tener una piscina gigante para guardar todos tus datos.

Estos espacios se forman con uno o más "dispositivos virtuales" o vdevs. Un vdev puede ser cualquier tipo de dispositivo de almacenamiento. Un espacio de almacenamiento puede ser simple (sin copias de seguridad), en "espejo" (con copias idénticas de los datos) o "RAID Z" (con información extra para recuperar datos si algo falla).

También se pueden añadir dispositivos más rápidos, como los SSD, para que ZFS funcione aún mejor. Estos dispositivos actúan como una memoria temporal o un registro de lo que se va a guardar.

Sistemas de archivos ligeros (Datasets)

Dentro de un espacio de almacenamiento ZFS, puedes crear "sistemas de archivos ligeros" llamados datasets. Crear uno es tan rápido como hacer una carpeta nueva. Pero un dataset es mucho más potente que una simple carpeta.

Puedes poner límites de espacio a cada dataset. Esto asegura que siempre haya espacio disponible para lo que necesitas. Es como darle a cada usuario o proyecto su propio espacio garantizado.

Existen dos tipos principales de datasets:

  • filesystem: Este es el tipo más común. Sirve para guardar archivos y carpetas normales. La parte principal de un zpool (el espacio de almacenamiento) ya es un dataset de este tipo.
  • zvol: Este tipo actúa como un disco virtual. Es muy útil para crear discos para programas de virtualización. También se puede usar para la memoria de intercambio (swap) de un sistema operativo.

Otro tipo de dataset son las instantáneas (snapshots). Una instantánea es como una foto de tus datos en un momento exacto. Son muy útiles para volver a versiones anteriores de archivos si los modificas por error. También existen los bookmarks, que son una forma especial de instantánea para mover datos entre diferentes zpools de manera eficiente.

¿Qué tan grande puede ser ZFS?

ZFS fue diseñado para ser increíblemente grande. Usa una tecnología de 128 bits, lo que le da una capacidad gigantesca.

Los límites de ZFS son tan grandes que es casi imposible alcanzarlos en la práctica. Jeff Bonwick, uno de sus creadores, dijo que "llenar un sistema de archivos de 128 bits excedería los límites cuánticos de almacenamiento de la Tierra".

Algunos de los límites teóricos de ZFS son:

  • 248 — Número de instantáneas que puedes tener (más de 200 billones).
  • 248 — Número de archivos en un sistema de archivos (más de 200 billones).
  • 16 exabytes — Tamaño máximo de un solo archivo o de un sistema de archivos.
  • 3 × 1023 petabytes (casi 300 zettabytes) — Tamaño máximo de un zpool.
  • 264 — Número de dispositivos en un zpool.

Para que te hagas una idea, si crearas 1000 archivos cada segundo, tardarías unos 9000 años en alcanzar el límite de archivos de ZFS. ¡Es una capacidad enorme!

Características avanzadas de ZFS

Autorreparación (Self-healing)

ZFS es muy inteligente y puede repararse a sí mismo. Cuando guarda datos, les añade una especie de "huella digital" (llamada hash). Luego, verifica esa huella cada vez que lee los datos.

Si ZFS detecta que los datos están dañados, busca una copia buena. Si tienes un pool en modo "espejo" o "RAID-Z", ZFS usa esas copias para corregir el error. Así, tus datos siempre están protegidos y correctos.

Modelo transaccional Copy-on-write

ZFS usa un método llamado "copiar al escribir". Esto significa que cuando cambias un archivo, ZFS no lo modifica directamente. En su lugar, guarda los cambios en un lugar nuevo. Luego, actualiza la información para que apunte a los datos nuevos.

Este sistema asegura que tus datos nunca se pierdan por un corte de energía. Siempre tendrás una versión completa y correcta. Para que sea más rápido, ZFS agrupa varios cambios antes de guardarlos.

Instantáneas (Snapshots)

Como ZFS no sobrescribe los datos, crear una instantánea es muy rápido. Simplemente, ZFS "recuerda" dónde estaban los datos antiguos. Las instantáneas no ocupan mucho espacio, porque solo guardan los cambios nuevos.

Puedes crear instantáneas de tus datasets de tipo filesystem o zvol. También puedes crear "clones" de las instantáneas. Un clon es una copia que puedes modificar, y los cambios solo afectan al clon, no a la instantánea original.

Bandas de tamaño variable (Dynamic Striping)

ZFS puede distribuir los datos de forma inteligente entre todos los discos de un zpool. A medida que añades más discos, ZFS los usa para guardar la información de manera equilibrada. Esto hace que la lectura y escritura de datos sea mucho más rápida.

Bloques de tamaño variable

ZFS guarda los datos en "bloques" que pueden tener diferentes tamaños, hasta 128 kilobytes. Esto ayuda a que el sistema sea más eficiente. Si activas la compresión, ZFS puede guardar los datos en bloques más pequeños. Esto no solo ahorra espacio, sino que también acelera la lectura y escritura de datos.

Otras capacidades

  • ZFS puede dar prioridad a ciertas operaciones de lectura y escritura.
  • Organiza las operaciones de entrada y salida de forma muy eficiente.
  • Puede predecir qué datos vas a necesitar y cargarlos antes.
  • Funciona como un sistema de archivos estándar, por lo que la mayoría de los programas pueden usarlo sin problemas.

Posibles desafíos de ZFS

Conjuntos de datos con compresión

Si usas la compresión en tus datasets, a veces las herramientas normales de tu computadora pueden mostrar un espacio libre diferente al real. Para saber el espacio exacto, es mejor usar las herramientas propias de ZFS.

Fragmentación

Debido a cómo ZFS guarda los datos (el método "copiar al escribir"), los discos duros mecánicos pueden volverse un poco más lentos con el tiempo. Esto se llama fragmentación. Los discos de estado sólido (SSD) no se ven tan afectados por esto.

ZFS no tiene una herramienta para "desfragmentar" los discos. Si necesitas hacerlo, tendrías que copiar todos los datos a otro lugar y luego volver a copiarlos.

Véase también

Kids robot.svg En inglés: ZFS Facts for Kids

  • ReFS
  • Btrfs
  • Comparación de sistemas de archivos
kids search engine
ZFS (sistema de archivos) para Niños. Enciclopedia Kiddle.