Перенести данные в наше хранилище можно как автоматически, используя функционал панели, так и с помощью сторонних инструментов, например, Rclone. В статье рассмотрим оба этих способа.
Вы можете выполнить перенос данных из любого S3-совместимого хранилища в хранилище Timeweb Cloud через вашу панель управления. Также этот функционал позволяет переносить данные между бакетами внутри нашего хранилища.
Для того, чтобы запустить перенос:
Для миграции постоянно изменяющихся данных следует сочетать этот способ с ручной синхронизацией, описанной ниже.
Обратите внимание, что «Перенос данных» выполняет копирование данных с перезаписью существующих файлов. Чтобы избежать перезаписи, требуется синхронизация.
Этот способ предпочтителен при переносе значительных объемов данных (например, если количество объектов исчисляется миллионами) и постоянно изменяющихся данных.
Для миграции потребуется:
Процесс состоит из нескольких этапов, рассмотрим их по порядку.
Получите реквизиты доступа к бакету у стороннего провайдера и настройте Rclone.
Добавьте в утилиту два профиля (remote) — с реквизитами стороннего провайдера и с реквизитами нашего хранилища. Далее в статье для примеров будут использоваться имена профилей other-provider
и tw-cloud
.
При больших объемах данных процесс может занимать значительное время, поэтому имеет смысл запускать команду для копирования в сессии tmux
или screen
. Это позволит вам оставить команду работающей в фоне и отключиться от сервера.
Запустите новую сессию tmux
командой:
tmux new -s storage-migration
Запустите копирование объектов командой следующего вида:
rclone copy -v -P --log-file=rclone.log --transfers=128 [other-provider]:[bucket-name] tw-cloud:[bucket-name]
Подставьте в команду соответствующие данные.
Здесь опция --transfers
определяет число параллельных загрузок. Чем их больше, тем быстрее будет происходит копирование, однако максимальное число загрузок ограничивается возможностями компьютера, на котором команда запускается. При возникновении ошибок уменьшите число.
Отключиться от сессии tmux
можно, набрав сочетание клавиш Ctrl+B + D (сперва надо набрать Ctrl+B, затем отпустить клавиши и нажать D). Вы увидите сообщение [detached (from session storage-migration)]
.
Подключиться к работающей сессии tmux
можно командой:
tmux a
Дождитесь окончания копирования и запустите синхронизацию:
rclone sync -v -P --log-file=rclone.log --transfers=128 [other-provider]:[bucket-name] tw-cloud:[bucket-name]
В целевой бакет будут скопированы только изменившиеся или новые файлы.
Для сохранения консистентности данных потребуется временно отключить сервис. В это время надо запустить финальную синхронизацию:
rclone sync -v -P --log-file=rclone.log --transfers=128 [other-provider]:[bucket-name] tw-cloud:[bucket-name]
Синхронизация должна быть быстрее предыдущей, если между ними прошло немного времени и новых данных не успело накопиться большое количество.
После финальной синхронизации хранилищ выполните подключение сервисов к новому хранилищу.
После успешного переключения сервисов на новое хранилище данные из старого хранилища можно удалить.