Использование AzCopy для копирования больших двоичных объектов между учетными записями хранения Azure с ограничениями сети
В этой статье описывается, как скопировать большие двоичные объекты между учетными записями хранения с помощью служебной программы командной строки AzCopy. В нем также объясняется, как реализовать операцию копирования при настройке ограничений сети для учетных записей хранения.
Общие сведения
Копирование файлов BLOB-объектов между двумя учетными записями хранения является общим требованием для многих пользователей Azure. служба хранилища Azure поддерживает непосредственное копирование больших двоичных объектов из одной учетной записи хранения в другую, которая может быть реализована с помощью служебной программы командной строки AzCopy. Пользователям не нужно скачивать файлы на локальные диски или буферы, а затем снова отправлять их.
Копирование больших двоичных объектов между двумя учетными записями хранения с помощью AzCopy не зависит от пропускной способности сети локального компьютера. Этот метод может воспользоваться преимуществами производительности учетных записей хранения и Azure виртуальная сеть для повышения пропускной способности, чем загрузка и отправка файлов. Плата за пропускную способность не взимается, если обе учетные записи хранения находятся в одном регионе.
Команды AzCopy для копирования больших двоичных объектов между учетными записями хранения
Если вы предоставляете учетные данные авторизации с помощью идентификатора Microsoft Entra, используйте следующую команду:
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.
Дополнительные сведения см. в статье "Копирование БОЛЬШИХ двоичных объектов между учетными записями хранения Azure" с помощью AzCopy версии 10.
Копирование BLOB-объектов между учетными записями хранения с ограничением доступа
Если необходимо ограничить доступ как к исходным, так и целевым учетным записям хранения через брандмауэр хранилища, может потребоваться больше конфигураций для копирования больших двоичных объектов между учетными записями хранения с помощью AzCopy. Это связано с тем, что запрос копирования между двумя учетными записями хранения использует частные IP-адреса, а IP-адреса являются динамическими.
Ниже приведены два поддерживаемых сценария:
Сценарий 1. Клиент использует общедоступную конечную точку для доступа к учетным записям хранения
В этом сценарии необходимо добавить общедоступный IP-адрес клиента или виртуальную сеть (виртуальную сеть) в список разрешений брандмауэра в исходных и целевых учетных записях хранения.
На следующем рисунке показан процесс копирования БОЛЬШИХ двоичных объектов между учетными записями хранения в этом сценарии:
Сценарий 2. Виртуальная сеть клиента имеет частные каналы, и использует частную конечную точку для доступа к учетным записям хранения.
В этом сценарии список разрешений брандмауэра не нужен.
На следующем рисунке показан процесс копирования БОЛЬШИХ двоичных объектов между учетными записями хранения в этом сценарии:
Ниже приведен полный процесс этого механизма для двух сценариев:
- Клиент отправляет запрос PutBlockfromURL в целевое хранилище.
- Целевое хранилище получает запросы и пытается получить блоки из заданного исходного URL-адреса. Однако, так как целевое хранилище не разрешено исходным брандмауэром, он получает ошибку "403 Запрещено".
- После того как целевое хранилище получит ошибку "403 Запрещено", она отправляет другой запрос GetBlob от имени клиента. Если клиент имеет доступ к исходному хранилищу, назначение сможет получить блоки из источника и вернуть код ответа успешного выполнения клиенту.
- Клиент отправляет PutBlockList в целевое хранилище, чтобы зафиксировать блоки и завершить процесс после получения кода ответа успешного выполнения из запроса.
Копирование больших двоичных объектов между учетными записями хранения в архитектуре периферийных центров с помощью частных конечных точек
Ошибка 403 возникает при использовании AzCopy для копирования больших двоичных объектов между учетными записями хранения, подключенными к частным конечным точкам в разных периферийных виртуальных сетям из виртуальной машины в виртуальной сети Концентратора. Вы можете найти ошибку "403 Этот запрос не авторизован для выполнения этой операции - NotVerfiyCopySource" в журналах AzCopy или в журналах служба хранилища Azure. На следующей схеме архитектуры показан сценарий, в котором возникает ошибка.
Решение 1. Создание частной конечной точки для конечной учетной записи хранения в исходной виртуальной сети
Возможное решение — создать частную конечную точку для целевой учетной записи хранения в исходной виртуальной сети. Эта конфигурация позволяет виртуальной машине успешно копировать большие двоичные объекты между учетными записями хранения с помощью AzCopy. На следующей схеме архитектуры показан процесс копирования больших двоичных объектов между учетными записями хранения в обходном пути 1.
Решение 2. Поместите виртуальную машину в ту же виртуальную сеть, что и исходную учетную запись хранения и пиринг виртуальной сети с целевой виртуальной сетью.
Другим вариантом является размещение виртуальной машины в той же виртуальной сети, что и исходная учетная запись хранения. Затем установите пиринг между этой виртуальной сетью и конечной виртуальной сетью. На следующей схеме архитектуры показан процесс копирования больших двоичных объектов между учетными записями хранения в обходной 2.
Обходное решение 3. Использование временной промежуточной учетной записи для копирования данных
Если вы не можете реализовать описанные ранее обходные пути или ограничить изменение существующей конфигурации сети учетной записи хранения или виртуальной сети, можно использовать временную промежуточную учетную запись для копирования данных:
- Создайте временную учетную запись хранения в том же регионе, что и исходная учетная запись хранения и целевая учетная запись хранения.
- Используйте AzCopy для копирования данных из исходной учетной записи хранения во временную учетную запись хранения.
- Скопируйте данные из временной учетной записи хранения в целевую учетную запись хранения. Перед выполнением передачи данных убедитесь, что временная учетная запись хранения имеет частную конечную точку в той же виртуальной сети, что и целевая учетная запись хранения.
Решение 4. Использование виртуальной машины и скачивание данных на виртуальную машину, а затем передача данных в целевую учетную запись хранения
Используйте это решение только в том случае, если другие методы не являются возможными. С помощью виртуальной машины скачайте данные из исходной учетной записи хранения, а затем отправьте ее в целевую учетную запись хранения. Это можно сделать с помощью AzCopy. Убедитесь, что размер и емкость диска виртуальной машины подходят для процесса передачи данных.
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.