ZFSファイルシステムは、いままでと同様に通常の方法(バックアップソフトウェアや tar/cpioなど)でバックアップ/リストアを行うことも可能ですが、それに加えてZFSのコマンドでバックアップ/リストアを行うことも可能となっています。
ZFS コマンドによるバックアップでも、フルバックアップ、差分バックアップのどちらもできます。このバックアップはスナップショットベースで行われます。
特に利点として挙げられるのは、「差分バックアップがブロック単位」であるという点です。例えば。1GB のファイルが含まれるファイルシステムのフルバックアップを行います。その後 1GB のファイルに対して 10MBの更新がかかったとします。zfs send で差分バックアップを行う場合、この差分は 1GB のファイル全体ではなく、更新があった 10MB のブロック分のみとなります。このため、大きなサイズファイルに対して少量の更新があった場合、非常に利点が出てきます。
フルバックアップ
# zfs send tank/home@monday > /dev/rmt/0n
差分バックアップ
# zfs send -i tank/home@monday tank/home@tuesday > /dev/rmt/0n
フルリストア
# zfs receive tank/home2@monday < /dev/rmt/0n
差分リストア
# zfs receive tank/home2@tuesday < /dev/rmt/0n
send/receiveを使用すると、あるシステムのデータを別のシステムにリモートコピーすることができます。特殊な設定やハードウェアは必要ありません。また、差分バックアップがブロック単位ですので、リモートコピーを行う場合にネットワーク負荷を減らすという効果もあります。
リモートへのコピーを行う場合は、以下のコマンドで可能です。
リモートへのフルバックアップ (bktankが受け側のプール名)
# zfs send tank/home@monday | ssh remotehost zfs receive bktank/home@monday
リモートへの差分バックアップ
# zfs send -i tank/home@monday tank/home@tuesday | ssh remotehost zfs receive bktank/home@tuesday
ファイルシステム、スナップショット、およびクローンの動作を制御するときには、プロパティの設定を行うという方法をとります。プロパティにより、圧縮、NFSサーバとして動作させるか、quota(ファイルシステムが使用できる容量を制限)、reservation(プールの中から領域をこのファイルシステム専用に確保)などの設定が可能です。
マウントポイントの場合と同様に、ZFSではsharenfsプロパティを使って自動的にファイルシステムを共有できます。sharenfsの設定を行えば、/etc/dfs/dfstabファイルを変更する必要はありません。
すべてのプロパティ値を取得する
# zfs get all tank/home
ある特定のプロパティを取得する(以下はquotaの例)
# zfs get quota tank/home
圧縮機能を有効にする
# zfs set compression=on tank/home
NFS Serverとして設定する
# zfs set sharenfs=on tank/home
quotaの設定をする
# zfs set quota=10g tank/home
reservationの設定をする
# zfs set reservation=5g tank/home
ZFSでは、追加ライセンス費用や専用ハードウェアを用意することなく、スナップショット、ロールバック、クローン、リモートコピーといった機能を使用できることがお分かりいただけたかと思います。ぜひ、この便利な機能を使ってみて下さい。
次回は、ZFS応用編ということで、ZFS を使用したソリューション例などを解説します。
Copyright © ITmedia, Inc. All Rights Reserved.