Archivieren eines Blobs

Die Archivebene ist eine Offlineebene für die Speicherung von Daten, auf die nur selten zugegriffen wird. Die Archivebene hat im Vergleich zur (heißen und kalten) Online-Ebene die niedrigsten Speicherkosten, aber dafür höhere Datenabrufkosten und eine höhere Latenz. Die Daten müssen sich mindestens 180 Tage lang auf der Archivspeicherebene befinden, sonst unterliegen sie einer Gebühr für frühe Löschung. Weitere Informationen zur Archivebene finden Sie unter Archivzugriffsebene.

Solange sich ein Blob auf der Archivebene befindet, kann es nicht gelesen oder geändert werden. Um ein Blob, das sich auf der Archivebene befindet, lesen oder herunterladen zu können, müssen Sie es zunächst auf einer Onlineebene (heiße oder kalte Ebene) aktivieren. Abhängig von der Priorität, die Sie für den Aktivierungsvorgang angeben, kann es bis zu 15 Stunden dauern, bis die Daten auf der Archivebene aktiviert sind. Weitere Informationen zur Blobaktivierung finden Sie unter Übersicht über die Aktivierung von Blobs aus der Archivebene.

Achtung

Ein Blob auf der Archivebene ist offline. Das heißt, das es erst gelesen oder geändert werden kann, wenn es aktiviert worden ist. Der Aktivierungsprozess kann mehrere Stunden dauern und ist mit Kosten verbunden. Bevor Sie Daten auf die Archivebene verschieben, sollten Sie sich überlegen, ob sich das Offlineschalten von Blob-Daten auf Ihren Arbeitsablauf auswirken kann.

Sie können das Azure-Portal, PowerShell, Azure CLI oder eine der Azure Storage-Client-Bibliotheken verwenden, um die Datenarchivierung zu verwalten.

Archivieren von Blobs beim Hochladen

Um ein oder mehrere Blobs beim Hochladen zu archivieren, erstellen Sie das Blob direkt auf der Archivebene.

Führen Sie die folgenden Schritte aus, um ein Blob oder eine Gruppe von Blobs beim Hochladen aus dem Azure-Portal zu archivieren:

  1. Navigieren Sie zum Zielcontainer.

  2. Wählen Sie die Schaltfläche Hochladen.

  3. Wählen Sie die Datei oder die Dateien aus, die Sie hochladen möchten.

  4. Erweitern Sie den Abschnitt Erweitert und legen Sie die Zugriffsebene für das Archiv fest.

  5. Wählen Sie die Schaltfläche Hochladen.

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

Archivieren eines vorhandenen Blobs

Sie können ein vorhandenes Blob auf eine von zwei Arten in die Archivebene verschieben:

  • Sie können die Ebene eines Blobs mit dem Vorgang Set Blob Tier (Blob-Ebene festlegen) ändern. Blob-Ebene einstellen verschiebt ein einzelnes Blob von einer Ebene in eine andere.

    Beachten Sie, dass Sie beim Verschieben eines Blobs in die Archivebene mit Blob-Ebene festlegen die Daten des Blobs erst lesen oder ändern können, wenn Sie das Blob wieder aktiviert haben. Wenn Sie möglicherweise die Daten des Blobs lesen oder ändern müssen, bevor das frühe Löschintervall abgelaufen ist, sollten Sie einen Blob-Kopieren (Copy Blob)-Vorgang durchführen, um eine Kopie des Blobs auf der Archivebene zu erstellen.

  • Sie können einen Blob von einer Onlineebene mit dem Vorgang Blob kopieren auf die Archivebene kopieren. Sie können den Vorgang Blob kopieren aufrufen, um einen Blob von einer Onlineebene (heiß oder kalt) auf die Archivebene zu kopieren. Der Quellblob verbleibt auf der Onlineebene und Sie können seine Daten weiterhin auf der Onlineebene lesen oder ändern.

Archivieren eines vorhandenen Blobs durch Ändern seiner Ebene

Verwenden Sie den Vorgang Blob-Ebene festlegen, um einen Blob von einer heißen oder kalten Ebene auf die Archivebene zu verschieben. Der Vorgang Blob-Ebene festlegen eignet sich am besten in Fällen, in denen Sie nicht auf die archivierten Daten zugreifen müssen, bevor das Intervall für das frühe Löschen abgelaufen ist.

Mit dem Vorgang Blob-Ebene festlegen wird die Ebene eines einzelnen Blobs geändert. Um eine Gruppe von Blobs mit optimaler Leistung auf die Archivebene zu verschieben, empfiehlt Microsoft die Durchführung eines Massenarchivierungsvorgangs. Der Massenarchivierungsvorgang sendet einen Batchbefehl Blob-Ebene festlegen an den Dienst in einer einzelnen Transaktion. Weitere Informationen finden Sie unter Massenarchivierung.

Führen Sie die folgenden Schritte aus, um ein vorhandenes Blob auf die Archivebene im Azure-Portal zu verschieben:

  1. Navigieren Sie zum Container des Blobs.

  2. Wählen Sie das zu archivierende Blob aus.

  3. Wählen Sie die Schaltfläche Ebene ändern.

  4. Wählen Sie in der Dropdownliste Zugriffsebene die Option Archiv aus.

  5. Wählen Sie Speichern aus.

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

Archivieren eines vorhandenen Blobs durch einen Kopiervorgang

Verwenden Sie den Vorgang Blob kopieren, um einen Blob von einer heißen oder kalten Ebene auf die Archivebene zu verschieben. Der Quellblob verbleibt auf der Ebene "heiß" oder "kalt", während der Zielblob auf der Archivebene erstellt wird.

Der Vorgang Blob kopieren eignet sich am besten in Fällen, in denen Sie nicht die archivierten Daten lesen oder abändern müssen, bevor das frühe Löschintervall abgelaufen ist. Sie können auf die Daten des Quellblobs zugreifen, ohne dass Sie den archivierten Blob reaktivieren müssen.

Massenarchiv

Um Blobs in einem Container oder Ordner auf die Archivebene zu verschieben, listen Sie Blobs auf, und rufen Sie jeweils den Vorgang „Blobebene festlegen“ auf. Das folgende Beispiel zeigt, wie Sie diesen Vorgang ausführen:

Wenn Sie eine große Anzahl von Blobs auf die Archivebene verschieben, verwenden Sie einen Batchvorgang, um eine optimale Leistung zu gewährleisten. Ein Batchvorgang sendet mehrere API-Befehle mit einer einzelnen Anfrage an den Dienst. Zu den vom Blobbatchvorgang unterstützten Untervorgängen gehören Blob löschen und Blob-Ebene festlegen.

Um Blobs mit einem Batchvorgang zu archivieren, verwenden Sie eine der Azure Storage-Client-Bibliotheken. Das folgende Codebeispiel zeigt, wie Sie einen einfachen Batchvorgang mit der .NET-Client-Bibliothek durchführen:

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);
    }
}

Ein ausführliches Beispiel, das zeigt, wie Sie Ebenen mit einem Batchvorgang ändern, finden Sie unter AzBulkSetBlobTier.

Verwenden von Richtlinien für die Lebenszyklusverwaltung zum Archivieren von Blobs

Sie können die Kosten für Blobdaten optimieren, auf die selten zugegriffen wird, indem Sie Richtlinien für die Lebenszyklusverwaltung erstellen, durch die Blobs automatisch auf die Archivebene verschoben werden, wenn sie für einen bestimmten Zeitraum nicht aufgerufen oder geändert wurden. Nachdem Sie eine Richtlinie für die Lebenszyklusverwaltung konfiguriert haben, wird Azure Storage einmal pro Tag ausgeführt. Weitere Informationen zu Richtlinien für die Lebenszyklusverwaltung finden Sie unter Optimieren der Kosten durch automatisches Verwalten des Datenlebenszyklus.

Sie können Richtlinien für die Lebenszyklusverwaltung über das Azure-Portal, die PowerShell, die Azure-Befehlszeilenschnittstelle oder eine Azure Resource Manager-Vorlage erstellen. Der Einfachheit halber wird in diesem Abschnitt nur gezeigt, wie Sie eine Richtlinie für die Lebenszyklusverwaltung im Azure-Portal erstellen. Weitere Beispiele zum Erstellen von Richtlinien für die Lebenszyklusverwaltung finden Sie unter Konfigurieren einer Richtlinie für die Lebenszyklusverwaltung.

Achtung

Bevor Sie Daten mithilfe einer Richtlinie für die Lebenszyklusverwaltung auf die Archivebene verschieben, stellen Sie sicher, dass die betreffenden Daten mindestens 180 Tage lang nicht gelöscht oder auf eine andere Ebene verschoben werden müssen. Für Daten, die vor Ablauf des Zeitraums von 180 Tagen gelöscht oder auf eine andere Ebene verschoben werden, wird eine Gebühr für vorzeitiges Löschen berechnet.

Beachten Sie außerdem, dass Daten auf der Archivebene aktiviert werden müssen, bevor sie gelesen oder geändert werden können. Die Aktivierung eines Blobs auf der Archivebene kann mehrere Stunden dauern und ist mit Kosten verbunden.

Zum Erstellen einer Richtlinie für die Lebenszyklusverwaltung zum Archivieren von Blobs im Azure-Portal gehen Sie wie folgt vor:

Schritt 1: Erstellen der Regel und Angeben des Blobtyps

  1. Navigieren Sie im Portal zu Ihrem Speicherkonto.

  2. Suchen unter Datenverwaltung die Einstellungen für die Lebenszyklusverwaltung.

  3. Wählen Sie die Schaltfläche Regel hinzufügen aus.

  4. Geben Sie auf der Registerkarte Details einen Namen für die Regel an.

  5. Geben Sie den Regelbereich an: entweder Regel auf alle Blobs in Ihrem Speicherkonto anwenden oder Blobs mit Filtern einschränken.

  6. Wählen Sie die Blobtypen aus, für die die Regel angewendet werden soll, und geben Sie an, ob Blobmomentaufnahmen oder -versionen enthalten sein sollen.

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

Schritt 2: Hinzufügen von Regelbedingungen

  1. Je nach Ihrer Auswahl können Sie Regeln für Basisblobs (aktuelle Versionen), Vorgängerversionen oder Blobmomentaufnahmen konfigurieren. Geben Sie eine von zwei Bedingungen an, auf die Objekte überprüft werden sollen:

    • Objekte wurden zuletzt vor einigen Tagen geändert.
    • Objekte wurden zuletzt vor einigen Tagen erstellt.
    • Objekte wurden zuletzt vor einigen Tagen aufgerufen.

    Pro Regel kann nur eine dieser Bedingungen angewendet werden, um einen bestimmten Objekttyp auf die Archivebene zu verschieben. Wenn Sie beispielsweise eine Aktion definieren, mit der Basisblobs archiviert werden, die 90 Tage lang nicht geändert wurden, können Sie nicht gleichzeitig eine Aktion zum Archivieren von Basisblobs definieren, auf die 90 Tage lang nicht zugegriffen wurde. Auf dieselbe Weise können Sie pro Regel je eine Aktion zum Archivieren von Vorgängerversionen bzw. Momentaufnahmen definieren, die eine dieser Bedingungen erfüllen.

  2. Geben Sie als Nächstes die Anzahl der Tage an, die nach dem Ändern oder Aufrufen des Objekts verstreichen müssen.

  3. Legen Sie fest, dass das Objekt nach Ablauf des Intervalls auf die Archivebene verschoben werden soll.

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

  4. Wenn Sie sich dafür entschieden haben, die von der Regel betroffenen Blobs mit Filtern einzuschränken, können Sie einen Filter angeben, bei dem entweder der Blobpräfix oder der Blobindex übereinstimmen muss.

Schritt 3: Sicherstellen, dass die Regel erneut aktivierte Blobs ausschließt.

Wenn Sie einen Blob durch Ändern der Ebene erneut aktivieren, wird das Blob durch diese Regel zurück in die Archivebene verschoben, wenn die letzte Änderungszeit, die Erstellungszeit oder die Zeit des letzten Zugriffs über den für die Richtlinie festgelegten Schwellenwert hinausgeht.

Wenn Sie die Regelbedingung Zuletzt geändert ausgewählt haben, können Sie dies verhindern, indem Sie Blobs überspringen, die aktiviert wurden in den letzten auswählen und dann die Anzahl der Tage eingeben, für die ein erneut aktiviertes Blob durch diese Regel ausgeschlossen werden soll.

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

Hinweis

Diese Option wird nur angezeigt, wenn Sie die Regelbedingung Zuletzt geändert ausgewählt haben.

Wählen Sie die Schaltfläche Hinzufügen aus, um der Richtlinie die Regel hinzuzufügen.

Anzeigen der JSON-Richtlinie

Nachdem Sie die Richtlinie für die Lebenszyklusverwaltung erstellt haben, können Sie den JSON-Code für die Richtlinie auf der Seite Lebenszyklusverwaltung anzeigen, indem Sie von der Listenansicht zur Codeansicht wechseln.

Hier sehen Sie den JSON-Code für die einfache Richtlinie für die Lebenszyklusverwaltung, die in den oben gezeigten Bildern erstellt wurde:

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

Weitere Informationen