Я ищу способ распределить большую папку (~ 40-60g) на несколько серверов (4 или больше). Простой scp
команда в цикле уже работает. Я хотел бы иметь более быстрый метод, но просто распараллелив его с помощью command &
и wait
(или GNU parallel) не улучшится, поскольку пропускная способность ограничена. Также мне нужен простой метод, не требующий настройки распределенной файловой системы.
И я прочитал это nfs
будет быстрее чем scp
или специальный rsync, что все хорошо, но я думаю, что возможна более быстрая версия, если существует более трех целевых серверов, т.е. механизм "древовидной копии": скопируйте из источника на серверы A и B, затем скопируйте из A в C и D и параллельно из B в E и F и так далее.
C ...
/
A
/ \ D ...
/
source -- E ...
\ /
B
\ F ...
Есть ли уже инструмент, в котором я могу просто указать IP-адреса или имена хостов, и он выполняет это эффективное копирование "дерева"? Или простой скрипт, который делает это через scp, pssh, sshfs или аналогичные?
BitTorrent или другой одноранговый обмен файлами. Может потребоваться некоторая работа по настройке трекера, но он будет использовать загрузку каждого хоста.
Вам нужно будет протестировать, чтобы увидеть, что быстрее в вашей среде.
Если серверы расположены по всему миру (т.е. не в вашей локальной сети 10 Гбит / с), то https://storj.io тоже может быть решением.