ファイルシステム「ZFS」の内部構造や動作原理をアニメーションや図解を通じて無料で学べる「Uberblok」
ZFSは2000年代にSun Microsystemsが開発し、オープンソースの「OpenZFS」として開発が続けられているファイルシステムの一種で、データの破損を検出する仕組みや障害発生時にもデータの整合性を維持する仕組みなどを備え、NASやストレージサーバーなどで利用されています。「Uberblok」はZFSの複雑な仕組みを実際のソースコードに基づいて視覚的に解説するウェブサイトです。
Uberblok, an interactive museum of ZFS
https://uberblok.storagebits.workers.dev/en/
Uberblokでは解説に使うアニメーションが実際のOpenZFSのソースコードに基づいて作られています。OpenZFS 2.4.4の特定のバージョンを解析対象としており、アニメーションと対応するソースコードの抜粋を掲載しているほか、コードの該当箇所をGitHubで確認できるようになっているので、ファイルシステムの仕組みに興味がある人にもお役立ち。サイトは博物館の展示室を巡るというコンセプトのもと、合計14セクションで構成されています。
例えば「Room 2・The tree and the uberblock」では、データの書き込み途中に電源が落ちた場合にZFSが更新前と更新後のどちらの状態を読み込むのかをシミュレーションできます。
まず「D0」から「D3」のいずれかを選んで書き換えるデータを指定し、「Next step」を押すと書き込み処理が進みますが、途中で「Pull the plug」を押すと突然の電源断が再現されます。
そして「Import the pool」を押すと、再起動後にZFSがどの状態を読み込むのかを確認できます。
このシミュレーションで解説されているのは、ZFSがデータを直接上書きせず新しい場所に書き込む「Copy-on-Write」という仕組み。データの保存状態を管理する「Uberblock」が新しく保存される前に電源が切れた場合は更新前の状態が読み込まれ、新しいUberblockが保存されていれば更新後の状態が読み込まれます。これによりZFSが書き込み途中の不完全な状態を避け、データの整合性を維持できるというわけです。
Uberblokでは他にも、「チェックサムと自己修復」や「RAID-Z」「スナップショットとクローン」「ARCキャッシュ」などが解説されています。
なお、UberblokのソースコードはMITライセンス、サイト内の文章やイラストはCC BY 4.0ライセンスで公開されています。ただし、解説に使用されているOpenZFSのソースコードの抜粋にはCDDL 1.0ライセンスが適用されており、UberblokのMITライセンスの対象には含まれません。
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.




