Передача великої кількості даних між континентами [дублікат]


12

Можливий повтор:
Безкоштовний спосіб спільного використання великих файлів через Інтернет?
Які існують варіанти передачі великих файлів без використання Інтернету?

Лабораторія моєї дружини займається проектом тут, у США, з співробітниками в Сінгапурі. Іноді їм потрібно передавати велику кількість даних високого розміру зображення (~ 10 ГБ стиснуто) по континентах. З сучасними технологіями, що було б хорошим рішенням для цього сценарію використання?

Я можу придумати декілька, але жодна з них не здається ідеальною:

  • Пряме з'єднання через Інтернет: швидкість передачі становить близько 500 КБ / с, також не вистачає інструменту для обробки помилок / повторної передачі.
  • Завантажте на загальний сервер або службу, таку як Dropbox: болісно завантажувати для співпрацювача, який не є США.
  • Записування дисків або копіювання на жорсткі диски та доставка через Courier: затримка значна, плюс додаткова робота для створення локальної копії.

Будь-які пропозиції?

Оновлення: жодна із сторін співпраці не є споживачами технологій.


Зображення, як на малюнках, або зображення у файлі, що представляє DVD?
Даніель Бек

Високомірні зображення, генеровані мікроскопами.
Френк

1
Так це кілька дуже великих файлів? Чи можете ви надати більше інформації щодо кількості файлів, індивідуального розміру файлу та скільки цих змін змінюється між передачами? Це всі вони, деякі з них тощо?
Даніель Бек


Здається, як робота для Sneakernet або IPoAC .
Нафтулі Кей

Відповіді:


20

Я пропоную вам використовувати rsync . Rsync підтримує алгоритм передачі дельти, тому якщо ваші файли лише частково змінені, або якщо попередня передача була припинена аномально, Rsync досить розумний, щоб синхронізувати лише те, що нового / змінено.

Існує кілька портів оригінального Rsync для Windows та інших несумісних сумісних систем, як безкоштовних, так і невільних. Докладнішу інформацію див. У статті Вікіпедії Rsync .

Rsync через SSH дуже широко використовується і працює добре. 10 Гб - це порівняно невеликий обсяг даних в наші дні, і ви не вказували, що означає "періодично". Щотижня? Щодня? Щогодини? З швидкістю передачі 500 КБ / с це займе близько 6 годин, а не дуже довгий час. Якщо вам потрібно часто передавати дані, можливо, краще створити завдання cron, щоб автоматично запустити rsync.


Не rsyncпотрібен власний протокол для дельт, що вимагає здатної системи з іншого боку?
Даніель Бек

@DanielBeck: У документах немає нічого, що говорить про те, що rsync через SSH не може використовувати дельтакопію ... В основному клієнт rsync виконує ще одну копію rsync на сервері через ssh, тому я не розумію, чому це не працює.
haimg

+1 У вас там є крапка. Однак це залишає вимогу Linux на сервері?
Даніель Бек

Чи працює rsyncдельта-алгоритм при передачі двійкових стислих даних ( .zipабо .jpg)?
Aditya

@DanielBeck: Я додав посилання на статтю у Вікіпедії з кількома портами Windows rsync. Мабуть, принаймні деякі з них працюють як сервер, включаючи ssh. Я ніколи не використовував жодного з них, хоча.
haimg

12

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

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

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

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


2
Дякуємо за вклад. Використання BitTorrent у академічних мережах може змусити їх адміністраторів нервувати. Крім того, налаштування та обслуговування трекерного сервера може бути не таким простим для пересічного користувача комп'ютера.
Френк

2
Це хороший момент, що bittorrent активно заборонений у багатьох корпоративних та академічних мережах. При належному адмініструванні, хоча ви можете встановити білий список у мережах користувачів або машин, яким дозволено використовувати bittorrent, хоча це означатиме дуже тісні зв’язки з відповідними відділами ІТ для належної роботи. Як я вже згадував, вам не обов'язково потрібно мати спеціальний сервер, оскільки він може бути вбудований до багатьох клієнтських програм. Якщо це не дуже підходить для вашої ситуації, хоча тоді не хвилюйтесь, мені просто здалося розумним, враховуючи ваші вимоги.
Мокубай

Якщо ви використовували bitorrent, також використання веб-насіння звучить як розумна ідея
Journeyman Geek

(Як приклад одного з "більш законних застосувань", згаданого у відповіді, Facebook використовує bittorrent для розгортання свого веб-сайту, двійковим кодом 1 Гб, на тисячах виробничих серверів. Як прикро, що технологія відкидається здебільшого через одне з її використання.)
Антон Строгонофф

6

Розділіть файл на шматки, наприклад, 50 Мб (використовуючи напр. split). Обчисліть контрольні суми для всіх (наприклад md5sum). Завантажуйте безпосередньо за допомогою FTP та FTP-клієнта, що спричинює помилки, наприклад lftpу Linux. Перенесіть усі фрагменти та файл, що містить усі контрольні суми.

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

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


У мене були подібні проблеми в минулому, і використання FTP-клієнта, стійкого до помилок, працював. Жоден біт ніколи не перевертався, просто регулярне переривання з'єднання, тож я міг пропустити створення фрагментів і просто завантажити файл. Ми все-таки надали контрольну суму на повний файл, про всяк випадок.


3
Ви повинні бути в курсі, хоча lftpце не скасовує передачу з будь-якої причини. Переконайтеся, що у вас завжди достатньо вільного місця на диску на сайті призначення.
Даніель Бек

3

Різновидом відповіді Деніела Бека є розбиття файлів на шматки порядку від 50 до 200 Мб та створення файлів парності для всього набору.

Тепер ви можете перенести файли (включаючи файли парності) за допомогою FTP, SCP або чогось іншого на віддалений сайт і зробити перевірку після прибуття всього набору. Тепер, якщо є пошкоджені частини, їх можна виправити файлами парності, якщо достатньо блоків. Це більш-менш залежить від того, скільки файлів пошкоджено та скільки створених файлів парності.

Файли парності дуже часто використовуються на Usenet для надсилання великих файлів. Більшість часу вони розбиваються як архіви RAR тоді. Не рідкість таким чином надсилати дані до 50-60 Гб.

Ви обов'язково повинні ознайомитись з першим посиланням, і ви також можете подивитися на QuickPar , інструмент, який можна використовувати для створення файлів парності, перевіряє завантажені файли і навіть може відновити пошкоджені файли за допомогою наданих файлів парності.


+1 - Цей підхід добре працює на usenet, і файли парності можуть виправити дивовижну кількість відсутніх даних. Недоліком є ​​час обробки, необхідний для розділення та генерації файлів парності та для перевірки парності та вилучення файлів після отримання.
deizel

1

Це один великий 10 Гб файл? Чи можна було легко розділитись?

Я не дуже багато грав з цим, але це вразило мене цікавою і порівняно простою концепцією, яка може працювати в цій ситуації:

http://sendoid.com/


Sendoid досить крутий, але, на жаль, завантаження все ще буде болісним. Знову ж таки, проблема зберігається для всіх типів, на які я вважаю, якщо тільки ви не збираєтеся надіслати жорсткий диск. +1, як це просто у використанні.
DMan

0

Зробіть доступними дані через ftp / http / https / sftp / ftps (для цього потрібні облікові дані для входу) та використовуйте будь-який менеджер завантажень на стороні клієнта.

Менеджери завантажень спеціально розроблені для отримання даних незалежно від помилок, які можуть виникнути, щоб вони ідеально відповідали вашим завданням.

Щодо сервера, FTP-сервер, як правило, найпростіший у налаштуванні. Ви можете ознайомитися зі списком у Вікіпедії. HTTPS, SFTP і FTPS дозволяють шифрувати (у чистому FTP / HTTP, пароль надсилається чітким текстом), але SFTP / FTPS рідше підтримується клієнтським програмним забезпеченням, а налаштування сервера HTTP / HTTPS є складним.


1
Проблема використання http або ftp полягає в тому, що є якісь помилки передачі, вам доведеться надіслати все ще раз. rsync, bittorrent та інші протоколи можуть перевірити, що файли збігаються та повторно передають пошкоджені фрагменти. Дані парності, як і QuickPar генерує, також можуть допомогти.
інфраструктура

І FTP, і HTTP містять можливість відновлення передачі як додаткове розширення, яке підтримується більшістю серверів і практично всіма менеджерами завантажень.
ivan_pozdeev

Вони можуть відновитись, і теоретично TCP гарантує, що дані надходять у порядку та з дійсною контрольною сумою. Однак кожен, у кого була пошкоджена велика передача HTTP або FTP, дізнався значення більш надійних протоколів або якогось ECC.
afrazier
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.