Een gearchiveerde blob reactiveren naar een onlinelaag
Artikel
Als u een blob wilt lezen die zich in de archieflaag bevindt, moet u de blob eerst reactiveren naar een onlinelaag (dynamisch, statisch of koud). U kunt een blob op twee manieren reactiveren:
Door deze te kopiëren naar een nieuwe blob in de dynamische, statische of koude laag met de kopieer-blobbewerking .
Door de laag te wijzigen van archief in dynamische, statische of koude laag met de bewerking Blob-laag instellen.
Wanneer u een blob rehydrateerd, kunt u de prioriteit voor de bewerking opgeven op standaardprioriteit of hoge prioriteit. Het kan tot 15 uur duren voordat een rehydratatiebewerking met standaardprioriteit is voltooid. Een bewerking met hoge prioriteit krijgt prioriteit boven aanvragen met standaardprioriteit en kan in minder dan één uur worden voltooid voor objecten die kleiner zijn dan 10 GB. U kunt de rehydratatieprioriteit wijzigen van Standard naar Hoog terwijl de bewerking in behandeling is.
Als u een blob uit de archieflaag wilt reactiveren door deze te kopiëren naar een onlinelaag, gebruikt u Azure Portal, PowerShell, Azure CLI of een van de Azure Storage-clientbibliotheken. Houd er rekening mee dat wanneer u een gearchiveerde blob naar een onlinelaag kopieert, de bron- en doel-blobs verschillende namen moeten hebben.
Het kopiëren van een gearchiveerde blob naar een online doellaag wordt ondersteund binnen hetzelfde opslagaccount. Vanaf serviceversie 2021-02-12 kunt u een gearchiveerde blob kopiëren naar een ander opslagaccount, zolang het doelaccount zich in dezelfde regio bevindt als het bronaccount.
Nadat de kopieerbewerking is voltooid, wordt de doel-blob weergegeven in de archieflaag. De doel-blob wordt vervolgens gerehydrateerd naar de onlinelaag die u hebt opgegeven in de kopieerbewerking. Wanneer de doel-blob volledig is gerehydrateerd, wordt deze beschikbaar in de nieuwe online laag.
Een blob reactiveren naar hetzelfde opslagaccount
In de volgende voorbeelden ziet u hoe u een gearchiveerde blob kopieert naar een blob in de dynamische laag in hetzelfde opslagaccount.
Navigeer naar het bronopslagaccount in Azure Portal.
Selecteer opslagbrowser in het navigatiedeelvenster voor het opslagaccount.
Navigeer in de opslagbrowser naar de locatie van de gearchiveerde blob, schakel het selectievakje in dat naast de blob wordt weergegeven en selecteer vervolgens de knop Kopiëren .
Navigeer naar de container waar u de gerehydrateerde blob wilt plaatsen en selecteer vervolgens de knop Plakken .
Het dialoogvenster Archiefblob plakken wordt weergegeven.
Notitie
Als u de knop Plakken selecteert op dezelfde locatie als de bron-blob, bevat de standaardnaam die wordt weergegeven in het veld Doelblobnaam een numeriek achtervoegsel. Dit zorgt ervoor dat de bron- en doel-blobs verschillende namen hebben. U kunt deze naam desgewenst wijzigen zolang de naam anders is dan de naam van de bron-blob.
Kies in het dialoogvenster Archiefblob plakken een toegangslaag en een rehydratatieprioriteit. Selecteer vervolgens Plakken om de blob te reactiveren.
Belangrijk
Verwijder de bron-blob niet tijdens het reactiveren.
Als u een gearchiveerde blob wilt kopiëren naar een onlinelaag met PowerShell, roept u de opdracht Start-AzStorageBlobCopy aan en geeft u de doellaag en de rehydratatieprioriteit op. Vergeet niet om tijdelijke aanduidingen tussen punthaken te vervangen door uw eigen waarden:
# 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
Als u een gearchiveerde blob wilt kopiëren naar een onlinelaag met Azure CLI, roept u de startopdracht az storage blob copy aan en geeft u de doellaag en de rehydratatieprioriteit op. Vergeet niet om tijdelijke aanduidingen tussen punthaken te vervangen door uw eigen waarden:
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
N.v.t.
Een blob reactiveren naar een ander opslagaccount in dezelfde regio
In de volgende voorbeelden ziet u hoe u een gearchiveerde blob kopieert naar een blob in de dynamische laag in een ander opslagaccount.
Notitie
Het doel- en bronaccount moeten zich in dezelfde regio bevinden.
Navigeer naar het bronopslagaccount in Azure Portal.
Selecteer opslagbrowser in het navigatiedeelvenster voor het opslagaccount.
Navigeer in de opslagbrowser naar de locatie van de gearchiveerde blob, schakel het selectievakje in dat naast de blob wordt weergegeven en selecteer vervolgens de knop Kopiëren .
Navigeer naar het doelopslagaccount en selecteer opslagbrowser in het navigatiedeelvenster.
Navigeer naar de container waar u de gerehydrateerde blob wilt plaatsen en selecteer vervolgens de knop Plakken .
Het dialoogvenster Archiefblob plakken wordt weergegeven.
Kies in het dialoogvenster Archiefblob plakken een toegangslaag en een rehydratatieprioriteit. Selecteer vervolgens Plakken om de blob te reactiveren.
Belangrijk
Verwijder de bron-blob niet tijdens het reactiveren.
Als u een gearchiveerde blob wilt kopiëren naar een blob in een onlinelaag in een ander opslagaccount met PowerShell, controleert u of u de Az.Storage-module versie 4.4.0 of hoger hebt geïnstalleerd. Roep vervolgens de opdracht Start-AzStorageBlobCopy aan en geef de online doellaag en de prioriteit voor rehydratatie op. U moet een SAS (Shared Access Signature) opgeven met leesmachtigingen voor de gearchiveerde bron-blob.
In het volgende voorbeeld ziet u hoe u een gearchiveerde blob kopieert naar de dynamische laag in een ander opslagaccount. Vergeet niet om tijdelijke aanduidingen tussen punthaken te vervangen door uw eigen waarden:
$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
Als u een gearchiveerde blob wilt kopiëren naar een blob in een onlinelaag in een ander opslagaccount met de Azure CLI, controleert u of u versie 2.35.0 of hoger hebt geïnstalleerd. Roep vervolgens de startopdracht az storage blob copy aan en geef de doel onlinelaag en de rehydratatieprioriteit op. U moet een SAS (Shared Access Signature) opgeven met leesmachtigingen voor de gearchiveerde bron-blob.
In het volgende voorbeeld ziet u hoe u een gearchiveerde blob kopieert naar de dynamische laag in een ander opslagaccount. Vergeet niet om tijdelijke aanduidingen tussen punthaken te vervangen door uw eigen waarden:
# 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
N.v.t.
Rehydrateer vanuit een secundaire regio
Als u uw opslagaccount hebt geconfigureerd voor gebruik van geografisch redundante opslag met leestoegang (RA-GRS), kunt u een gearchiveerde blob kopiëren die zich in een secundaire regio bevindt naar een onlinelaag in een ander opslagaccount dat zich in dezelfde secundaire regio bevindt.
Als u wilt reactiveren vanuit een secundaire regio, gebruikt u dezelfde richtlijnen die in de vorige sectie worden weergegeven (Een blob reactiveren naar een ander opslagaccount in dezelfde regio. Voeg het achtervoegsel -secondary toe aan de accountnaam van het broneindpunt. Als uw primaire eindpunt voor Blob Storage bijvoorbeeld is myaccount.blob.core.windows.net, is myaccount-secondary.blob.core.windows.nethet secundaire eindpunt. De accounttoegangssleutels voor uw opslagaccount zijn hetzelfde voor zowel de primaire als de secundaire eindpunten.
Als u de laag van een blob wilt wijzigen van archief naar dynamisch of statisch in Azure Portal, voert u de volgende stappen uit:
Zoek de blob die moet worden gerehydrateerd in Azure Portal.
Selecteer de knop Meer aan de rechterkant van de pagina.
Selecteer De laag Wijzigen.
Selecteer de doeltoegangslaag in de vervolgkeuzelijst Toegangslaag .
Selecteer in de vervolgkeuzelijst Rehydrate-prioriteit de gewenste rehydratatieprioriteit. Houd er rekening mee dat het instellen van de rehydratatieprioriteit meestal resulteert in een snellere rehydratatie, maar dat er ook hogere kosten in rekening worden gebracht.
Selecteer de knop Opslaan.
Als u de laag van een blob wilt wijzigen van archief naar dynamisch of statisch met PowerShell, gebruikt u de blobClient-eigenschap van de blob om een .NET-verwijzing naar de blob te retourneren en roept u vervolgens de methode SetAccessTier aan op die verwijzing. Vergeet niet om tijdelijke aanduidingen tussen punthaken te vervangen door uw eigen waarden:
# 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")
Als u de laag van een blob wilt wijzigen van archief naar dynamisch of statisch met Azure CLI, roept u de opdracht az storage blob set-tier aan . Vergeet niet om tijdelijke aanduidingen tussen punthaken te vervangen door uw eigen waarden:
az storage blob set-tier \
--account-name <storage-account> \
--container-name <container> \
--name <archived-blob> \
--tier Hot \
--rehydrate-priority Standard \
--auth-mode login
Als u de laag van een blob wilt wijzigen van archief naar dynamisch of statisch met AzCopy, gebruikt u de opdracht azcopy set-properties en stelt u de -block-blob-tier parameter in op de gewenste laag en op --rehydrate-prioritystandard of high. Deze parameter is standaard ingesteld op standard. Zie Rehydratatieprioriteit voor meer informatie over de afwegingen van elke optie.
Belangrijk
De mogelijkheid om de laag van een blob te wijzigen met behulp van AzCopy is momenteel in PREVIEW.
Raadpleeg de Aanvullende voorwaarden voor Microsoft Azure-previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.
Notitie
In dit voorbeeld worden padargumenten tussen enkele aanhalingstekens (''' ) geplaatst. Gebruik enkele aanhalingstekens in alle opdrachtshells, met uitzondering van de Windows Command Shell (cmd.exe). Als u een Windows Command Shell (cmd.exe) gebruikt, plaatst u padargumenten tussen dubbele aanhalingstekens ("") in plaats van enkele aanhalingstekens (''). Dit voorbeeld bevat ook geen SAS-token omdat wordt ervan uitgegaan dat u autorisatiereferenties hebt opgegeven met behulp van Microsoft Entra-id. Zie het artikel Aan de slag met AzCopy voor meer informatie over de manieren waarop u autorisatiereferenties kunt opgeven voor de opslagservice.
Als u gearchiveerde blobs in een container of map wilt reactiveren naar de dynamische of statische laag, inventariseert u de blobs en roept u de bewerking Blob-laag instellen op elke laag aan. In het volgende voorbeeld ziet u hoe u deze bewerking uitvoert:
De status van een rehydratatiebewerking controleren
Terwijl de blob rehydrateert, kunt u de status en rehydratatieprioriteit controleren met behulp van Azure Portal, PowerShell of Azure CLI. De statuseigenschap kan rehydrate-pending-to-hot of rehydrate-pending-to-cool retourneren, afhankelijk van de doellaag voor de rehydratatiebewerking. De eigenschap rehydratatieprioriteit retourneert Standard of High.
Houd er rekening mee dat rehydratatie van een gearchiveerde blob maximaal 15 uur kan duren en herhaaldelijk de status van de blob peilt om te bepalen of rehydratatie is voltooid, inefficiënt is. Azure Event Grid gebruiken om de gebeurtenis vast te leggen die wordt geactiveerd wanneer rehydratatie is voltooid, biedt betere prestaties en kostenoptimalisatie. Zie Een Azure-functie uitvoeren als een gebeurtenis wordt geactiveerd op rehydratatie van blobs. Zie Een Azure-functie uitvoeren als reactie op een blobrehydratatiegebeurtenis.
Als u de status en prioriteit van een in behandeling zijnde rehydratatiebewerking in Azure Portal wilt controleren, geeft u het dialoogvenster Wijzigingslaag voor de blob weer:
Wanneer de rehydratatie is voltooid, kunt u in Azure Portal zien dat de volledig gerehydrateerde blob nu wordt weergegeven in de doel onlinelaag.
Als u de status en prioriteit van een rehydratatiebewerking in behandeling wilt controleren met PowerShell, roept u de opdracht Get-AzStorageBlob aan en controleert u de eigenschappen ArchiveStatus en RehydratePriority van de blob. Als de rehydratatie een kopieerbewerking is, controleert u deze eigenschappen op de doel-blob. Vergeet niet om tijdelijke aanduidingen tussen punthaken te vervangen door uw eigen waarden:
Als u de status en prioriteit van een in behandeling zijnde rehydratatiebewerking met Azure CLI wilt controleren, roept u de opdracht az storage blob show aan en controleert u de rehydratatiestatus en rehydratePriority-eigenschappen van de doel-blob. Vergeet niet om tijdelijke aanduidingen tussen punthaken te vervangen door uw eigen waarden:
De rehydratatieprioriteit van een bewerking in behandeling wijzigen
Hoewel een rehydratatiebewerking met standaardprioriteit in behandeling is, kunt u de instelling voor rehydratatieprioriteit voor een blob wijzigen van Standard naar Hoog om die blob sneller te reactiveren.
De instelling voor rehydratatieprioriteit kan niet worden verlaagd van High naar Standard voor een bewerking die in behandeling is. Houd er ook rekening mee dat het wijzigen van de rehydratatieprioriteit mogelijk gevolgen heeft voor de facturering. Zie Blob-rehydratatie vanuit de archieflaag voor meer informatie.
De rehydratatieprioriteit voor een in behandeling zijnde bloblaagbewerking wijzigen
Als u de rehydratatieprioriteit wilt wijzigen terwijl een bloblaagbewerking met standaardprioriteit in behandeling is, gebruikt u Azure Portal, PowerShell, Azure CLI of een van de Azure Storage-clientbibliotheken.
Als u de rehydratatieprioriteit voor een in behandeling zijnde bewerking wilt wijzigen met Azure Portal, voert u de volgende stappen uit:
Navigeer naar de blob waarvoor u de rehydratatieprioriteit wilt wijzigen en selecteer de blob.
Selecteer de knop Laag wijzigen.
Stel in het dialoogvenster Laag wijzigen de toegangslaag in op de online-doeltoegangslaag voor de reactiverende blob (dynamisch of statisch). In het veld Archiefstatus wordt de online doellaag weergegeven.
Stel in de vervolgkeuzelijst Rehydrate-prioriteit de prioriteit in op Hoog.
Selecteer Opslaan.
Als u de rehydratatieprioriteit voor een in behandeling zijnde bewerking wilt wijzigen met PowerShell, moet u ervoor zorgen dat u de Az.Storage-module , versie 3.12.0 of hoger, hebt geïnstalleerd. Haal vervolgens de eigenschappen van de blob op uit de service. Deze stap is nodig om ervoor te zorgen dat u een object hebt met de meest recente eigenschapsinstellingen. Gebruik ten slotte de BlobClient-eigenschap van de blob om een .NET-verwijzing naar de blob te retourneren en roep vervolgens de methode SetAccessTier aan op die verwijzing.
# 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."
}
}
Roep vervolgens de opdracht az storage blob set-tier aan met de --rehydrate-priority parameter ingesteld op Hoog. De doellaag (dynamisch of statisch) moet dezelfde laag zijn die u oorspronkelijk hebt opgegeven voor de rehydratatiebewerking. Vergeet niet om tijdelijke aanduidingen tussen punthaken te vervangen door uw eigen waarden:
# 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
N.v.t.
De rehydratatieprioriteit voor een in behandeling zijnde kopieerblobbewerking wijzigen
Wanneer u een blob rehydrateert door de gearchiveerde blob naar een onlinelaag te kopiëren, maakt Azure Storage onmiddellijk de doel-blob in de archieflaag. De doel-blob wordt vervolgens gerehydrateerd naar de doellaag met de prioriteit die is opgegeven voor de kopieerbewerking. Zie Een gearchiveerde blob kopiëren naar een onlinelaag voor meer informatie over het reactiveren van een gearchiveerde blob met een kopieerbewerking.
Gebruik PowerShell, Azure CLI of een van de Azure Storage-clientbibliotheken om de kopieerbewerking uit te voeren van de archieflaag naar een onlinelaag met standard-prioriteit. Zie Een blob reactiveren met een kopieerbewerking voor meer informatie. Als u vervolgens de rehydratatieprioriteit wilt wijzigen van Standard naar Hoog voor de in behandeling zijnde rehydratatie, roept u Blob-laag instellen aan op de doel-blob en geeft u de doellaag op.
Nadat u de kopieerbewerking hebt gestart, ziet u in Azure Portal dat zowel de bron- als de doel-blob zich in de archieflaag bevinden. De doel-blob rehydrateert met standaardprioriteit.
Als u de rehydratatieprioriteit voor de doel-blob wilt wijzigen, voert u de volgende stappen uit:
Selecteer de doel-blob.
Selecteer de knop Laag wijzigen.
Stel in het dialoogvenster Laag wijzigen de toegangslaag in op de online-doeltoegangslaag voor de reactiverende blob (dynamisch of statisch). In het veld Archiefstatus wordt de online doellaag weergegeven.
Stel in de vervolgkeuzelijst Rehydrate-prioriteit de prioriteit in op Hoog.
Selecteer Opslaan.
Op de eigenschappenpagina van de doel-blob ziet u nu dat deze rehydrateert met hoge prioriteit.
Nadat u de kopieerbewerking hebt gestart, controleert u de eigenschappen van de doel-blob. U ziet dat de doel-blob zich in de archieflaag bevindt en rehydrateert met de prioriteit Standard.
# 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
Roep vervolgens de Methode SetAccessTier aan via PowerShell om de rehydratatieprioriteit voor de doel-blob te wijzigen in Hoog, zoals wordt beschreven in De rehydratatieprioriteit wijzigen voor een in behandeling zijnde bewerking bloblaag instellen. De doellaag (dynamisch of statisch) moet dezelfde laag zijn die u oorspronkelijk hebt opgegeven voor de rehydratatiebewerking. Controleer de eigenschappen opnieuw om te controleren of de blob nu rehydrateert met hoge prioriteit.
Nadat u de kopieerbewerking hebt gestart, controleert u de eigenschappen van de doel-blob. U ziet dat de doel-blob zich in de archieflaag bevindt en rehydrateert met de prioriteit Standard.