Aparentemente, en el ZFS (sistema de archivos), hay un uberblock que apunta a la raíz de un árbol zpool. ¿Alguien sabe por qué este árbol hace que las cosas sean más eficientes / confiables y dónde se almacena el árbol?
fuente
Aparentemente, en el ZFS (sistema de archivos), hay un uberblock que apunta a la raíz de un árbol zpool. ¿Alguien sabe por qué este árbol hace que las cosas sean más eficientes / confiables y dónde se almacena el árbol?
El propósito del árbol es mejorar la integridad de los datos, en parte almacenando sumas de verificación lejos de los bloques de datos que protegen esas sumas de verificación. Toda la jerarquía del sistema de archivos forma un árbol hash de autocuración o árbol merkle. Aquí hay una descripción simplificada que hice anteriormente :
Yendo de izquierda a derecha, el directorio 1 contiene un puntero al archivo A, la suma de comprobación del archivo A y algunos otros metadatos. Pero dir 1 es solo otro bloque de datos al que apunta uberblock. El uberblock por lo tanto contiene una suma de comprobación de dir 1, y así sucesivamente. Esto significa que cada escritura en un archivo implica recalcular varias sumas de verificación, todo el camino de regreso al nodo raíz (el uberblock). Pero la política de copia en escritura y la naturaleza transaccional de ZFS mitigan la penalización de rendimiento. Además, ZFS está diseñado para aprovechar la ley de Moore: los ciclos de CPU son baratos, pero los discos duros son lentos.
ZFS también usa bloques ídem para replicar las partes más importantes del árbol (es decir, las partes más cercanas a la raíz), para proteger aún más contra la corrupción.