Миграция облачного хранилища из Servers.ru в S3
Вы можете самостоятельно перенести данные из облачного хранилища Servers.ru (Swift) в S3 от Selectel.
Если в процессе миграции возникнут трудности:
- на стороне Servers.ru — обратитесь в службу поддержки Servers.ru;
- на стороне Selectel — создайте тикет.
Способы миграции
Для миграции можно использовать разные инструменты для работы с S3, например:
- Rclone (рекомендуемый способ) — поддерживает прямую передачу данных без промежуточного копирования, а также сегментированную загрузку при высокой скорости передачи данных. Подходит для переноса большого объема данных;
- графический клиент Cyberduck — не поддерживает копирование и прямой перенос данных из Servers.ru в S3. Потребуется скачать данные из хранилища Servers.ru и загрузить в S3 вручную;
- FTP — не поддерживает копирование и прямой перенос данных из Servers.ru в S3. Потребуется скачать данные из хранилища Servers.ru и загрузить в S3 вручную. Работает только с бакетами S3, которые находятся в пулах ru-1 и ru-7.
Выполнить миграцию
- Подготовьте S3.
- Настройте доступ к S3.
- Получите данные для подключения к Servers.ru.
- Настройте инструмент и перенесите данные.
- Проверьте результаты миграции.
1. Подготовить S3
-
Если у вас еще нет аккаунта в панели управления Selectel:
1.1. Зарегистрируйте аккаунт в панели управления.
1.2. Пополните баланс.
-
Создайте бакет S3 в нужном пуле. Мы рекомендуем создавать бакет в пуле ru-7.
2. Настроить доступ к S3
Настроить доступ может Владелец аккаунта или пользователь с ролью iam.admin.
- Создайте сервисного пользователя с ролью с доступом в S3.
Если вы используете сервисного пользователя с ролью
s3.user,object_storage_userилиs3.bucket.user, в бакете должна быть настроена политика доступа и ее правила должны разрешать доступ этому пользователю. - Выдайте пользователю S3-ключ.
3. Получить данные для подключения к Servers.ru
-
В панели управления Servers.ru откройте вкладку Облачное хранилище.
-
В блоке Реквизиты доступа скопируйте и сохраните данные:
-
логин и пароль для доступа через 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
Cyberduck
FTP
-
Создайте конфигурацию для подключения к Servers.ru:
2.1. Откройте режим конфигурирования:
rclone configВ консоли появится диалог:
No remotes found, make a new one?n) New remotes) Set configuration passwordq) Quit config2.2. Создайте новую конфигурацию:
n/s/q> n2.3. Введите имя подключения к удаленному хранилищу, например
serversru:name> serversru2.4. Введите тип хранилища OpenStack Swift:
Storage> swift2.5. Выберите способ получения авторизационных данных, который указан после строки
Enter AWS credentials in the next step:env_auth> false2.6. Введите логин:
user> <login>Укажите
<login>— логин для доступа через Swift API к Servers.ru, который вы сохранили при получении данных на этапе 3.2.7. Введите пароль:
key> <password>Укажите
<password>— пароль для доступа через Swift API к Servers.ru, который вы сохранили при получении данных на этапе 3.2.8. Введите URL для доступа по Swift API:
endpoint> <swift_domain>Укажите
<swift_domain>— адрес сервера Servers.ru, который вы сохранили при получении данных на этапе 3.2.9. В параметре
auth_versionвведите3:auth_version> 32.10. Опциональные параметры оставьте пустыми.
2.11. В параметре
Option domainвведитеdefault.2.12. Параметр
Edit advanced configоставьте пустым или введитеn.2.13. Проверьте конфигурацию. Если конфигурация верная, нажмите Enter. Если нет, введите
eи отредактируйте конфигурацию.2.14. Подтвердите создание конфигурации:
y/e/d> y2.15. Выйдите из диалога настроек:
e/n/d/r/c/s/q> q -
Опционально: посмотрите данные, которые будут скопированы, без выполнения копирования:
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, который вы создали при подготовке S3 на этапе 1.
-
Перенесите данные одним из способов:
-
скопируйте все данные из контейнера 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, который вы создали при подготовке S3 на этапе 1.- опционально:
--progress— опция, которая включает отображение прогресса копирования.
-
или синхронизируйте данные — в S3 будут скопированы данные из контейнера Servers.ru, которых нет в бакете. Если в бакете S3 есть данные, которых нет в контейнере Servers.ru, они будут удалены:
rclone sync <serversru_name>:<container_name> <selectel_name>:<bucket_name> --progress
-
5. Проверить результаты миграции
Проверить результаты миграции необходимо до удаления данных из хранилища Servers.ru.
-
Убедитесь, что все данные появились в бакете S3.
-
Обновите настройки приложений, которые используют данные хранилища:
2.1. Укажите домены S3 вместо доменов Servers.ru.
2.2. Укажите S3-ключ, который вы выдали при настройке доступа к S3 на этапе 2, вместо данных для доступа к Servers.ru.
2.3. Если название бакета в S3 отличается от названия контейнера, которое было в хранилище Servers.ru, укажите название бакета S3.
-
Проверьте работу приложений после обновления настроек.