В настоящее время у меня есть сервер, который каждую ночь выполняет резервное копирование своих данных на устройство NETGEAR ReadyNAS с помощью Rsync. Последние несколько месяцев это работает нормально. Однако недавно я начал получать следующую ошибку:
rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Connection reset by peer (104)
inflate (token) returned -5
rsync error: error in rsync protocol data stream (code 12) at token.c(604) [receiver=3.0.6]
rsync: connection unexpectedly closed (229743 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(601) [sender=3.0.7]
Мне удалось отследить его до одного конкретного файла, который вызывает проблему (с помощью Rsync для копирования только этого файла). Сам файл довольно большой - около 975Мб. Однако в том же каталоге есть и другие файлы, некоторые размером до 3 Гбайт, и их резервное копирование прекрасно.
Я использую следующую команду Rsync:
rsync -avz --password-file=/root/rsync.secret <sourcedir> username@readynas::backup
Rsyncing с хостом Ubuntu Linux, похоже, работает, поэтому не похоже, что есть проблема с клиентом rsync на сервере.
Я погуглил, но ничего не нашел. Многие люди, кажется, говорят, что настройка тайм-аута на стороне сервера Rsync решила аналогичные проблемы, но если бы это была моя проблема, я не мог понять, почему она работает с большими файлами.
Есть ли у кого-нибудь предложения, как это решить?
Я видел, как это случалось (редко) раньше, когда выполнял сжатый rsync между машинами. Во всех случаях, когда я видел это, сами данные уже были изначально сжаты (например, видеофайлы или zip-архивы). Большинство файлов проходят нормально. Однажды в w, когда у конкретного файла есть эта проблема.
Попробуйте без сжатия. (нет флага -z в rsync.) В передаваемых сжатых данных может быть что-то, что в редких случаях вызывает сбой на другом конце.
Кроме того: без сжатия на самом деле может быть быстрее, в зависимости от скорости сети и доступной емкости ЦП / ОЗУ для источника и назначения. Большинство (low / mid-end) NAS-боксов действительно не имеют для этого мощности.