ユーザ用ツール

サイト用ツール


サイドバー

Index

はじめてのおつかい






DokuWiki整形記法


PlayGround



serverapps:zfs:send_recv

send/recvでデータ移行

注意点

  • sendできるのはスナップショットだけ。
  • recv側で増分受信時には前回以降変更があってはいけない。

手順

送信側でスナップショットを取る

# zfs snapshot srcTank/setA@snap01
# zfs list -t snapshot
NAME                      USED  AVAIL  REFER  MOUNTPOINT
srcTank/setA@snap01          0      -  1.93T  -

zfs send でスナップショットを送信

■ スナップショットをファイル保存して、別のプールでreceive

  
# zfs send srcTank/setA@snap01 > /var/tmp/hoge.img

# zfs receive bakup/hoge < /var/tmp/hoge.img

# zfs list -t snapshot
NAME                      USED  AVAIL  REFER  MOUNTPOINT
srcTank/setA@snap01          0      -  1.93T  -
bakup/hoge@snap01            0      -  1.93T  -

■ スナップショットを同じホストの、別のプールへ送信

# zfs send srcTank/setA@snap01 | zfs receive rcvTank/setA

■ スナップショットを別のホストにsshで送信

# zfs send srcTank/setA@snap01 | ssh 192.168.xxx.xxx zfs receive rcvTank/setA

■ スナップショットの差分データを送信

# zfs snapshot srcTank/setA@snap02

# zfs send -i srcTank/setA@snap01 srcTank/setA@snap02 | ssh 192.168.xxx.xxx zfs receive rcvTank/setA

■ スナップショットの差分データを圧縮して送信

# zfs send -i srcTank/setA@snap01 srcTank/setA@snap02 | gzip -c | ssh 192.168.xxx.xxx "gzip -cd |zfs recv -vdF rcvTank"

■ netcatを利用して送信

受信側
# nc -l -p ポート番号 -w 120 | zfs recv -v rcvTank/setA
送信側
# zfs send srcTank/setA@snap01 | nc 192.168.xxx.xxx ポート番号

■ zfs receiveのオプション

  • zfs receive は zfs recv と省略可能
  • -F 既存ファイルシステムを上書き
  • -d 送信側で使用していた名前でスナップショットを復元
    このオプションを使うときはzpoolのみを指定
  • -u 復元されたアーカイブを zfs receive 処理の完了時にマウントしない
  • -v 転送後に受信時間と容量を表示

参考

serverapps/zfs/send_recv.txt · 最終更新: 2017/04/14 14:21 (外部編集)