テクニカルコラム かんたん♪ZFS
第八回:増分データの送信(2010年6月30日発行)
梅雨本番です。雨の日が続きますが、みなさん、いかがお過ごしでしょう
か。
このコラムでは、 よく使われているファイルシステムと ZFS の違いをケー
ススタディをもとにご紹介していきます。
今までのファイルシステムとは一味違う ZFS を活用して面倒なファイル
管理の苦労を減らしましょう!
-------------------------------------------------------------------
情報システム部へやってきた根久善太の勧めに従い、 Nexenta OS をイ
ンストールしたAさん。いろいろと ZFS の機能を試しています。
「zfs send は増分だけを送信することもできます」
根久はコンソールからコマンドを打ちました。
# zfs list -t snapshot
NAME USED AVAIL REFER MOUNTPOINT
tank/data@snap000 16K - 19K -
tank/data@snap001 17K - 20K -
tank/data@snap002 25.9M - 25.9M -
tank/data@snap003 51.5K - 26.2M -
tank/data@snap004 50.5K - 37.8M -
tank/data@snap005 118K - 43.3M -
「tank/data には tank/data@snap000 ~ 005 というスナップショットが
作成されています。まず 000 ~ 003 を送信します」
# zfs send tank/data@snap003 | zfs recv syspool/snap
# zfs list -t snapshot
NAME USED AVAIL REFER MOUNTPOINT
syspool/snap@snap003 0 - 25.9M -
tank/data@snap000 16K - 19K -
tank/data@snap001 17K - 20K -
tank/data@snap002 25.9M - 25.9M -
tank/data@snap003 24.6M - 52.6M -
tank/data@snap004 48K - 66.9M -
tank/data@snap005 50K - 89.3M -
「ここで syspool/snap に tank/data@snap005 を送信する場合、 増分だ
けを送信することができます」
# zfs send -i snap003 tank/data@snap005 | zfs recv syspool/snap
# zfs list -t snapshot
NAME USED AVAIL REFER MOUNTPOINT
syspool/snap@snap003 25.9M - 25.9M -
syspool/snap@snap005 0 - 89.3M -
tank/data@snap000 16K - 19K -
tank/data@snap001 17K - 20K -
tank/data@snap002 25.9M - 25.9M -
tank/data@snap003 24.6M - 52.6M -
tank/data@snap004 48K - 66.9M -
tank/data@snap005 50K - 89.3M -
「本当に増分だけが送信されているのかい?」
「ええ」根久はさらにコマンドを打ちました。
# zfs send tank/data@snap005 | dd of=/dev/null bs=1024
107478+295 records in
107478+295 records out
110209760 bytes (110 MB) copied, 3.77391 seconds, 29.2 MB/s
# zfs send -i tank/data@snap003 tank/data@snap005 | dd of=/dev/null bs=1024
71110+1 records in
71110+1 records out
72816920 bytes (73 MB) copied, 0.722664 seconds, 101 MB/s
「snap005 そのままより、増分だけを送信した方が少ないですよね。あと、
受信中はそのファイルシステムにアクセスすることができないので、注
意してください」
「バックアップ用途ということだね」
「そうです。zfs send/recv は標準入出力を介して処理が行われるので、
他のコマンドと組み合わせて使用することができます。例えば、SSH
と組み合わせるとストリームをを暗号化できます」
# zfs send tank/data@snap005 | ssh remote_host 'zfs recv tank/backup'
「セキュリティ条件によっては、インターネットを介した送受信もできそ
うだな」
「そうですね。あとは、圧縮なんかもできます」
# zfs send tank/data@snap005 | bzip2 -c >data-snap005.bz
「なるほどねえ」
「大雑把にはこんなところです。あとは実践を通してより高度な使い方を
習得してください」
Aさんは静かにうなずくと、プロジェクトの資料を手にとりました。そ
して席を立つと、周りに声をかけてからオフィスから出ました。
新しいプロジェクトが始まります。
(おわり)
Z株式会社を例に、 八回に渡り ZFS の基本的な使用方法を説明させて
いただきました。簡単に操作できそうだと思っていただければ、大変うれ
しく思います。 次回からは ZFS アプライアンス OS、NexentaStore につ
いて、実際の運用で役に立つヒントを紹介する予定です。
* ZFS の性能を改善するための SSD の活用方法
* ハードディスクドライブの交換方法
* D-Trace によるネットワークのモニタ
などの内容を検討しています。引き続きご愛読いただけますよう、お願
い申し上げます。
■ 参考文献
(1) サンマイクロシステムズ、"Solaris ZFS 管理ガイド"、
Part No. 819-6260-15、2009 年 4 月
(高田 浩生)