Идентификатор платежного аккаунта: dn2ujjv4advyulwqk7mp
Написал практическое руководство про перенос данных из стороннего S3-совместимого хранилища в {{ objstorage-name }}. Текст уже принес в PR #1150, но README просит крупные материалы сначала обсуждать, поэтому завожу Issue с планом. Если по плану будут замечания, перепишу текст в том же PR или закрою его и принесу новый.
Почему кажется, что это нужно
В разделе «Хранение и восстановление данных» девять руководств про резервное копирование в Object Storage и ни одного про перенос данных из другого хранилища. Ближайшее по смыслу это «Миграция в Yandex Cloud с помощью Хайстекс Акура», но она про виртуальные машины, а не про объектное хранилище.
Миграция в Yandex Cloud есть в списке важных тем в guides/needs-contributing.md. Перенос объектного хранилища выглядит как самый частый первый шаг: сервис совместим с Amazon S3 API, приложение почти не меняется, надо переложить данные и переключить эндпоинт. Сценария для этого в документации нет.
Есть страница про rclone в разделе «Инструменты» и руководство по резервному копированию с локальной машины, но перенос между двумя S3-хранилищами нигде не описан.
Что в руководстве
«Миграция данных из Amazon S3 в Object Storage с помощью rclone». Шаги:
- Подготовка облака.
- Создание бакета.
- Сервисный аккаунт с ролью
storage.editor.
- Статический ключ доступа.
- Подготовка доступа на чтение к бакету в Amazon S3:
s3:ListBucket и s3:GetObject.
- Установка rclone на Linux и Windows.
- Настройка двух подключений в
rclone.conf, по одному на каждое хранилище.
- Перенос данных:
rclone copy, затем финальная rclone sync перед переключением.
- Проверка результата:
rclone check и rclone size.
- Переключение приложения на новый эндпоинт.
- Удаление созданных ресурсов.
Подключения показаны секциями конфигурационного файла, а не диалогом rclone config: подключений два, и файл нагляднее.
Что разобрано в тексте отдельно
Места, на которых перенос дает неожиданный результат:
- rclone переносит только текущие версии объектов. Предыдущие версии, метки, ACL и класс хранения не переносятся. Что из этого нужно настроить на бакете-приемнике руками, собрано в шаге переключения вместе с политикой доступа, версионированием, жизненными циклами и CORS.
copy и sync ведут себя по-разному. sync приводит приемник в точное соответствие с источником и удаляет из него лишнее, поэтому для дозаливки в бакет, куда уже пишут, годится только copy.
- Проверять перенос сравнением контрольных сумм нельзя. У объектов, загруженных составной загрузкой,
ETag считается по частям и зависит от их размера, а он у хранилищ отличается. Поэтому в rclone check используется --size-only, и это в тексте объяснено, а не просто поставлено флагом.
- Про расходы: входящий трафик в Object Storage не тарифицируется, а исходящий из хранилища-источника тарифицирует его провайдер. Отмечено, что переносить лучше с виртуальной машины в облаке, а не с локального компьютера.
Куда положено
- исходник:
ru/_tutorials/archive/storage-migration-from-amazon-s3.md;
- обертки:
ru/tutorials/archive/storage-migration-from-amazon-s3.md и ru/storage/tutorials/storage-migration-from-amazon-s3.md;
- оглавления:
ru/tutorials/toc.yaml и ru/storage/toc.yaml, в разделе «Хранение и восстановление данных» и в руководствах Object Storage;
- списки руководств:
ru/tutorials/archive/index.md и ru/storage/tutorials/index.md, отдельным подразделом «Миграция данных», чтобы не мешать с резервным копированием.
Вопросы к вам
- Подходит ли раздел «Хранение и восстановление данных» или миграцию лучше вынести в другое место?
- Стоит ли ограничиться rclone или лучше сделать руководство про перенос вообще, с вкладками под rclone и
aws s3 sync?
- Нужен ли отдельный раздел про перенос между бакетами внутри Object Storage или это уже закрыто руководством про автоматическое копирование объектов?
Текст собрал локально через yfm -i ru -c .yfm (@diplodoc/cli 5.50.4): сборка проходит без ошибок и новых предупреждений, все include раскрываются, переменные подставляются.
Идентификатор платежного аккаунта:
dn2ujjv4advyulwqk7mpНаписал практическое руководство про перенос данных из стороннего S3-совместимого хранилища в {{ objstorage-name }}. Текст уже принес в PR #1150, но README просит крупные материалы сначала обсуждать, поэтому завожу Issue с планом. Если по плану будут замечания, перепишу текст в том же PR или закрою его и принесу новый.
Почему кажется, что это нужно
В разделе «Хранение и восстановление данных» девять руководств про резервное копирование в Object Storage и ни одного про перенос данных из другого хранилища. Ближайшее по смыслу это «Миграция в Yandex Cloud с помощью Хайстекс Акура», но она про виртуальные машины, а не про объектное хранилище.
Миграция в Yandex Cloud есть в списке важных тем в guides/needs-contributing.md. Перенос объектного хранилища выглядит как самый частый первый шаг: сервис совместим с Amazon S3 API, приложение почти не меняется, надо переложить данные и переключить эндпоинт. Сценария для этого в документации нет.
Есть страница про rclone в разделе «Инструменты» и руководство по резервному копированию с локальной машины, но перенос между двумя S3-хранилищами нигде не описан.
Что в руководстве
«Миграция данных из Amazon S3 в Object Storage с помощью rclone». Шаги:
storage.editor.s3:ListBucketиs3:GetObject.rclone.conf, по одному на каждое хранилище.rclone copy, затем финальнаяrclone syncперед переключением.rclone checkиrclone size.Подключения показаны секциями конфигурационного файла, а не диалогом
rclone config: подключений два, и файл нагляднее.Что разобрано в тексте отдельно
Места, на которых перенос дает неожиданный результат:
copyиsyncведут себя по-разному.syncприводит приемник в точное соответствие с источником и удаляет из него лишнее, поэтому для дозаливки в бакет, куда уже пишут, годится толькоcopy.ETagсчитается по частям и зависит от их размера, а он у хранилищ отличается. Поэтому вrclone checkиспользуется--size-only, и это в тексте объяснено, а не просто поставлено флагом.Куда положено
ru/_tutorials/archive/storage-migration-from-amazon-s3.md;ru/tutorials/archive/storage-migration-from-amazon-s3.mdиru/storage/tutorials/storage-migration-from-amazon-s3.md;ru/tutorials/toc.yamlиru/storage/toc.yaml, в разделе «Хранение и восстановление данных» и в руководствах Object Storage;ru/tutorials/archive/index.mdиru/storage/tutorials/index.md, отдельным подразделом «Миграция данных», чтобы не мешать с резервным копированием.Вопросы к вам
aws s3 sync?Текст собрал локально через
yfm -i ru -c .yfm(@diplodoc/cli 5.50.4): сборка проходит без ошибок и новых предупреждений, все include раскрываются, переменные подставляются.