Archivado de un blob

El archivo es un nivel sin conexión para almacenar datos blob a los que rara vez se accede. El archivo tiene el coste de almacenamiento más bajo, pero tiene mayores costes de recuperación de datos y mayor latencia en comparación con los niveles de acceso con conexión (frecuente y esporádico). Los datos deben permanecer en el nivel de archivo durante al menos 180 días o estar sujetos a un cargo por eliminación temprana. Para más información sobre el nivel de archivo, consulte Niveles de acceso de archivo.

Un blob no se puede leer ni modificar mientras se encuentre en el nivel de archivo. Para leer o descargar un blob en el nivel de acceso de archivo, primero debe rehidratarlo en un nivel en línea, ya sea de acceso esporádico o de acceso frecuente. Los datos del nivel de archivo pueden tardar hasta 15 horas en rehidratarse, según la prioridad que especifique para la operación de rehidratación. Para más información sobre la rehidratación de blobs, consulte Rehidratación de blobs desde el nivel de acceso de archivo.

Precaución

Un blob del nivel de archivo está sin conexión. Es decir, no se podrá leer ni modificar hasta que se haya rehidratado. El proceso de rehidratación puede tardar varias horas y tiene costes asociados. Antes de mover datos al nivel de archivo, considere si desconectar los datos blob puede afectar a los flujos de trabajo.

Puede usar las bibliotecas Azure Portal, PowerShell, CLI de Azure o una de las bibliotecas cliente Azure Storage para administrar el archivado de datos.

Archivado de blobs al cargar

Para archivar uno o varios blobs durante la carga, cree el blob directamente en el nivel de archivo.

Para archivar un blob o un conjunto de blobs en la carga desde Azure Portal, siga estos pasos:

  1. Vaya al contenedor de destino.

  2. Seleccione el botón Cargar.

  3. Seleccione el archivo o los archivos que desea cargar.

  4. Expanda la sección Opciones avanzadas y establezca el Nivel de acceso en Archivo.

  5. Seleccione el botón Cargar.

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

Archivar un blob existente

Puede mover un blob existente al nivel de archivo de una de estas dos maneras:

  • Puede cambiar el nivel de acceso de un blob con la operación Establecer nivel del blob. Establecer nivel del blob mueve un blob único de un nivel a otro.

    Tenga en cuenta que, al mover un blob al nivel de archivo con Establecer nivel del blob, no podrá leer ni modificar los datos del blob hasta que rehidrate el blob. Si es posible que tenga que leer o modificar los datos del blob antes de que haya transcurrido el intervalo de eliminación temprana, considere la posibilidad de usar una operación de Copia de blob para crear una copia del blob en el nivel de archivo.

  • Puede copiar un blob de un nivel con conexión en el nivel de archivo utilizando la operación Copia de blobs. Puede utilizar la operación Copia de blobs para copiar un blob desde un nivel con conexión (frecuente o esporádico) al nivel de archivo. El blob de origen permanece en el nivel con conexión y usted puede seguir leyendo o modificando sus datos en el nivel con conexión.

Archivar un blob existente cambiando su nivel

Utilice la operación Establecer nivel del blob para mover un blob desde el nivel esporádico o frecuente al nivel de archivo. La operación Establecer nivel de blob es mejor para escenarios en los que no será necesario acceder a los datos archivados antes de que haya transcurrido el intervalo de eliminación temprana.

La operación Establecer nivel de blob cambia el nivel de un único blob. Para mover un conjunto de blobs al nivel de acceso de archivo con un rendimiento óptimo, Microsoft recomienda realizar una operación de archivo masivo. La operación de archivo masivo envía un lote de comandos Establecer nivel de blob al servicio en una única transacción. Para obtener más información, consulteArchivo masivo.

Para mover un blob existente al nivel de archivo en Azure Portal, siga estos pasos:

  1. Vaya al contenedor del blob.

  2. Seleccione el blob que desea archivar.

  3. Seleccione el botón Cambiar nivel.

  4. Seleccione Archivo en la lista desplegable Nivel de acceso.

  5. Seleccione Guardar.

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

Archivar un blob existente con una operación de copia

Utilice la operación Copia de blobpara copiar un blob desde el nivel esporádico o frecuente al nivel de archivo. El blob de origen permanece en el nivel de acceso frecuente o esporádico, mientras que el blob de destino se crea en el nivel de archivo.

La operación Copia de blob es mejor para escenarios en los que puede tener que leer o modificar los datos archivados antes de que haya transcurrido el intervalo de eliminación temprana. Puede acceder a los datos del blob de origen sin necesidad de rehidratar el blob archivado.

N/D

Archivo masivo

Para mover blobs al nivel de archivo en un contenedor o una carpeta, enumere los blobs y llame a la operación Establecer el nivel del blob en cada uno de ellos. En el ejemplo siguiente se muestra cómo realizar esta operación:

N/D

Cuando tenga que mover un gran número de blobs al nivel de archivo, use una operación por lotes para obtener un rendimiento óptimo. Una operación por lotes envía varias llamadas API al servicio con una única solicitud. Las operaciones secundarias admitidas por la operación Procesar bobs por lotes incluyen Eliminar blob y Establecer nivel del blob.

Para archivar blobs con una operación por lotes, use una de las bibliotecas Azure Storage cliente. En el ejemplo de código siguiente se muestra cómo realizar una operación por lotes básica con la biblioteca cliente de .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);
    }
}

Para obtener una aplicación de ejemplo detallada que muestra cómo cambiar los niveles con una operación por lotes, consulte AzBulkSetBlobTier.

Uso de directivas de administración del ciclo de vida para archivar blobs

Puede optimizar los costos de los datos de blob a los que rara vez se accede mediante la creación de directivas de administración del ciclo de vida que mueven automáticamente los blobs al nivel de archivo cuando no se ha accedido a ellos ni se han modificado durante un período de tiempo especificado. Después de configurar una directiva de administración del ciclo de vida, Azure Storage la ejecuta una vez al día. Para obtener más información sobre las directivas de administración del ciclo de vida, consulte Optimizar los costes mediante la administración automática del ciclo de vida de los datos.

Puede usar Azure Portal, PowerShell, la CLI de Azure o una plantilla de Azure Resource Manager para crear una directiva de administración del ciclo de vida. Por motivos de simplicidad, en esta sección se muestra cómo crear una directiva de administración del ciclo de vida solo en Azure Portal. Para ver otros ejemplos que muestran cómo crear directivas de administración del ciclo de vida, consulte Configuración de una directiva de administración del ciclo de vida.

Precaución

Antes de usar una directiva de administración del ciclo de vida para mover datos al nivel de archivo, compruebe que no es necesario eliminarlos ni moverlos a otro nivel durante al menos 180 días. Los datos que se eliminan o se mueven a un nivel diferente antes de que haya transcurrido el período de 180 días están sujetos a una cuota de eliminación anticipada.

Tenga en cuenta también que los datos del nivel de archivo deben rehidratarse antes de que se puedan leer o modificar. La rehidratación de un blob desde un nivel de archivo puede tardar varias horas y tiene costos asociados.

Para crear una directiva de administración del ciclo de vida para archivar blobs en Azure Portal, siga estos pasos:

Paso 1: crear la regla y especificar el tipo de blob

  1. Vaya a la cuenta de almacenamiento desde el portal.

  2. En Administración de datos, busque la configuración Administración del ciclo de vida.

  3. Seleccione el botón Agregar una regla.

  4. En la pestaña Detalles, especifique un nombre para la regla.

  5. Especifique el ámbito de la regla: Apply rule to all blobs in your storage account (Aplica regla a todos los blobs de la cuenta de almacenamiento) o Limit blobs with filters (Limitar blobs con filtros).

  6. Seleccione los tipos de blobs a los que se va a aplicar la regla y especifique si quiere incluir instantáneas o versiones de blobs.

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

Paso 2: agregar condiciones de reglas

  1. En función de las selecciones, puede configurar reglas para blobs base (versiones actuales), versiones anteriores o instantáneas de blobs. Especifique una de las dos condiciones que se deben comprobar:

    • Objetos que se modificaron por última vez hace un número de días.
    • Los objetos se crearon hace unos días.
    • Objetos a los que se accedió hace un número de días.

    Solo se puede aplicar una de estas condiciones para mover un tipo determinado de objeto al nivel de archivo por regla. Por ejemplo, si define una acción que archiva blobs base si no se han modificado durante 90 días, no puede definir también una acción que archive blobs base si no se ha accedido a ellos durante 90 días. Igualmente, puede definir una acción por regla con cualquiera de estas condiciones para archivar versiones anteriores y otra para archivar instantáneas.

  2. A continuación, especifique el número de días que transcurren después de que se modifique al objeto o se acceda a él.

  3. Especifique que el objeto se va a mover al nivel de archivo una vez transcurrido el intervalo.

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

  4. Si quiere limitar los blobs afectados por la regla con filtros, puede especificar un filtro, ya sea con un prefijo de blob o una coincidencia de índice de blobs.

Paso 3: asegurarse de que la regla excluye los blobs rehidratados

Si rehidrata un blob al cambiar su nivel, esta regla volverá a moverlo al nivel de archivo si la hora de la última modificación, de creación o del último acceso supera el umbral establecido para la directiva.

Si seleccionó la condición de la regla Modificado por última vez, puede evitar que esto suceda al seleccionar Omitir blobs que se han rehidratado en los últimos y, a continuación, escriba el número de días que desea que se excluya un blob rehidratado de esta regla.

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

Nota:

Esta opción solo aparece si seleccionó la condición de la regla Modificado por última vez.

Seleccione el botón Agregar para agregar la regla a la directiva.

Visualización del JSON de la directiva

Después de crear la directiva de administración del ciclo de vida, puede ver el código JSON de la directiva en la página Administración del ciclo de vida cambiando de la vista de lista a la vista de código.

Este es el código JSON de la directiva de administración del ciclo de vida simple creada en las imágenes mostradas anteriormente:

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

Consulte también