HeadlinesBriefing HeadlinesBriefing.com

Uberblok: um museu interativo dos internos do ZFS

Hacker News •
×

O armazenamento sempre teve os mesmos inimigos: discos que mentem, escritas interrompidas e falhas no meio de uma atualização. O ZFS responde a eles com um punhado de ideias, e o Uberblok, um museu interativo criado por um engenheiro de armazenamento veterano, as apresenta uma sala de cada vez, extraídas diretamente do código que as implementa. Cada animação corresponde a linhas do Open ZFS zfs-2.4.4, congelado no commit 71a9f9578616, e cada trecho de código leva de volta ao código-fonte. O autor, que admira o ZFS como a peça de engenharia mais impressionante da área, construiu o projeto para homenageá-lo e entendê-lo melhor por dentro, e recebe com gosto correções de leitores que conheçam o código melhor.

O museu abre no Hall com o uberblock, o pequeno registro que aponta para a raiz de um pool inteiro. Ele contém um número de grupo de transações, ub_txg, e um ponteiro de bloco, ub_rootbp, a partir do qual todos os outros blocos são alcançáveis. Cada disco carrega quatro rótulos, cada um com um anel de uberblocks de 128 KiB. Um novo uberblock nunca sobrescreve o anterior; ele ocupa o slot N mod o número de slots. Na importação, o ZFS lê todos os slots e mantém o uberblock válido com o maior txg.

As salas seguintes cobrem a história do projeto, a árvore e como a cópia em escrita, as somas de verificação e a autocura mantêm um pool consistente sem fsck, os grupos de transações passando pelos estados aberto, em quiescência e sincronizando, e a hierarquia de vdev, incluindo espelhos, raidz, draid, dispositivos de log, cache e especiais. O museu também explica RAID-Z, snapshots, ARC, metaslabs, ZIL e send/receive, tudo com diagramas animados.

O projeto está disponível em uberblok.storagebits.workers.dev e seu código-fonte está no GitHub, em algotitanhq/uberblok.

Fonte: Hacker News · Resumido por HeadlinesBriefing