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


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.