ZFSでは、追加ライセンス費用や、専用ハードウェアを用意することなく、スナップショット、ロールバック、クローン、リモートコピーといった機能を使用できます。ZFSの便利な機能については、次回のこの連載で説明予定です。
エンド・ツー・エンド・チェックサム、書き込み時コピー、RAID-Z/Z2のパリティ計算など、既存ファイルシステムにそのまま実装するだけでは大幅な性能低下となりそうな各機構ですが、ZFSでは既存のファイルシステムと同等の性能が出せるよう設計・実装されています。
書き込み時コピーでは、書き込みの際に必ずコピーを行うという処理が起こりますが、ここで複数の細かいランダム書き込みを、1つのシーケンシャル書き込みとしてまとめることを実現しています。
物理ストレージのランダムな箇所に散在しているブロックに対する書き込みが発生しても、まず連続した領域にコピーを行ってそこに書き込みを行うため、シーケンシャルな書き込みとなります。
RAID-Z/Z2では、ストライプ幅の自動調節が性能向上に大きな役割を果たします。
ストライプ幅の自動調整では、書き込みが必ず全ストライプに及ぶようになるとともに、本当に必要なサイズ分だけの書き込みが行われるようになります。これにより、RAID 5/6の性能問題として必ず起きる遅いデータ更新処理(read-modify-write)が排除されます。すなわち、本来の書き込み対象ではないデータの読み込み、パリティ計算、書き込みが発生しません。
これら以外にも、以下のようなさまざまな性能向上のための仕組みが実装されています。詳細は参考資料をご参照ください。
拡張性、堅牢性、機能、性能を兼ね備えたZFSですが、管理も非常に容易となるよう設計されています。
ZFSの管理コマンドは、プールを扱うzpoolコマンドと、ファイルシステムを扱うzfsコマンドの2個だけです。コマンドとほぼ同じだけの作業が可能な、ブラウザベースのGUIもあります。
ZFSファイルシステムの作成は非常に簡単です。行う作業は、プールにディスクドライブを登録し、そこからファイルシステムを切り出し、ファイルシステム単位で属性値を設定するだけです。容量予約、容量制限、マウントポイントの変更、NFS共有の設定、圧縮の有効化などが属性値の変更として扱われ、上記のzfsコマンド1つで行うことができます。マウントポイントの作成や設定ファイルの作成は不要で、属性値を変更した瞬間に設定内容が適用されます。
ファイルシステムはディレクトリのように操作できるので、ユーザーやプロジェクトごとに個別ファイルシステムを作成してきめ細かい管理を実現できます。
また、ZFSはSPARCと x86/x64の両アーキテクチャでサポートされます。さらに、フォーマットやエンディアンを気にせずに、あるアーキテクチャのマシンで構築したプールを切り離し(エクスポート)、ほかのアーキテクチャのマシンに接続する(インポート)ことが可能です。
拡張性や堅牢性が多くの管理作業を不要のものにしている点も、管理性に貢献しているといえるでしょう。
次回は、Solaris ZFS機能編という内容で、ZFSの各機能の紹介とその使用方法を解説します。
参考情報:
blogs.sun.com:
▼やっぱりSunがスキ! なぜZFSが誕生したのか?
▼あまのじゃくな開拓者たち ZFS編
▼Porting ZFS to other platforms
BigAdmin System Administration Portal:
▼特集記事:ZFS - Sunの最新ファイルシステム(パート 1: ストレージの完全性、安全性、およびスケーラビティー)
▼特集記事:ZFS - Sunの最新ファイルシステム(パート 2: 管理の簡素化と将来の拡張機能)
Copyright © ITmedia, Inc. All Rights Reserved.