UbuntuでZFSを使ってみよう 第13回 スナップショットとクローン機能について知ろう
前回は、ARCとZILについて説明しました。今回は、ZFSのスナップショットとクローン機能について説明します。
スナップショット
ZFSのスナップショットは、スナップショットを作成した時点での、ファイルシステムの内容を書き込み不可の状態で保持する機能です。スナップショットはファイルシステムおよびボリュームを対象とし、スナップショット名をつけて作成できます。
$ sudo zfs snapshot rpool/USERDATA/user_z0ox2d@name
$ zfs list rpool/USERDATA/user_z0ox2d@name
NAME USED AVAIL REFER MOUNTPOINT
rpool/USERDATA/s-miyaza_z0ox2d@hoge 0B - 28.9G -
スナップショット作成の仕組みを説明すると、以下のようになります。
- 新しいスナップショットを作成
2. Nodeを下位ノードのリンクごとコピー
実データ(ブロック)をコピーしないため、スナップショットの作成は数秒で行われます。この時間は、スナップショットおよびクローンの数に依存します。
スナップショットを作成した場合、ファイル書き込みに違いが発生します。
- ファイル更新部分のブロックを新たに作成し、新しいNodeを作成するまでは通常と同じです。
2. 通常の書き込みではNode1とBlock2が削除されるのですが、snapshot側のNodeがNode1とリンクしているため、削除されません。
このためファイルの削除や更新した場合、スナップショットの容量が増加し、全体のファイル使用容量は増加します。ノードやファイルブロックは、参照する上位ノードがなくなるまで削除されません。またスナップショット元の変更内容が、スナップショットに反映されることがありません。
スナップショットの削除は、zfs destroy
で行います。
$ sudo zfs destroy rpool/USERDATA/s-miyaza_z0ox2d@hoge
スナップショットの削除で行うのは、上記図のsnapshotとそれにつながるNodeを削除するだけです。参照元の無くなったNode1やBlock2は、自動的に削除されます。
クローン
クローンはスナップショットから作成される、読み書き可能なファイルシステムを作成できます。作成するファイルシステム名は任意の名称を指定できますが、同じzpool以下に限定されます。マウントポイントは任意の場所を指定できます。
$ sudo zfs clone rpool/USERDATA/user_z0ox2d@name rpool/USERDATA/user1
$ zfs list rpool/USERDATA/user1
NAME USED AVAIL REFER MOUNTPOINT
rpool/USERDATA/user1 128K 815G 28.9G /user1
$ sudo zfs destroy -r rpool/USERDATA/user1
$ sudo zfs clone -o mountpoint=/home/user1 rpool/USERDATA/s-miyaza_z0ox2d@hoge rpool/USERDATA/user1
% zfs list rpool/USERDATA/user1
NAME USED AVAIL REFER MOUNTPOINT
rpool/USERDATA/user1 8K 815G 28.9G /home/user1
クローンの作成の仕組みはスナップショットと同様で、元となるスナップショットのNodeをコピーするだけです。
スナップショット同様に、オリジナルの書き込み内容はクローンに反映されません。
スナップショットと異なるのは、クローンは書き込みができるということです。クローンの書き込みの仕組みを説明します。
- 通常のファイル書き込みと同様に、新しいファイルブロックとノードを作成します。
2. 次に、cloneのNodeからNew Nodeへリンクを切り替えます。
このように、元となるZFS、スナップショットに影響することなくクローンのファイル変更を行います。
クローンの削除もsnapshot と同様にzfs destroy
で削除できます。ただし、クローンに対するスナップショットが存在する場合もあります。含まれるスナップショットもすべて削除する場合、zfs destroy -r
とオプションを付けると削除されます。
終わりに
今回は、ZFSのスナップショットとクローン機能との違いを説明しました。次回は、スナップショット機能について細かく説明します。次回をお楽しみに。
さて、このコラムを掲載いただいているデジタル・ヒュージ・テクノロジー社は老舗のOSSインテグレーターです。特にLinuxは強く、OSSを活用した業務システムの実績も多いです。興味がある方は以下のページもご覧ください。
DHT OSS導入コンサルティングサービス