Бесшовная миграция с внешнего S3
Назначение
Бесшовная миграция позволяет перевести клиентов с действующего S3-хранилища (например, MinIO) на ЗАКРОМА.Хранение с минимальным простоем — не более 15–30 минут на всю операцию переключения.
Клиентские приложения продолжают работу без остановки: пока перенос данных не запущен, все запросы прозрачно проксируются на хранилище-источник; после запуска переноса уже перенесённые файлы читаются из Закрома, а файлы, которые ещё не перенесены, остаются доступны для чтения через прокси.
Два вида миграцииДанная статья описывает перенос данных с внешнего S3-хранилища в Закрома. Если вам нужно перенести данные между группами хранения внутри Закрома — используйте Миграцию данных.
Сценарий 1: Переключение клиента, работающего с бакетом
Требования
- Хранилище-источник (тип S3) должно быть заранее подключено в разделе «Хранилища».
- Bucket с данными должен быть заранее создан на хранилище-источнике — Закрома не создаёт его автоматически.
- В бакете Закрома не должно быть вольюмов «Только для чтения» (проверяется при запуске переноса данных).
- На одном бакете может существовать только один прокси.
Шаги
1. Создайте новый бакет с подключением к хранилищу-источнику
Перейдите в нужную рабочую область → вкладку «Buckets» → нажмите кнопку создания нового бакета. В открывшейся форме «Создание bucket»:
- Наименование — укажите уникальное имя нового бакета в Закрома (только строчные латинские буквы, цифры и дефисы).
- Активируйте чекбокс «Подключить хранилище-источник для миграции».
- Хранилище-источник — выберите ранее подключённое S3-хранилище (например, ваш MinIO).
- Bucket — укажите имя bucket’а на хранилище-источнике.
- Путь в bucket (опционально) — укажите префикс пути к данным внутри указанного bucket’а на хранилище-источнике.
- Версия структуры данных — выберите версию (
v1илиv2, по умолчаниюv1). - Нажмите
Сохранить.

Bucket на источнике должен существовать заранееBucket, указанный в поле «Bucket», должен быть заранее создан на хранилище-источнике — Закрома не создаёт его автоматически.
После сохранения система создаёт новый бакет и переводит его в режим проксирования: данные физически остаются на хранилище-источнике, а Закрома прозрачно перенаправляет туда все запросы к бакету, выступая управляющим слоем.
Консистентность данныхПока бакет работает в режиме проксирования, все запросы к соответствующему bucket’у (или префиксу) на хранилище-источнике должны выполняться через S3 API Закрома. Прямые обращения к хранилищу-источнику в обход Закрома могут привести к потере консистентности данных при последующем переносе.
2. Добавьте целевую группу хранения
Прежде чем запускать перенос данных, добавьте в бакете группу хранения, в которую данные будут перенесены, — обычным способом, как описано в Настройке хранения бакета.
3. Создайте пользователя и настройте права доступа
Создайте пользователя и права доступа для работы с новым бакетом.
4. Переключите клиентские приложения
В клиентском S3-приложении укажите новые параметры подключения:
- Endpoint — адрес Закрома Gateway
- Access key / Secret key — ключи доступа в Закрома
- Bucket — имя бакета, созданного на шаге 1
5. Запустите перенос данных
Когда будете готовы физически перенести данные с хранилища-источника в Закрома:
- Откройте бакет → вкладку «Настройка хранения».
- В блоке «Хранилище-источник» нажмите на иконку контекстного меню в строке с параметрами подключения.
- Выберите «Мигрировать данные».
- Система откроет диалог «Миграция данных» с вопросом «Вы уверены, что хотите начать миграцию данных?» и предупреждением: «После запуска миграцию невозможно прервать. Редактирование параметров подключения будет недоступно.»
- При необходимости включите чекбокс «Пропускать ошибки скачивания с прокси» (по умолчанию выключен) и нажмите
Мигрировать. - Система блокирует редактирование параметров подключения (контекстное меню скрывается) и запускает фоновый процесс переноса данных с хранилища-источника в целевое хранилище.

Пропускать ошибки скачивания с проксиЧекбокс «Пропускать ошибки скачивания с прокси» (по умолчанию выключен) позволяет не прерывать перенос данных из-за ошибок скачивания объектов с хранилища-источника. Ошибки игнорируются только на последнем повторе попытки скачивания — ошибки установления соединения с хранилищем не игнорируются, пропускаются только ошибки, которые вернул сервер хранилища. Файлы, которые не удалось скачать из-за ошибки, будут потеряны.
Когда перенос запустить нельзяСистема заблокирует запуск и покажет уведомление, если в бакете нет ни одной группы хранения или если в бакете есть вольюмы «Только для чтения».
Поведение бакета в режиме проксирования (до запуска переноса)
Пока перенос данных не запущен, все запросы к бакету — чтение, запись, листинг — прозрачно перенаправляются на хранилище-источник: Закрома выступает управляющим слоем, физически данные остаются на источнике.
Поведение во время переноса данных
Перенос выполняется порциями в фоновом режиме. Уже перенесённые файлы читаются из целевого хранилища Закрома. Файлы, которые ещё не перенесены, остаются доступны для чтения благодаря сохраняющейся на этом этапе части функциональности проксирования — запрос прозрачно уходит на хранилище-источник. Клиент не замечает переключения.
Редактирование параметров подключения
Пока перенос данных не запущен, параметры подключения к хранилищу-источнику можно изменить:
- Откройте бакет → вкладку «Настройка хранения».
- В блоке «Хранилище-источник» нажмите на иконку контекстного меню в строке с параметрами подключения.
- Выберите «Редактировать».
- Обновите доступные для редактирования параметры и нажмите
Сохранить.
Все новые запросы к бакету будут направляться в соответствии с обновлёнными параметрами подключения. Файлы, загруженные до изменения настроек, становятся недоступны.
Завершение переноса
По завершении переноса данных система автоматически:
- удаляет прокси (соединение с хранилищем-источником);
- скрывает блок «Хранилище-источник»;
- скрывает заголовок «Настройки хранения» — группы хранения остаются в общем списке бакета уже без отдельного заголовка, как в обычном бакете.
Бакет продолжает работу как обычный бакет Закрома. Данные на хранилище-источнике не удаляются автоматически — при необходимости удалите их вручную.
Ограничения
- На одном бакете — только один прокси.
- Во время переноса данных нельзя изменять конфигурацию бакета (группы хранения, политики), включая параметры подключения к хранилищу-источнику — контекстное меню редактирования скрывается до завершения переноса.
- Запущенный перенос данных нельзя прервать и нельзя вернуться на предыдущий этап (проксирование). Процесс продолжается до успешного завершения, после чего прокси удаляется автоматически.
Версии объектовЕсли версионирование включено, версии объектов при миграции переносятся.