Я хочу передать один большой файл через два медленных сетевых соединения, чтобы сэкономить время.
Одна из идей состоит в том, чтобы разделить файл, выполнить синхронизацию частей с сервером и объединить их там. Итак, с файлом размером 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).