2gusia (2gusia) wrote,
2gusia
2gusia

Category:

Бекап NAS - zfs send/receive по сети

Итак мы собрали второй NAS на nas4free для бекапа и настроили доступ к нему по ключу, без вопросов про пароль. Сегодня сделаем пересылку файловой системы по сети, аналогично тому как ранее мы пересылали её локально


Сначала делаем снимок, который будем пресылать
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, напомню, ещё в полтора раза быстрее, так что не теряю надежды.
Tags: backup, nas, nas4free, zfs
Subscribe

  • Игра с картой

    Обсуждали сегодня построение некоторой абстрактной карты (видов сервисной робототехники, хотя и не важно). Как пример нашел карту из Игры престолов.…

  • Жизнь, она смешнее анекдота

    Мне сейчас друг напомнил коммент месячной давности. Как раз тогда в Суэцком канале контейнеровоз застрял. Улыбнитесь и вы :)

  • Именной анекдот

    В гости можно сейчас позвать только одну семью, а на похороны 30 человек. Я приглашаю гостей на похороны моего гуся, который помрёт 24 декабря.…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 2 comments