ZFS の概要
ZFS は、シンプルな管理、トランザクションセマンティクスの実装、エンドツーエンドのデータの整合性の確保、およびスケーラビリティーの向上を実現する、新しい種類のファイルシステムです。ZFS は既存のテクノロジーの漸進的改良ではなく、抜本的に新しいデータ管理方法です。Sun は 20 年もの間支配してきた陳腐な前提を吹き飛ばし、ソースの複雑性を解消して、使用するのが現実的に楽しいストレージシステムを構築しました。
ZFS は、プールされるストレージというモデルを提示することで、ボリュームのコンセプトとそれに伴う問題であるパーティション、プロビジョニング、帯域幅の浪費、および記憶領域のストランドを完全に解消しました。数千ものファイルシステムが共通のストレージプールからデータを引き出すことができ、各ファイルシステムは実際に必要になる領域しか消費しません。すべてのファイルシステムがいつでも、プール内のすべてのデバイスの入出力帯域幅を利用できます。
すべての処理は書き込み時コピーなので、オンディスクの状態は常に有効になります。ZFS ファイルシステムに対して fsck(1M) を実行する必要はありません。知らないうちにデータが破損することのないように、すべてのブロックのチェックサムが計算され、データはレプリケート (ミラーまたは RAID) 設定では自己修復します。1 つのコピーが破損すると、ZFS により検出され、別のコピーで修復されます。
ZFS には、RAID-Z という新しいデータレプリケーションモデルが導入されています。これは RAID-5 と似ていますが、可変のストライプの幅を使用して RAID-5 の書き込みホール (データ更新とパリティ更新の間の電力損失によって発生するストライプ破壊) を解消します。すべての RAID-Z 書き込みはストライプ全体の書き込みです。読み取り・修正・書き込みの負荷や書き込みホールがなく、何よりよいことに、NVRAM がハードウェアになくても済みます。安価なディスクでも、ZFS は有効に機能します。
ただし、安価なディスクは失敗することがあるため、ディスク消し込みの機能が ZFS に用意されています。この機能の概念は、ECC メモリー消し込みと同様に、潜んでいるエラーを検出するためにすべてのデータを、それらが修正可能な間に読み取ることです。消し込みはストレージプール全体をトラバースして各ブロックのすべてのコピーを読み取り、256 ビットのチェックサムの妥当性検査を行なって適宜修復します。このすべては、ストレージプールが有効で使用中の場合に行われます。
ZFS には、コンセプトではCPU のパイプラインに似た、パイプライン接続の入出力エンジンがあります。このパイプラインは I/O 依存性グラフに作用し、スコアボード、優先順位、デッドラインスケジュール、故障障害、および I/O 集合体を提供します。ほかのファイルシステムを手こずらせる I/O ロードは、ZFS I/O パイプラインによって簡単に処理されます。
ZFS が無制限の、固定速度のスナップショットとクローンを提供します。スナップショットはファイルシステムの読み取り専用のポイントインタイムコピーで、クローンはスナップショットの書き込み可能なコピーです。クローンを使用すると、作業スペース、ソフトウェアインストール、およびディスクレスクライアントなど、通常共有されるデータの多数のコピーをきわめて高いスペース効率で格納できます。
ZFS のバックアップおよび復元機能はスナップショットによって支えられています。任意のスナップショットでフルバックアップを生成でき、任意のスナップショットのペアで増分バックアップを生成できます。増分バックアップは非常に効率的なためリモートレプリケーションに使用でき、たとえば 10 秒ごとに増分更新を転送できるほどです。
ZFS には任意の制限はありません。必要な数のファイル、フル 64 ビットファイルオフセット、および無制限の数のリンク、ディレクトリエントリ、スナップショットなどを使用できます。
ZFS には組み込みの圧縮機能が用意されています。圧縮機能を使用すると、使用領域が 2 ~ 3 倍削減されるだけでなく、I/O の量も 2 ~ 3 倍削減されます。このため、圧縮機能を有効化すると、数多くのワークロードが実際に高速になります。
ZFS ストレージプールを使用すると、ファイルシステムだけでなく、raw デバイスセマンティクスを必要とするボリュームも提供できます。ZFS ボリュームはたとえばスワップデバイスとして使用できます。スワップボリュームに対して圧縮機能を有効化すると、仮想メモリーも圧縮されることになります。
ZFS の管理はシンプルで、且つ強力です。詳細は、zpool(1M) と zfs(1M) のマニュアルページを参照してください。「はじめに」セクションで概要を把握することも忘れないでください。
ZFS はすでにほとんどの種類のワークロードできわめて快調に動作することが確認されています。それらについてはこれから説明します。 |