Archiviare un BLOB

Il livello archivio è un livello offline per l'archiviazione dei dati BLOB a cui si accede raramente. Il livello archivio offre i costi di archiviazione più bassi, ma costi e latenza di recupero dei dati più elevati rispetto ai livelli online (ad accesso frequente e sporadico). I dati devono rimanere nel livello archivio per almeno 180 giorni oppure viene addebitato un costo per l'eliminazione anticipata. Per altre informazioni sul livello di archiviazione, vedere Livello di accesso archivio.

Mentre un BLOB è nel livello archivio, non può essere letto o modificato. Per leggere o scaricare un BLOB nel livello archivio, è prima necessario riattivarlo in un livello online, ad accesso frequente o sporadico. La riattivazione dei dati nel livello archivio può richiedere fino a 15 ore, a seconda della priorità specificata per l'operazione di riattivazione. Per altre informazioni sulla riattivazione blob, vedere Panoramica della riattivazione del BLOB dal livello archivio.

Attenzione

Un BLOB nel livello archivio è offline. Ovvero, non può essere letto o modificato fino a quando non viene riattivato. Il processo di riattivazione può richiedere diverse ore e comporta costi associati. Prima di spostare i dati nel livello di archiviazione, valutare se portare offline i dati DEL BLOB sui flussi di lavoro.

È possibile usare la portale di Azure, PowerShell, l'interfaccia della riga di comando di Azure o una delle librerie client Archiviazione di Azure per gestire l'archiviazione dei dati.

Archiviare i BLOB al caricamento

Per archiviare un altro BLOB al caricamento, creare il BLOB direttamente nel livello archivio.

Per archiviare un BLOB o un set di BLOB durante il caricamento dalla portale di Azure, seguire questa procedura:

  1. Passare al contenitore di destinazione.

  2. Seleziona il pulsante Carica.

  3. Selezionare il file o i file da caricare.

  4. Espandere la sezione Avanzate e impostare il livello di accesso su Archivio.

  5. Seleziona il pulsante Carica.

    Screenshot showing how to upload blobs to the archive tier in the Azure portal.

Archiviare un BLOB esistente

È possibile spostare un BLOB esistente nel livello archivio in uno dei due modi seguenti:

  • È possibile modificare il livello di un BLOB con l'operazione Imposta livello BLOB. Imposta livello BLOB sposta un singolo BLOB da un livello a un altro.

    Tenere presente che quando si sposta un BLOB nel livello archivio con Set Blob Tier (Imposta livello BLOB), non è possibile leggere o modificare i dati del BLOB finché non si riattiva il BLOB. Se potrebbe essere necessario leggere o modificare i dati del BLOB prima che sia trascorso l'intervallo di eliminazione anticipata, è consigliabile usare un'operazione Copia BLOB per creare una copia del BLOB nel livello archivio.

  • È possibile copiare un BLOB in un livello online nel livello archivio con l'operazione Copia BLOB . È possibile chiamare l'operazione Copia BLOB per copiare un BLOB da un livello online (ad accesso frequente o sporadico) al livello archivio. Il BLOB di origine rimane nel livello online ed è possibile continuare a leggere o modificare i dati nel livello online.

Archiviare un BLOB esistente modificandone il livello

Usare l'operazione Imposta livello BLOB per spostare un BLOB dal livello ad accesso frequente o sporadico al livello archivio. L'operazione Imposta livello BLOB è ideale per gli scenari in cui non è necessario accedere ai dati archiviati prima che sia trascorso l'intervallo di eliminazione anticipata.

L'operazione Imposta livello BLOB modifica il livello di un singolo BLOB. Per spostare un set di BLOB nel livello di archiviazione con prestazioni ottimali, Microsoft consiglia di eseguire un'operazione di archiviazione bulk. L'operazione di archiviazione bulk invia un batch di chiamate set blob tier al servizio in una singola transazione. Per altre informazioni, vedere Archivio bulk.

Per spostare un BLOB esistente nel livello di archiviazione nel portale di Azure, seguire questa procedura:

  1. Passare al contenitore del BLOB.

  2. Selezionare il BLOB da archiviare.

  3. Selezionare il pulsante Cambia livello .

  4. Selezionare Archivio nell'elenco a discesa Livello di accesso.

  5. Seleziona Salva.

    Screenshot showing how to set a blob's tier to Archive in the Azure portal

Archiviare un BLOB esistente con un'operazione di copia

Usare l'operazione Copia BLOB per copiare un BLOB dal livello ad accesso frequente o sporadico al livello di archiviazione. Il BLOB di origine rimane nel livello ad accesso frequente o sporadico, mentre il BLOB di destinazione viene creato nel livello archivio.

Un'operazione copia BLOB è ideale per gli scenari in cui potrebbe essere necessario leggere o modificare i dati archiviati prima che sia trascorso l'intervallo di eliminazione anticipata. È possibile accedere ai dati del BLOB di origine senza dover riattivare il BLOB archiviato.

N/D

Archivio bulk

Per spostare i BLOB nel livello archivio in un contenitore o in una cartella, enumerare i BLOB e chiamare l'operazione Imposta livello BLOB su ognuno di essi. Nell'esempio seguente viene illustrato come eseguire questa operazione:

N/A

Quando si sposta un numero elevato di BLOB nel livello di archiviazione, usare un'operazione batch per ottenere prestazioni ottimali. Un'operazione batch invia più chiamate API al servizio con una singola richiesta. Le sottooperazioni supportate dall'operazione Batch BLOB includono Elimina BLOB e Imposta livello BLOB.

Per archiviare i BLOB con un'operazione batch, usare una delle librerie client Archiviazione di Azure. L'esempio di codice seguente illustra come eseguire un'operazione batch di base con la libreria client .NET:

static async Task BulkArchiveContainerContents(string accountName, string containerName)
{
    string containerUri = string.Format("https://{0}.blob.core.windows.net/{1}",
                                    accountName,
                                    containerName);

    // Get container client, using Azure AD credentials.
    BlobUriBuilder containerUriBuilder = new BlobUriBuilder(new Uri(containerUri));
    BlobContainerClient blobContainerClient = new BlobContainerClient(containerUriBuilder.ToUri(), 
                                                                      new DefaultAzureCredential());

    // Get URIs for blobs in this container and add to stack.
    var uris = new Stack<Uri>();
    await foreach (var item in blobContainerClient.GetBlobsAsync())
    {
        uris.Push(blobContainerClient.GetBlobClient(item.Name).Uri);
    }

    // Get the blob batch client.
    BlobBatchClient blobBatchClient = blobContainerClient.GetBlobBatchClient();

    try
    {
        // Perform the bulk operation to archive blobs.
        await blobBatchClient.SetBlobsAccessTierAsync(blobUris: uris, accessTier: AccessTier.Archive);
    }
    catch (RequestFailedException e)
    {
        Console.WriteLine(e.Message);
    }
}

Per un'applicazione di esempio approfondita che illustra come modificare i livelli con un'operazione batch, vedere AzBulkSetBlobTier.

Usare i criteri di gestione del ciclo di vita per archiviare i BLOB

È possibile ottimizzare i costi per i dati BLOB a cui si accede raramente creando criteri di gestione del ciclo di vita che spostano automaticamente i BLOB nel livello di archiviazione quando non sono stati accessibili o modificati per un periodo di tempo specificato. Dopo aver configurato un criterio di gestione del ciclo di vita, Archiviazione di Azure lo esegue una volta al giorno. Per altre informazioni sui criteri di gestione del ciclo di vita, vedere Ottimizzare i costi gestendo automaticamente il ciclo di vita dei dati.

È possibile usare il portale di Azure, PowerShell, l'interfaccia della riga di comando di Azure o un modello di Azure Resource Manager per creare criteri di gestione del ciclo di vita. Per semplicità, questa sezione illustra come creare criteri di gestione del ciclo di vita solo nel portale di Azure. Per altri esempi che illustrano come creare criteri di gestione del ciclo di vita, vedere Configurare i criteri di gestione del ciclo di vita.

Attenzione

Prima di usare un criterio di gestione del ciclo di vita per spostare i dati nel livello archivio, verificare che i dati non debbano essere eliminati o spostati in un altro livello per almeno 180 giorni. I dati eliminati o spostati in un livello diverso prima della scadenza del periodo di 180 giorni sono soggetti a una tariffa di eliminazione anticipata.

Tenere presente anche che i dati nel livello archivio devono essere riattivati prima di poter essere letti o modificati. La riattivazione di un BLOB dal livello archivio può richiedere diverse ore e comporta costi associati.

Per creare criteri di gestione del ciclo di vita per archiviare i BLOB nel portale di Azure, seguire questa procedura:

Passaggio 1: Creare la regola e specificare il tipo di BLOB

  1. Passare all'account di archiviazione nel portale.

  2. In Gestione dati individuare le impostazioni di gestione del ciclo di vita.

  3. Selezionare il pulsante Aggiungi una regola .

  4. Nella scheda Dettagli specificare un nome per la regola.

  5. Specificare l'ambito della regola: applicare la regola a tutti i BLOB nell'account di archiviazione o Limitare i BLOB con filtri.

  6. Selezionare i tipi di BLOB per cui applicare la regola e specificare se includere snapshot o versioni blob.

    Screenshot showing how to configure a lifecycle management policy - Details tab.

Passaggio 2: Aggiungere condizioni delle regole

  1. A seconda delle selezioni, è possibile configurare regole per BLOB di base (versioni correnti), versioni precedenti o snapshot BLOB. Specificare una delle due condizioni da verificare:

    • Gli oggetti sono stati modificati alcuni giorni fa.
    • Gli oggetti sono stati creati alcuni giorni fa.
    • Gli oggetti sono stati accessibili per qualche giorno fa.

    È possibile applicare una sola di queste condizioni per spostare un particolare tipo di oggetto al livello di archiviazione per regola. Ad esempio, se si definisce un'azione che archivia i BLOB di base se non sono stati modificati per 90 giorni, non è possibile definire anche un'azione che archivia i BLOB di base se non è stato eseguito l'accesso per 90 giorni. Analogamente, è possibile definire un'azione per regola con una di queste condizioni per archiviare le versioni precedenti e una per archiviare gli snapshot.

  2. Specificare quindi il numero di giorni da trascorrere dopo la modifica o l'accesso all'oggetto.

  3. Specificare che l'oggetto deve essere spostato nel livello archivio dopo che è trascorso l'intervallo.

    Screenshot showing how to configure a lifecycle management policy - Base blob tab.

  4. Se si è scelto di limitare i BLOB interessati dalla regola con filtri, è possibile specificare un filtro, con un prefisso BLOB o una corrispondenza dell'indice BLOB.

Passaggio 3: Assicurarsi che la regola escluda i BLOB riattivati

Se si riattiva un BLOB modificandone il livello, questa regola sposta nuovamente il BLOB nel livello archivio se l'ora dell'ultima modifica, l'ora di creazione o l'ora dell'ultimo accesso supera la soglia impostata per i criteri.

Se è stata selezionata la condizione Ultima regola modificata , è possibile evitare che ciò accada selezionando Ignora BLOB riattivati nell'ultimo e quindi immettendo il numero di giorni in cui si vuole escludere un BLOB riattivato da questa regola.

Screenshot showing the skip blobs that have been rehydrated in the last setting.

Nota

Questa opzione viene visualizzata solo se è stata selezionata la condizione Ultima regola modificata .

Selezionare il pulsante Aggiungi per aggiungere la regola al criterio.

Visualizzare il codice JSON dei criteri

Dopo aver creato i criteri di gestione del ciclo di vita, è possibile visualizzare il codice JSON per i criteri nella pagina Gestione del ciclo di vita passando dalla visualizzazione Elenco alla visualizzazione Codice.

Ecco il codice JSON per i criteri di gestione del ciclo di vita semplici creati nelle immagini illustrate in precedenza:

{
  "rules": [
    {
      "enabled": true,
      "name": "sample-archive-rule",
      "type": "Lifecycle",
      "definition": {
        "actions": {
          "baseBlob": {
            "tierToArchive": {
              "daysAfterLastAccessTimeGreaterThan": 90,
              "daysAfterLastTierChangeGreaterThan": 7
            }
          }
        },
        "filters": {
          "blobTypes": [
            "blockBlob"
          ]
        }
      }
    }
  ]
}

Vedi anche