3

Мне нужно перенести огромный файл (более 70 ГБ) с одного сервера в Канаде на другой сервер в Африке.

Я пробовал FTP, но всегда где-то отключаюсь. И я предполагаю, что сеть не стабильна для африканского сервера, часть файла была загружена, но когда я его открываю, он поврежден.

Поэтому мне очень нужен инструмент для переноса огромного файла:

  1. Используйте пропускную способность, чтобы я мог загрузить его как можно скорее.
  2. Если сеть нестабильна, инструмент может обнаружить ее, удалить поврежденные данные и загрузить их снова.
  3. Я не хочу загружать в другое место (например, большинство решений для обмена файлами, загрузить на их сервер и получить одну ссылку для общего доступа)
  4. Я предпочитаю инструмент, который может быть установлен на обоих серверах.

Операционная система Windows Server 2008 R2 для обоих серверов. Я не могу использовать сторонний канал передачи.

9 ответов9

11

BitTorrent может быть хорошим решением для вас.

Создайте торрент на исходном сервере, перенесите торрент-файл в место назначения, а затем используйте один из клиентов в качестве трекера бит-торрента. Bittorrent разбивает файл на управляемые фрагменты и следит за тем, чтобы все они передавались без ошибок.

Очевидно, что при создании торрент-файла есть некоторые накладные расходы, и нет никакого роя, который увеличил бы вашу скорость загрузки, но если вы имеете дело с хреновой ссылкой, она может очень хорошо работать для вас.

2

FTP ужасен - он родился в середине 1980-х и, честно говоря, он должен был умереть там.

Вероятно, я бы начал с scp (Secure Copy), который должен быть частью пакета openssh или openssh-client в вашем любимом дистрибутиве Linux (включая Cygwin), или доступен как часть пакета PuTTY, если вы используете Windows без Cygwin , Вам необходимо настроить ssh-сервер на хосте назначения, но это довольно просто, если у вас есть права root/ администратора (если нет, все становится сложнее); если у вас запущен ssh-сервер и вы можете получить к нему доступ с исходного хоста, это просто вопрос

 user@source $ scp /path/to/file user@destination:/path/to/receiving/directory

Это должно очень хорошо удовлетворить вашу точку 1, так как у scp достаточно низкие накладные расходы; он, безусловно, должен удовлетворять пункту 2, поскольку он определенно обнаружит сбойное соединение и может быть (вероятно) настроен или (безусловно) запрограммирован на повторную попытку столько раз, сколько необходимо; он легко охватывает пункт 3, поскольку промежуточный хост или служба не требуются; и он также охватывает пункт 4, так как вы можете установить ssh-сервер на обоих хостах и затем передать файл в любом направлении, которое вы предпочитаете. Вы также получаете бесплатное шифрование, которое может быть полезным для вас.

Руководство OpenSSH, вероятно, является хорошим местом для начала, и я буду рад предложить дополнительную помощь, если вы в конечном итоге пойдете по этому пути - у меня есть некоторый опыт использования scp/ssh для такого рода переводов (хотя не из Канады в Африку или наоборот, и не для одного файла, превышающего 70 ГБ, я признаю!)

Надеюсь это поможет!

2

Я думаю, что было бы неплохо разделить файл на несколько маленьких, передать их, а затем снова собрать их вместе на удаленном сервере.

Пример (в Linux) того, как разделить и объединить, можно найти здесь: http://www.techiecorner.com/107/how-to-split-large-file-into-several-smaller-files-linux/

У вас также должно быть что-то вроде ssh-соединения с удаленным сервером, чтобы вы могли объединить их там.

Полезным также будет инструмент, такой как "md5sum", чтобы проверить, не изменились ли переданные файлы, сравнивая хэши.

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

2

В зависимости от скорости загрузки и выгрузки (обычно проблема заключается в выгрузке), лучше всего записать его на жесткий диск и отправить через FedEx, DHL или аналогичные устройства, чтобы кто-нибудь скопировал его на сервер, если это возможно.

Например, если ваша скорость загрузки составляет 1 Мбит / с, вы загрузите 1M / 8 = 128 КБ / с. Таким образом, не считая каких-либо "проблем", таких как издержки из-за шифрования (например, с использованием scp) или соединения не на 100% полной скорости, для вашего файла потребуется 70G / 128K = более 500.000 с или 160 ч (более 6 дней). Если ваше соединение не очень стабильное, это займет (возможно, намного) больше времени.

1

Я бы посоветовал поместить файл на набор DVD-дисков, BD-ROM или 2,5-дюймовых жестких дисков и отправить их авиапочтой.

Если пропускная способность загрузки составляет 1 Мбит / с, 70 ГБ может занять 6 дней для передачи через Интернет.

1

поместите файл на сайт ftp, как вы пытались, но из Африки используйте

wget -c ftp.server.com/filename

-c возобновит прерванную загрузку

1

Если вы используете Mac OS X или Linux с обеих сторон (?), Тогда rsync может быть вашим лучшим выбором.

Проверьте страницы руководства здесь.

0

Mail.ru предлагает 100 Гб пространства. Вы можете передать свой файл таким образом. Конечно, вы должны уметь говорить по-русски или использовать переводческий инструмент.

-1

У меня была такая же ситуация. целевой сервер был удаленным, но в той же стране. поэтому я использовал Team Viewer - File Transfer. Он отлично работал на сервере Windows.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .