Сначала делаем снимок, который будем пресылать
zfs snapshot Pool/Test@today
Классический подход предусматривает пересылку по ssh
nas4free: ~ # zfs send Pool/Test@today | ssh 192.168.1.33 zfs receive -v Pool/Test
к сожалению, скорость оставляет желать, ср
receiving full stream of Pool/Test@today into Pool/Test@today
received 1.66GB stream in 111 seconds (15.3MB/sec)
Для решения проблемы советуют mbuffer. Утилиты нет в nas4free из коробки, но она компактная и легко ставится. К сожалению, на скорость влияния не вижу
nas4free: ~ # zfs send Pool/Test@today | mbuffer -q -v 0 -s 128k -m 1G | ssh 192.168.1.33 "mbuffer -q -v 0 -s 128k -m 1G | zfs receive -v Pool/Test"
даёт те же 15.3MB/sec (как и варианты с mbuffer только на отсылке и только на приёме)
Описанный по ссылке выше вариант с mbuffer без ssh я запустить не смог
mbuffer: warning: error connecting to 192.168.1.33:9090: Connection refused
mbuffer: error: unable to connect to 192.168.1.33:9090
Зато помог ценный совет камрада bormental - использовать netcat. Тем более что nc доступен из коробки.
В тех же условиях скорость утраивается и, думаю, ограничивается слабеньким атомом на бекап NAS
backupnas: ~ # nc -l 9090 | zfs receive -v Pool/Test
Затем
nas4free: ~ # zfs send Pool/Test@today | nc 192.168.1.33 9090
receiving full stream of Pool/Test@today into Pool/Test@today
received 1.66GB stream in 39 seconds (43.6MB/sec)
Или то же самое с одной машины
nas4free: ~ # ssh 192.168.1.33 "nc -l 9090 | zfs receive -v Pool/Test" &
nas4free: ~ # zfs send Pool/Test@today | nc 192.168.1.33 9090
Жаль, что при этом сообщений о скорости передачи не видно. Но я с секундомером проверил - совпадает.
PS Здесь 192.168.1.33 - IP бекап NAS
9090 - порт, по которому происходит связь (выбран произвольно)
Pool/Test@today - имя пересылаемого снимка
UPD от 5 марта 2014
Бьюсь над тем, чтобы загнать сабж в универсальный скрипт.
Плохая новость в том, что код типа
nas4free: ~ # ssh 192.168.1.33 "nc -l 9090 | zfs receive -v Pool/Test" &
прекрасно работает из командной строки, но наотрез отказывается правильно исполняться из скрипта
Хорошая новость в том, что скорость передачи через ssh удалось удвоить за счет выбора шифрования. Вот хорошая статья на тему.
Ср
nas4free: Flash # zfs send Pool/Test@today | ssh 192.168.1.33 zfs receive -v Pool/Test
receiving full stream of Pool/Test@today into Pool/Test@today
received 813MB stream in 53 seconds (15.3MB/sec)
nas4free: Flash # zfs send Pool/Test@today | ssh -c arcfour128 192.168.1.33 zfs receive -v Pool/Test
receiving full stream of Pool/Test@today into Pool/Test@today
received 813MB stream in 27 seconds (30.1MB/sec)
nas4free: Flash # zfs send Pool/Test@today | ssh -c arcfour256 192.168.1.33 zfs receive -v Pool/Test
receiving full stream of Pool/Test@today into Pool/Test@today
received 813MB stream in 27 seconds (30.1MB/sec)
Но nc, напомню, ещё в полтора раза быстрее, так что не теряю надежды.