Перейти к основному содержимому

Миграция облачного хранилища из Servers.ru в S3

Последнее изменение:

Вы можете самостоятельно перенести данные из облачного хранилища Servers.ru (Swift) в S3 от Selectel.

Для миграции можно использовать разные инструменты для работы с S3, например:

  • Rclone (рекомендуемый способ) — поддерживает прямую передача данных без промежуточного копирования, а также сегментированную загрузку при высокой скорости передачи данных. Подходит для переноса большого объема данных;
  • графический клиент Cyberduck — не поддерживает копирование и прямой перенос данных из Servers.ru в S3. Потребуется скачать данные из хранилища Servers.ru и загрузить в S3 вручную;
  • протокол FTP — не поддерживает копирование и прямой перенос данных из Servers.ru в S3. Потребуется скачать данные из хранилища Servers.ru и загрузить в S3 вручную. Работает только с бакетами S3, которые находятся в пулах ru-1 и ru-7.

Если в процессе миграции возникнут трудности:

Выполнить миграцию

  1. Подготовьте S3.
  2. Настройте доступ к S3.
  3. Получите данные для подключения к Servers.ru.
  4. Настройте инструмент и перенесите данные.
  5. Проверьте результаты миграции.

1. Подготовить S3

  1. Если у вас еще нет аккаунта в панели управления my.selectel.ru:

    1.1. Зарегистрируйте аккаунт в панели управления.

    1.2. Пополните баланс.

  2. Создайте бакет S3 в нужном пуле. Мы рекомендуем создавать бакет в пуле ru-7.

2. Настроить доступ к S3

Настроить доступ может Владелец аккаунта или пользователь с ролью iam.admin.

  1. Создайте сервисного пользователя с ролью с доступом в S3. Если вы используете сервисного пользователя с ролью s3.user, object_storage_user или s3.bucket.user, в бакете должна быть настроена политика доступа и ее правила должны разрешать доступ этому пользователю.
  2. Выдайте пользователю S3-ключ.

3. Получить данные для подключения к Servers.ru

  1. В панели управления Servers.ru откройте вкладку Облачное хранилище.

  2. В блоке Реквизиты доступа скопируйте и сохраните данные:

    • логин и пароль для доступа через Swift API к Servers.ru;

    • домен для Keystone v3 (Swift) в формате https://auth.files.<region>.cloud.servers.ru:5000/v3/, где auth.files.<region>.cloud.Servers.<domain_zone> — адрес сервера, в котором:

      • <region> — регион, в котором находится хранилище Servers.ru;
      • <domain_zone> — доменная зона: ru или com.
    • если вы будете использовать FTP, хост FTP в формате ftp.files.<region>.cloud.servers.ru, где <region> — регион, в котором находится хранилище Servers.ru.

4. Настроить инструмент и перенести данные

Подробнее о работе с Rclone в инструкции Rclone.

  1. Установите Rclone.

  2. Создайте конфигурацию для подключения к Servers.ru:

    2.1. Откройте режим конфигурирования:

    rclone config

    В консоли появится диалог:

    No remotes found, make a new one?
    n) New remote
    s) Set configuration password
    q) Quit config

    2.2. Создайте новую конфигурацию:

    n/s/q> n

    2.3. Введите имя подключения к удаленному хранилищу, например serversru:

    name> serversru

    2.4. Введите тип хранилища OpenStack Swift:

    Storage> swift

    2.5. Выберите способ получения авторизационных данных, который указан после строки Enter AWS credentials in the next step:

    env_auth> false

    2.6. Введите логин:

    user> <login>

    Укажите <login> — логин, который вы сохранили при получении данных для подключения к Servers.ru на этапе 3.

    2.7. Введите пароль:

    key> <password>

    Укажите <password> — пароль, который вы сохранили при получении данных для подключения к Servers.ru на этапе 3.

    2.8. Введите URL для доступа по Swift API:

    endpoint> <swift_domain>

    Укажите <swift_domain> — введите адрес сервера, который вы сохранили при получении данных для подключения к Servers.ru на этапе 3.

    2.9. В параметре auth_version введите 3:

    auth_version> 3

    2.10. Опциональные параметры оставьте пустыми.

    2.11. В параметре Option domain введите default.

    2.12. Параметр Edit advanced config оставьте пустым или введите n.

    2.13. Проверьте конфигурацию. Если конфигурация верная, нажмите Enter. Если нет, введите e и отредактируйте конфигурацию.

    2.14. Подтвердите создание конфигурации:

    y/e/d> y

    2.15. Выйдите из диалога настроек:

    e/n/d/r/c/s/q> q
  3. Создайте конфигурацию для подключения к S3.

  4. Опционально: посмотрите данные, которые будут скопированы, без выполнения копирования:

    rclone copy serversru:<container_name> selectel:<bucket_name> --dry-run

    Укажите:

    • <serversru_name> — имя подключения к Servers.ru, которое вы указали на шаге 2.3;
    • <container_name> — имя контейнера Servers.ru;
    • <selectel_name> — имя подключения к S3, которое вы указали при создании конфигурации на шаге 4;
    • <bucket_name> — имя бакета в S3.
  5. Перенесите данные одним из способов:

    • скопируйте все данные из контейнера Servers.ru в бакет S3:

      rclone copy <serversru_name>:<container_name> <selectel_name>:<bucket_name> --progress

      Укажите:

      • <serversru_name> — имя подключения к Servers.ru, которое вы указали на шаге 2.3;
      • <container_name> — имя контейнера Servers.ru;
      • <selectel_name> — имя подключения к S3, которое вы указали при создании конфигурации на шаге 4;
      • <bucket_name> — имя бакета в S3;
      • опционально: --progress — опция, которая включает отображение прогресса копирования.
    • или синхронизируйте данные — в S3 будут удалены данные, которых нет в Servers.ru:

      rclone sync <serversru_name>:<container_name> <selectel_name>:<bucket_name> --progress

5. Проверить результаты миграции

Проверить результаты миграции необходимо до удаления данных из хранилища Servers.ru.

  1. Убедитесь, что все данные появились в бакете S3.

  2. Обновите настройки приложений, которые используют данные хранилища:

    2.1. Укажите домены S3 вместо доменов Servers.ru.

    2.2. Укажите S3-ключ, который вы выдали при настройке доступа к S3 на этапе 2, вместо данных для доступа к Servers.ru.

    2.3. Если название бакета в S3 отличается от названия контейнера, которое было в хранилище Servers.ru, укажите название бакета S3.

  3. Проверьте работу приложений после обновления настроек.