テクニカルコラム かんたん♪ZFS
第七回:ZFS データの送受信(2010年5月12日発行)
五月です。今年は四月に入っても寒い日が続きました。でも、ようやく暖
かくなってきたようです。外を歩いていても、木々の新しい緑が目に鮮や
かですね。
このコラムでは、 よく使われているファイルシステムと ZFS の違いをケー
ススタディをもとにご紹介していきます。
今までのファイルシステムとは一味違う ZFS を活用して面倒なファイル
管理の苦労を減らしましょう!
-------------------------------------------------------------------
情報システム部へやってきた根久善太の勧めに従い、 Nexenta OS をイ
ンストールしたAさん。いろいろと ZFS の機能を試しています。
「次はデータの送信と受信をやってみましょう」
根久は別のマシンにログインし、コンソールからコマンドを打ちました。
# zfs list -t snapshot
NAME USED AVAIL REFER MOUNTPOINT
syspool/rootfs-nmu-002@initial 14.7M - 887M -
syspool/rootfs-nmu-002@nmu-001 344K - 890M -
syspool/rootfs-nmu-002@nmu-002 3.89M - 954M -
tank/data@snap000 16K - 19K -
tank/data@snap001 0 - 20K -
「ZFS はスナップショットを送受信することができます。例えば、
tank/data@snap000 を送信してみましょう」
# zfs send tank/data@snap000 | dd of=/dev/null bs=1024k
0+1 records in
0+1 records out
255296 bytes (255 kB) copied, 0.0199754 seconds, 12.8 MB/s
「zfs send は、 スナップショットに含まれるメタデータとデータを標準
出力へ出力します。このようにバイナリストリームとして送信できるの
で、テープなどのメディアへ簡単にバックアップすることができます」
「どうやってバックアップしたデータをリストアするんだい」
「zfs send と対になる zfs recv というコマンドがあります」
# zfs send tank/data@snap000 >/tmp/tank-data-snap000
# zfs recv syspool/tank-data-snap000 < /tmp/tank-data-snap000
# syspool/tank-data-snap000
NAME USED AVAIL REFER MOUNTPOINT
syspool/tank-data-snap000 19K 271G 19K legacy
「なる程、これを使えばサテライトオフィスとデータを共有することがで
きそうだね」
「そうです。rsync と違い ZFS ACL などのメタデータも完全にバックアッ
プできるのが良いところなんですよ。 例えば SSH を使ってデータを遠隔
地に送信することができます」
根久は別の場所にある host1 にスナップショットを送信しました。
# zfs send tank/data@snap001 | ssh host1 zfs recv tank/data
「欠点は何だろう?」
「少し遅いところでしょうか。 例えばこのマシンの syspool というスト
レージプールは 7800 回転の SATA ディスク二台でミラー構成されてい
ます」
# zpool status syspool
pool: syspool
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
syspool ONLINE 0 0 0
mirror ONLINE 0 0 0
c0t0s0 ONLINE 0 0 0
c0t1s0 ONLINE 0 0 0
errors: No known data errors
「このプール上のスナップショットを送信してみましょう。スナップショッ
トは 887 MB のデータを参照しています」
# zfs send syspool/rootfs-nmu-002@initial | dd of=/dev/null bs=1024k
316+3461 records in
316+3461 records out
1004087104 bytes (1.0 GB) copied, 33.5898 seconds, 29.9 MB/s
「主に読み出しなので、二台のハードディスクをストライプしているはずで
す。それでも 30 MB/秒 程度の速度しか出ていません」
「対策はないのかな」
「そうですね」
根久は思案するように上を見つめました。
「zfs send は増分のみを送信することもできます」
(つづく)
■ 参考文献
(1) サンマイクロシステムズ、"Solaris ZFS 管理ガイド"、
Part No. 819-6260-15、2009 年 4 月
(高田 浩生)