Как перенести большой объем данных с сервера на сервер?
Идет процесс переноса серверов в облако. Встал вопрос переноса данных. Данных этих около 2 Тб. Средний размер файла около мегабайта, то есть получаем в районе 2 миллионов файлов.
Есть ли иные варианты помимо rsynca? Если нет, то может какие-то особенности его работы при таких объемах.
Может ли быть вариант со сжатием того, что есть сейчас и переносом архивов (ftp/scp), а потом уже синхронизацией того, что появилось за время переноса с тем, что распаковано (переносится продакшен, так что файлы медленно будут продолжать добавляться).
Я бы сказал что не очень то большой объем и количество файлов, чтобы заморачиваться. Быстрее отсинкать, чем искать варианты. Тем более что сами написали про медленное добавление новых данных.
tar zcf - tobearchived | ssh user@destination_server_ip 'tar zxf -'
Жмёт со сжатием в tar, отдаёт поток сжатого по ssh, на той стороне запускается tar и распаковывает.
В цепочку можно добавить любой архиватор по вкусу.
Для ускорения канала - выкидываем сложную шифрацию в настройках SSH, оставить какой-нибудь RC4, компрессия скорей всего тоже будет только замедлять.
Syncthing - специализированная вещь под такие дела.
Но скорость хоть и хороша, но негарантирована.
По умолчанию Syncthing старается не нагружать канал.
Можно попробовать. Ещё сжатия в архив засунуть, возможно передача будет быстрее. Но вот сколько времени он будет собирать архив фиг знает, может быть просто разница не будет того стоить.
Проще попробовать как всегда. И замерять время разными вариантами.