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 a quelli previsti per i 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 archivio, 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 del BLOB, vedere Panoramica di riattivazione di un BLOB dal livello archivio.

Attenzione

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

È possibile usare il portale di Azure, PowerShell, l'interfaccia della riga di comando di Azure o una delle librerie client di 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 al caricamento dal portale di Azure, attenersi a questa procedura:

  1. Passare al contenitore di destinazione.

  2. Seleziona il pulsante Carica.

  3. Selezionare uno o più 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 Imposta livello BLOB, non è possibile leggere o modificare i dati del BLOB finché non si riattiva il BLOB. Se è 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 di 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 archivio con prestazioni ottimali, Microsoft consiglia di eseguire un'operazione di archiviazione bulk. L'operazione di archiviazione bulk invia un batch di Imposta livello BLOB al servizio in una singola transazione. Per altre informazioni, vedere Archivio bulk.

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

  1. Passare al contenitore del BLOB.

  2. Selezionare il BLOB da archiviare.

  3. Selezionare il pulsante Modifica 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 di accesso frequente o sporadico al livello archivio. Il BLOB di origine rimane nel livello di 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 al 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/D

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

Per archiviare i BLOB con un'operazione batch, usare una delle librerie client di 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 archivio quando a questi non è stato effettuato l'accesso o non sono state apportate modifiche per un periodo di tempo specificato. Dopo aver configurato i criteri di gestione del ciclo di vita, Archiviazione di Azure la 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 dei dati individuare le impostazioni diGestione del ciclo di vita.

  3. Selezionare il pulsanteAggiungi una regola.

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

  5. Specificare l'ambito della regola: Applica 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 qualche giorno fa.
    • Gli oggetti sono stati creati qualche giorno fa.
    • È stato eseguito l'accesso agli oggetti qualche giorno fa.

    È possibile applicare una sola di queste condizioni per spostare un particolare tipo di oggetto al livello archivio 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 che devono 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 di regolaUltimo modificato, è possibile evitare che ciò accada selezionando Ignora BLOB riattivati nell'ultimoe quindi immettendo il numero di giorni durante i quali 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 di regola Ultimo modificato.

Selezionare il pulsanteAggiungi 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 vitapassando 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