1

У меня есть веб-сайт, который должен перейти с выделенного сервера на экземпляр AWS EC2. У меня 650 ГБ + данные и 3 с лишним миллиона файлов.

Я пытался использовать SCP вот так, но из-за огромного файла это заняло так много времени.

scp -r remote_username@10.10.0.2:/remote/directory /local/directory

Моя исходная ОС - Centos 7.5 с cPanel. Жесткий диск объемом 1 ТБ и 650 ГБ, конечным сервером является Ubuntu 18.04, жесткий диск 700 ГБ.

Я знаю, что у нас есть некоторые другие опции, такие как LFTP, SFTP, rSync и т.д., Пожалуйста, помогите мне с быстрым методом.

5 ответов5

1

Я бы посоветовал архивировать файлы, скажем, по 1 ГБ и загружать их. При распаковке каждый файл сверяется с контрольной суммой CRC. Вы можете использовать встроенное разбиение, чтобы zip автоматически генерировал .z00 .z01 .z02 .z03 ...

Кроме того, вы можете использовать формат rar, который позволяет создавать данные четности для восстановления поврежденных сегментов.

0

Существует одно решение AWS для передачи ваших данных:

https://aws.amazon.com/snowball/?nc1=h_ls

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

0

Единственный способ ускорить загрузку - сделать это несколькими частями параллельно.

Если вы можете разделить работу между несколькими компьютерами, используя разные соединения, это ускорит загрузку.

Если один компьютер не достигает полной пропускной способности, вы можете выбрать многопоточный метод, при котором каждый поток будет параллельно открывать собственное соединение.

См. Статью Какой самый быстрый способ скопировать 400 ГБ файлов из тома хранилища эластичных блоков ec2 в s3? для предложений продуктов и сценариев.

См. Также статью « Синхронизация файлов FS - ускоренная передача файлов в файловые системы Amazon EFS».

0

При использовании scp он не повторяет и не продолжает частично переданные файлы.

Попробуйте вместо этого использовать rsync , например

rsync -vuaz remote_username@10.10.0.2:/remote/directory/ /local/directory/

Аргументы:

  • -v/- --verbose увеличить многословие.
  • -u/--update пропустить файлы, которые новее на приемнике.
  • -a/- --archive архивного архива; равно -rlptgoD
  • -z/--compress сжать данные файла во время передачи.
0

Попробуйте установить AWS CLI на свой выделенный сервер.

Затем используйте aws s3 чтобы сначала перенести файлы в корзину AWS S3.

Например

aws s3 sync local/directory s3://mybucket/local/directory

Затем вернитесь в местный экземпляр EC2:

aws s3 sync s3://mybucket/local/directory local/directory

Команда предназначена для копирования большого количества файлов и может продолжаться при сбое.

Вы также можете решить обслуживать файлы для экземпляра EC2 непосредственно из S3.

Обратитесь за помощью в помощь по aws s3 sync help .

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