Назад | Перейти на главную страницу

Распространение rsync по нескольким сетевым интерфейсам

Я хочу передать один большой файл через два медленных сетевых соединения, чтобы сэкономить время.

Одна из идей состоит в том, чтобы разделить файл, выполнить синхронизацию частей с сервером и объединить их там. Итак, с файлом размером 1ГБ

split -b 500m file 
rsync --address <eth0> file.000 server:~/ & \
rsync --address <eth1> file.001 server:~/
ssh server cat file.001 >> file.000; mv file.000 file
// run rsync on the complete file again to make sure it worked
rsync file server:~/

По мне, это выглядит довольно глупо. Есть ли более элегантный способ сделать это?

Что я сделал однажды:

Реализуйте 2 VPN или IP-туннеля по каждому каналу и используйте возможности связывания Linux, чтобы склеить их вместе. Я сделал это с OpenVPN, через UDP и очень быстрое шифрование. Таким образом, вам не понадобится 2 rsync, вы получите более быстрый и единственный.

Чтобы ускорить его, используйте очень мощное сжатие и протокол с меньшими накладными расходами, чем SSH, возможно, какую-нибудь UDP-альтернативу rsync (для этого просто Google).