Восстановление архивного большого двоичного объекта на подключенный уровень
Статья
Чтобы прочитать большой двоичный объект, который находится на уровне архива, необходимо сначала восстановить большой двоичный объект в режиме "интернет", "горячий", "холодный" или "холодный". BLOB-объект можно восстановить одним из двух способов:
При восстановлении BLOB-объекта можно указать для операции стандартный или высокий приоритет. Для выполнения операции восстановления со стандартным приоритетом потребуется до 15 часов. Операция с высоким приоритетом будет обрабатываться с быстрее запросов со стандартным приоритетом и может быть выполнена в течение часа для объектов размером до 10 ГБ. Вы можете изменить приоритет восстановления Стандартный на Высокий для ожидающей операции.
После завершения восстановления можно настроить службу "Сетка событий Azure" для запуска и выполнения кода приложения в ответе. Сведения о том, как выполнить обработку события, запускающего функцию Azure по завершении операции восстановления BLOB-объекта, см. в статье Запуск функции Azure в ответ на событие восстановления BLOB-объекта.
Восстановление BLOB-объекта с использованием операции копирования
Чтобы восстановить большой двоичный объект из архивного уровня, скопируйте его на онлайн-уровень, используйте портал Azure, PowerShell, Azure CLI или одну из клиентских библиотек служба хранилища Azure. Помните, что при копировании архивного большого двоичного объекта на подключенный уровень у исходного и целевого BLOB-объектов должны быть разные имена.
Копирование архивного BLOB-объекта на целевой уровень в сети поддерживается для той же учетной записи хранения. Начиная с версии службы 2021-02-12, вы можете скопировать заархивированный BLOB-объект в другую учетную запись хранения, если целевая учетная запись находится в том же регионе, что и исходная учетная запись.
По завершении операции копирования BLOB-объект появится на архивном уровне. Затем целевой большой двоичный объект восстанавливается на подключенном уровне, указанном в операции копирования. После полного восстановления целевой BLOB-объект становится доступным на новом подключенном уровне.
Восстановление BLOB-объекта в той же учетной записи хранения
В следующих примерах показано, как скопировать архивный большой двоичный объект в большой двоичный объект на горячем уровне в той же учетной записи хранения.
Перейдите к исходной учетной записи хранения на портале Azure.
В области навигации для учетной записи хранения выберите служба хранилища браузере.
В браузере хранилища перейдите к расположению архивного большого двоичного объекта, выберите поле проверка, которое отображается рядом с большим двоичным объектом, а затем нажмите кнопку "Копировать".
Перейдите к контейнеру, в котором вы хотите поместить регидратированный большой двоичный объект, а затем нажмите кнопку "Вставить ".
Откроется диалоговое окно "Вставка архивного большого двоичного объекта ".
Примечание.
Если выбрать кнопку "Вставить " в том же расположении, что и исходный BLOB-объект, то имя по умолчанию, отображаемое в поле имени целевого BLOB-объекта, содержит числовые суффиксы. Это гарантирует, что исходные и целевые большие двоичные объекты имеют разные имена. Это имя можно изменить, если нужно, если имя отличается от имени исходного БОЛЬШОго двоичного объекта.
В диалоговом окне "Вставка архивного большого двоичного объекта" выберите уровень доступа и приоритет восстановления. Затем нажмите кнопку "Вставить ", чтобы восстановить большой двоичный объект.
Внимание
Не удаляйте исходный большой двоичный объект во время повторного восстановления.
Чтобы скопировать архивный большой двоичный объект на подключенный уровень с помощью PowerShell, вызовите команду Start-AzStorageBlobCopy и укажите целевой уровень и приоритет восстановления. Не забудьте заменить заполнители в угловых скобках собственными значениями.
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$srcContainerName = "<source-container>"
$destContainerName = "<dest-container>"
$srcBlobName = "<source-blob>"
$destBlobName = "<dest-blob>"
# Get the storage account context
$ctx = (Get-AzStorageAccount `
-ResourceGroupName $rgName `
-Name $accountName).Context
# Copy the source blob to a new destination blob in hot tier with Standard priority.
Start-AzStorageBlobCopy -SrcContainer $srcContainerName `
-SrcBlob $srcBlobName `
-DestContainer $destContainerName `
-DestBlob $destBlobName `
-StandardBlobTier Hot `
-RehydratePriority Standard `
-Context $ctx
Чтобы скопировать архивный большой двоичный объект на подключенный уровень с помощью Azure CLI, вызовите команду az storage blob copy start и укажите целевой уровень и приоритет восстановления. Не забудьте заменить заполнители в угловых скобках собственными значениями.
az storage blob copy start \
--source-container <source-container> \
--source-blob <source-blob> \
--destination-container <dest-container> \
--destination-blob <dest-blob> \
--account-name <storage-account> \
--tier hot \
--rehydrate-priority standard \
--auth-mode login
Н/П
Восстановление BLOB-объекта в другой учетной записи хранения в том же регионе
В следующих примерах показано, как скопировать архивный большой двоичный объект в большой двоичный объект на горячем уровне в другой учетной записи хранения.
Примечание.
Целевая и исходная учетная запись должны находиться в одном регионе.
Перейдите к исходной учетной записи хранения на портале Azure.
В области навигации для учетной записи хранения выберите служба хранилища браузере.
В браузере хранилища перейдите к расположению архивного большого двоичного объекта, выберите поле проверка, которое отображается рядом с большим двоичным объектом, а затем нажмите кнопку "Копировать".
Перейдите к целевой учетной записи хранения и в области навигации выберите служба хранилища браузере.
Перейдите к контейнеру, в котором вы хотите поместить регидратированный большой двоичный объект, а затем нажмите кнопку "Вставить ".
Откроется диалоговое окно "Вставка архивного большого двоичного объекта ".
В диалоговом окне "Вставка архивного большого двоичного объекта" выберите уровень доступа и приоритет восстановления. Затем нажмите кнопку "Вставить ", чтобы восстановить большой двоичный объект.
Внимание
Не удаляйте исходный большой двоичный объект во время повторного восстановления.
Чтобы скопировать архивный BLOB-объект в BLOB-объект на сетевом уровне в другой учетной записи хранения с помощью PowerShell, убедитесь, что вы установили модуль Az.Storage версии 4.4.0 или выше. Затем вызовите команду Start-AzStorageBlobCopy и укажите целевой подключенный уровень и приоритет восстановления. Необходимо указать подписанный URL-адрес (SAS) с разрешениями на чтение для архивного исходного BLOB-объекта.
В следующем примере показано, как скопировать архивный большой двоичный объект на горячий уровень в другой учетной записи хранения. Не забудьте заменить заполнители в угловых скобках собственными значениями.
$rgName = "<resource-group>"
$srcAccount = "<source-account>"
$destAccount = "<dest-account>"
$srcContainer = "<source-container>"
$destContainer = "<dest-container>"
$srcBlob = "<source-blob>"
$destBlob = "<destination-blob>"
# Get the destination account context
$destCtx = New-AzStorageContext -StorageAccountName $destAccount -UseConnectedAccount
# Get the source account context
$srcCtx = New-AzStorageContext -StorageAccountName $srcAccount -UseConnectedAccount
# Get the SAS URI for the source blob
$srcBlobUri = New-AzStorageBlobSASToken -Container $srcContainer `
-Blob $srcBlob `
-Permission rwd `
-ExpiryTime (Get-Date).AddDays(1) `
-FullUri `
-Context $srcCtx
# Start the cross-account copy operation
Start-AzStorageBlobCopy -AbsoluteUri $srcBlobUri `
-DestContainer $destContainer `
-DestBlob $destBlob `
-DestContext $destCtx `
-StandardBlobTier Hot `
-RehydratePriority Standard
Чтобы скопировать архивный BLOB-объект в BLOB-объект на сетевом уровне в другой учетной записи хранения с помощью Azure CLI, убедитесь, что вы установили версию 2.35.0 или выше. Затем вызовите команду az storage blob copy start и укажите целевой подключенный уровень и приоритет восстановления. Необходимо указать подписанный URL-адрес (SAS) с разрешениями на чтение для архивного исходного BLOB-объекта.
В следующем примере показано, как скопировать архивный большой двоичный объект на горячий уровень в другой учетной записи хранения. Не забудьте заменить заполнители в угловых скобках собственными значениями.
# Specify the expiry interval
end=`date -u -d "1 day" '+%Y-%m-%dT%H:%MZ'`
# Get a SAS for the source blob
srcBlobUri=$(az storage blob generate-sas \
--account-name <source-account> \
--container <source-container> \
--name <archived-source-blob> \
--permissions rwd \
--expiry $end \
--https-only \
--full-uri \
--as-user \
--auth-mode login | tr -d '"')
# Copy to the destination blob in the hot tier
az storage blob copy start \
--source-uri $srcBlobUri \
--account-name <dest-account> \
--destination-container <dest-container> \
--destination-blob <dest-blob> \
--tier Hot \
--rehydrate-priority Standard \
--auth-mode login
Н/П
Восстановление из дополнительного региона
Если вы настроили для учетной записи хранения использование геоизбыточного хранилища с доступом на чтение (RA-GRS), то вы можете скопировать архивный большой двоичный объект, расположенный в дополнительном регионе, в хранилище подключенного уровня в другой учетной записи хранения, расположенной в том же дополнительном регионе.
Для восстановления из дополнительного региона используйте рекомендации из предыдущего раздел (Восстановление BLOB-объекта в другой учетной записи хранения в том же регионе). Единственное изменение — добавьте суффикс -secondary к имени учетной записи для основной конечной точки. Например, если основная конечная точка для хранилища BLOB-объектов — myaccount.blob.core.windows.net, то дополнительной конечной точкой будет myaccount-secondary.blob.core.windows.net. Ключи доступа для учетной записи хранения одинаковые как для основной, так и для дополнительной конечных точек.
Чтобы изменить уровень BLOB-объекта с архивного на горячий или холодный на портале Azure, выполните следующие действия.
Найдите большой двоичный объект на портале Azure.
В правой части страницы нажмите кнопку Дополнительно.
Выберите Изменить уровень.
Из раскрывающегося списка Уровень доступа выберите целевой уровень доступа.
Из раскрывающегося списка Приоритет восстановления выберите необходимый приоритет восстановления. Следует помнить, что установка приоритета восстановления Высокий обычно обеспечивает более быстрое восстановление, но при этом приводит к дополнительным затратам.
Выберите кнопку Сохранить.
Чтобы изменить уровень большого двоичного объекта из архива в горячий или холодный с помощью PowerShell, используйте свойство BLOB-объекта для возврата ссылки на BLOB-объект .NET, а затем вызовите метод SetAccessTier в этой ссылке. Не забудьте заменить заполнители в угловых скобках собственными значениями.
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$containerName = "<container>"
$blobName = "<archived-blob>"
# Get the storage account context
$ctx = (Get-AzStorageAccount `
-ResourceGroupName $rgName `
-Name $accountName).Context
# Change the blob's access tier to hot with Standard priority.
$blob = Get-AzStorageBlob -Container $containerName -Blob $blobName -Context $ctx
$blob.BlobClient.SetAccessTier("Hot", $null, "Standard")
Чтобы изменить уровень BLOB-объекта с архивного на горячий или холодный в Azure CLI, вызовите команду az storage blob set-tier. Не забудьте заменить заполнители в угловых скобках собственными значениями.
az storage blob set-tier \
--account-name <storage-account> \
--container-name <container> \
--name <archived-blob> \
--tier Hot \
--rehydrate-priority Standard \
--auth-mode login
Чтобы изменить уровень большого двоичного объекта из архива в "горячий" или "холодный" с помощью AzCopy, используйте команду azcopy set-properties и задайте -block-blob-tier параметр требуемому уровню, а также --rehydrate-priority значение standard или high. По умолчанию этот параметр имеет значение standard. Дополнительные сведения о компромиссах для каждого из этих вариантов см. в статье Приоритет восстановления.
Внимание
Возможность изменять уровень для большого двоичного объекта с помощью AzCopy сейчас доступна в режиме предварительной версии.
Юридические условия, применимые к функциям Azure, которые находятся в состоянии бета-версии, предварительной версии или иным образом еще не выпущены в общедоступной версии, см. на странице Дополнительные условия использования предварительных версий в Microsoft Azure.
Примечание.
В этом примере аргументы пути заключены в одинарные кавычки (' '). Используйте одинарные кавычки во всех командных оболочках, кроме командной оболочки Windows (cmd.exe). Если вы используете командную оболочку Windows (cmd.exe), заключите аргументы пути в двойные кавычки ("") вместо одинарных ("). В этом примере также нет маркера SAS, так как предполагается, что вы предоставили учетные данные авторизации с помощью идентификатора Microsoft Entra. Ознакомьтесь со статьей Начало работы с AzCopy, чтобы получить сведения о способах предоставления учетных данных авторизации в службе хранилища.
Чтобы восстановить архивированные большие двоичные объекты в контейнере или папке на горячий или холодный уровень, перечислите их с помощью больших двоичных объектов и вызовите операцию "Задать уровень BLOB-объектов" для каждой из них. В следующем примере показано, как выполнить эту операцию:
Чтобы одновременно восстановить большое количество BLOB-объектов, вызовите операцию Blob Batch, чтобы вызвать пакетный вариант операции Set Blob Tier.
Пример кода, иллюстрирующий выполнение пакетной операции, см. в статье AzBulkSetBlobTier.
Проверка состояния операции восстановления
Во время восстановления большого двоичного объекта можно проверить его состояние и приоритет восстановления, воспользовавшись порталом Azure, PowerShell или Azure CLI. Для свойства состояния может возвращаться значение rehydrate-pending-to-hot или rehydrate-pending-to-cool в зависимости от целевого уровня операции восстановления. Для свойства приоритета восстановления возвращается значение Standard (стандартный) или High (высокий).
Обратите внимание, что для восстановление архивного BLOB-объекта может потребоваться до 15 часов, и многократные запросы состояния BLOB-объекта для определения завершения этого процесса являются неэффективным решением. Более высокую производительность и оптимизацию затрат обеспечивает служба "Сетка событий Azure", которая позволяет зафиксировать событие, порождаемое при завершении восстановления. Дополнительные сведения о запуске функции Azure при восстановлении BLOB-объектов см. в статье Запуск функции Azure в ответ на событие восстановления BLOB-объекта.
Чтобы проверить состояние и приоритет ожидающей выполнения операции восстановления на портале Azure, откройте диалоговое окно Изменение уровня для большого двоичного объекта.
После завершения восстановления на портале Azure можно увидеть, что теперь полностью восстановленный большой двоичный объект отображается на целевом подключенном уровне.
Чтобы проверить состояние и приоритет ожидающей операции восстановления с помощью PowerShell, вызовите команду Get-AzStorageBlob и проверьте свойстваArchiveStatus и RehydratePriority большого двоичного объекта. Если восстановление является операцией копирования, проверьте эти свойства в целевом большом двоичном объекте. Не забудьте заменить заполнители в угловых скобках собственными значениями.
Чтобы проверить состояние и приоритет ожидающей операции восстановления с помощью Azure CLI, вызовите команду az storage blob show и проверьте свойстваrehydrationStatus и rehydratePriority целевого большого двоичного объекта. Не забудьте заменить заполнители в угловых скобках собственными значениями.
Изменение приоритета восстановления ожидающей операции
Пока операция восстановления со стандартным приоритетом ожидает выполнения, вы можете изменить параметр приоритета для BLOB-объекта со значения Стандартный на Высокий, чтобы быстрее восстановить его.
Приоритет восстановления для ожидающей операции невозможно понизить со значения Высокий до Стандартный. Также помните, что изменение приоритета восстановления может повлиять на выставляемые счета. Дополнительные сведения см. в разделе "Восстановление BLOB-объектов" с архивного уровня.
Изменение приоритета восстановления для ожидающей операции установки уровня BLOB-объекта
Чтобы изменить приоритет восстановления ожидающей операции установки уровня BLOB-объекта со стандартным приоритетом, воспользуйтесь порталом Azure, PowerShell, Azure CLI или одной из клиентских библиотек службы хранилища Azure.
Чтобы изменить приоритет восстановления ожидающей операции на портале Azure, выполните указанные ниже действия.
Перейдите к BLOB-объекту, приоритет восстановления которого вы хотите изменить, и выберите его.
Нажмите кнопку Изменить уровень.
В диалоговом окне "Изменение уровня" задайте уровень доступа целевому уровню доступа в сети для большого двоичного объекта (горячего или холодного). В поле Состояние архива показан целевой подключенный уровень.
Из раскрывающегося списка Приоритет восстановления выберите приоритет Высокий.
Выберите Сохранить.
Чтобы изменить приоритет восстановления для ожидающей операции с помощью PowerShell, убедитесь, что у вас установлен модуль Az.Storage 3.12.0 или более поздней версии. Затем получите свойства BLOB-объекта из службы. Это необходимо для того, чтобы обеспечить объект с последними настройками свойств. Наконец, получите ссылку .NET на BLOB-объект с помощью свойства BlobClient, а затем вызовите для этой ссылки метод SetAccessTier.
# Get the blob from the service.
$rehydratingBlob = Get-AzStorageBlob -Container $containerName -Blob $blobName -Context $ctx
# Verify that the current rehydration priority is Standard.
if ($rehydratingBlob.BlobProperties.RehydratePriority -eq "Standard")
{
# Change rehydration priority to High, using the same target tier.
if ($rehydratingBlob.BlobProperties.ArchiveStatus -eq "rehydrate-pending-to-hot")
{
$rehydratingBlob.BlobClient.SetAccessTier("Hot", $null, "High")
"Changing rehydration priority to High for blob moving to hot tier."
}
if ($rehydratingBlob.BlobProperties.ArchiveStatus -eq "rehydrate-pending-to-cool")
{
$rehydratingBlob.BlobClient.SetAccessTier("Cool", $null, "High")
"Changing rehydration priority to High for blob moving to cool tier."
}
}
Чтобы изменить приоритет восстановления для ожидающей операции с помощью Azure CLI, убедитесь, что у вас установлен компонент Azure CLI версии 2.29.2 или более поздней. Дополнительные сведения об установке Azure CLI см. в этой статье.
Затем вызовите команду az storage blob set-tier, указав для параметра --rehydrate-priority значение High. Целевой уровень (горячий или холодный) должен быть таким же уровнем, который вы первоначально указали для операции восстановления. Не забудьте заменить заполнители в угловых скобках собственными значениями.
# Update the rehydration priority for a blob moving to the hot tier.
az storage blob set-tier \
--account-name <storage-account> \
--container-name <container> \
--name <blob> \
--tier Hot \
--rehydrate-priority High \
--auth-mode login
# Show the updated property values.
az storage blob show \
--account-name <storage-account> \
--container-name <container> \
--name <blob> \
--query '[rehydratePriority, properties.rehydrationStatus]' \
--output tsv \
--auth-mode login
Н/П
Изменение приоритета восстановления для ожидающей операции копирования BLOB-объекта
При повторном удалении большого двоичного объекта путем копирования архивного большого двоичного объекта на онлайн-уровень служба хранилища Azure немедленно создает целевой большой двоичный объект на уровне архива. BLOB-объект назначения затем будет восстановлен на целевом уровне с приоритетом, указанным при копировании. Дополнительные сведения о восстановлении архивированных BLOB-объектов с помощью операции копирования см. в этой статье.
Чтобы выполнить операцию копирования с архивного уровня на уровень "Стандартный", используйте PowerShell, Azure CLI или одну из клиентских библиотек служба хранилища Azure. Дополнительные сведения см. в разделе Восстановление BLOB-объекта с использованием операции копирования. Затем, чтобы изменить приоритет восстановления со Стандартный на Высокий для ожидающего восстановления, вызовите операцию установки уровня BLOB-объекта для BLOB-объекта назначения и укажите целевой уровень.
После запуска операции копирования вы увидите в портал Azure, что исходный и целевой BLOB-объект находятся на уровне архива. BLOB-объект назначения восстанавливается со стандартным приоритетом.
Чтобы изменить приоритет восстановления BLOB-объекта назначения, выполните указанные ниже действия.
Укажите BLOB-объект назначения.
Нажмите кнопку Изменить уровень.
В диалоговом окне "Изменение уровня" задайте уровень доступа целевому уровню доступа в сети для большого двоичного объекта (горячего или холодного). В поле Состояние архива показан целевой подключенный уровень.
Из раскрывающегося списка Приоритет восстановления выберите приоритет Высокий.
Выберите Сохранить.
На странице свойств BLOB-объекта назначения теперь видно, что он восстанавливается с высоким приоритетом.
После начала операции копирования проверьте свойства BLOB-объекта назначения. Вы увидите, что целевой большой двоичный объект находится на уровне архива и переиздается с приоритетом "Стандартный".
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$destContainerName = "<container>"
$destBlobName = "<destination-blob>"
# Get the storage account context
$ctx = (Get-AzStorageAccount `
-ResourceGroupName $rgName `
-Name $accountName).Context
# Get properties for the destination blob.
$destinationBlob = Get-AzStorageBlob -Container $destContainerName `
-Blob $destBlobName `
-Context $ctx
$destinationBlob.BlobProperties.AccessTier
$destinationBlob.BlobProperties.ArchiveStatus
$destinationBlob.BlobProperties.RehydratePriority
Затем вызовите метод SetAccessTier с помощью PowerShell, чтобы изменить приоритет восстановления BLOB-объекта назначения на Высокий, как описано в подразделе Изменение приоритета восстановления для ожидающей операции установки уровня BLOB-объекта. Целевой уровень (горячий или холодный) должен быть таким же уровнем, который вы первоначально указали для операции восстановления. Проверьте свойства еще раз, чтобы убедиться в том, что BLOB-объект теперь восстанавливается с высоким приоритетом.
После начала операции копирования проверьте свойства BLOB-объекта назначения. Вы увидите, что целевой большой двоичный объект находится на уровне архива и переиздается с приоритетом "Стандартный".
Затем вызовите команду az storage blob set-tier, задав для параметра --rehydrate-priority значение High, как описано в подразделе Изменение приоритета восстановления для ожидающей операции установки уровня BLOB-объекта. Целевой уровень (горячий или холодный) должен быть таким же уровнем, который вы первоначально указали для операции восстановления. Проверьте свойства еще раз, чтобы убедиться в том, что BLOB-объект теперь восстанавливается с высоким приоритетом.