2009年 2月 20日 金曜日
やっぱり Sun がスキ!
なぜZFSが誕生したのか?
Solaris ZFS (以降 ZFS) が Solaris 10 に搭載されて約 2 年半。 Solaris 10 10/08(現時点で最新のアップデート)で ルートに ZFS を使用できるという拡張が行われたせいか、 最近自分の周りでも ZFS の話をする機会が増えてきた気がします。
そこで、なぜ ZFS が生まれて来ることになったのか? ZFS が世に出てくる前はどうだったのか? という点をお話したいと思います。
1. ZFS 以前の制限された拡張性
10 年以上前では、当時大容量と言われていた ハードディスクを効率的に使用するため、パーティションに分割して その上にファイルシステムを構築していました。そのため、 パーティションのサイジング見込みを誤ると、OS 用ファイルシステムが 満杯になり動作の不安定を引き起こしたり、そうならないために 別の空きパーティションに大きなファイルを移動させるなどして 急場をしのいだものでした。10 年ほど前では、オープン系システムで使用されるディスク容量は 数ギガバイト程度のものが多く、増大するデータサイズをファイルシステムに 格納するには 1 ドライブでは足りないということも多くなりました。 このような要求に応えるべく、複数のディスクドライブを RAID ボリュームとしてまとめる技術がオープン系システムでも急速に普及しました。 しかし、増え続けるデータのサイジングは難しく、 大容量に対応した RAID ボリュームでもその容量で足りなくなると、 結局は別ボリュームに容量を逃がしたり、ボリュームサイズを拡張するなど、 多くの管理作業が発生しました。
構築時に設定した最大容量を拡張できるファイルシステムは多いものの、 その下の層である RAID ボリュームサイズの拡張が必要であったり、 拡張前のバックアップが推奨されるなど、どうしても管理の手間が かかりがちです。
また、ファイルシステム自体にも、アドレッシングに使用する データサイズに基づく容量制限があり、これも管理作業を増やした 要因として挙げられます。
2. ZFS 以前の堅牢性
Solaris がこれまで標準として採用していた UFS (Unix File System) では、 物理メモリ上にファイルシステムの管理情報が一時的に保持されます。 このため、システムが急に落ちるなどの障害が発生すると、 管理情報の一部がディスクに書き込まれずに消失し、 ファイルシステムとしての一貫性が損なわれることがありました。 一貫性を取り戻すには、fsck ユーティリティが用いられますが、 ファイルシステムの大容量化に伴って非常に時間がかかるように なってしまいました。また、fsck 後のファイルシステムの内容は、 管理情報とデータ内容のリンクが一部途切れてしまうなど、 以後の管理作業を余儀なくされることもありました。Solaris の UFS では、管理情報のジャーナリング機能 (UFS ロギング) を付加することによって、このような一貫性の損失を避ける ことに成功していますが、UFS のソースコードの複雑化が 進んでしまい、今後の拡張性やメンテナンスが徐々に困難な ものとなってきつつありました。
3. ZFS 以前の機能
ファイルやファイルシステムの内容を、過去のある時点に戻したい場面 (この記事を書くときも何度かそのような場面がありました) や、 バックアップや標準化のため、現時点でのファイルシステム内容を 一時的に固定したい場面などがあります。 このような用途にスナップショットという機能は非常に便利なものとして 知られています。Solaris の UFS にもスナップショット機能があり、 OS 標準機能として使用可能です。スナップショットを とったファイルシステムへの変更は差分として保持されますが、 ここでのオーバーヘッドによる性能低下が問題となることもあります。
スナップショット機能や、遠隔地のディスクへのリモートコピー機能などは、 ストレージやファイルシステムへの追加機能として有償にて提供されている ことが一般的です。
Solaris 10 System Administrator Collection - Japanese
> Solaris のシステム管理 (デバイスとファイルシステム)
> 25. UFS スナップショットの使用 (手順)
4. ZFS 以前の性能
ソフトウェアは一般に、安全性を高めるとそれだけ処理内容が増え、 性能が低下するものです。ファイルシステムも同様で、 安全性を高めたり機能を追加することによって、 一般には性能が低下します。 Solaris の UFS ロギングでは、複数の読み書きをまとめる機構を 追加することによって性能向上がなされましたが、 この実装には多くの工数を要しています。では今は??
そこでこの制限事項を取り払うために ZFS が作られたわけです。 ZFS がどのように良くなっているかは、 とかにいろいろ書いてあります。昔を振り返ることで、改めて ZFS のすばらしさを再認識して頂けるかと思います。
Posted at 09:29午後 2 20, 2009 by Chizu Kitano in Sun | 投稿されたコメント[0]
投稿されたコメント: