【ぜっとえふえす】

ZFS とは?

最終更新:
💡 プールで容量を管理し、チェックサムで破損を調べる

SunのSolaris向けに開発された、ファイルシステムとボリューム管理の機能を持つ仕組み。コピーオンライト、チェックサム、スナップショットなどを備える。OpenZFSとしても利用され、破損の自動修復には利用できる正常なコピーが必要。

📌 このページのポイント
ZFS:容量管理と破損の検査 プール内のミラーvdevの例 破損を検出 正常なコピー 正常側から修復 正常なコピーがなければ修復できない コピーオンライト 新しい場所へ書き 参照を切り替える スナップショット 古いブロックを共有 変更後は保持容量が必要 同じプールのスナップショットだけで プール全体の喪失には備えられない
ディスクの図はミラー構成の例で、矢印は正常なコピーからの修復です。scrubは保存データのチェックサムを検査します。正常側も失われれば修復できません。スナップショットは書き込みごとの全履歴ではなく取得時点の参照を保持し、別の保存先へのバックアップも必要です。
ひよこ ひよこ
普通のファイルシステムと何が違うの?
ペンギン先生 ペンギン先生
容量をプールでまとめて管理し、チェックサムやスナップショットも備えるよ。コピーオンライトでは使用中のブロックを上書きせず、新しいブロックを書いて参照を切り替える。書き込み途中の不整合を避ける設計だけど、あらゆる故障からデータを守れるわけではないんだ。
ひよこ ひよこ
スナップショットは容量を使わないの?
ペンギン先生 ペンギン先生
作成時にデータ全体を複製するのではなく、同じブロックを参照するので負担が小さいよ。ただし元のデータを更新・削除しても、スナップショットが参照する古いブロックは残る。更新が進むと保持する容量も必要になるんだ。
ひよこ ひよこ
scrubなら壊れたデータを全部直せる?
ペンギン先生 ペンギン先生
プール内の保存データを読み、チェックサムを検査するよ。破損を見つけても、ミラーなどに正常なコピーがなければ修復できない。ディスクの空き領域を全て調べる操作ではなく、負荷もかかるので運用に合わせて実行するんだ。
ひよこ ひよこ
ミラーやRAID-Zも使えるんだね?
ペンギン先生 ペンギン先生
うん。ディスクなどをまとめるvdevを組み合わせてプールを作るよ。ミラーやRAID-Zは冗長性を持たせる構成だけど、プールとvdevは同じものではない。どの故障に耐えられるかは構成によるので、名前だけで判断しないことが大切だね。
ひよこ ひよこ
ペンギン先生 ペンギン先生
同じプールにあるスナップショットだけでは、プール全体を失う故障に備えられないよ。別の保存先へのバックアップも必要だね。過去へ戻す操作はその後の変更を捨てることがある。OpenZFSはLinuxやFreeBSDで使えるけど、導入するOS・版の対応も確認しよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ZFS」って出てきたら「プール管理・チェックサム・スナップショットを備えるファイルシステム」と思えばだいたいOK!
📖 おまけ:英語の意味
「ZFS」 = ファイルシステムの名称(当初はZettabyte File System)
💬 開発者の初期論文ではZettabyte File Systemという名前で説明されているよ。大きな容量を扱う設計を目指した、SunのSolaris向けのファイルシステムだよ

参考資料

← 用語集にもどる