テクニカルコラム かんたん♪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 月

 (高田 浩生)
世界最高峰の技術で、世界最高性能のストレージを
Copyright 2020 Core Micro Systems Inc., All rights reserved.