Archivar un blob

El nivel de archivado es un nivel sin conexión para almacenar datos de blobs a los que rara vez se accede. El nivel de archivo ofrece los costes de almacenamiento más bajos, pero más altos costes de recuperación de datos y latencia en comparación con los niveles online (caliente y frío). 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, véase Nivel de acceso al 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.

Caution

Un blob del nivel de archivo está sin conexión. Es decir, no puede leerse ni modificarse hasta que se rehidrate. El proceso de rehidratación puede durar varias horas y conlleva costes asociados. Antes de mover datos al nivel de archivo, considere si desconectar los datos blob puede afectar a los flujos de trabajo.

Puedes usar el portal de Azure, PowerShell, CLI de Azure o alguna de las bibliotecas cliente de Azure Storage para gestionar el archivo de datos.

Archivar 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 conjunto de blobs al subirlo desde el portal de Azure, sigue estos pasos:

  1. Navegue al contenedor de destino.

  2. Seleccione el botón Cargar.

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

  4. Amplía la sección Avanzada y configura el nivel de acceso en Archivo.

  5. Seleccione el botón Cargar.

    Captura de pantalla que muestra cómo subir los blobs al nivel de archivo en el portal de Azure.

Archivar un blob existente

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

  • Puedes cambiar el nivel de un blob con la operación Set Blob Tier . Establecer nivel de blob mueve un único blob de un nivel a otro.

    Ten en cuenta que cuando mueves un blob al tier de archivo con Set Blob Tier, no puedes leer ni modificar los datos del blob hasta que lo rehidrates. Si puede que necesites leer o modificar los datos del blob antes de que transcurra el intervalo de eliminación temprana, considera usar una operación de Copiar Blob para crear una copia del blob en el nivel de archivo.

  • Puedes copiar un blob de un nivel online al archivo con la operación Copiar Blob . Puedes invocar la operación Copy Blob para copiar un blob de un nivel en línea (de acceso frecuente o esporádico) al nivel de archivo. El blob fuente permanece en el nivel online, y puedes seguir leyendo o modificando sus datos en el nivel online.

Archivar un blob existente cambiando su nivel

Usa la operación Set Blob Tier para mover un blob del tier Hot o Cool al tier archive. La operación Set Blob Tier es mejor para escenarios en los que no necesitarás acceder a los datos archivados antes de que haya transcurrido el intervalo de eliminación temprana.

La operación Set Tier cambia el nivel de un solo blob. Para mover un conjunto de blobs al nivel 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 más información, véase Archivo en bloque.

Para mover un blob existente al nivel de archivo en el portal de Azure, sigue estos pasos:

  1. Vaya al contenedor del blob.

  2. Selecciona el blob para archivar.

  3. Selecciona el botón de Cambiar de nivel .

  4. Selecciona Archivo en el desplegable de la capa de acceso.

  5. Haga clic en Guardar.

    Captura de pantalla que muestra cómo configurar el nivel de un blob a Archive en el portal de Azure

Archivar un blob existente con una operación de copia

Usa la operación Copiar Blob para copiar un blob desde el nivel caliente o frío 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.

Una operación de Copiar Blob es ideal para escenarios en los que puede que necesites leer o modificar los datos archivados antes de que transcurra el intervalo de eliminación anticipado. Puede acceder a los datos del blob de origen sin necesidad de rehidratar el blob archivado.

N/A

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/A

Al mover un gran número de blobs al nivel de archivo, utiliza una operación por lotes para un rendimiento óptimo. Una operación por lotes envía varias llamadas API al servicio con una única solicitud. Las suboperaciones admitidas por la operación Lote de Blobs incluyen Eliminar Blob y Establecer nivel del Blob.

Para archivar blobs con una operación por lotes, utiliza una de las bibliotecas cliente de Azure Storage. 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.

Utiliza políticas de gestión del ciclo de vida para archivar los blobs

Puedes optimizar los costes de datos de blobs que rara vez se acceden creando políticas de gestión del ciclo de vida que mueven automáticamente los blobs al nivel de archivo cuando no han sido accedidos o modificados durante un periodo de tiempo especificado. Después de configurar una política de gestión del ciclo de vida, Azure Storage la ejecuta una vez al día. Para más información sobre las políticas de gestión del ciclo de vida, consulte Optimizar costes gestionando automáticamente el ciclo de vida de los datos.

Puedes usar el portal de Azure, PowerShell, CLI de Azure o una plantilla de Azure Resource Manager para crear una política de gestión del ciclo de vida. Para simplificar, esta sección muestra cómo crear una política de gestión del ciclo de vida solo en el portal de Azure. Para más ejemplos que muestran cómo crear políticas de gestión del ciclo de vida, consulte Configurar una política de gestión del ciclo de vida.

Caution

Antes de usar una política de gestión del ciclo de vida para mover datos al nivel de archivo, verifica que esos datos no necesiten ser eliminados o trasladados a otro nivel durante al menos 180 días. Los datos que se eliminan o se trasladan a otro nivel antes de que transcurran los 180 días están sujetos a una tasa de eliminación anticipada.

También ten en cuenta que los datos en el nivel de archivo deben rehidratarse antes de poder ser leídos o modificados. La rehidratación de un blob desde un nivel de archivo puede tardar varias horas y tiene costos asociados.

Para crear una política de gestión del ciclo de vida para archivar los blobs en el portal de Azure, sigue estos pasos:

Paso 1: Crea la regla y especifica el tipo de blob

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

  2. En Gestión de Datos, localiza la configuración de gestión del ciclo de vida .

  3. Selecciona el botón Añadir una regla .

  4. En la pestaña de Detalles , especifica un nombre para tu regla.

  5. Especifica el alcance de la regla: Aplicar la regla a todos los blobs de la cuenta de almacenamiento o 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.

    Captura de pantalla que muestra cómo configurar una política de gestión del ciclo de vida - pestaña Detalles.

Paso 2: Añadir condiciones de la regla

  1. Dependiendo de tus selecciones, puedes configurar reglas para blobs base (versiones actuales), versiones anteriores o instantáneas de blobs. Especifica una de dos condiciones que debes comprobar:

    • Los objetos fueron modificados por última vez hace varios días.
    • Los objetos se crearon hace varios días.
    • Los objetos fueron accedidos por última vez hace unos días.

    Solo una de estas condiciones puede aplicarse para mover un tipo particular de objeto al nivel de archivo por regla. Por ejemplo, si defines una acción que archiva los blobs de base si no se han modificado durante 90 días, no puedes definir también una acción que archiva los blobs de base si no se ha accedido a ellos durante 90 días. De manera similar, puedes 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, especifica el número de días que transcurren después de que el objeto sea modificado o accedido.

  3. Especifica que el objeto debe moverse al nivel de archivo después de que haya transcurrido el intervalo.

    Captura de pantalla de cómo configurar una política de administración del ciclo de vida: pestaña Blob base.

  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: Asegúrate de que la norma excluya las manchas rehidratadas

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.

Captura de pantalla que muestra los blobs de omisión que se han rehidratado en la última configuración.

Note

Esta opción solo aparece si seleccionas la condición de última regla modificada .

Selecciona el botón Añadir para añadir la regla a la política.

Ver el JSON de la política

Después de crear la política de gestión del ciclo de vida, puedes ver el JSON de la política en la página de gestión del ciclo de vida cambiando de la vista de Lista a la vista de Código.

Aquí está el JSON para la política sencilla de gestión del ciclo de vida creada en las imágenes mostradas arriba:

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

Consulte también