Перенос данных из Google Cloud Storage в Хранилище BLOB-объектов Azure с помощью служба хранилища Azure Mover

Функция миграции источника S3 (простая служба хранилища) в служба хранилища Azure Mover безопасно передает данные из объектов Google Cloud Storage (GCS) с поддержкой S3 в Хранилище BLOB-объектов Azure.

В отличие от миграций AWS S3 (Amazon Simple Storage Services), использующих соединители Azure Arc нескольких облаков, миграции источников, совместимых с S3, используют упрощенный подход. Если вы безопасно храните URL исходной конечной точки и учетные данные HMAC (код аутентификации сообщений на основе хэша) в Azure Key Vault, вам не нужен мультиоблачный соединитель или автоматическое обнаружение источников.

В этой статье пошагово описывается весь процесс настройки Storage Mover для переноса ваших данных из источника GCS, совместимого с S3, в Хранилище BLOB-объектов Azure. Процесс состоит из хранения учетных данных источника в Azure Key Vault, настройки исходных и целевых конечных точек, а также создания и запуска задания миграции.

Prerequisites

Прежде чем начать, убедитесь, что у вас есть:

  • Активная подписка Azure с разрешениями на создание ресурсов служба хранилища Azure Mover и управление ими.
  • Учетная запись Google Cloud с доступом к бакету GCS, из которого вы хотите перенести данные.
  • Учетная запись хранения Azure для использования в качестве целевого хранилища.
  • Ресурс Storage Mover, развернутый в вашей подписке Azure.
  • Azure Key Vault для безопасного хранения исходных учетных данных HMAC.
  • Ключи HMAC, созданные для контейнера GCS. См. раздел "Создание ключей HMAC" для GCS.
  • Настройка приватного подключения на Azure, если исходные данные доступны только через частную сеть.

Limits

Функция миграции источников GCS, совместимая с S3, в служба хранилища Azure Mover имеет следующие ограничения:

  • Каждое задание миграции поддерживает передачу 500 миллионов объектов.
  • Для каждой подписки поддерживается не более 10 параллельных заданий. Если вам нужно запустить более 10, создайте запрос на поддержку.
  • Поддерживается только доступ HTTPS к источнику, совместимом с S3.
  • Источник, совместимый с S3, должен поддерживать проверку подлинности стиля подписи AWS версии 4 (SigV4).

Вещи, которые нужно знать

Прежде чем начать миграцию, ознакомьтесь со следующими рекомендациями, характерными для миграции источников, совместимых с GCS S3:

Метод аутентификации

Доступ, совместимый с GCS S3, использует ключи HMAC (идентификатор ключа доступа и секретный ключ), связанные с учетной записью службы GCS или учетной записью пользователя. Эти ключи позволяют GCS реагировать на стандартные запросы API S3 с помощью процесса проверки подлинности подписи AWS версии 4.

Создание ключей HMAC для GCS

Чтобы получить доступ к контейнеру GCS с помощью интерфейса, совместимого с S3, необходимо создать ключи HMAC в Google Cloud Console.

  1. Перейдите в Google Cloud Console.

  2. Перейдите на вкладку Cloud Storage>Настройки>Совместимость.

  3. Если вы еще не сделали этого, выберите "Задать проект по умолчанию" для доступа к взаимодействию.

  4. В разделе "Ключи доступа" для учетных записей служб выберите учетную запись службы, которую вы хотите использовать, и выберите команду "Создать ключ".

  5. Обратите внимание на значения ключа доступа и секретного ключа . Эти значения потребуются на следующем шаге.

    Important

    Безопасно храните эти ключи. Секретный ключ отображается только один раз. Ключ отображается только во время первоначального создания и не может быть получен позже.

  6. Убедитесь, что учетные данные HMAC имеют минимальный срок действия в течение одной недели, чтобы обеспечить завершение задания и оптимальную безопасность.

Хранение исходных учетных данных в Azure Key Vault

После создания ключей HMAC для контейнера GCS сохраните их в качестве секретов в Azure Key Vault для безопасного доступа службой Перемещения хранилища.

  1. В портале Azure перейдите в хранилище ключей Azure Key Vault, расположенное в той же подписке, что и ваш ресурс Storage Mover.

  2. В области навигации слева разверните меню "Объекты " и выберите "Секреты". Затем нажмите кнопку "Создать или импортировать".

    Снимок экрана, в котором выделено расположение элемента меню секретов Key Vault в области навигации слева.

    Снимок экрана, в котором выделено расположение элемента меню

  3. Создайте секрет для ключа доступа:

    • Имя: укажите понятное имя (например, gcs-access-key).
    • Значение секрета: вставьте значение ключа доступа HMAC из предыдущего раздела.
    • Нажмите кнопку "Создать".

    Снимок экрана, отображающий поля, относящиеся к Key Vault окне

  4. Создайте второй секрет для секретного ключа:

    • Имя: укажите понятное имя (например, gcs-secret-key).
    • Значение секрета: вставьте значение секретного ключа HMAC из предыдущего раздела.
    • Нажмите кнопку "Создать".

    Снимок экрана, отображающий поля, соответствующие Key Vault окне

  5. Обратите внимание на полный URI идентификатора секрета для каждого секрета. Эти идентификаторы требуются при создании исходной конечной точки.

Примечание.

Чтобы обеспечить оптимальную безопасность, мы рекомендуем отключить публичный доступ к хранилищу ключей Key Vault, содержащему секреты HMAC, и добавить Storage Mover в список доверенных служб.

Дополнительные сведения см. в статье Создание и получение секрета из Key Vault с помощью портала Azure.


Настройка исходных и целевых конечных точек

После хранения учетных данных HMAC в Azure Key Vault необходимо создать исходные и целевые конечные точки миграции.

В контексте службы служба хранилища Azure Mover конечная точка — это ресурс, содержащий путь к исходному или целевому расположению и другим соответствующим сведениям. Определения заданий Storage Mover используют конечные точки для указания исходного и целевого расположения при операциях копирования.

Настройка конечной точки источника, совместимой с GCS S3

Исходные конечные точки определяют расположения, из которых переносятся данные. Исходные конечные точки используются для определения источника данных, указанных в проекте миграции.

Ниже описан процесс создания исходной конечной точки.

  1. Перейдите к вашему экземпляру Storage Mover в портале Azure.

  2. В группе управления ресурсами в области навигации слева выберите конечные точки хранилища. Перейдите на вкладку "Исходные конечные точки" и выберите команду "Создать конечную точку ", чтобы открыть панель "Создать исходную конечную точку ".

  3. В области Создать исходную конечную точку:

    • Выберите миграцию Multicloud в качестве типа миграции.
    • Выберите хранилище объектов GCS — S3 в качестве типа источника.
    • Исходный URL-адрес: введите полный URL-адрес HTTPS в контейнер GCS в формате, совместимом с S3. Используйте формат: https://storage.googleapis.com/<bucket-name>/ или https://storage.googleapis.com/<bucket-name>/<prefix>/, чтобы перенести только подмножество объектов.
    • Доступ к Key Vault URI секрета: введите полный URI секрета, содержащего ключ доступа HMAC.
    • URI секрета в Key Vault: Введите полный URI секрета, содержащего ваш секретный ключ HMAC.
    • При необходимости укажите описание конечной точки.
  4. Убедитесь, что выбранные элементы правильны и выберите "Создать ", чтобы создать конечную точку.

    Снимок экрана, отображающий поля, относящиеся к окне перемещения хранилища

    Примечание.

    При создании исходной конечной точки автоматически создаётся управляемая системой идентификация. Для этого удостоверения требуется доступ к роли RBAC Key Vault Secrets User для вашего Azure Key Vault, чтобы получить учетные данные HMAC во время миграции. Портал пытается автоматически назначить эту роль. Если не удается выполнить назначение из-за недостаточных разрешений, назначьте их вручную или обратитесь к администратору Azure, чтобы он назначил роль вручную.

Настройка целевой конечной точки Хранилище BLOB-объектов Azure

  1. В группе управления ресурсами в области навигации слева выберите конечные точки хранилища. Перейдите на вкладку "Целевые конечные точки" , а затем выберите "Добавить конечную точку ", чтобы открыть панель "Создать целевую конечную точку ".

  2. На панели создания целевой конечной точки:

    • Выберите подписку и учетную запись хранения в соответствующих раскрывающихся списках.
    • Выберите контейнер BLOB в поле Тип назначения.
    • Выберите в раскрывающемся списке контейнер BLOB, к которому требуется выполнить миграцию.
    • При необходимости укажите описание конечной точки.
  3. Убедитесь, что выбранные элементы правильны и выберите "Создать ", чтобы создать конечную точку.

Назначение ролей RBAC

При создании конечных точек на портале Azure необходимые роли RBAC автоматически назначаются управляемым удостоверениям, назначаемым системой:

Endpoint Должность Целевой ресурс
Исходная конечная точка Пользователь секретов Хранилища ключей Ваш Azure Key Vault
Целевая конечная точка Участник данных хранилища BLOB-объектов Ваш контейнер BLOB в Azure

Если автоматическое назначение завершается ошибкой (например, из-за нехватки разрешений), необходимо вручную назначить эти роли или обратиться к администратору Azure.

Создание проекта миграции и определения заданий

После определения исходных и целевых конечных точек для миграции, необходимо создать проект миграции Storage Mover и конфигурацию задания.

Проект миграции позволяет упорядочить большие миграции в меньшие и управляемые единицы. Определение задания описывает ресурсы и параметры миграции для определенного набора операций копирования. К этим ресурсам относятся, например, исходные и целевые конечные точки, а также все параметры миграции, которые необходимо применить.

Выполните действия, описанные в этом разделе, чтобы создать проект миграции и запустить задание миграции.

Создание проекта

  1. Перейдите к разделу "Проекты " в разделе "План и запуск миграции " в экземпляре Mover хранилища и выберите "Создать проект " на вкладке "Проекты ".

  2. Введите значения для следующих полей:

    • Имя: понятное имя для проекта миграции.
    • Описание проекта: полезное описание проекта.
  3. Нажмите кнопку "Создать" , чтобы создать проект.

    Снимок экрана, отображающий поля, относящиеся к окне перемещения хранилища

Создание определения задания

Выберите проект после его появления, а затем нажмите кнопку "Создать задание". Мастер создания заданий имеет четыре вкладки: "Основы", " Расписание", " Параметры" и "Проверка".

Вкладка "Основные сведения"

  1. Введите значения для следующих полей:

    Поле Ценность
    Тип переноса Выберите многооблачную миграцию
    Тип источника Выберите GCS Object Storage — S3 (предварительная версия)
    Тип контейнера S3 Выбор общедоступного или закрытого (предварительная версия)
    Name Понятное имя задания
    Description (Необязательно) Описание задания (максимум 1024 символов)

    Снимок экрана, показывающий поля, относящиеся к вкладке «Основные» окна «Создание проекта» в Storage Mover.

  2. В разделе "Источник ":

    • Исходная конечная точка: выберите " Добавить исходную конечную точку " для создания новой конечной точки или выберите существующую конечную точку источника, совместимую с GCS S3.
    • Исходный вложенный путь: (необязательно) Укажите путь вложенной папки для переноса только части контейнера. Если осталось пустым, задание начинается с корня контейнера.
    • Убедитесь, что показан правильный полный путь .
  3. В разделе "Целевой объект ":

    • Целевая конечная точка: выберите "Добавить целевую конечную точку" для создания новой конечной точки или выберите существующую Хранилище BLOB-объектов Azure целевую конечную точку.
    • Целевой вложенный путь: (необязательно) Укажите целевую вложенную папку. Если оставить поле пустым, всё содержимое будет перенесено в корень контейнера. Уникальная подпатовая папка создает новую вложенную папку.

    Снимок экрана с полями окна Storage Mover

  4. Если вы выбрали закрытый для типа контейнера S3, появится раздел "Частные подключения ":

    • Выберите Добавить, чтобы связать утвержденные частные подключения с этим заданием.
    • Можно добавить только подключения в утвержденном состоянии.
    • Для балансировки нагрузки можно связать несколько частных подключений.

    Примечание.

    Для частных контейнеров требуются частные подключения. Прежде чем начать задание с типом частного контейнера, необходимо иметь по крайней мере одно утвержденное частное подключение. Сведения о настройке см. в разделе "Подключение к частной сети" для GCS .

  5. Для продолжения выберите Далее.

Вкладка "Расписание"

Выберите, когда требуется выполнить миграцию:

Option Description
Нет расписания Запуск миграции вручную
Разовое расписание Запустите миграцию один раз в определённое время
Повторяющееся расписание Запускать миграцию по ежедневному, еженедельному или ежемесячному расписанию

Important

Планирование в настоящее время недоступно для хранилища объектов GCS — типа источника S3. Задания можно выполнять только вручную. Нажмите кнопку "Нет расписания" и нажмите кнопку "Далее".

Вкладка "Параметры"

  1. Выберите нужный режим копирования из раскрывающегося списка:

    Режим копирования Behavior
    Слияние содержимого с целевым объектом Файлы хранятся в целевом объекте, даже если они не существуют в источнике. Файлы с соответствующими именами и путями обновляются, чтобы соответствовать источнику. Переименование папок между операциями копирования может привести к появлению дублирующегося содержимого в целевом расположении.
    Зеркальный источник для целевого объекта Делает целевой объект точной копией исходного. Объекты, удаленные из источника, также удаляются из целевого объекта.
  2. Ознакомьтесь с разделом "Результаты миграции" , чтобы понять, как сопоставляются данные:

    Результат Description
    Структура каталогов Целевой объект поддерживает "виртуальные" папки. Файлы получают свой исходный путь, предопределенный их именем, и помещаются в неструктурированный список. Пустые папки представлены как пустой BLOB-объект, при этом метаданные папки сохраняются в пользовательских метаданных.
    Создание метки времени Сохраняется как пользовательские метаданные BLOB-объекта. Метка времени BLOB-объекта отражает время, когда файл был перенесён.
    Изменение метки времени Сохраняется как пользовательские метаданные BLOB-объекта. В BLOB не существует собственной метки времени этого типа.
    Измененная метка времени Сохраняется как пользовательские метаданные BLOB-объекта. Метка времени BLOB-объекта отражает время, когда файл был перенесён.
    Метка времени последнего доступа Сохраняется как пользовательские метаданные BLOB-объекта, если они существуют в источнике. Собственная метка времени BLOB этого типа отсутствует.
    Другие метаданные Сохраняется в пользовательских метаданных целевого BLOB-объекта. Можно хранить только 4 КиБ метаданных. Метаданные размером более 4 КИБ не переносятся.
    Протокол миграции в облако REST API службы BLOB
  3. Для продолжения выберите Далее.

Вкладка "Проверка"

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

  • Основы: имя задания, тип миграции
  • Источник: тип источника, URL-адрес источника с именем контейнера, именем облака (GCS), подпаткой источника
  • Назначение: учетная запись хранения, контейнер BLOB-объектов Azure, целевой подпуть
  • Расписание: частота миграции
  • Параметры: режим копирования

Если все параметры правильны, выберите "Создать ", чтобы развернуть задание. Выберите "Назад", чтобы внести изменения.

Выполнение задания миграции

Начать работу

  1. Перейдите на вкладку "Проекты ". Созданное задание отображается в списке в проекте.
  2. Выберите определение задания, чтобы просмотреть сведения на вкладке "Свойства ".
  3. Нажмите кнопку "Пуск задания ".
  4. В области "Пуск" подтвердите сведения о задании и нажмите кнопку "Начать ", чтобы начать миграцию.

Задание выполняется в фоновом режиме. Ход выполнения можно отслеживать на вкладке "Обзор миграции ".

Контроль за ходом миграции

При использовании Storage Mover для миграции данных следует отслеживать операции копирования на предмет возможных проблем. Данные, связанные с операциями, выполняемыми во время миграции, отображаются на вкладке обзора миграции . Эти данные позволяют отслеживать ход выполнения миграции путем предоставления текущего состояния и ключевых сведений, таких как ход выполнения, скорость и предполагаемое время завершения.

При настройке служба хранилища Azure Mover также предоставляет журналы копирования и журналы выполнения заданий. Эти журналы позволяют отслеживать результат миграции выполнения заданий и отдельных файлов.

  1. Перейдите на вкладку "Задания миграции ".
  2. Выберите задание для просмотра хода выполнения, скорости и предполагаемого времени завершения.
  3. Выберите Журналы, чтобы проверить наличие ошибок или предупреждений.
  4. После завершения миграции проверьте данные в Хранилище BLOB-объектов Azure.

Дополнительные сведения о журналах копирования и задания Storage Mover см. в статье "Как включить копирование и журналы заданий служба хранилища Azure Mover".


Проверка после миграции

Проверка данных после миграции гарантирует, что данные точны и что передача данных из GCS в Хранилище BLOB-объектов Azure завершена. Этот процесс проверки проверяет целостность данных, сравнивая перенесенные данные с теми же данными из источника.

Выполните следующие действия, чтобы завершить проверку вручную и очистить неиспользуемые ресурсы GCS:

  1. Сравните источник и целевой ресурс: убедитесь, что все ожидаемые объекты были перенесены, сравнив количество объектов и общий размер данных в бакете GCS и контейнере Azure Blob.
  2. Выборочно проверьте целостность данных: скачайте репрезентативную выборку объектов как из источника, так и из целевого хранилища и сравните контрольные суммы.
  3. Включите инкрементальную синхронизацию (при необходимости): если вам нужно поддерживать бакет GCS и контейнер Azure Blob синхронизированными на постоянной основе, запланируйте регулярный запуск задания.
  4. Источник вывода из эксплуатации: удалите контейнер GCS и ключи HMAC после завершения и проверки миграции. Удалите соответствующие секреты из Azure Key Vault, если они больше не нужны.

Устранение неполадок и поддержка

При возникновении проблем во время миграции начните устранять неполадки, выполнив следующие действия.

Проблема Разрешение
Не удалось выполнить задание миграции Просмотрите журналы копирования и заданий, чтобы увидеть подробные сообщения об ошибках. Распространенные причины включают недопустимые учетные данные или проблемы с сетевым подключением.
Ошибка проверки подлинности Убедитесь, что ключ доступа HMAC и секретный ключ, хранящиеся в Azure Key Vault, являются правильными и не истекают. Убедитесь, что управляемому удостоверению исходной конечной точки назначена роль Key Vault Secrets User для доступа к вашему Key Vault.
Ошибка разрешения для целевого объекта Убедитесь, что управляемому идентификатору целевой конечной точки назначена роль Участник данных BLOB-объектов хранилища для целевого контейнера BLOB-объектов.
Передача данных выполняется медленно Убедитесь, что пропускная способность сети достаточна. GCS может реализовать ограничения скорости для запросов API, совместимых с S3. Если возникает ограничение скорости, рассмотрите возможность уменьшения числа параллельных заданий.
Объекты, отсутствующие после синхронизации Из-за детализации метки времени GCS второго уровня объекты, измененные в течение той же секунды, что и последняя синхронизация, не могут быть обнаружены до следующего запуска задания. Подождите и выполните дополнительную синхронизацию.
Непредвиденные объекты в целевом объекте Объекты заполнителей каталога GCS (объекты нулевого байта, заканчивающиеся /) автоматически пропускаются и не должны отображаться в целевом объекте. Если непредвиденные объекты существуют, просмотрите журналы копирования для получения сведений.
Исходный URL-адрес отклонен Убедитесь, что исходный URL-адрес использует HTTPS, не содержит параметры запроса, фрагменты или IP-адреса и указывает на допустимое полное доменное имя.

Если не удается устранить проблему, создайте запрос поддержка Azure.


Следующие статьи помогут вам узнать больше о службе перемещения хранилища: