Архивация BLOB-объекта

Уровень архива — это автономный уровень для хранения данных BLOB-объектов, к которым редко обращаются. Уровень архива предлагает самые низкие затраты на хранение, но более высокие затраты на получение данных и задержку по сравнению с уровнями онлайн (горячими и холодными). Данные должны оставаться на архивном уровне не менее 180 дней. За их досрочное удаление будет взиматься плата. Дополнительные сведения об уровне архива см. в разделе "Архивный уровень доступа".

Хотя большой двоичный объект находится на уровне архива, его нельзя считывать или изменять. Чтобы прочитать или скачать большой двоичный объект на уровне архива, необходимо сначала восстановить его на онлайн-уровне или горячем или холодном. Данные на уровне архива могут занять до 15 часов для восстановления в зависимости от приоритета, указанного для операции восстановления. Дополнительные сведения о повторном обновлении BLOB-объектов см. в разделе "Обзор восстановления BLOB-объектов" на уровне архива.

Внимание

Большой двоичный объект на уровне архива находится в автономном режиме. То есть его невозможно прочитать или изменить, пока он не будет восстановлен. Процесс восстановления может занять несколько часов и потребовать соответствующих затрат. Прежде чем перемещать данные на архивный уровень, рассмотрите, могут ли данные BLOB-объектов в автономном режиме повлиять на рабочие процессы.

Для управления архивацией данных можно использовать портал Azure, PowerShell, Azure CLI или одну из клиентских библиотек службы хранилища Azure.

Архивация BLOB-объектов при передаче

Чтобы архивировать один или несколько больших двоичных объектов при отправке, создайте большой двоичный объект непосредственно на уровне архива.

Чтобы заархивировать BLOB-объект или набор BLOB-объектов при передаче с портала Azure, выполните следующие действия.

  1. Перейдите к целевому контейнеру.

  2. Нажмите кнопку Отправить.

  3. Выберите файл или файлы для отправки.

  4. Разверните раздел Дополнительно и установите для уровня доступа значение Архивный.

  5. Нажмите кнопку Отправить.

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

Архивация имеющегося BLOB-объекта

Существующий большой двоичный объект можно переместить на архивный уровень одним из двух способов:

  • Можно изменить уровень доступа BLOB-объекта с помощью операции установки уровня BLOB-объекта. Операция установки уровня BLOB-объекта перемещает отдельный BLOB-объект с одного уровня на другой.

    Помните, что при перемещении большого двоичного объекта на архивный уровень с помощью set BLOB-объектов нельзя читать или изменять данные большого двоичного объекта, пока не будет восстановлен большой двоичный объект. Если может потребоваться считывать или изменять данные большого двоичного объекта до истечения интервала раннего удаления, рекомендуется использовать операцию копирования BLOB-объектов для создания копии большого двоичного объекта на уровне архива.

  • Вы можете скопировать большой двоичный объект на онлайн-уровне в архивный уровень с помощью операции копирования BLOB-объектов . Вы можете вызвать операцию копирования BLOB-объектов , чтобы скопировать большой двоичный объект из онлайн-уровня (горячей или холодной) на архивный уровень. Исходный BLOB-объект останется на подключенном уровне, и вы можете продолжать считывать и изменять его данные на этом уровне.

Архивация существующего BLOB-объекта путем изменения его уровня

Используйте операцию "Задать уровень BLOB-объектов", чтобы переместить большой двоичный объект из горячего или холодного уровня в архивный уровень. Операция установки уровня BLOB-объекта лучше всего подходит для сценариев, когда вам не потребуется доступ к архивным данным до того, как истечет срок раннего удаления.

Операция установки уровня BLOB-объекта изменяет уровень отдельного BLOB-объекта. Чтобы переместить набор больших двоичных объектов на архивный уровень с оптимальной производительностью, корпорация Майкрософт рекомендует выполнить операцию массового архивирования. Операция массовой архивации отправляет пакет вызовов установки уровня BLOB-объекта в службу одной транзакцией. Для получения дополнительных сведений обратитесь к разделу Массовая архивация.

Чтобы переместить существующий большой двоичный объект на уровень архива в портал Azure, выполните следующие действия.

  1. Перейдите к контейнеру BLOB-объекта.

  2. Выберите BLOB-объект, который нужно архивировать.

  3. Нажмите кнопку Изменить уровень.

  4. Из раскрывающегося списка Уровень доступа выберите Архивный.

  5. Выберите Сохранить.

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

Архивация существующего BLOB-объекта с помощью операции копирования

Используйте операцию копирования BLOB-объектов, чтобы скопировать большой двоичный объект из горячего или холодного уровня в архивный уровень. Исходный большой двоичный объект остается на горячем или холодном уровне, а целевой большой двоичный объект создается на уровне архива.

Операция копирования BLOB-объекта лучше всего подходит для сценариев, когда вам требуется доступ к архивным данным до того, как истечет срок раннего удаления. Вы можете получить доступ к данным исходного BLOB-объекта, не восстанавливая архивный BLOB-объект.

Н/П

Массовая архивация

Чтобы переместить большие двоичные объекты на архивный уровень в контейнере или папке, перечислите большие двоичные объекты и вызовите операцию "Задать уровень BLOB-объектов" для каждой из них. В следующем примере показано, как выполнить эту операцию:

Неприменимо

При перемещении большого количества больших двоичных объектов на архивный уровень используйте пакетную операцию для оптимальной производительности. Пакетная операция отправляет в службу несколько вызовов API в одном запросе. В число субопераций, поддерживаемых операцией пакетной обработки BLOB-объектов, входят удаление BLOB-объекта и установка уровня BLOB-объекта.

Чтобы заархивировать BLOB-объекты с помощью пакетной операции, используйте одну из клиентских библиотек службы хранилища Azure. В следующем примере кода показано, как выполнить простую пакетную операцию с помощью клиентской библиотеки .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);
    }
}

Подробное описание приложения, в котором показано, как изменять уровни с помощью пакетной операции, см. в разделе AzBulkSetBlobTier.

Использование политик управления жизненным циклом для архивации BLOB-объектов

Вы можете оптимизировать затраты на данные больших двоичных объектов, которые редко получают доступ, создавая политики управления жизненным циклом, которые автоматически перемещают большие двоичные объекты на архивный уровень, если они не были доступны или изменены в течение определенного периода времени. После настройки политики управления жизненным циклом служба хранилища Azure запускается один раз в день. Дополнительные сведения о политиках управления жизненным циклом см. в статье Оптимизация затрат путем автоматического управления жизненным циклом данных.

Политику управления жизненным циклом создать с помощью портала Azure, PowerShell, Azure CLI или шаблона Azure Resource Manager. Для простоты в этом разделе показано, как создать политику управления жизненным циклом только на портале Azure. Дополнительные примеры, демонстрирующие создание политик управления жизненным циклом, см. в статье Настройка политики управления жизненным циклом.

Внимание

Прежде чем использовать политику управления жизненным циклом для перемещения данных на архивный уровень, убедитесь, что данные не нужно удалять или перемещать на другой уровень не менее 180 дней. Если данные удаляются или перемещаются на другой уровень до истечения 180-дневного периода, взимается плата за ранее удаление.

Кроме того, следует помнить, что данные на уровне архива должны быть восстановлены, прежде чем его можно будет считывать или изменять. Повторное создание большого двоичного объекта на уровне архива может занять несколько часов и имеет связанные затраты.

Чтобы создать политику управления жизненным циклом для архивации BLOB-объектов на портале Azure, выполните следующие действия:

Шаг 1. Создание правила и указание типа BLOB-объекта

  1. Перейдите к своей учетной записи хранения на портале.

  2. В разделе Управление данными выберите параметры Управление жизненным циклом.

  3. Нажмите кнопку Добавить правило.

  4. На вкладке Сведения укажите имя правила.

  5. Укажите область правила: Применить правило ко всем BLOB-объектам в вашей учетной записи хранения или Ограничить BLOB-объекты фильтрами.

  6. Выберите типы BLOB-объектов, к которым применяется правило, и укажите, следует ли включать моментальные снимки BLOB-объектов или версии.

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

Шаг 2. Добавление условий правил

  1. В зависимости от выбранных параметров можно настроить правила для базовых BLOB-объектов (текущих версий), предыдущих версий или моментальных снимков BLOB-объектов. Укажите одно из двух условий для проверки:

    • Последние изменения были внесены в объекты какое-то количество дней назад.
    • Объекты создавались какое-то количество дней назад.
    • Последний раз доступ к объектам осуществлялся какое-то количество дней назад.

    Для перемещения определенного типа объекта на архивный уровень на правило можно применить только одно из этих условий. Например, если вы определяете действие, архивирующее базовые BLOB-объекты, в которые в течение 90 дней не вносились изменения, то нельзя также определить действие, которое архивирует базовые BLOB-объекты, если в течение 90 дней к ним не осуществлялся доступ. Аналогичным образом можно определить одно действие для правила с одним из этих условий, чтобы архивировать предыдущие версии, и одно действие — для архивации моментальных снимков.

  2. Затем укажите число дней, которое должно пройти после изменения объекта или доступа к нему.

  3. Укажите, что объект должен быть перемещен на архивный уровень после истечения интервала.

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

  4. Если вы решите ограничить BLOB-объекты, на которые распространяется правило, с помощью фильтров, вы можете указать фильтр с совпадением префикса BLOB-объекта или индекса BLOB-объекта.

Шаг 3. Проверка того, что правило исключает восстановленные BLOB-объекты

Если восстановить BLOB-объект, изменив его уровень, это правило переместит BLOB-объект обратно на архивный уровень, если время последнего изменения, время создания или время последнего доступа превышает пороговое значение, заданное для политики.

Если выбрано условие правила Последнее изменение, это можно предотвратить, выбрав Пропустить BLOB-объекты, восстановленные вручную за последние, а затем введя количество дней, в течение которых требуется исключить восстановленный BLOB-объект из этого правила.

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

Примечание.

Этот параметр отображается только в том случае, если выбрано условие правила Последнее изменение.

Нажмите кнопку Добавить, чтобы добавить правило в политику.

Просмотр JSON для политики

После создания политики управления жизненным циклом можно просмотреть JSON для политики на странице Управление жизненным циклом, переключившись из представления списка в представление кода.

Ниже приведен код JSON для простой политики управления жизненным циклом, созданной на показанных выше изображениях:

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

См. также