Копіюйте великі файли на кілька машин у локальній мережі


9

У мене є кілька великих файлів, які мені потрібно скопіювати з однієї машини Linux на приблизно 20 інших машин Linux, все в тій самій локальній мережі як можна швидше. Які інструменти / методи найкраще скопіювати ці файли, зауваживши, що це не одноразова копія. Ці машини ніколи не будуть підключені до Інтернету, і безпека не є проблемою.

Оновлення:

Причиною мого запитання є те, що (наскільки я це розумію) ми в даний час використовуємо scpпослідовно для копіювання файлів на кожну з машин, і мені було повідомлено, що це "занадто повільно" і шукається більш швидка альтернатива. Згідно з тим, що мені було сказано, спроба паралелізації scpвикликів просто сповільнює його далі завдяки прагненню жорсткого диска.


Визначте "великий". Сотні МБ / ГБ / ТБ / більше?
Janne Pikkarainen

Наразі загальна сума сягає приблизно 4 Гб (стиснута), хоча це може зрости в майбутньому.
Джонатан Каллен

Тобто будь-якими способами навіть у 2011 році - НЕ ВЕЛИКІ. Враховуючи належну комутацію 1-гігабітного зв'язку (стандарт 2011 року), що досить швидко здійснити. Запускає його на 10g сервері (що не так вже й рідко навіть у 2011 році) ... ну;)
TomTom

Відповіді:


27

BitTorrent. Це так, як Twitter всередині себе розгортає деякі речі.

http://engineering.twitter.com/2010/07/murder-fast-datacenter-code-deploys.html (посилання на веб-архів)


3
На додаток до моєї відповіді (яка, на мою думку, зробить хорошу роботу, якщо ви зможете її виконати), наведена нижче відповідь для NFS є дуже хорошою. Хороший сервер NFS повинен кешувати файли, щоб ви не продовжували натискати на диск. Крім того, не копіюйте файли з сервера на клієнтів. Ініціюйте його від клієнта і нехай кеш-сервер NFS допоможе.
mfinni

1
Не забудьте спробувати це в невиробничому середовищі, в ході презентації вони кажуть (iirc), що деякі комутатори сильно страждають під час перших розгортань через кількість обмінених пакетів.
Шадок

1
@psusi Чому, на вашу думку, потрібно надсилати всі дані 20 разів? Після того, як інші колеги мають частину файлу, вони можуть почати надсилати частини, які вони мають, іншим колегам.
Джонатан Каллен

2
Проблема для ОП - це не локальна мережа, це диск на центральному сервері.
mfinni

1
@pSusi - багатоадресна передача, безумовно, буде ще однією достовірною відповіддю. Опублікуйте це як відповідь, а не як стукіт моєї відповіді.
mfinni

12

Як щодо UFTP , він використовує мультикаст для доставки файлів через UDP відразу декільком клієнтам. Не для всіх, і я не експерт з цього питання, але це здається, що це робить те, що ви хочете.


1
Відмова від відповідальності: для цього знадобиться обладнання, яке підтримує обмін повідомленнями.
user606723

Я швидше сподівався, що це буде на тому ж самому влані - зменшуючи вплив цього використання.
Chopper3

@ user606723: Чи не все сучасно? Можливо, якийсь споживчий мотлох цього не робить, але я не стикався ні з чим зі зламаною багатоадресною. Занадто багато використовує це в наші дні. Я думаю, що в Windows Active Directory використовується навіть багатоадресна передача.
Zan Lynx

Я фактично не маю досвіду роботи з цим @ZanLynx. Я знаю, що багато офісів / комп’ютерних лабораторій використовують споживачі / некеровані комутатори під час останнього переходу. Як поводяться ці комутатори з багатоадресною передачею?
користувач606723

3

Ви намагалися скопіювати ці дані rsync? Якщо у вас є 1 Гбіт LAN або швидше, копіювання понад 4 * 20 ГБ не повинно бути проблемою.

Як часто трапляється ця копія? Чи важливо, чи потрібно кілька хвилин, щоб закінчити?


3

scp-цунамі це шлях!

https://code.google.com/p/scp-tsunami/

Зазвичай він використовується для розповсюдження зображень на дисках на кластерах віртуалізації, його ефекти майже поруч з bittorrent, але їх простіше використовувати для щоденного використання.


2

Налаштування загальної частки NFS та виведення кожної машини із цього спільного репо-файлу великих файлів, швидше за все, буде найшвидшим методом (NFS дуже швидкий і має невеликі накладні витрати).

Ви можете додати додатковий NIC або два на вихідний сервер і з'єднати їх разом, щоб покращити пропускну здатність.

Впровадження може бути простим завданням Cron на кожному цільовому сервері, який сліпо вибирає з папки кожну годину / день / що завгодно. Ви також можете встановити демон для опитування нових файлів; ви також можете просто скриптувати сеанс управління SSH (з парами ключів) у кожне цільове поле та доручити їм отримати файл під час виконання сценарію.


1
Я вважаю, що мій попередник намагався використовувати для цього NFS і виявив, що (на той час) кеш оперативної пам’яті був недостатньо великим для всієї передачі, через що навантаження на жорсткий диск стало обмежуючим фактором замість мережі швидкість.
Джонатан Каллен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.