HeadlinesBriefing HeadlinesBriefing.com

Uberblok: un museo interactivo de los internos de ZFS

Hacker News •
×

El almacenamiento siempre ha tenido los mismos enemigos: discos que mienten, escrituras truncadas y fallos en mitad de una actualización. ZFS les responde con un puñado de ideas, y Uberblok, un museo interactivo creado por un ingeniero de almacenamiento con muchos años de experiencia, las muestra una sala a la vez, extraídas directamente del código que las implementa. Cada animación se corresponde con líneas de Open ZFS zfs-2.4.4, congelado en el commit 71a9f9578616, y cada fragmento de código enlaza de vuelta al código fuente. El autor, que admira ZFS como la pieza de ingeniería más impresionante del campo, construyó el proyecto para rendirle homenaje y comprender mejor sus entrañas, y da la bienvenida a las correcciones de los lectores que conozcan mejor el código.

El museo abre en el Vestíbulo con el uberblock, el pequeño registro que nombra la raíz de un pool entero. Contiene un número de grupo de transacciones, ub_txg, y un puntero de bloque, ub_rootbp, desde el que se puede llegar a todos los demás bloques. Cada disco lleva cuatro etiquetas, cada una con un anillo de uberblocks de 128 KiB. Un nuevo uberblock nunca sobrescribe al anterior; en su lugar ocupa la ranura N mod el número de ranuras. Al importar, ZFS lee todas las ranuras y conserva el uberblock válido con el txg más alto.

Las salas siguientes cubren la historia del proyecto, el árbol y cómo la copia en escritura, las sumas de verificación y la autorreparación mantienen un pool consistente sin fsck, los grupos de transacciones que pasan por los estados abierto, en reposo y sincronizando, y la jerarquía de vdev, incluidos los dispositivos espejo, raidz, draid, de registro, de caché y especiales. El museo también explica RAID-Z, las instantáneas, la ARC, los metaslabs, el ZIL y send/receive, todo con diagramas animados.

El proyecto está disponible en uberblok.storagebits.workers.dev y su código fuente está en GitHub, en algotitanhq/uberblok.

Fuente: Hacker News · Resumido por HeadlinesBriefing