ZFSスナップショットはファイルシステムの読み取り専用コピーのことです。ほとんど瞬間的に作成することができます。最初のスナップショットを作成した時点では、スナップショットのために余分なディスク領域を消費することはありません。また 2 の 64 乗個のスナップショットを作成することが可能で、事実上個数制限を意識する必要はありません。
またロールバックは、オリジナルのファイルシステムをスナップショットが作成された時の状態に戻すことができます。ロールバックを使用すると、オペレーションミスなどでオリジナルのファイルシステムの必要なファイルを消してしまった場合にも、簡単にスナップショット時の状態に戻すことができます。
スナップショット作成
# zfs snapshot tank/home@monday
ロールバック
# zfs rollback tank/home@monday
ユーザーのホーム領域を NFSで共有している、UFS のサーバとZFSのサーバを例に挙げて、ZFSスナップショットにどんな利点があるかをまとめたいと思います。ユーザーが間違ってファイルを1つ削除してしまい、それに気が付いたのが 3日後だった場合について、考えてみましょう。
ZFSの場合
定期的(例えば1回/日 を1週間分)にスナップショットを作成する運用をしていて、かつユーザーにそのディレクトリをアナウンスしている場合には、以下のメリットが得られます。
UFSの場合
Solaris UFSのスナップショットの仕様は、以下のとおりです。
従って、UFS では 1 日毎に 3 つのスナップショットを残しておく運用が不可能なため、スナップショットを使用した運用はできそうもありません。
ではスナップショットを使わない UFSでの運用ではどのようになるでしょう。
ZFSの場合とUFSの場合を比較してみると、ZFSのスナップショットを使用した運用にはいろいろ利点があるのがお分かりいただけたかと思います。
クローンはスナップショットに依存した、書き換え可能なコピーです。スナップショットは Read-Onlyですが、クローンはRead/Writeが可能となっていますので、同じようなテスト環境を複数作成する場合に非常に便利です。スナップショットの場合と同様に、クローンは瞬間的に作成され、最初は追加のディスク領域を消費しません。また、クローンのスナップショットを作成することもできます。
スナップショット作成
# zfs snapshot tank/home@monday
クローン作成
# zfs clone tank/home@monday tank/monday
例として、ディスクイメージファイルに対してOSをインストールできる種類の仮想化環境の場合を考えてみましょう。
上記のような手順により、同じ環境を簡単に複数作ることが可能です。
また、クローンに対してスナップショットを作成することも可能ですので、定期的にクローンに対してスナップショットを取っておくと、もしオペレーションミスなどで重要なファイルを削除してしまった場合にも、簡単に元の環境を復元することができます。
Copyright © ITmedia, Inc. All Rights Reserved.