ZFS (anteriormente: sistema de archivos Zettabyte ) combina un sistema de archivos con un administrador de volumen . Comenzó como parte del sistema operativo Sun Microsystems Solaris en 2001. Gran parte de Solaris, incluido ZFS, se publicaron bajo una licencia de código abierto como OpenSolaris durante aproximadamente 5 años a partir de 2005, antes de colocarse bajo una licencia de código cerrado cuando Oracle Corporation adquirió Sol en 2009/2010. Durante 2005 a 2010, la versión de código abierto de ZFS se trasladó a Linux , Mac OS X (continuado como MacZFS ) y FreeBSD.. En 2010, el proyecto illumos bifurcó una versión reciente de OpenSolaris, para continuar su desarrollo como un proyecto de código abierto, incluido ZFS. En 2013, se fundó OpenZFS para coordinar el desarrollo de ZFS de código abierto. [3] [4] [5] OpenZFS mantiene y administra el código central de ZFS, mientras que las organizaciones que utilizan ZFS mantienen el código específico y los procesos de validación necesarios para que ZFS se integre en sus sistemas. OpenZFS se usa ampliamente en sistemas similares a Unix. [6] [7] [8]
Desarrollador | Sun Microsystems ( adquirido por Oracle Corporation en 2009) |
---|---|
Escrito en | C , C ++ |
Familia OS | Unix ( System V versión 4 ) |
Estado de trabajo | Actual |
Modelo fuente | Mixto de código abierto / cerrado |
Versión inicial | Junio de 2006 | Solaris 10 6/06 ("U2")
Último lanzamiento | 11.4 [1] / 28 de agosto de 2018 |
Objetivo de marketing | Estación de trabajo , servidor |
Plataformas | SPARC , x86-64 , IA-32 (excepto Solaris 11), PowerPC (solo Solaris 2.5.1) |
Licencia | Varios |
Página web oficial | www |
Versión inicial | Portado a varios sistemas entre 2006 y 2010. Bifurcado de OpenSolaris agosto de 2010 |
---|---|
Repositorio | github .com / openzfs / zfs |
Escrito en | C |
Sistema operativo | OpenSolaris , distribuciones de illumos , OpenIndiana , FreeBSD , Mac OS X Server 10.5 (solo soporte de solo lectura), NetBSD , Linux a través de un módulo de kernel de terceros ("ZFS en Linux") [2] o ZFS- FUSE , OSv |
Licencia | CDDL de código abierto |
Sitio web | open-zfs .org |
Descripción general
La gestión de los datos almacenados generalmente implica dos aspectos: la gestión del volumen físico de uno o más dispositivos de almacenamiento en bloque , como discos duros y tarjetas SD, y su organización en dispositivos de bloques lógicos tal como los ve el sistema operativo (a menudo con un administrador de volumen , un controlador RAID). , administrador de matrices o controlador de dispositivo adecuado ) y la gestión de datos y archivos que se almacenan en estos dispositivos de bloque lógico (un sistema de archivos u otro almacenamiento de datos).
- Ejemplo: un conjunto RAID de 2 discos duros y un disco de almacenamiento en caché SSD está controlado por el sistema RST de Intel , parte del chipset y firmware integrados en una computadora de escritorio. El usuario de Windows ve esto como un solo volumen, que contiene una unidad con formato NTFS de sus datos, y NTFS no es necesariamente consciente de las manipulaciones que pueden ser necesarias (como leer / escribir en la unidad de caché o reconstruir la matriz RAID si falla un disco). La gestión de los dispositivos individuales y su presentación como un solo dispositivo es distinta de la gestión de los archivos almacenados en ese dispositivo aparente.
ZFS es inusual porque, a diferencia de la mayoría de los otros sistemas de almacenamiento, unifica ambos roles y actúa como administrador de volumen y sistema de archivos . Por lo tanto, tiene un conocimiento completo tanto de los discos físicos como de los volúmenes (incluido su estado y estado, su disposición lógica en volúmenes) y también de todos los archivos almacenados en ellos. ZFS está diseñado para garantizar (sujeto al hardware adecuado ) que los datos almacenados en discos no se pierdan debido a errores físicos o un procesamiento incorrecto por parte del hardware o sistema operativo , o eventos de descomposición de bits y corrupción de datos que pueden ocurrir con el tiempo, y su control completo de El sistema de almacenamiento se utiliza para garantizar que cada paso, ya sea relacionado con la administración de archivos o la administración de discos , se verifique, confirme, corrija si sea necesario y optimice, de una manera que las tarjetas controladoras de almacenamiento y los administradores de archivos y volúmenes separados no pueden lograr.
ZFS también incluye un mecanismo para conjunto de datos y del nivel de la piscina instantáneas y la replicación , incluyendo instantánea de clonación que se describe por el FreeBSD documentación como uno de sus "la mayoría de características de gran alcance", que tiene características que "incluso otros sistemas de archivos con falta funcionalidad instantánea". [9] Se pueden tomar una gran cantidad de instantáneas, sin degradar el rendimiento, lo que permite que las instantáneas se utilicen antes de operaciones riesgosas del sistema y cambios de software, o que se tome una instantánea completa de todo el sistema de archivos de producción ("en vivo") varias veces por hora. para mitigar la pérdida de datos debido a errores del usuario o actividad maliciosa. Las instantáneas se pueden revertir "en vivo" o se pueden ver los estados anteriores del sistema de archivos, incluso en sistemas de archivos muy grandes, lo que genera ahorros en comparación con los procesos formales de copia de seguridad y restauración. [9] Las instantáneas también se pueden clonar para formar nuevos sistemas de archivos independientes. Se encuentra disponible una instantánea a nivel de grupo (conocida como "punto de control") que permite la reversión de operaciones que pueden afectar la estructura de todo el grupo, o que agregan o eliminan conjuntos de datos completos.
Historia
Sun Microsystems (hasta 2010)
En 1987, AT&T Corporation y Sun anunciaron que estaban colaborando en un proyecto para fusionar las variantes de Unix más populares en el mercado en ese momento: Berkeley Software Distribution , UNIX System V y Xenix . Esto se convirtió en Unix System V Release 4 (SVR4). [10] El proyecto fue lanzado bajo el nombre Solaris , que se convirtió en el sucesor de SunOS 4 (aunque SunOS 4.1. X micro lanzamientos se llamaron retroactivamente Solaris 1 ). [11]
ZFS fue diseñado e implementado por un equipo en Sun dirigido por Jeff Bonwick , Bill Moore [12] y Matthew Ahrens. Se anunció el 14 de septiembre de 2004, [13] pero el desarrollo comenzó en 2001. [14] El código fuente para ZFS se integró en el tronco principal del desarrollo de Solaris el 31 de octubre de 2005, [15] y se lanzó para desarrolladores como parte de build 27 de OpenSolaris el 16 de noviembre de 2005. En junio de 2006, Sun anunció que ZFS se incluyó en la actualización principal 6/06 de Solaris 10 . [dieciséis]
Históricamente, Solaris se desarrolló como software propietario . Sun Microsystems fue un firme defensor del software de código abierto. En junio de 2005, Sun lanzó la mayor parte del código base bajo la licencia CDDL y fundó el proyecto de código abierto OpenSolaris . [17] Sun fue uno de los primeros defensores del software de código abierto, y con OpenSolaris, Sun quería construir una comunidad de desarrolladores y usuarios en torno al software. En Solaris 10 6/06 ("U2"), Sun agregó el sistema de archivos ZFS . Durante los siguientes 5 años (2006 a 2010), Sun actualizó con frecuencia ZFS con nuevas funciones, y ZFS se trasladó a Linux , Mac OS X (continuado como MacZFS ) y FreeBSD , bajo esta licencia de código abierto.
En un momento se dijo que el nombre significaba "Zettabyte File System", [18] pero en 2006, el nombre ya no se consideraba una abreviatura. [19] Un sistema de archivos ZFS puede almacenar hasta 256 cuatrillones de zettabytes (ZB).
En septiembre de 2007, NetApp demandó a Sun alegando que ZFS infringía algunas de las patentes de NetApp sobre Write Anywhere File Layout . Sun presentó una contrademanda en octubre del mismo año alegando lo contrario. Las demandas terminaron en 2010 con un acuerdo no revelado. [20]
Desarrollo posterior
Las versiones portadas de ZFS comenzaron a aparecer en 2005. Después de la adquisición de Sun por parte de Oracle en 2010, la versión de Oracle de ZFS se convirtió en código cerrado y el desarrollo de versiones de código abierto procedió de forma independiente, coordinado por OpenZFS desde 2013.
Características
Resumen
Entre los ejemplos de funciones específicas de ZFS se incluyen:
- Diseñado para el almacenamiento de datos a largo plazo y tamaños de almacén de datos escalados indefinidamente con cero pérdida de datos y alta capacidad de configuración.
- Suma de comprobación jerárquica de todos los datos y metadatos , lo que garantiza que todo el sistema de almacenamiento se pueda verificar en el uso y se confirme que se almacena correctamente, o que se corrija si está dañado. Las sumas de comprobación se almacenan con el bloque padre de un bloque , en lugar de con el bloque en sí. Esto contrasta con muchos sistemas de archivos donde las sumas de verificación (si se mantienen) se almacenan con los datos, de modo que si los datos se pierden o se corrompen, es probable que la suma de verificación se pierda o sea incorrecta.
- Puede almacenar un número de copias de datos o metadatos especificado por el usuario, o tipos de datos seleccionados, para mejorar la capacidad de recuperación de la corrupción de datos de archivos y estructuras importantes.
- Reversión automática de cambios recientes en el sistema de archivos y los datos, en algunas circunstancias, en caso de error o inconsistencia.
- Autorreparación automática y (generalmente) silenciosa de inconsistencias de datos y fallas de escritura cuando se detectan, para todos los errores en los que los datos se pueden reconstruir. Los datos se pueden reconstruir utilizando todo lo siguiente: sumas de comprobación de detección y corrección de errores almacenadas en el bloque padre de cada bloque; múltiples copias de datos (incluidas las sumas de verificación) almacenadas en el disco; intenciones de escritura registradas en el SLOG (ZIL) para escrituras que deberían haber ocurrido pero no ocurrieron (después de un corte de energía); datos de paridad de discos y volúmenes RAID / RAID-Z; copias de datos de discos y volúmenes reflejados.
- Manejo nativo de niveles RAID estándar y diseños RAID ZFS adicionales (" RAID-Z "). Los niveles RAID-Z distribuyen los datos solo en los discos necesarios, para mayor eficiencia (muchos sistemas RAID distribuyen indiscriminadamente en todos los dispositivos), y la suma de comprobación permite minimizar la reconstrucción de datos incoherentes o corruptos en aquellos bloques con defectos;
- Manejo nativo de dispositivos de almacenamiento en caché y almacenamiento por niveles, que suele ser una tarea relacionada con el volumen. Dado que ZFS también comprende el sistema de archivos, puede utilizar el conocimiento relacionado con los archivos para informar, integrar y optimizar su manejo de almacenamiento por niveles, algo que un dispositivo independiente no puede hacer;
- Manejo nativo de instantáneas y respaldo / replicación que puede hacerse eficiente integrando el manejo de volumen y archivo. Las herramientas relevantes se proporcionan a un nivel bajo y requieren scripts y software externos para su utilización.
- Compresión y deduplicación de datos nativa , aunque esta última se maneja en gran medida en RAM y consume mucha memoria.
- Reconstrucción eficiente de matrices RAID: un controlador RAID a menudo tiene que reconstruir un disco completo, pero ZFS puede combinar el conocimiento del disco y el archivo para limitar la reconstrucción a los datos que faltan o están dañados, lo que acelera enormemente la reconstrucción;
- No se ve afectado por los cambios de hardware RAID que afectan a muchos otros sistemas. En muchos sistemas, si falla el hardware RAID autónomo, como una tarjeta RAID, o los datos se mueven a otro sistema RAID, el sistema de archivos carecerá de información que estaba en el hardware RAID original, que es necesaria para administrar los datos en el RAID formación. Esto puede provocar una pérdida total de datos a menos que se pueda adquirir un hardware casi idéntico y utilizarlo como un "trampolín". Dado que ZFS administra RAID por sí mismo, un grupo de ZFS se puede migrar a otro hardware, o se puede reinstalar el sistema operativo, y las estructuras y los datos de RAID-Z serán reconocidos y accesibles inmediatamente por ZFS nuevamente.
- Capacidad para identificar datos que se habrían encontrado en un caché pero que se han descartado recientemente; esto permite que ZFS reevalúe sus decisiones de almacenamiento en caché a la luz de un uso posterior y facilita niveles muy altos de aciertos de caché (las tasas de aciertos de caché de ZFS suelen ser superiores al 80%);
- Se pueden utilizar estrategias de almacenamiento en caché alternativas para datos que de otro modo causarían retrasos en el manejo de datos. Por ejemplo, las escrituras síncronas que pueden ralentizar el sistema de almacenamiento se pueden convertir en escrituras asíncronas escribiéndolas en un dispositivo de almacenamiento en caché separado rápido, conocido como SLOG (a veces llamado ZIL - ZFS Intent Log).
- Altamente ajustable: muchos parámetros internos se pueden configurar para una funcionalidad óptima.
- Puede usarse para clústeres de alta disponibilidad y computación, aunque no está completamente diseñado para este uso.
Integridad de los datos
Una característica importante que distingue a ZFS de otros sistemas de archivos es que está diseñado con un enfoque en la integridad de los datos al proteger los datos del usuario en el disco contra la corrupción silenciosa de los datos causada por la degradación de los datos , subidas de tensión ( picos de voltaje ), errores en el firmware del disco , fantasmas. escrituras (la escritura anterior no llegó al disco), lecturas / escrituras mal dirigidas (el disco accede al bloque incorrecto), errores de paridad DMA entre la matriz y la memoria del servidor o desde el controlador (ya que la suma de comprobación valida los datos dentro de la matriz), errores del controlador (los datos terminan en el búfer incorrecto dentro del kernel), sobrescrituras accidentales (como cambiar a un sistema de archivos en vivo), etc.
Un estudio de 1999 mostró que ni ninguno de los sistemas de archivos más importantes y extendidos (como UFS , Ext , [21] XFS , JFS o NTFS ), ni el hardware RAID (que tiene algunos problemas con la integridad de los datos ) brindan protección suficiente contra los datos. problemas de corrupción. [22] [23] [24] [25] La investigación inicial indica que ZFS protege los datos mejor que los esfuerzos anteriores. [26] [27] También es más rápido que UFS [28] [29] y puede verse como su reemplazo.
Dentro de ZFS, la integridad de los datos se logra mediante el uso de una suma de comprobación basada en Fletcher o un hash SHA-256 en todo el árbol del sistema de archivos. [30] Cada bloque de datos se suma a la suma de verificación y el valor de la suma de verificación se guarda en el puntero a ese bloque, en lugar de en el bloque real en sí. A continuación, se suma la suma de verificación del puntero del bloque, y el valor se guarda en su puntero. Esta suma de verificación continúa hasta el final de la jerarquía de datos del sistema de archivos hasta el nodo raíz, que también se suma a la suma de verificación, creando así un árbol Merkle . [30] La corrupción de datos en vuelo o las lecturas / escrituras fantasmas (los datos escritos / leídos en sumas de comprobación correctamente, pero en realidad son incorrectos) son indetectables por la mayoría de los sistemas de archivos, ya que almacenan la suma de comprobación con los datos. ZFS almacena la suma de comprobación de cada bloque en su puntero de bloque principal para que todo el grupo se autovalide. [30]
Cuando se accede a un bloque, independientemente de si se trata de datos o metadatos, su suma de comprobación se calcula y se compara con el valor de la suma de comprobación almacenada de lo que "debería" ser. Si las sumas de verificación coinciden, los datos se pasan por la pila de programación al proceso que los solicitó; si los valores no coinciden, ZFS puede reparar los datos si el grupo de almacenamiento proporciona redundancia de datos (como con la duplicación interna ), asumiendo que la copia de datos no está dañada y con sumas de comprobación coincidentes. [31] Opcionalmente, es posible proporcionar redundancia adicional en el grupo especificando copias = 2 (o copias = 3 o más), lo que significa que los datos se almacenarán dos (o tres veces) en el disco, reduciéndose a la mitad (o, por copias = 3 , reduciendo a un tercio) la capacidad de almacenamiento del disco. [32] Además, algunos tipos de datos utilizados por ZFS para administrar el grupo se almacenan varias veces de forma predeterminada por seguridad, incluso con la configuración predeterminada de copias = 1.
Si existen otras copias de los datos dañados o se pueden reconstruir a partir de sumas de comprobación y datos de paridad , ZFS utilizará una copia de los datos (o la volverá a crear mediante un mecanismo de recuperación RAID) y volverá a calcular la suma de comprobación, lo que idealmente resultará en la reproducción del original. valor esperado. Si los datos pasan esta verificación de integridad, el sistema puede actualizar todas las copias defectuosas con datos en buen estado y se restaurará la redundancia.
La consistencia de los datos almacenados en la memoria, como los datos almacenados en caché en el ARC, no se verifica de manera predeterminada, ya que se espera que ZFS se ejecute en hardware de calidad empresarial con RAM de corrección de errores , pero la capacidad de verificar los datos en la memoria existe y puede ser habilitado usando "banderas de depuración". [33]
RAID ("RAID-Z")
Para que ZFS pueda garantizar la integridad de los datos, necesita varias copias de los datos, normalmente distribuidas en varios discos. Normalmente, esto se logra mediante el uso de un controlador RAID o el denominado RAID "suave" (integrado en un sistema de archivos ).
Evitación de controladores RAID de hardware
Si bien ZFS puede funcionar con dispositivos RAID de hardware , ZFS generalmente funcionará de manera más eficiente y con una mayor protección de los datos, si tiene acceso sin procesar a todos los dispositivos de almacenamiento y los discos no están conectados al sistema mediante hardware, firmware u otro "software". RAID, o cualquier otro controlador que modifique la ruta habitual de E / S de ZFS a disco . Esto se debe a que ZFS se basa en el disco para una vista honesta, para determinar el momento en que se confirma que los datos están escritos de manera segura, y tiene numerosos algoritmos diseñados para optimizar el uso del almacenamiento en caché , el vaciado de caché y el manejo del disco.
Si un dispositivo de terceros realiza el almacenamiento en caché o presenta las unidades a ZFS como un sistema único, o sin la vista de bajo nivel en la que se basa ZFS, existe una probabilidad mucho mayor de que el sistema funcione de manera menos óptima y de que no se pueda prevenir una falla. por ZFS o recuperado rápida o completamente por ZFS. Por ejemplo, si se utiliza una tarjeta RAID de hardware, es posible que ZFS no pueda determinar el estado de los discos o si la matriz RAID está degradada o se está reconstruyendo, es posible que no conozca todos los datos dañados y no pueda colocar los datos de manera óptima en los discos. , realice solo reparaciones selectivas, controle cómo se equilibran las reparaciones con el uso continuo y es posible que no pueda realizar reparaciones incluso si normalmente pudiera hacerlo, ya que la tarjeta RAID de hardware interferirá. Los controladores RAID también suelen agregar datos dependientes del controlador a las unidades, lo que evita que el software RAID acceda a los datos del usuario. Si bien es posible leer los datos con un controlador RAID de hardware compatible, esto no siempre es posible, y si la tarjeta controladora presenta una falla, es posible que no haya un reemplazo disponible y que otras tarjetas no comprendan los datos personalizados del fabricante, que son necesario para administrar y restaurar una matriz en una nueva tarjeta.
Por lo tanto, a diferencia de la mayoría de los otros sistemas, donde se utilizan tarjetas RAID o similares para descargar recursos y procesamiento y mejorar el rendimiento y la fiabilidad, con ZFS se recomienda encarecidamente no utilizar estos métodos, ya que normalmente reducen el rendimiento y la fiabilidad del sistema.
Si los discos deben conectarse a través de un RAID u otro controlador, se recomienda utilizar un HBA simple (adaptador de host) o una tarjeta de distribución , o configurar la tarjeta en modo JBOD (es decir, desactivar las funciones de almacenamiento en caché y RAID), para permitir que los dispositivos se adjunta, pero la ruta de E / S de ZFS a disco no se modifica. Una tarjeta RAID en modo JBOD aún puede interferir, si tiene un caché o dependiendo de su diseño, y puede desconectar unidades que no responden a tiempo (como se ha visto con muchos discos duros de consumo eficiente de energía), y como tales, pueden requerir unidades habilitadas para recuperación de errores por tiempo limitado (TLER) / CCTL / ERC para evitar caídas de unidades, por lo que no todas las tarjetas son adecuadas incluso con las funciones RAID desactivadas. [34]
Enfoque de ZFS: RAID-Z y duplicación
En lugar de RAID de hardware, ZFS emplea RAID "suave", que ofrece RAID-Z ( basado en paridad como RAID 5 y similar) y duplicación de disco (similar a RAID 1 ). Los esquemas son muy flexibles.
RAID-Z es un esquema de distribución de datos / paridad como RAID-5 , pero utiliza un ancho de banda dinámica: cada bloque es su propia banda RAID, independientemente del tamaño del bloque, lo que da como resultado que cada escritura RAID-Z sea una escritura de banda completa. Esto, cuando se combina con la semántica transaccional de copia en escritura de ZFS, elimina el error de escritura . RAID-Z también es más rápido que el RAID 5 tradicional porque no necesita realizar la secuencia habitual de lectura-modificación-escritura . [35]
Como todas las franjas son de diferentes tamaños, la reconstrucción de RAID-Z tiene que atravesar los metadatos del sistema de archivos para determinar la geometría real de RAID-Z. Esto sería imposible si el sistema de archivos y la matriz RAID fueran productos separados, mientras que se vuelve factible cuando existe una vista integrada de la estructura lógica y física de los datos. Revisar los metadatos significa que ZFS puede validar cada bloque con su suma de comprobación de 256 bits a medida que avanza, mientras que los productos RAID tradicionales generalmente no pueden hacer esto. [35]
Además de manejar fallas de todo el disco, RAID-Z también puede detectar y corregir la corrupción silenciosa de datos , ofreciendo "datos de autorreparación": al leer un bloque RAID-Z, ZFS lo compara con su suma de verificación, y si los discos de datos lo hicieron no devuelve la respuesta correcta, ZFS lee la paridad y luego averigua qué disco devolvió datos incorrectos. Luego, repara los datos dañados y devuelve los datos correctos al solicitante. [35]
RAID-Z y la duplicación no requieren ningún hardware especial: no necesitan NVRAM para su confiabilidad y no necesitan almacenamiento en búfer de escritura para un buen rendimiento o protección de datos. Con RAID-Z, ZFS proporciona un almacenamiento rápido y confiable utilizando discos económicos y básicos. [ lenguaje promocional ] [35]
Hay cinco modos RAID-Z diferentes: striping (similar a RAID 0, no ofrece redundancia), RAID-Z1 (similar a RAID 5, permite que un disco falle), RAID-Z2 (similar a RAID 6, permite que dos discos funcionen) falla), RAID-Z3 (una configuración RAID 7 [a] , permite que fallen tres discos) y la duplicación (similar a RAID 1, permite que todos los discos fallen menos uno). [37]
La necesidad de RAID-Z3 surgió a principios de la década de 2000 cuando las unidades de capacidad de varios terabytes se volvieron más comunes. Este aumento en la capacidad, sin un aumento correspondiente en las velocidades de rendimiento, significó que la reconstrucción de un arreglo debido a una unidad defectuosa podría tardar "semanas o incluso meses" en completarse. [36] Durante este tiempo, los discos más antiguos de la matriz se verán afectados por la carga de trabajo adicional, lo que podría provocar daños en los datos o fallas en la unidad. Al aumentar la paridad, RAID-Z3 reduce la posibilidad de pérdida de datos simplemente aumentando la redundancia. [38]
Resilvering y scrub (sincronización de matrices y verificación de integridad)
ZFS no tiene una herramienta equivalente a fsck (la herramienta estándar de verificación y reparación de datos de Unix y Linux para sistemas de archivos). [39] En cambio, ZFS tiene una función de limpieza incorporada que examina regularmente todos los datos y repara la corrupción silenciosa y otros problemas. Algunas diferencias son:
- fsck debe ejecutarse en un sistema de archivos fuera de línea, lo que significa que el sistema de archivos debe desmontarse y no se puede utilizar mientras se repara, mientras que scrub está diseñado para usarse en un sistema de archivos activo y montado, y no necesita que el sistema de archivos ZFS se desconecte.
- fsck generalmente solo verifica los metadatos (como el registro del diario) pero nunca verifica los datos en sí. Esto significa que, después de un fsck, es posible que los datos aún no coincidan con los datos originales almacenados.
- fsck no siempre puede validar y reparar datos cuando las sumas de verificación se almacenan con datos (a menudo es el caso en muchos sistemas de archivos), porque las sumas de verificación también pueden estar corruptas o ilegibles. ZFS siempre almacena sumas de comprobación por separado de los datos que verifican, lo que mejora la confiabilidad y la capacidad de depuración para reparar el volumen. ZFS también almacena múltiples copias de datos; los metadatos, en particular, pueden tener más de 4 o 6 copias (múltiples copias por disco y múltiples espejos de disco por volumen), lo que mejora en gran medida la capacidad de depuración para detectar y reparar daños extensos en el volumen. en comparación con fsck.
- scrub comprueba todo, incluidos los metadatos y los datos. El efecto se puede observar comparando fsck con los tiempos de depuración; a veces, un fsck en un RAID grande se completa en unos minutos, lo que significa que solo se verificaron los metadatos. Atravesar todos los metadatos y datos en un RAID grande lleva muchas horas, que es exactamente lo que hace scrub.
La recomendación oficial de Sun / Oracle es limpiar los discos de nivel empresarial una vez al mes y los discos básicos más baratos una vez a la semana. [40] [41]
Capacidad
ZFS es un sistema de archivos de 128 bits , [42] [15] por lo que puede abordar 1,84 × 10 19 veces más datos que los sistemas de 64 bits como Btrfs . Los límites máximos de ZFS están diseñados para ser tan grandes que nunca deberían encontrarse en la práctica. Por ejemplo, llenar completamente un solo zpool con 2 128 bits de datos requeriría 3 x 10 unidades de disco duro de 24 TB. [43]
Algunos límites teóricos en ZFS son:
- 16 exbibytes (2 64 bytes): tamaño máximo de un solo archivo
- 2 48 : número de entradas en cualquier directorio individual [44]
- 16 exbibytes: tamaño máximo de cualquier atributo
- 2 56 : número de atributos de un archivo (en realidad limitado a 2 48 para el número de archivos en un directorio)
- 256 mil billones de zebibytes (2 128 bytes): tamaño máximo de cualquier zpool
- 2 64 : número de dispositivos en cualquier zpool
- 2 64 : número de sistemas de archivos en un zpool
- 2 64 : número de zpools en un sistema
Cifrado
Con Oracle Solaris, la capacidad de cifrado en ZFS [45] está integrada en la canalización de E / S. Durante las escrituras, un bloque puede comprimirse, encriptarse, sumarse a verificación y luego deduplicarse, en ese orden. La política de cifrado se establece en el nivel del conjunto de datos cuando se crean los conjuntos de datos (sistemas de archivos o ZVOL). Las claves de ajuste proporcionadas por el usuario / administrador se pueden cambiar en cualquier momento sin tener que desconectar el sistema de archivos. El comportamiento predeterminado es que los conjuntos de datos secundarios hereden la clave de ajuste. Las claves de cifrado de datos se generan aleatoriamente en el momento de la creación del conjunto de datos. Solo los conjuntos de datos descendientes (instantáneas y clones) comparten claves de cifrado de datos. [46] Se proporciona un comando para cambiar a una nueva clave de cifrado de datos para el clon o en cualquier momento; esto no vuelve a cifrar los datos ya existentes, sino que utiliza un mecanismo de clave maestra cifrada.
A partir de 2019[actualizar]la función de cifrado también está completamente integrada en OpenZFS 0.8.0 disponible para distribuciones Debian y Ubuntu Linux. [47]
Eficiencia de lectura / escritura
ZFS asignará automáticamente el almacenamiento de datos a todos los vdev de un grupo (y todos los dispositivos de cada vdev) de una manera que generalmente maximiza el rendimiento del grupo. ZFS también actualizará su estrategia de escritura para tener en cuenta los nuevos discos agregados a un grupo, cuando se agreguen.
Como regla general, ZFS asigna escrituras entre vdev según el espacio libre en cada vdev. Esto asegura que los vdevs que ya tienen proporcionalmente menos datos, reciban más escrituras cuando se van a almacenar nuevos datos. Esto ayuda a garantizar que a medida que se utilice más el grupo, no se desarrolle la situación de que algunos vdevs se llenen, lo que obligará a que se produzcan escrituras en un número limitado de dispositivos. También significa que cuando se leen datos (y las lecturas son mucho más frecuentes que las escrituras en la mayoría de los usos), se pueden leer diferentes partes de los datos desde tantos discos como sea posible al mismo tiempo, lo que brinda un rendimiento de lectura mucho mayor. Por lo tanto, como regla general, los pools y vdevs deben administrarse y agregarse nuevo almacenamiento, para que no surja la situación de que algunos vdevs en un pool estén casi llenos y otros casi vacíos, ya que esto hará que el pool sea menos eficiente.
Otras características
Dispositivos de almacenamiento, repuestos y cuotas
Los grupos pueden tener repuestos dinámicos para compensar los discos defectuosos. Al duplicar, los dispositivos de bloque se pueden agrupar de acuerdo con el chasis físico, de modo que el sistema de archivos pueda continuar en caso de falla de un chasis completo.
La composición del grupo de almacenamiento no se limita a dispositivos similares, sino que puede consistir en colecciones heterogéneas y ad-hoc de dispositivos, que ZFS agrupa a la perfección, distribuyendo posteriormente espacio a diversos sistemas de archivos [ aclaración necesaria ] según sea necesario. Se pueden agregar tipos de dispositivos de almacenamiento arbitrarios a grupos existentes para expandir su tamaño. [48]
La capacidad de almacenamiento de todos los vdev está disponible para todas las instancias del sistema de archivos en zpool. Se puede establecer una cuota para limitar la cantidad de espacio que puede ocupar una instancia del sistema de archivos, y se puede establecer una reserva para garantizar que el espacio estará disponible para una instancia del sistema de archivos.
Mecanismos de almacenamiento en caché: ARC, L2ARC, grupos de transacciones, ZIL, SLOG, VDEV especial
ZFS utiliza diferentes capas de caché de disco para acelerar las operaciones de lectura y escritura. Idealmente, todos los datos deberían almacenarse en la RAM, pero eso suele ser demasiado caro. Por lo tanto, los datos se almacenan en caché automáticamente en una jerarquía para optimizar el rendimiento frente al costo; [49] a menudo se denominan "grupos de almacenamiento híbridos". [50] Los datos a los que se accede con frecuencia se almacenarán en la RAM, y los datos a los que se accede con menos frecuencia se pueden almacenar en medios más lentos, como unidades de estado sólido (SSD). Los datos a los que no se accede con frecuencia no se almacenan en caché y se dejan en los discos duros lentos. Si de repente se leen muchos datos antiguos, ZFS los moverá automáticamente a SSD o RAM.
Los mecanismos de almacenamiento en caché de ZFS incluyen uno para lecturas y escrituras, y en cada caso, pueden existir dos niveles de almacenamiento en caché, uno en la memoria de la computadora (RAM) y otro en el almacenamiento rápido (generalmente unidades de estado sólido (SSD)), para un total de cuatro cachés.
Donde se almacena | Leer caché | Escribir caché | |
---|---|---|---|
Caché de primer nivel | En RAM | Conocido como ARC , debido a su uso de una variante del algoritmo de caché de reemplazo adaptativo (ARC). La RAM siempre se utilizará para el almacenamiento en caché, por lo que este nivel siempre está presente. La eficiencia del algoritmo ARC significa que a menudo no será necesario acceder a los discos, siempre que el tamaño del ARC sea lo suficientemente grande. Si la RAM es demasiado pequeña, difícilmente habrá ARC; en este caso, ZFS siempre necesita acceder a los discos subyacentes, lo que repercute considerablemente en el rendimiento. | Manejado por medio de "grupos de transacciones" : las escrituras se recopilan durante un período corto (generalmente de 5 a 30 segundos) hasta un límite determinado, y cada grupo se escribe en el disco idealmente mientras se recopila el siguiente grupo. Esto permite que las escrituras se organicen de manera más eficiente para los discos subyacentes con el riesgo de una pérdida menor de datos de las transacciones más recientes debido a una interrupción del suministro eléctrico o una falla de hardware. En la práctica, el riesgo de pérdida de energía se evita mediante el registro en diario de escritura de ZFS y el grupo de caché de escritura de segundo nivel de SLOG / ZIL (ver más abajo), por lo que las escrituras solo se perderán si ocurre una falla de escritura al mismo tiempo que una pérdida total de la nivel SLOG, y solo cuando la configuración relacionada con la escritura síncrona y el uso de SLOG se establezcan de una manera que permita que surja tal situación. Si los datos se reciben más rápido de lo que se pueden escribir, la recepción de datos se detiene hasta que los discos puedan ponerse al día. |
Caché de segundo nivel | En dispositivos de almacenamiento rápido (que se pueden agregar o quitar de un sistema "en vivo" sin interrupciones en las versiones actuales de ZFS, aunque no siempre en versiones anteriores) | Conocido como L2ARC ("Nivel 2 ARC"), opcional. ZFS almacenará en caché tantos datos en L2ARC como sea posible, que pueden ser decenas o cientos de gigabytes en muchos casos. L2ARC también acelerará considerablemente la deduplicación si toda la tabla de deduplicación se puede almacenar en caché en L2ARC. Puede llevar varias horas completar el L2ARC desde vacío (antes de que ZFS haya decidido qué datos están "activos" y deben almacenarse en caché). Si se pierde el dispositivo L2ARC, todas las lecturas se enviarán a los discos, lo que ralentizará el rendimiento, pero no sucederá nada más (no se perderán datos). | Conocido como SLOG o ZIL ("Registro de intenciones de ZFS"): los términos a menudo se usan incorrectamente. Un SLOG (dispositivo de registro secundario) es un caché dedicado opcional en un dispositivo separado, para registrar escrituras, en caso de un problema del sistema. Si existe un dispositivo SLOG, se utilizará para el registro de intención de ZFS como un registro de segundo nivel, y si no se proporciona un dispositivo de caché por separado, el ZIL se creará en los dispositivos de almacenamiento principales. El SLOG, por lo tanto, técnicamente, se refiere al disco dedicado al que se descarga el ZIL, para acelerar el grupo. Estrictamente hablando, ZFS no usa el dispositivo SLOG para almacenar en caché sus escrituras en disco. Por el contrario, utiliza SLOG para garantizar que las escrituras se capturen en un medio de almacenamiento permanente lo más rápido posible, de modo que, en caso de pérdida de energía o falla de escritura, no se pierda ningún dato reconocido como escrito. El dispositivo SLOG permite que ZFS almacene rápidamente las escrituras y las informe rápidamente como escritas, incluso para dispositivos de almacenamiento como discos duros que son mucho más lentos. En el curso normal de la actividad, nunca se hace referencia al SLOG ni se lee, y no actúa como caché; su propósito es salvaguardar los datos en vuelo durante los pocos segundos que se toman para la recopilación y "escritura", en caso de que la escritura falle. Si todo va bien, entonces el grupo de almacenamiento se actualizará en algún momento dentro de los próximos 5 a 60 segundos, cuando el grupo de transacciones actual se escriba en el disco (ver arriba), momento en el cual las escrituras guardadas en el SLOG simplemente serán ignorado y sobrescrito. Si la escritura finalmente falla, o el sistema sufre un bloqueo o falla que impide su escritura, entonces ZFS puede identificar todas las escrituras que ha confirmado que fueron escritas, leyendo el SLOG (la única vez que se lee), y usar este para reparar completamente la pérdida de datos. Esto se vuelve crucial si tiene lugar una gran cantidad de escrituras síncronas (como con ESXi , NFS y algunas bases de datos ), [51] donde el cliente requiere la confirmación de una escritura exitosa antes de continuar su actividad; el SLOG permite que ZFS confirme que la escritura es exitosa mucho más rápidamente que si tuviera que escribir en la tienda principal cada vez, sin el riesgo que implica engañar al cliente en cuanto al estado del almacenamiento de datos. Si no hay un dispositivo SLOG, parte del conjunto de datos principal se utilizará para el mismo propósito, aunque esto es más lento. Si se pierde el dispositivo de registro, es posible perder las últimas escrituras, por lo tanto, el dispositivo de registro debe reflejarse. En versiones anteriores de ZFS, la pérdida del dispositivo de registro podía provocar la pérdida de todo el zpool, aunque ya no es así. Por lo tanto, se debe actualizar ZFS si se planea utilizar un dispositivo de registro independiente. |
También existen otras cachés, divisiones de caché y colas dentro de ZFS. Por ejemplo, cada VDEV tiene su propia caché de datos, y la caché ARC se divide entre los datos almacenados por el usuario y los metadatos utilizados por ZFS, con control sobre el equilibrio entre estos.
Clase especial de VDEV
En ZFS 0.8 y posteriores, es posible configurar una clase VDEV especial para almacenar preferentemente metadatos del sistema de archivos y, opcionalmente, la tabla de deduplicación de datos (DDT) y pequeños bloques del sistema de archivos. Esto permite, por ejemplo, crear un VDEV especial en un almacenamiento de estado sólido rápido para almacenar los metadatos, mientras que los datos del archivo normal se almacenan en discos giratorios. Esto acelera las operaciones intensivas en metadatos, como el recorrido del sistema de archivos, la limpieza y la recuperación, sin el gasto de almacenar todo el sistema de archivos en el almacenamiento de estado sólido.
Modelo transaccional de copia en escritura
ZFS utiliza un modelo de objetos transaccionales de copia en escritura . Todos los punteros de bloque dentro del sistema de archivos contienen una suma de comprobación de 256 bits o un hash de 256 bits (actualmente una opción entre Fletcher-2 , Fletcher-4 o SHA-256 ) [52] del bloque de destino, que se verifica cuando el bloque es leer. Los bloques que contienen datos activos nunca se sobrescriben en su lugar; en su lugar, se asigna un nuevo bloque, se escriben datos modificados en él y, a continuación, los bloques de metadatos que hacen referencia a él se leen, reasignan y escriben de manera similar. Para reducir la sobrecarga de este proceso, las actualizaciones múltiples se agrupan en grupos de transacciones, y la caché de escritura ZIL ( intent log ) se usa cuando se requiere semántica de escritura síncrona. Los bloques están organizados en un árbol, al igual que sus sumas de comprobación (consulte el esquema de firmas de Merkle ).
Instantáneas y clones
Una ventaja de la copia en escritura es que, cuando ZFS escribe datos nuevos, los bloques que contienen los datos antiguos se pueden conservar, lo que permite mantener una versión instantánea del sistema de archivos. Las instantáneas de ZFS son consistentes (reflejan la totalidad de los datos tal como existían en un solo punto en el tiempo) y se pueden crear de manera extremadamente rápida, ya que todos los datos que componen la instantánea ya están almacenados, con todo el grupo de almacenamiento a menudo instantáneas varias veces por hora . También ahorran espacio, ya que los datos sin cambios se comparten entre el sistema de archivos y sus instantáneas. Las instantáneas son intrínsecamente de solo lectura, lo que garantiza que no se modificarán después de la creación, aunque no se debe confiar en ellas como único medio de copia de seguridad. Se pueden restaurar instantáneas completas y también archivos y directorios dentro de instantáneas.
También se pueden crear instantáneas grabables ("clones"), lo que da como resultado dos sistemas de archivos independientes que comparten un conjunto de bloques. A medida que se realizan cambios en cualquiera de los sistemas de archivos clonados, se crean nuevos bloques de datos para reflejar esos cambios, pero los bloques que no se modifican continúan compartiéndose, sin importar cuántos clones existan. Esta es una implementación del principio de copia en escritura .
Enviar y recibir instantáneas
Los sistemas de archivos ZFS se pueden mover a otros grupos, también en hosts remotos a través de la red, ya que el comando de envío crea una representación de flujo del estado del sistema de archivos. Esta secuencia puede describir el contenido completo del sistema de archivos en una instantánea determinada o puede ser un delta entre instantáneas. Calcular el flujo delta es muy eficiente y su tamaño depende de la cantidad de bloques cambiados entre las instantáneas. Esto proporciona una estrategia eficiente, por ejemplo, para sincronizar copias de seguridad externas o espejos de alta disponibilidad de un grupo.
Rayado dinámico
La creación de bandas dinámicas en todos los dispositivos para maximizar el rendimiento significa que a medida que se agregan dispositivos adicionales al zpool, el ancho de la banda se expande automáticamente para incluirlos; por lo tanto, se utilizan todos los discos de un grupo, lo que equilibra la carga de escritura entre ellos. [ cita requerida ]
Tamaños de bloque variables
ZFS utiliza bloques de tamaño variable, con 128 KB como tamaño predeterminado. Las funciones disponibles permiten al administrador ajustar el tamaño máximo de bloque que se utiliza, ya que ciertas cargas de trabajo no funcionan bien con bloques grandes. Si la compresión de datos está habilitada, se utilizan tamaños de bloque variables. Si un bloque se puede comprimir para que quepa en un tamaño de bloque más pequeño, el tamaño más pequeño se usa en el disco para usar menos almacenamiento y mejorar el rendimiento de E / S (aunque a costa de un mayor uso de la CPU para las operaciones de compresión y descompresión). [53]
Creación de un sistema de archivos ligero
En ZFS, la manipulación del sistema de archivos dentro de un grupo de almacenamiento es más fácil que la manipulación del volumen dentro de un sistema de archivos tradicional; el tiempo y el esfuerzo necesarios para crear o expandir un sistema de archivos ZFS están más cerca de crear un nuevo directorio que de la manipulación de volúmenes en algunos otros sistemas. [ cita requerida ]
Endianidad adaptativa
Los grupos y sus sistemas de archivos ZFS asociados se pueden mover entre diferentes arquitecturas de plataforma, incluidos los sistemas que implementan diferentes órdenes de bytes. El formato de puntero de bloque de ZFS almacena metadatos del sistema de archivos de forma adaptativa a endian ; Los bloques de metadatos individuales se escriben con el orden de bytes nativo del sistema que escribe el bloque. Al leer, si la endianidad almacenada no coincide con la endianidad del sistema, los metadatos se intercambian en bytes en la memoria.
Esto no afecta los datos almacenados; Como es habitual en los sistemas POSIX , los archivos aparecen ante las aplicaciones como simples matrices de bytes, por lo que las aplicaciones que crean y leen datos siguen siendo responsables de hacerlo de una manera independiente de la endianidad del sistema subyacente.
Deduplicación
Las capacidades de deduplicación de datos se agregaron al repositorio de origen de ZFS a fines de octubre de 2009, [54] y los paquetes de desarrollo de OpenSolaris ZFS relevantes están disponibles desde el 3 de diciembre de 2009 (compilación 128).
El uso eficaz de la deduplicación puede requerir una gran capacidad de RAM; las recomendaciones oscilan entre 1 y 5 GB de RAM por cada TB de almacenamiento. [55] [56] [57] Se realiza una evaluación precisa de la memoria necesaria para la deduplicación haciendo referencia a la cantidad de bloques únicos en el grupo y la cantidad de bytes en el disco y en la RAM ("núcleo") necesarios para almacenar cada registro: estas cifras se informan mediante comandos incorporados como zpool y zdb . La memoria física insuficiente o la falta de caché de ZFS pueden provocar que la memoria virtual se estropee cuando se utiliza la deduplicación, lo que puede hacer que el rendimiento caiga en picado o provocar una falta total de memoria. [ cita requerida ] Debido a que la deduplicación ocurre en tiempo de escritura, también consume mucha CPU y esto también puede ralentizar significativamente un sistema.
Otros proveedores de almacenamiento utilizan versiones modificadas de ZFS para lograr índices de compresión de datos muy altos . Dos ejemplos en 2012 fueron GreenBytes [58] y Tegile. [59] En mayo de 2014, Oracle compró GreenBytes para su tecnología de replicación y deduplicación ZFS. [60]
Como se describió anteriormente, la deduplicación generalmente no se recomienda debido a sus grandes requisitos de recursos (especialmente RAM) y al impacto en el rendimiento (especialmente al escribir), excepto en circunstancias específicas en las que el sistema y los datos se adaptan bien a esta técnica de ahorro de espacio.
Capacidades adicionales
- Prioridad de E / S explícita con programación de fechas límite. [ cita requerida ]
- Clasificación y agregación de E / S óptimas a nivel mundial. [ cita requerida ]
- Múltiples flujos de captación previa independientes con detección automática de longitud y zancada. [ cita requerida ]
- Operaciones de directorio en paralelo y en tiempo constante. [ cita requerida ]
- Suma de comprobación de extremo a extremo, utilizando una especie de " campo de integridad de datos ", que permite la detección de corrupción de datos (y recuperación si tiene redundancia en el grupo). Se puede elegir entre 3 hashes, optimizados para velocidad (fletcher), estandarización y seguridad ( SHA256 ) y hashes salados ( Skein ). [61]
- Compresión transparente del sistema de archivos. Admite LZJB , gzip [62] y LZ4 .
- Intelligent fregado y actualizar la duplicación (RESYNCING). [63]
- Uso compartido de carga y espacio entre discos del grupo. [64]
- Bloques de ídem: replicación de datos configurable por sistema de archivos, con cero, una o dos copias adicionales solicitadas por escritura para los datos del usuario, y con el mismo número base de copias más una o dos para los metadatos (según la importancia de los metadatos). [65] Si el grupo tiene varios dispositivos, ZFS intenta replicar en diferentes dispositivos. Los bloques Ditto son principalmente una protección adicional contra sectores corruptos, no contra fallas totales del disco. [66]
- El diseño ZFS (copia en escritura + superbloques) es seguro cuando se utilizan discos con caché de escritura habilitada, si respetan las barreras de escritura. [ cita requerida ] Esta característica proporciona seguridad y un aumento de rendimiento en comparación con algunos otros sistemas de archivos. [ según quién? ]
- En Solaris, cuando se agregan discos completos a un grupo de ZFS, ZFS habilita automáticamente su caché de escritura. Esto no se hace cuando ZFS solo administra segmentos discretos del disco, ya que no sabe si otros segmentos son administrados por sistemas de archivos que no son seguros para escritura en caché, como UFS . [ cita requerida ] La implementación de FreeBSD puede manejar descargas de disco para particiones gracias a su marco GEOM , y por lo tanto no sufre de esta limitación. [ cita requerida ]
- Límites de cuota por usuario, por grupo, por proyecto y por conjunto de datos. [67]
- Cifrado del sistema de archivos desde Solaris 11 Express [68] (en algunos otros sistemas, ZFS puede utilizar discos cifrados para un efecto similar; GELI en FreeBSD se puede utilizar de esta manera para crear almacenamiento ZFS totalmente cifrado).
- Las agrupaciones se pueden importar en modo de solo lectura.
- Es posible recuperar datos al revertir transacciones completas en el momento de importar el zpool. [ cita requerida ]
- ZFS no es un sistema de archivos agrupado ; sin embargo, ZFS agrupado está disponible de terceros. [ cita requerida ]
- Las instantáneas se pueden tomar de forma manual o automática. Las versiones anteriores de los datos almacenados que contienen pueden exponerse como sistemas de archivos completos de solo lectura. También pueden exponerse como versiones históricas de archivos y carpetas cuando se utilizan con CIFS (también conocido como SMB, Samba o archivos compartidos ); esto se conoce como "versiones anteriores", "instantáneas de VSS" o "historial de archivos" en Windows , o AFP y "Apple Time Machine" en dispositivos Apple. [69]
- Los discos se pueden marcar como "de repuesto". Se puede configurar un grupo de datos para manejar de manera automática y transparente las fallas del disco activando un disco de repuesto y comenzando a recuperar los datos que estaban en el disco sospechoso en él, cuando sea necesario.
Limitaciones
Existen varias limitaciones del sistema de archivos ZFS.
Limitaciones para prevenir la corrupción de datos
Los autores de un estudio de 2010 que examinó la capacidad de los sistemas de archivos para detectar y prevenir la corrupción de datos, con un enfoque particular en ZFS, observaron que el propio ZFS es eficaz para detectar y corregir errores de datos en dispositivos de almacenamiento, pero que asume que los datos en RAM son "seguro" y no propenso a errores. El estudio comenta que "un cambio de un solo bit en la memoria hace que un porcentaje pequeño pero no despreciable de ejecuciones experimente una falla, con la probabilidad de que se envíen datos incorrectos al disco que varía del 0% al 3.6% (según la carga de trabajo)", y que cuando ZFS almacena páginas en caché o almacena copias de metadatos en la RAM, o mantiene datos en su caché "sucia" para escribir en el disco, no se realiza ninguna prueba de si las sumas de verificación aún coinciden con los datos en el punto de uso. [70] Gran parte de este riesgo se puede mitigar de dos maneras:
- Según los autores, utilizando ECC RAM ; sin embargo, los autores consideraron que agregar la detección de errores relacionados con la memoria caché de la página y el montón permitiría a ZFS manejar ciertas clases de errores de manera más sólida. [70]
- Uno de los principales arquitectos de ZFS, Matt Ahrens, explica que existe una opción para habilitar la suma de comprobación de los datos en la memoria mediante el uso de la bandera ZFS_DEBUG_MODIFY (zfs_flags = 0x10) que resuelve estas preocupaciones. [71]
Otras limitaciones específicas de ZFS
- La expansión de la capacidad se logra normalmente agregando grupos de discos como un vdev de nivel superior: dispositivo simple, RAID-Z , RAID Z2, RAID Z3 o duplicado. Los datos recién escritos comenzarán a usar dinámicamente todos los vdevs disponibles. También es posible expandir la matriz intercambiando iterativamente cada unidad en la matriz con una unidad más grande y esperando que ZFS se recupere automáticamente; el tiempo de recuperación dependerá de la cantidad de información almacenada, no del tamaño del disco.
- A partir de Solaris 10 Update 11 y Solaris 11.2, no era posible reducir la cantidad de vdevs de nivel superior en un grupo, ni reducir de otro modo la capacidad del grupo. [72] Se dijo que esta funcionalidad estaba en desarrollo en 2007. [73] Se están desarrollando mejoras para permitir la reducción de vdevs en OpenZFS. [74]
- A partir de 2008[actualizar]no fue posible agregar un disco como columna a un RAID Z, RAID Z2 o RAID Z3 vdev. Sin embargo, se puede crear un nuevo RAID Z vdev y agregarlo al zpool. [75]
- Algunas configuraciones RAID anidadas tradicionales, como RAID 51 (un espejo de grupos RAID 5), no se pueden configurar en ZFS. Los Vdevs solo pueden estar compuestos por discos o archivos sin procesar, no por otros vdevs. Sin embargo, un grupo de ZFS crea efectivamente una franja (RAID 0) en sus vdev, por lo que el equivalente a RAID 50 o RAID 60 es común.
- Reconfigurar la cantidad de dispositivos en un vdev de nivel superior requiere copiar datos fuera de línea, destruir el grupo y volver a crear el grupo con la nueva configuración de vdev de nivel superior, excepto para agregar redundancia adicional a un espejo existente, que se puede hacer en cualquier momento o si todos los vdev de nivel superior son espejos con suficiente redundancia, el comando zpool split [76] puede usarse para eliminar un vdev de cada vdev de nivel superior en el grupo, creando un segundo grupo con datos idénticos.
- El rendimiento de IOPS de un grupo de almacenamiento ZFS puede verse afectado si la incursión de ZFS no está configurada correctamente. Esto se aplica a todos los tipos de RAID, de una forma u otra. Si el zpool consta de un solo grupo de discos configurados como, digamos, ocho discos en RAID Z2, entonces el rendimiento de IOPS será el de un solo disco (la velocidad de escritura será equivalente a 6 discos, pero la velocidad de lectura aleatoria será similar a un solo disco). Sin embargo, hay formas de mitigar este problema de rendimiento de IOPS, por ejemplo, agregar SSD como caché L2ARC, lo que puede aumentar las IOPS a 100.000. [77] En resumen, un zpool debe constar de varios grupos de vdev, cada vdev consta de 8-12 discos, si se usa RAID Z. No se recomienda crear un zpool con un solo vdev grande, digamos 20 discos, porque IOPS el rendimiento será el de un solo disco, lo que también significa que el tiempo de recuperación será muy largo (posiblemente semanas con unidades grandes en el futuro).
- La reducción en línea
zpool remove
no se admitió hasta el lanzamiento de Solaris 11.4 en agosto de 2018 [78] - La recuperación (reparación) de un disco averiado en un ZFS RAID puede llevar mucho tiempo, lo que no es exclusivo de ZFS, se aplica a todos los tipos de RAID, de una forma u otra. Esto significa que los volúmenes muy grandes pueden tardar varios días en repararse o volver a la redundancia total después de una falla o corrupción de datos grave, y durante este tiempo puede ocurrir una segunda falla en el disco, especialmente porque la reparación ejerce una presión adicional sobre el sistema en su conjunto. . A su vez, esto significa que deben evitarse las configuraciones que solo permiten la recuperación de un solo fallo de disco, como RAID Z1 (similar a RAID 5). Por lo tanto, con discos grandes, se debe usar RAID Z2 (permitir que dos discos se bloqueen) o RAID Z3 (permitir que tres discos se bloqueen). [79] ZFS RAID se diferencia del RAID convencional en que solo reconstruye datos en vivo y metadatos cuando se reemplaza un disco, no la totalidad del disco, incluidos los bloques en blanco y basura, lo que significa que reemplazar un disco miembro en un grupo ZFS que está solo parcialmente lleno toma proporcionalmente menos tiempo en comparación con RAID convencional. [63]
Recuperación de datos
Históricamente, ZFS no se ha enviado con herramientas como fsck para reparar sistemas de archivos dañados, porque el sistema de archivos en sí fue diseñado para autorrepararse, siempre que se haya construido prestando suficiente atención al diseño de almacenamiento y redundancia de datos. Si el grupo se vio comprometido debido a un hardware deficiente, un diseño inadecuado o redundancia, o un percance desafortunado, hasta el punto de que ZFS no pudo montar el grupo, tradicionalmente no había herramientas que permitieran al usuario final intentar el rescate parcial de los datos almacenados. . Esto dio lugar a hilos en foros en línea donde los desarrolladores de ZFS a veces intentaban brindar ayuda ad-hoc a usuarios domésticos y de pequeña escala, enfrentando la pérdida de datos debido a su diseño inadecuado o administración deficiente del sistema. [80]
El ZFS moderno ha mejorado considerablemente en esta situación con el tiempo y continúa haciéndolo:
- La eliminación o falla abrupta de los dispositivos de almacenamiento en caché ya no causa la pérdida de la agrupación. (En el peor de los casos, la pérdida del ZIL puede perder transacciones muy recientes, pero el ZIL no suele almacenar más de unos pocos segundos de transacciones recientes. La pérdida del caché L2ARC no afecta los datos).
- Si el grupo no se puede montar, las versiones modernas de ZFS intentarán identificar el punto coherente más reciente en el que se puede recuperar el grupo, a costa de perder algunos de los cambios más recientes en el contenido. Copiar al escribir significa que las versiones anteriores de los datos, incluidos los registros y metadatos de nivel superior, pueden seguir existiendo aunque se hayan reemplazado y, de ser así, el grupo puede volver a un estado coherente en función de ellos. Cuanto más antiguos sean los datos, más probable es que al menos algunos bloques se hayan sobrescrito y que algunos datos sean irrecuperables, por lo que hay un límite en algún momento, en la capacidad del grupo para recuperarse.
- De manera informal, existen herramientas para investigar la razón por la cual ZFS no puede montar un grupo y guiar al usuario o al desarrollador en cuanto a los cambios manuales necesarios para forzar el montaje del grupo. Estos incluyen el uso de zdb (depuración de ZFS) para encontrar un punto importable válido en el grupo, el uso de dtrace o similar para identificar el problema que causa el error de montaje, o eludir manualmente las comprobaciones de estado que hacen que el proceso de montaje se anule y permitir el montaje del grupo dañado. .
- A marzo de 2018[actualizar], se está implementando gradualmente una gama de métodos significativamente mejorados dentro de OpenZFS. Estos incluyen: [80]
- Refactorización de código e información más detallada de diagnóstico y depuración sobre fallas de montaje, para simplificar el diagnóstico y la reparación de problemas de grupos corruptos;
- La capacidad de confiar o desconfiar de la configuración del grupo almacenado. Esto es particularmente poderoso, ya que permite montar un grupo incluso cuando faltan vdevs de nivel superior o están defectuosos, cuando los datos de nivel superior son sospechosos, y también rebobinar más allá de un cambio de configuración de grupo si ese cambio estaba relacionado con el problema. Una vez que se monta el grupo corrupto, los archivos legibles se pueden copiar por seguridad, y puede resultar que los datos se puedan reconstruir incluso para los vdevs faltantes, utilizando copias almacenadas en otro lugar del grupo.
- La capacidad de solucionar la situación en la que un disco necesario en un grupo se eliminó accidentalmente y se agregó a un grupo diferente, lo que provocó la pérdida de metadatos relacionados con el primer grupo, que se vuelve ilegible.
OpenZFS y ZFS
Oracle Corporation detuvo el desarrollo público de ZFS y OpenSolaris después de la adquisición de Sun en 2010 . Algunos desarrolladores bifurcaron la última versión pública de OpenSolaris como el proyecto Illumos. Debido a las importantes ventajas presentes en ZFS, se ha adaptado a varias plataformas diferentes con diferentes funciones y comandos. Para coordinar los esfuerzos de desarrollo y evitar la fragmentación, OpenZFS se fundó en 2013.
Según Matt Ahrens, uno de los principales arquitectos de ZFS, más del 50% del código original de OpenSolaris ZFS ha sido reemplazado en OpenZFS con contribuciones de la comunidad a partir de 2019, lo que hace que “Oracle ZFS” y “OpenZFS” sean política y tecnológicamente incompatibles. [81]
Productos comerciales y de código abierto
- 2008: Sun envió una línea de dispositivos de almacenamiento de la serie 7000 basados en ZFS. [82]
- 2013: Oracle envió la serie ZS3 de declarantes basados en ZFS y ocupó el primer lugar en el índice de referencia SPC-2 con uno de ellos. [83]
- 2013: iXsystems envía dispositivos NAS basados en ZFS llamados FreeNAS , (ahora llamado TrueNAS CORE), para SOHO y TrueNAS para empresas. [84] [85]
- 2014: Netgear distribuye una línea de dispositivos NAS basados en ZFS denominados ReadyDATA , diseñados para su uso en empresas. [86]
- 2015: rsync.net anuncia una plataforma de almacenamiento en la nube que permite a los clientes aprovisionar su propio zpool e importar y exportar datos utilizando zfs send y zfs receive. [87] [88]
- 2020: iXsystems comienza el desarrollo de un software hiperconvergente basado en ZFS llamado TrueNAS SCALE, para SOHO y TrueNAS para la empresa. [85]
Oracle Corporation, código cerrado y bifurcación (desde 2010)
En enero de 2010, Oracle Corporation adquirió Sun Microsystems y rápidamente descontinuó la distribución de OpenSolaris y el modelo de desarrollo de código abierto. [89] [90] En agosto de 2010, Oracle dejó de proporcionar actualizaciones públicas al código fuente del kernel de Solaris, convirtiendo efectivamente Solaris 11 en un sistema operativo propietario de código cerrado . [91]
En respuesta al panorama cambiante de Solaris y OpenSolaris, el proyecto illumos se lanzó a través de un seminario web [92] el jueves 3 de agosto de 2010, como un esfuerzo comunitario de algunos ingenieros centrales de Solaris para continuar desarrollando la versión de código abierto de Solaris y completar el código abierto de aquellas partes que aún no son de código abierto por parte de Sun. [93] illumos fue fundada como una fundación, la fundación illumos, incorporada en el estado de California como una asociación comercial 501 (c) 6 . El plan original establecía explícitamente que illumos no sería una distribución o una bifurcación. Sin embargo, después de que Oracle anunciara la descontinuación de OpenSolaris, se hicieron planes para bifurcar la versión final del kernel de Solaris ON permitiendo que illumos evolucionara hacia un kernel propio. [94] Como parte de OpenSolaris, una versión de código abierto de ZFS era, por lo tanto, integral dentro de illumos.
ZFS se utilizó ampliamente en numerosas plataformas, así como en Solaris. Por lo tanto, en 2013, la coordinación del trabajo de desarrollo en la versión de código abierto de ZFS se pasó a un proyecto general, OpenZFS . El marco OpenZFS permite que cualquier parte interesada desarrolle de manera colaborativa la base de código central de ZFS en común, mientras mantiene individualmente cualquier código adicional específico que ZFS requiera para funcionar e integrarse dentro de sus propios sistemas.
Historial de versiones
Lanzamiento antiguo |
Última versión estable de FOSS |
Número de versión del sistema de archivos ZFS | Fecha de lanzamiento | Cambios significativos |
---|---|---|
1 | OpenSolaris Nevada [95] build 36 | Primer lanzamiento |
2 | OpenSolaris Nevada b69 | Entradas de directorio mejoradas. En particular, las entradas del directorio ahora almacenan el tipo de objeto. Por ejemplo, archivo, directorio, canalización con nombre, etc., además del número de objeto. |
3 | OpenSolaris Nevada b77 | Soporte para compartir sistemas de archivos ZFS a través de SMB . Soporte de insensibilidad a mayúsculas y minúsculas. Soporte de atributos del sistema. Soporte antivirus integrado. |
4 | OpenSolaris Nevada b114 | Propiedades: userquota, groupquota, userused y groupused |
5 | OpenSolaris Nevada b137 | Atributos del sistema; los enlaces simbólicos ahora tienen su propio tipo de objeto |
Número de versión del grupo de ZFS | Fecha de lanzamiento | Cambios significativos |
---|---|---|
1 | OpenSolaris Nevada [95] b36 | Primer lanzamiento |
2 | OpenSolaris Nevada b38 | Bloques de ídem |
3 | OpenSolaris Nevada b42 | Los repuestos en marcha, de doble paridad RAID-Z (raidz2), la mejora de la contabilidad de RAID-Z |
4 | OpenSolaris Nevada b62 | historia de zpool |
5 | OpenSolaris Nevada b62 | Compresión gzip para conjuntos de datos ZFS |
6 | OpenSolaris Nevada b62 | propiedad del grupo "bootfs" |
7 | OpenSolaris Nevada b68 | ZIL: agrega la capacidad de especificar un dispositivo o dispositivos de registro de intención separados |
8 | OpenSolaris Nevada b69 | capacidad para delegar tareas administrativas de zfs (1M) a usuarios normales |
9 | OpenSolaris Nevada b77 | Soporte de servidor CIFS, cuotas de conjuntos de datos |
10 | OpenSolaris Nevada b77 | Los dispositivos se pueden agregar a un grupo de almacenamiento como "dispositivos de caché" |
11 | OpenSolaris Nevada b94 | Rendimiento mejorado de restregado / resilencia de zpool |
12 | OpenSolaris Nevada b96 | Propiedades de la instantánea |
13 | OpenSolaris Nevada b98 | Propiedades: usedbysnapshots, usedbychildren, usedbyrefreservation y usedbydataset |
14 | OpenSolaris Nevada b103 | soporte de propiedad passthrough-x aclinherit |
15 | OpenSolaris Nevada b114 | Propiedades: userquota, groupquota, usuerused y groupused; también requiere FS v4 |
dieciséis | OpenSolaris Nevada b116 | Soporte de propiedad STMF |
17 | OpenSolaris Nevada b120 | RAID-Z de triple paridad |
18 | OpenSolaris Nevada b121 | Retenciones de instantáneas de ZFS |
19 | OpenSolaris Nevada b125 | Eliminación del dispositivo de registro ZFS |
20 | OpenSolaris Nevada b128 | zle algoritmo de compresión que se necesita para admitir las propiedades de deduplicación de ZFS en la versión 21 del grupo de ZFS, que se lanzaron simultáneamente |
21 | OpenSolaris Nevada b128 | Deduplicación |
22 | OpenSolaris Nevada b128 | zfs reciben propiedades |
23 | OpenSolaris Nevada b135 | delgado ZIL |
24 | OpenSolaris Nevada b137 | Atributos del sistema. Los enlaces simbólicos ahora tienen su propio tipo de objeto. También requiere FS v5. |
25 | OpenSolaris Nevada b140 | Estadísticas mejoradas de depuración y recuperación de piscinas |
26 | OpenSolaris Nevada b141 | Rendimiento mejorado de eliminación de instantáneas |
27 | OpenSolaris Nevada b145 | Rendimiento mejorado de creación de instantáneas (particularmente instantáneas recursivas) |
28 | OpenSolaris Nevada b147 | Múltiples reemplazos de dispositivos virtuales |
Nota: La versión de Solaris que Sun está desarrollando desde el lanzamiento de Solaris 10 en 2005 recibió el nombre en código 'Nevada' y se derivó de lo que era el código base de OpenSolaris . 'Solaris Nevada' es el nombre en clave para el sistema operativo Solaris de próxima generación que eventualmente sucederá a Solaris 10 y este nuevo código se incorporó sucesivamente a las nuevas compilaciones de instantáneas de OpenSolaris 'Nevada'. [95] OpenSolaris ahora está descontinuado y OpenIndiana se bifurcó . [96] [97] Oracle (2010-Nov-12) publicó una versión final (b134) de OpenSolaris como una ruta de actualización a Solaris 11 Express .
Lista de sistemas operativos compatibles con ZFS
Lista de sistemas operativos, distribuciones y complementos que admiten ZFS, la versión de zpool que admite y la compilación de Solaris en la que se basan (si corresponde):
SO | Versión de Zpool | No de compilación de Sun / Oracle | Comentarios |
---|---|---|---|
Oracle Solaris 11.3 | 37 | 0.5.11-0.175.3.1.0.5.0 | |
Oracle Solaris 10 1/13 (U11) | 32 | ||
Oracle Solaris 11.2 | 35 | 0.5.11-0.175.2.0.0.42.0 | |
Oracle Solaris 11 2011.11 | 34 | b175 | |
Oracle Solaris Express 11 2010.11 | 31 | b151a | con licencia solo para pruebas |
OpenSolaris 2009.06 | 14 | b111b | |
OpenSolaris (último desarrollo) | 22 | b134 | |
OpenIndiana | 5000 | b147 | distribución basada en illumos ; crea un conflicto de nombres nombrando su código de compilación 'b151a' |
Nexenta Core 3.0.1 | 26 | b134 + | Zona de usuarios de GNU |
Comunidad NexentaStor 3.0.1 | 26 | b134 + | hasta 18 TB, administrador web |
Comunidad NexentaStor 3.1.0 | 28 | b134 + | Zona de usuarios de GNU |
Comunidad NexentaStor 4.0 | 5000 | b134 + | hasta 18 TB, administrador web |
NexentaStor Enterprise | 28 | b134 + | no es gratis, administrador web |
GNU / kFreeBSD "Squeeze" (a partir del 31/1/2013) | 14 | Requiere el paquete "zfsutils" | |
GNU / kFreeBSD "Wheezy-9" (a partir del 21/2/2013) | 28 | Requiere el paquete "zfsutils" | |
FreeBSD | 5000 | ||
fusible zfs 0.7.2 | 23 | sufrió problemas de rendimiento; difunto | |
ZFS en Linux 0.6.5.8 | 5000 | El candidato de la versión 0.6.0 tiene una capa POSIX | |
ZFS de KQ Infotech en Linux | 28 | difunto; código integrado en ZFS compatible con LLNL en Linux | |
BeleniX 0.8b1 | 14 | b111 | distribución de CD en vivo de pequeño tamaño; una vez basado en OpenSolaris |
Schillix 0.7.2 | 28 | b147 | distribución de CD en vivo de pequeño tamaño; como SchilliX-ON 0.8.0 basado en OpenSolaris |
StormOS "granizo" | distribución una vez basada en Nexenta Core 2.0+, Debian Linux; reemplazado por Dyson OS | ||
Jaris | Ja panese Sola ris distribución; una vez basado en OpenSolaris | ||
MilaX 0.5 | 20 | b128a | distribución de CD en vivo de pequeño tamaño; una vez basado en OpenSolaris |
GratisNAS 8.0.2 / 8.2 | 15 | ||
FreeNAS 8.3.0 | 28 | basado en FreeBSD 8.3 | |
FreeNAS 9.1.0 | 5000 | basado en FreeBSD 9.1 | |
XigmaNAS 11.4.0.4/12.2.0.4 | 5000 | basado en FreeBSD 11.4 / 12.2 | |
Korona 4.5.0 | 22 | b134 | KDE |
EON NAS (v0.6) | 22 | b130 | NAS integrado |
EON NAS (v1.0beta) | 28 | b151a | NAS integrado |
napp-it | 28/5000 | Illumos / Solaris | Dispositivo de almacenamiento; OpenIndiana (Hipster), OmniOS, Solaris 11, Linux (gestión de ZFS) |
OmniOS CE | 28/5000 | rama illumos-OmniOS | Distribución mínima del servidor de almacenamiento estable / LTS basada en Illumos, impulsada por la comunidad |
SmartOS | 28/5000 | Illumos b151 + | distribución mínima en vivo basada en Illumos (arranque USB / CD); uso de la nube y del hipervisor (KVM) |
macOS 10.5, 10.6, 10.7, 10.8, 10.9 | 5000 | a través de MacZFS; reemplazado por OpenZFS en OS X | |
macOS 10.6, 10.7, 10.8 | 28 | a través de ZEVO; reemplazado por OpenZFS en OS X | |
NetBSD | 22 | ||
MedianocheBSD | 6 | ||
Proxmox VE | 5000 | soporte nativo desde 2014 [1] , pve.proxmox.com/wiki/ZFS_on_Linux | |
Ubuntu Linux 16.04 LTS, 18.04 LTS, 18.10, 19.10, 20.04 LTS | 5000 | soporte nativo a través del módulo binario instalable , wiki.ubuntu.com/ZFS | |
ZFSGuru 10.1.100 | 5000 |
Ver también
- Comparación de sistemas de archivos
- Lista de sistemas de archivos
- Sistema de archivos de control de versiones: lista de sistemas de archivos de control de versiones
Notas
- ^ Si bien RAID 7 no es un nivel RAID estándar, se ha propuesto como un término general para cualquier configuración RAID de> 3 paridad [36]
Referencias
- ^ "Oracle Solaris 11.4 lanzado para disponibilidad general" . 28 de agosto de 2018. Archivado desde el original el 29 de agosto de 2018 . Consultado el 19 de septiembre de 2020 .
- ^ "1.1 ¿Qué pasa con el tema de las licencias?" . Archivado desde el original el 26 de septiembre de 2010 . Consultado el 18 de noviembre de 2010 .
- ^ "Se lanza el proyecto OpenZFS" . LWN.net . 17 de septiembre de 2013. Archivado desde el original el 4 de octubre de 2013 . Consultado el 1 de octubre de 2013 .
- ^ "Anuncio de OpenZFS" . OpenZFS . 17 de septiembre de 2013. Archivado desde el original el 2 de abril de 2018 . Consultado el 19 de septiembre de 2013 .
- ^ open-zfs.org / History Archivado el 24 de diciembre de 2013 en Wayback Machine "OpenZFS es el verdadero sucesor de código abierto del proyecto ZFS [...] Effects of the fork (2010 a la fecha)"
- ^ Sean Michael Kerner (18 de septiembre de 2013). "LinuxCon: OpenZFS mueve el almacenamiento de código abierto hacia adelante" . infostor.com. Archivado desde el original el 14 de marzo de 2014 . Consultado el 9 de octubre de 2013 .
- ^ "Se lanza el proyecto OpenZFS" . LWN.net . 17 de septiembre de 2013. Archivado desde el original el 11 de octubre de 2016 . Consultado el 1 de octubre de 2013 .
- ^ "OpenZFS - Comunidades que cooperan en el código y las características de ZFS" . freebsdnews.net. 23 de septiembre de 2013. Archivado desde el original el 14 de octubre de 2013 . Consultado el 14 de marzo de 2014 .
- ^ a b "19.4. Administración de zfs" . www.freebsd.org . Archivado desde el original el 23 de febrero de 2017 . Consultado el 22 de febrero de 2017 .
- ^ Salus, Peter (1994). Un cuarto de siglo de Unix . Addison-Wesley. págs. 199-200. ISBN 0-201-54777-5.
- ^ "¿Qué son SunOS y Solaris?" . Base de conocimientos . Servicios de tecnología de la Universidad de Indiana. 20 de mayo de 2013 . Consultado el 10 de noviembre de 2014 .
- ^ Brown, David. "Una conversación con Jeff Bonwick y Bill Moore" . Cola de ACM . Asociación para Maquinaria de Computación. Archivado desde el original el 16 de julio de 2011 . Consultado el 17 de noviembre de 2015 .
- ^ "ZFS: la última palabra en sistemas de archivos" . Sun Microsystems. 14 de septiembre de 2004. Archivado desde el original el 28 de abril de 2006 . Consultado el 30 de abril de 2006 .
- ^ Matthew Ahrens (1 de noviembre de 2011). "10 aniversario de ZFS" . Archivado desde el original el 28 de junio de 2016 . Consultado el 24 de julio de 2012 .
- ^ a b Bonwick, Jeff (31 de octubre de 2005). "ZFS: la última palabra en sistemas de archivos" . blogs.oracle.com . Archivado desde el original el 19 de junio de 2013 . Consultado el 22 de junio de 2013 .
- ^ "Sun celebra el exitoso primer aniversario de OpenSolaris" . Sun Microsystems. 20 de junio de 2006. Archivado desde el original el 28 de septiembre de 2008 . Consultado el 30 de abril de 2018 .
- ^ Michael Singer (25 de enero de 2005). "Sun Cracks Open Solaris" . InternetNews.com . Consultado el 12 de abril de 2010 .
- ^ "Preguntas frecuentes sobre ZFS en OpenSolaris.org" . Sun Microsystems. Archivado desde el original el 15 de mayo de 2011 . Consultado el 18 de mayo de 2011 .
El prefijo SI más grande que nos gustó fue 'zetta' ('yotta' estaba fuera de discusión)
- ^ Jeff Bonwick (3 de mayo de 2006). "Tú dices zeta, yo digo zetta" . Blog de Jeff Bonwick . Archivado desde el original el 23 de febrero de 2017 . Consultado el 21 de abril de 2017 .
Así que finalmente decidimos quitar el nombre de ZFS, que no significa nada.
- ^ "Oracle y NetApp desestiman las demandas de ZFS" . theregister.co.uk. 9 de septiembre de 2010. Archivado desde el original el 9 de septiembre de 2017 . Consultado el 24 de diciembre de 2013 .
- ^ El sistema de archivos extendido (Ext) tiene unaestructura de metadatos copiada de UFS. "Rémy Card (entrevista, abril de 1998)" . Asociación de Abril. 19 de abril de 1999. Archivado desde el original el 4 de febrero de 2012 . Consultado el 8 de febrero de 2012 . (En francés)
- ^ Vijayan Prabhakaran (2006). "SISTEMAS DE ARCHIVOS DE HIERRO" (PDF) . Doctor en Filosofía en Ciencias de la Computación . Universidad de Wisconsin-Madison. Archivado (PDF) desde el original el 29 de abril de 2011 . Consultado el 9 de junio de 2012 .
- ^ "Paridad perdida y paridad recuperada" . Archivado desde el original el 15 de junio de 2010 . Consultado el 29 de noviembre de 2010 .
- ^ "Un análisis de la corrupción de datos en la pila de almacenamiento" (PDF) . Archivado (PDF) desde el original el 15 de junio de 2010 . Consultado el 29 de noviembre de 2010 .
- ^ "Impacto de la corrupción del disco en DBMS de código abierto" (PDF) . Archivado (PDF) desde el original el 15 de junio de 2010 . Consultado el 29 de noviembre de 2010 .
- ^ Kadav, Asim; Rajimwale, Abhishek. "Análisis de confiabilidad de ZFS" (PDF) . Archivado (PDF) desde el original el 21 de septiembre de 2013 . Consultado el 19 de septiembre de 2013 .
- ^ Yupu Zhang; Abhishek Rajimwale; Andrea C. Arpaci-Dusseau; Remzi H. Arpaci-Dusseau. "Integridad de datos de un extremo a otro para sistemas de archivos: un estudio de caso de ZFS" (PDF) . Madison: Departamento de Ciencias de la Computación, Universidad de Wisconsin. pag. 14. Archivado (PDF) desde el original el 26 de junio de 2011 . Consultado el 6 de diciembre de 2010 .
- ^ Larabel, Michael. "Evaluación comparativa de ZFS y UFS en FreeBSD frente a EXT4 y Btrfs en Linux" . Phoronix Media 2012. Archivado desde el original el 29 de noviembre de 2016 . Consultado el 21 de noviembre de 2012 .
- ^ Larabel, Michael. "¿Puede HAMMER de DragonFlyBSD competir con Btrfs, ZFS?" . Phoronix Media 2012. Archivado desde el original el 29 de noviembre de 2016 . Consultado el 21 de noviembre de 2012 .
- ^ a b c Bonwick, Jeff (8 de diciembre de 2005). "Integridad de datos de extremo a extremo de ZFS" . blogs.oracle.com . Archivado desde el original el 3 de abril de 2012 . Consultado el 19 de septiembre de 2013 .
- ^ Cook, Tim (16 de noviembre de 2009). "Demostración de la autocuración de ZFS" . blogs.oracle.com . Archivado desde el original el 12 de agosto de 2011 . Consultado el 1 de febrero de 2015 .
- ^ Ranch, Richard (4 de mayo de 2007). "ZFS, copias y protección de datos" . blogs.oracle.com . Archivado desde el original el 18 de agosto de 2016 . Consultado el 2 de febrero de 2015 .
- ^ "ZFS sin lágrimas: utilizando ZFS sin memoria ECC" . www.csparks.com . Diciembre de 2015. Archivado desde el original el 13 de enero de 2021 . Consultado el 16 de junio de 2020 .
- ^ wdc.custhelp.com. "Diferencia entre unidades de edición Desktop y RAID (Enterprise) edition" . Archivado desde el original el 5 de enero de 2015 . Consultado el 8 de septiembre de 2011 .
- ^ a b c d Bonwick, Jeff (17 de noviembre de 2005). "RAID-Z" . Blog de Jeff Bonwick . Blogs de Oracle . Archivado desde el original el 16 de diciembre de 2014 . Consultado el 1 de febrero de 2015 .
- ^ a b Leventhal, Adam (17 de diciembre de 2009). "RAID de triple paridad y más allá" . Cola . 7 (11): 30. doi : 10.1145 / 1661785.1670144 . Archivado desde el original el 15 de marzo de 2019 . Consultado el 12 de abril de 2019 .
- ^ "Rendimiento, capacidad e integridad de ZFS Raidz" . calomel.org . Archivado desde el original el 27 de noviembre de 2017 . Consultado el 23 de junio de 2017 .
- ^ "Por qué RAID 6 deja de funcionar en 2019" . ZDNet . 22 de febrero de 2010. Archivado desde el original el 31 de octubre de 2014 . Consultado el 26 de octubre de 2014 .
- ^ "No existe una utilidad fsck equivalente para ZFS. Esta utilidad tradicionalmente ha tenido dos propósitos, los de reparación del sistema de archivos y la validación del sistema de archivos". "Comprobación de la integridad del sistema de archivos ZFS" . Oráculo. Archivado desde el original el 31 de enero de 2013 . Consultado el 25 de noviembre de 2012 .
- ^ "Exfoliantes ZFS" . freenas.org. Archivado desde el original el 27 de noviembre de 2012 . Consultado el 25 de noviembre de 2012 .
- ^ "También debe ejecutar una limpieza antes de reemplazar dispositivos o reducir temporalmente la redundancia de un grupo para asegurarse de que todos los dispositivos estén actualmente operativos". "Guía de prácticas recomendadas de ZFS" . solarisinternals.com. Archivado desde el original el 5 de septiembre de 2015 . Consultado el 25 de noviembre de 2012 .
- ^ Jeff Bonwick. "Almacenamiento de 128 bits: ¿estás alto?" . oracle.com . Archivado desde el original el 29 de mayo de 2015 . Consultado el 29 de mayo de 2015 .
- ^ "ZFS: hierve el océano, consume la luna (Blog de Dave Brillhart)" . Archivado desde el original el 8 de diciembre de 2015 . Consultado el 19 de diciembre de 2015 .
- ^ "Guía de administración de Solaris ZFS" . Oracle Corporation. Archivado desde el original el 13 de enero de 2021 . Consultado el 11 de febrero de 2011 .
- ^ "Cifrar sistemas de archivos ZFS" . Archivado desde el original el 23 de junio de 2011 . Consultado el 2 de mayo de 2011 .
- ^ "Tener mi pastel seguro y clonarlo también (también conocido como Cifrado + Dedup con ZFS)" . Archivado desde el original el 29 de mayo de 2013 . Consultado el 9 de octubre de 2012 .
- ^ "ZFS - Debian Wiki" . wiki.debian.org . Archivado desde el original el 8 de septiembre de 2019 . Consultado el 10 de diciembre de 2019 .
- ^ "Solaris ZFS permite los grupos de almacenamiento híbridos: rompe las barreras económicas y de rendimiento" (PDF) . Sun.com. 7 de septiembre de 2010. Archivado (PDF) desde el original el 17 de octubre de 2011 . Consultado el 4 de noviembre de 2011 .
- ^ Gregg, Brendan. "ZFS L2ARC" . Blog de Brendan . Dtrace.org. Archivado desde el original el 6 de noviembre de 2011 . Consultado el 5 de octubre de 2012 .
- ^ Gregg, Brendan (8 de octubre de 2009). "Pool de almacenamiento híbrido: velocidades máximas" . Blog de Brendan . Dtrace.org. Archivado desde el original el 5 de abril de 2016 . Consultado el 15 de agosto de 2017 .
- ^ "Ajuste del rendimiento de Solaris ZFS: escrituras síncronas y ZIL" . Constantin.glez.de. 20 de julio de 2010. Archivado desde el original el 23 de junio de 2012 . Consultado el 5 de octubre de 2012 .
- ^ "Especificación de ZFS en disco" (PDF) . Sun Microsystems, Inc. 2006. Archivado desde el original (PDF) el 30 de diciembre de 2008. Ver sección 2.4.
- ^ Eric Sproul (21 de mayo de 2009). "Tuercas y tornillos ZFS" . slideshare.net. págs. 30–31. Archivado desde el original el 22 de junio de 2014 . Consultado el 8 de junio de 2014 .
- ^ "Desduplicación de ZFS" . blogs.oracle.com . Archivado desde el original el 24 de diciembre de 2019 . Consultado el 25 de noviembre de 2019 .
- ^ Gary Sims (4 de enero de 2012). "Creación de almacenamiento conectado a la red basado en ZFS con FreeNAS 8" . Entrenamiento TrainSignal . TrainSignal, Inc. Archivado desde el (Blog) original el 7 de mayo de 2012 . Consultado el 9 de junio de 2012 .
- ^ Ray Van Dolson (mayo de 2011). "[zfs-discusion] Resumen: requisitos de memoria de deduplicación" . lista de correo zfs-discusion. Archivado desde el original el 25 de abril de 2012.
- ^ "ZFSTuningGuide" . Archivado desde el original el 16 de enero de 2012 . Consultado el 3 de enero de 2012 .
- ^ Chris Mellor (12 de octubre de 2012). "GreenBytes blande un pumper VDI de clon completo" . El registro . Archivado desde el original el 24 de marzo de 2013 . Consultado el 29 de agosto de 2013 .
- ^ Chris Mellor (1 de junio de 2012). "El recién llegado sale de su caja, planea venderlo barato a todos los interesados" . El registro . Archivado desde el original el 12 de agosto de 2013 . Consultado el 29 de agosto de 2013 .
- ^ Chris Mellor (11 de diciembre de 2014). "Dedupe, dedupe ... dedupe, dedupe, dedupe: Oracle pule el diamante ZFS" . El registro . Archivado desde el original el 7 de julio de 2017 . Consultado el 17 de diciembre de 2014 .
- ^ "Sumas de comprobación y su uso en ZFS" . github.com . 2 de septiembre de 2018. Archivado desde el original el 19 de julio de 2019 . Consultado el 11 de julio de 2019 .
- ^ "Guía de administración de Solaris ZFS" . Capítulo 6 Gestión de sistemas de archivos ZFS . Archivado desde el original el 5 de febrero de 2011 . Consultado el 17 de marzo de 2009 .
- ^ a b "Espejos humeantes" . blogs.oracle.com . 2 de mayo de 2006. Archivado desde el original el 16 de diciembre de 2011 . Consultado el 13 de febrero de 2012 .
- ^ "Asignación de bloques ZFS" . Weblog de Jeff Bonwick . 4 de noviembre de 2006. Archivado desde el original el 2 de noviembre de 2012 . Consultado el 23 de febrero de 2007 .
- ^ "Ditto Blocks - The Amazing Tape Repellent" . Flippin 'off bits Weblog . 12 de mayo de 2006. Archivado desde el original el 26 de mayo de 2013 . Consultado el 1 de marzo de 2007 .
- ^ "Adición de nuevos discos y comportamiento del bloque ídem" . Archivado desde el original el 23 de agosto de 2011 . Consultado el 19 de octubre de 2009 .
- ^ "OpenSolaris.org" . Sun Microsystems. Archivado desde el original el 8 de mayo de 2009 . Consultado el 22 de mayo de 2009 .
- ^ "Novedades de Solaris 11 Express 2010.11" (PDF) . Oráculo. Archivado (PDF) desde el original el 16 de noviembre de 2010 . Consultado el 17 de noviembre de 2010 .
- ^ "10. Uso compartido - Guía del usuario de FreeNAS 9.3 Tabla de contenido" . doc.freenas.org . Archivado desde el original el 7 de enero de 2017 . Consultado el 23 de febrero de 2017 .
- ^ a b Zhang, Yupu; Rajimwale, Abhishek; Arpaci-Dusseau, Andrea C .; Arpaci-Dusseau, Remzi H. (2 de enero de 2018). "Integridad de datos de un extremo a otro para sistemas de archivos: un estudio de caso de ZFS" . Asociación USENIX. pag. 3. Archivado desde el original el 13 de enero de 2021 . Consultado el 7 de junio de 2020 , a través de la Biblioteca digital de ACM.
- ^ "Tutorial de Ars: uso del sistema de archivos de próxima generación ZFS en Linux" . arstechnica.com . Archivado desde el original el 10 de febrero de 2017 . Consultado el 19 de junio de 2017 .
- ^ "ID de error 4852783: reducir la capacidad del grupo" . Proyecto OpenSolaris. Archivado desde el original el 29 de junio de 2009 . Consultado el 28 de marzo de 2009 .
- ^ Goebbels, Mario (19 de abril de 2007). "Eliminación permanente de vdevs de un grupo" . zfs-discus (lista de correo).[ enlace muerto permanente ] enlace de archivo Archivado el 13 de enero de 2021 en la Wayback Machine.
- ^ Chris Siebenmann Información sobre la eliminación futura de vdev Archivado el 11 de agosto de 2016 en Wayback Machine , Univ Toronto, blog, cita: anuncio informal de Twitter de Alex Reece Archivado el 11 de agosto de 2016 en Wayback Machine
- ^ "Expand-O-Matic RAID Z" . Adam Leventhal. 7 de abril de 2008. Archivado desde el original el 28 de diciembre de 2011 . Consultado el 16 de abril de 2012 .
- ^ "zpool (1M)" . Download.oracle.com. 11 de junio de 2010. Archivado desde el original el 13 de enero de 2021 . Consultado el 4 de noviembre de 2011 .
- ^ brendan (2 de diciembre de 2008). "Un cuarto de millón de IOPS NFS" . Oracle Sun. Archivado desde el original el 17 de diciembre de 2011 . Consultado el 28 de enero de 2012 .
- ^ "Funciones de gestión de datos: novedades de Oracle® Solaris 11.4" . Archivado desde el original el 24 de septiembre de 2019 . Consultado el 9 de octubre de 2019 .
- ^ Leventhal, Adam. "RAID Z de triple paridad" . Blog de Adam Leventhal . Archivado desde el original el 16 de abril de 2011 . Consultado el 19 de diciembre de 2013 .
- ^ a b "Recuperación de datos de ZFS sobrealimentado" . Archivado desde el original el 29 de noviembre de 2018 . Consultado el 29 de noviembre de 2018 .
- ^ "ZFS y OpenZFS" . iXSystems . Consultado el 18 de mayo de 2020 .
- ^ "Sun lanza sus propios dispositivos de almacenamiento" . techworld.com.au. 11 de noviembre de 2008. Archivado desde el original el 13 de noviembre de 2013 . Consultado el 13 de noviembre de 2013 .
- ^ Chris Mellor (2 de octubre de 2013). "Los músculos de Oracle se sientan en la cima del punto de referencia con un fuerte archivador ZFS" . theregister.co.uk. Archivado desde el original el 7 de julio de 2017 . Consultado el 7 de julio de 2014 .
- ^ "Dispositivo de almacenamiento unificado ZFS construido en Silicon Valley por iXsystem" . ixsystems.com. Archivado desde el original el 3 de julio de 2014 . Consultado el 7 de julio de 2014 .
- ^ a b "¡TrueNAS 12 y TrueNAS SCALE están oficialmente aquí!" . ixsystems.com . Consultado el 2 de enero de 2021 .
- ^ "ReadyDATA 516 - Almacenamiento en red unificado" (PDF) . netgear.com. Archivado (PDF) desde el original el 15 de julio de 2014 . Consultado el 7 de julio de 2014 .
- ^ Jim Salter (17 de diciembre de 2015). "rsync.net: La replicación ZFS en la nube finalmente está aquí, y es rápida" . arstechnica.com. Archivado desde el original el 22 de agosto de 2017 . Consultado el 21 de agosto de 2017 .
- ^ rsync.net, Inc. "Almacenamiento en la nube con envío y recepción de ZFS a través de SSH" . rsync.net. Archivado desde el original el 21 de julio de 2017 . Consultado el 21 de agosto de 2017 .
- ^ Steven Stallion / Oracle (13 de agosto de 2010). "Actualización en SXCE" . Tendencias iconoclastas.
- ^ Alasdair Lumsden. "OpenSolaris cancelado, para ser reemplazado por Solaris 11 Express" . osol-discus (lista de correo). Archivado desde el original el 16 de agosto de 2010 . Consultado el 24 de noviembre de 2014 .
- ^ Solaris todavía está abierto, pero la distribución de OpenSolaris está muerta. Archivado el 5 de septiembre de 2017 en Wayback Machine en Ars Technica por Ryan Paul (16 de agosto de 2010)
- ^ Garrett D'Amore (3 de agosto de 2010). "Illumos - Hope and Light Springs Anew - Presentado por Garrett D'Amore" (PDF) . illumos.org . Consultado el 3 de agosto de 2010 .
- ^ "¿Adónde OpenSolaris? Illumos toma el manto" . Archivado desde el original el 26 de septiembre de 2015.
- ^ Garrett D'Amore (13 de agosto de 2010). "La mano puede ser forzada" . Consultado el 14 de noviembre de 2013 .
- ^ a b c "Mientras estaba bajo el control de Sun Microsystems, había instantáneas quincenales de Solaris Nevada (el nombre en clave del sistema operativo Solaris de próxima generación que eventualmente sucedería a Solaris 10) y este nuevo código se incorporó a nuevas instantáneas de vista previa de OpenSolaris disponibles en Genunix.org. Las versiones estables de OpenSolaris se basan en [ sic ] estas compilaciones de Nevada ". Larabel, Michael. "Parece que Oracle estará detrás de OpenSolaris" . Phoronix Media. Archivado desde el original el 29 de noviembre de 2016 . Consultado el 21 de noviembre de 2012 .
- ^ Ljubuncic, Igor (23 de mayo de 2011). "OpenIndiana - todavía hay esperanza" . DistroWatch . Archivado desde el original el 27 de octubre de 2012 . Consultado el 21 de noviembre de 2012 .
- ^ "¡Bienvenido al Proyecto OpenIndiana!" . Proyecto OpenIndiana. 10 de septiembre de 2010. Archivado desde el original el 27 de noviembre de 2012 . Consultado el 14 de septiembre de 2010 .
Bibliografía
- Watanabe, Scott (23 de noviembre de 2009). Solaris ZFS Essentials (1ª ed.). Prentice Hall . pag. 256. ISBN 978-0-13-700010-4. Archivado desde el original el 1 de octubre de 2012.
enlaces externos
- Tenedor ¡Sí! El surgimiento y desarrollo de illumos : presentación de diapositivas que cubre gran parte de la historia de Solaris, la decisión de Sun de abrir el código fuente, la creación de ZFS y los eventos que provocaron su cierre y bifurcación después de la adquisición de Oracle.
- El mejor sistema de archivos en la nube se creó antes de que existiera la nube (archivado el 15 de diciembre de 2018)
- Comparación de la duplicación de SVM y la duplicación de ZFS
- Distribución EON ZFS Storage (NAS)
- Integridad de datos de un extremo a otro para sistemas de archivos: un caso de estudio de ZFS
- ZFS: el sistema de archivos Zettabyte (archivado el 28 de febrero de 2013)
- ZFS y RAID-Z: ¿el Über-FS?
- ZFS: The Last Word In File Systems , por Jeff Bonwick y Bill Moore (archivado el 29 de agosto de 2017)
- Visualización del registro de intenciones de ZFS (ZIL) , abril de 2013, por Aaron Toponce
- Características de illumos incluyendo OpenZFS
- Página wiki anterior con más enlaces: Introducción a ZFS , 15 de septiembre de 2014 (archivado el 30 de diciembre de 2018), parte de la documentación de illumos