Поделиться через


Использование AzCopy для копирования BLOB-объектов между учетными записями хранения Azure с ограничениями сети

В этой статье описано, как копировать BLOB-объекты между учетными записями хранения с помощью программы командной строки AzCopy. В нем также объясняется, как реализовать операцию копирования при настройке сетевых ограничений для учетных записей хранения.

Общие сведения

Копирование файлов BLOB-объектов между двумя учетными записями хранения является распространенным требованием для многих пользователей Azure. Служба хранилища Azure поддерживает прямое копирование больших двоичных объектов из одной учетной записи хранения в другую, что можно реализовать с помощью программы командной строки AzCopy. Пользователям не нужно скачивать файлы на локальные диски или буферы, а затем отправлять их снова.

Копирование больших двоичных объектов между двумя учетными записями хранения с помощью AzCopy не зависит от пропускной способности сети локального компьютера. Этот метод может использовать преимущества производительности учетных записей хранения и azure виртуальная сеть для достижения более высокой пропускной способности, чем скачивание и отправка файлов. Плата за пропускную способность не взимается, если обе учетные записи хранения находятся в одном регионе.

Команды AzCopy для копирования BLOB-объектов между учетными записями хранения

  • Если вы предоставляете учетные данные авторизации с помощью Microsoft Entra ID, используйте следующую команду:

    azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path>'
    

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

  • Если вы используете маркер подписанного URL-адреса (SAS), используйте следующую команду:

    azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>'
    

    В этом сценарии необходимо добавить маркер SAS к исходному и целевому URL-адресу, используемому в командах AzCopy.

Дополнительные сведения см. в статье Копирование BLOB-объектов между учетными записями хранения Azure с помощью AzCopy версии 10.

Копирование BLOB-объектов между учетными записями хранения с ограничением доступа

Если необходимо ограничить доступ к исходной и целевой учетным записям хранения с помощью брандмауэра хранилища, может потребоваться больше конфигураций для копирования BLOB-объектов между учетными записями хранения с помощью AzCopy. Это связано с тем, что запрос на копирование между двумя учетными записями хранения использует частные IP-адреса, а IP-адреса являются динамическими.

Ниже приведены два поддерживаемых сценария:

Сценарий 1. Клиент использует общедоступную конечную точку для доступа к учетным записям хранения

В этом сценарии необходимо добавить общедоступный IP-адрес клиента или виртуальную сеть (виртуальную сеть) в список разрешенных брандмауэра в исходной и целевой учетных записях хранения.

На следующем рисунке показан процесс копирования BLOB-объектов между учетными записями хранения в этом сценарии:

Схема, на котором показан процесс взаимодействия больших двоичных объектов между учетными записями хранения в сценарии 1.

В этом сценарии список разрешенных брандмауэров не требуется.

На следующем рисунке показан процесс копирования BLOB-объектов между учетными записями хранения в этом сценарии:

Схема, на котором показан процесс взаимодействия больших двоичных объектов между учетными записями хранения в сценарии 2.

Вот полный процесс этого механизма для двух сценариев:

  1. Клиент отправляет запрос PutBlockfromURL в целевое хранилище.
  2. Целевое хранилище получает запросы и пытается получить блоки из заданного URL-адреса источника. Однако, так как целевое хранилище не разрешено брандмауэром источника, оно получает ошибку "403 Запрещено".
  3. После того как целевое хранилище получит ошибку "403 Запрещено", оно отправляет еще один запрос GetBlob от имени клиента. Если клиент имеет доступ к исходному хранилищу, назначение сможет получить блоки из источника и вернуть клиенту код успешного ответа.
  4. Клиент отправляет PutBlockList в целевое хранилище, чтобы зафиксировать блоки и завершить процесс после получения кода успешного ответа от запроса.

Копирование BLOB-объектов между учетными записями хранения в звездообразной архитектуре с помощью частных конечных точек

Ошибка 403 возникает при использовании AzCopy для копирования больших двоичных объектов между учетными записями хранения, подключенными к частным конечным точкам в разных периферийных виртуальных сетей, из виртуальной машины в виртуальной сети концентратора. Сообщение об ошибке "403 Этот запрос не авторизован на выполнение этой операции — CannotVerfiyCopySource" можно найти в журналах AzCopy или в журналах службы хранилища Azure. На следующей схеме архитектуры показан сценарий, в котором возникает ошибка.

На схеме показана ошибка 403 при копировании больших двоичных объектов между учетными записями хранения в звездообразной архитектуре & с использованием частных конечных точек.

Решение 1. Создание частной конечной точки для целевой учетной записи хранения в исходной виртуальной сети

Возможное решение заключается в создании частной конечной точки для целевой учетной записи хранения в исходной виртуальной сети. Эта конфигурация позволяет виртуальной машине успешно копировать большие двоичные объекты между учетными записями хранения с помощью AzCopy. На следующей схеме архитектуры показан процесс копирования BLOB-объектов между учетными записями хранения в обходном пути 1.

Схема, показывающая процесс копирования BLOB-объектов между учетными записями хранения в обходном пути 1.

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

Другой вариант — разместить виртуальную машину в той же виртуальной сети, что и исходная учетная запись хранения. Затем установите пиринг между этой виртуальной сетью и целевой виртуальной сетью. На следующей схеме архитектуры показан процесс копирования BLOB-объектов между учетными записями хранения в обходном пути 2.

Схема, показывающая процесс копирования BLOB-объектов между учетными записями хранения в обходном пути 2.

Решение 3. Использование временной промежуточной учетной записи для копирования данных

Если вам не удается реализовать упомянутые ранее обходные пути или вам запрещено изменять существующую сетевую конфигурацию учетной записи хранения или виртуальной сети, можно использовать временную промежуточную учетную запись для копирования данных:

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

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

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

Свяжитесь с нами для получения помощи

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