====== 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 転送後に受信時間と容量を表示 ===== 参考 ===== [[http://docs.oracle.com/cd/E19253-01/819-6260/gbinw/|Oracle Solaris ZFS 管理ガイド]] [[http://mkiuchi.org/diary/?p=2001|mkiuchiの日記 2冊め]] [[http://alu-zoo.blogspot.jp/2012/06/oss-zfs.html|OSSはアルミニウムの翼で飛ぶ]]