Rsync backup speedup

Чтобы самому не забыть, запишу как надо зеркалировать NAS на NAS.

Итак, есть 2 штуки NAS’ов с ARM’ами и Linux’ами разной степени кастрированности на них. В моем случае это WD Sharespace и ZyXEL NSA221, оба с кастомными прошивками. Кастомные они, конечно, кастомные, но это не Gentoo и не Debian, где есть все, это просто пара репозиториев с пакетами неизвестно какого возраста и качества, а так же отрезанные к черту ненужные Твонки и т.п. На WD из коробки есть SSH и rsync, а на ZyXEL NSA221 их нет, так что для Зикселя очень актуален вот этот материал: http://zyxel.nas-central.org/wiki/FFP-stick

В чем проблема использовать rsync в лоб, через SSH, как это предусмотрено по умолчанию? В шифровании. Если для Core i3 это все не проблема, то для худосочного одноядерного ARM’a на 200 МГц triple DES становится доминирующей задачей и скорость зеркалирования падает до совершенно идиотских значений вроде 1.4 МБ/c. Переключение в arcfour увеличивает скорость примерно в 2 раза, что лучше, но все равно плохо. Метод шифрования “none” из SSH кто-то выпилил (подозреваю эманации Поттеринга), но подсказал, что rsyncd в отличие от rsync SSH не использует. Я все понимаю про безопасность, но шифрование при копировании в пределах одного свича нафиг не нужно.

Было:

на клиенте запускалась команда: rsync -e ‘ssh -p 22’ -av –delete root@192.168.2.6:/DataVolume/ /i-data/8g6d1a87/public/ > log.rsync &

Стало:

Конфигурация сервера-источника:

~ $ cat /etc/rsyncd.conf
log file = /var/log/rsyncd.log
transfer logging = true
[bcp]
path = /DataVolume/
uid = root
read only = yes
list = yes
comment = main directory
hosts allow = 192.168.2.60
auth users = bcp
secrets file = /etc/rsyncd.scrt

где /DataVolume/ – путь к зеркалируемому контенту.

~ $ cat /etc/rsyncd.scrt
bcp:qwerty


просто логин+пароль.

Потом просто пускаем rsync –daemon.

Клиент запускается командой: rsync -av –delete bcp@192.168.2.6::bcp /i-data/8g6s1e67/public > log.rsync &

Пароль приходится вводить, так как эта сборка rsync не понимает опцию –secrets_file=/etc/rsyncd.scrt.

Все! Так как у моей сборки rsync в расчет скорости принимается время подсчета количества файлов in question (а их больше 90000000), то точно скорость не измерял, но явно больше 10 МБ/c, что уже приемлемо для жизни и дома.