API directas para el seguimiento de bloques cambiado entre dos copias de seguridad
Las API directas de Block Volume permiten realizar un seguimiento de bloques modificados entre dos copias de seguridad.
Los proveedores de servicios de protección de datos y los desarrolladores de soluciones de copia de seguridad/restauración pueden utilizar esta interfaz para identificar los bloques que cambiaron entre dos copias de seguridad y obtener los datos delta entre copias de seguridad directamente para analizar y optimizar sus flujos de trabajo de copia de seguridad. Al aprovechar el seguimiento de bloques modificados, no necesitan restaurar dos volúmenes completos a partir de dos copias de seguridad para compararlos y procesarlos, lo que permite procesos de copia de seguridad más eficientes.
El proceso es similar a la creación de un nuevo volumen mediante la restauración de una copia de seguridad. Sin embargo, en este caso, el volumen recién creado solo contiene las diferencias entre las dos copias de seguridad.
Para obtener una lista completa de restricciones y advertencias, consulte Limitaciones y consideraciones.
Recomendamos que suprima los volúmenes que contienen los bloques cambiados tan pronto como haya terminado de utilizar los bloques cambiados. No debe utilizar estos volúmenes para ningún otro fin que no sea recuperar los bloques cambiados. Estos volúmenes no se pueden utilizar como sistemas de archivos.
Limitaciones y consideraciones
-
Esta función está soportada para las copias de seguridad de volumen en bloque y de volumen de inicio.
-
Para las copias de seguridad de grupos de volúmenes, puede recuperar los bloques cambiados para copias de seguridad de volúmenes individuales a partir de la copia de seguridad de grupos de volúmenes.
-
Le recomendamos que suprima los volúmenes que contienen los bloques cambiados tan pronto como haya terminado de procesar los bloques cambiados.
-
No puede utilizar el volumen restaurado de la misma manera que un volumen normal, por ejemplo, no tiene ningún tipo de sistema de archivos utilizable, ni puede crear y montar un sistema de archivos en él.
-
Ambas copias de seguridad deben ser del mismo volumen.
-
La primera copia de seguridad puede ser una copia de seguridad completa o una copia de seguridad incremental. La segunda copia de seguridad debe ser una copia de seguridad incremental. Si ambas copias de seguridad son incrementales, no se debe haber realizado una copia de seguridad completa entre las dos copias de seguridad incrementales.
-
No se debe haber cambiado el tamaño del volumen entre las copias de seguridad.
-
La longitud de exploración recomendada es de hasta 1 GB de bloques lógicos. No se admite una longitud de exploración superior a 1 GB y la salida no está definida. Si la longitud de exploración se especifica como 0 o no se especifica en absoluto, la longitud de exploración se considera como todo el volumen que está sujeto a la misma limitación de 1 GB.
-
El volumen creado para recuperar los bloques cambiados no soporta el nivel de rendimiento de Costo bajo.
- En cuanto al costo, el volumen creado para recuperar los bloques cambiados tendrá el mismo tamaño que el volumen de origen original para las copias de seguridad, por lo que se cargará como tal.
-
Por defecto, el tamaño de bloque para los volúmenes en bloque es de 4 KB. Si va a exportar el volumen a un formato de copia de seguridad con un tamaño de bloque mayor, puede utilizar el parámetro
changeBlockSizeInBytesal restaurar el volumen para especificar un tamaño de bloque mayor para el formato de copia de seguridad externa.
Uso de seguimiento de bloque modificado
Trabajar con API directas para recuperar los bloques cambiados entre dos copias de seguridad tiene los siguientes pasos:
- Cree un volumen que contenga los bloques cambiados proporcionando el primer y segundo OCID de copia de seguridad como origen.
- Conecte el volumen a una instancia basada en Linux mediante una asociación iSCSI. Las asociaciones paraavirtualizadas no están soportadas. Los anexos a instancias basadas en Windows no están soportados.
-
Explore el volumen asociado en busca de bloques cambiados mediante los comandos
SCSI GET LBA STATUSy recupere los bloques cambiados informados porSCSI GET LBA STATUS. - Suprima el volumen después de terminar de procesar el volumen. Primero debe desconectar y desasociar el volumen de la instancia.
Paso 1: Crear el volumen que contiene los bloques cambiados
Puede utilizar la API para crear el volumen que contiene los bloques cambiados entre dos copias de seguridad. Los OCID se proporcionan para la primera copia de seguridad y la segunda copia de seguridad como origen del volumen.
Puede identificar un volumen que se haya creado de esta forma a partir de dos copias de seguridad comprobando el campo Tipo de volumen en la sección Detalles de origen de la consola. Consulte Obtención de detalles de un volumen en bloque. El valor especificado en este campo para estos volúmenes es volumeBackupDelta.
Uso de la CLI
Para los volúmenes en bloque, utilice el comando create-volume-volume-source-from-volume-backup-delta-details y los parámetros necesarios para crear un volumen en bloque:
oci bv volume create-volume-volume-source-from-volume-backup-delta-details --availability-domain <AD> --source-details-first-backup-id <first_backup_ID> --source-details-second-backup-id <second_backup_ID> --source-details-change-block-size-in-bytes <change_block_size> [OPTIONS] create-boot-volume-boot-volume-source-from-boot-volume-backup-delta-details y los parámetros necesarios para crear un volumen en bloque:oci bv boot-volume create-boot-volume-boot-volume-source-from-boot-volume-backup-delta-details --availability-domain <AD> --source-details-first-backup-id <first_backup_ID> --source-details-second-backup-id <second_backup_ID> --source-details-change-block-size-in-bytes <change_block_size> [OPTIONS] Para obtener una lista completa de indicadores y opciones de variables para los comandos de la CLI, consulte la Referencia de la línea de comandos.
Uso de la API
API CreateVolume
Utilice la operación CreateVolume y especifique VolumeSourceFromVolumeBackupDeltaDetails para CreateVolumeDetails.
Esta operación tiene los siguientes parámetros:
- firstBackupId: OCID de la primera copia de seguridad que se va a comparar. Esta copia de seguridad debe ser anterior a la segunda copia de seguridad.
- secondBackupId: OCID de la copia de seguridad para compararla con la primera copia de seguridad. Esta copia de seguridad debe ser más reciente que la primera copia de seguridad.
- changeBlockSizeInBytes: (opcional) por defecto, el tamaño de bloque de los volúmenes es de 4 KB. Si va a exportar el volumen restaurado a un formato de copia de seguridad con un tamaño de bloque mayor, utilice este parámetro para especificar un tamaño de bloque mayor para que coincida con el tamaño de bloque mayor del formato de copia de seguridad externa. De 4096 a 1048576, en poderes de dos. El valor por defecto es 4096.
-
type:
volumeBackupDelta.
API CreateBootVolume
Utilice la operación CreateBootVolume y especifique BootVolumeSourceFromBootVolumeBackupDeltaDetails para CreateBootVolumeDetails.
Esta operación tiene los siguientes parámetros:
- firstBackupId: OCID de la primera copia de seguridad que se va a comparar. Esta copia de seguridad debe ser anterior a la segunda copia de seguridad.
- secondBackupId: OCID de la copia de seguridad para compararla con la primera copia de seguridad. Esta copia de seguridad debe ser más reciente que la primera copia de seguridad.
- changeBlockSizeInBytes: (opcional) por defecto, el tamaño de bloque de los volúmenes es de 4 KB. Si va a exportar el volumen restaurado a un formato de copia de seguridad con un tamaño de bloque mayor, utilice este parámetro para especificar un tamaño de bloque mayor para que coincida con el tamaño de bloque mayor del formato de copia de seguridad externa. De 4096 a 1048576, en poderes de dos. El valor por defecto es 4096.
-
type:
bootVolumeBackupDelta.
Códigos de Respuesta
|
Código de Respuesta |
Descripción |
|---|---|
200 OK
|
La solicitud ha terminado correctamente. |
400 Bad Request
|
En función del mensaje devuelto, este código se devuelve en los siguientes escenarios:
|
403 Forbidden
|
Este código se devuelve si:
|
404 Not Found
|
En función del mensaje devuelto, este código se devuelve en los siguientes escenarios:
|
409 Conflict
|
Este código se devuelve si el estado del ciclo de vida de cualquiera de las copias de seguridad no es Disponible. |
500 Internal Server Error
|
El servidor ha encontrado una condición inesperada que ha impedido que cumpla la solicitud. |
Logs de Auditoría
Se generan logs de auditoría para todas las operaciones de creación de volumen. Puede encontrar detalles sobre la primera y segunda copias de seguridad utilizadas como origen de un volumen que contiene los bloques cambiados entre dos copias de seguridad. Los detalles están en el elemento sourceDetails de los datos de log, como se muestra en el siguiente ejemplo:
"sourceDetails": {
"changeBlockSizeInBytes": 1048576,
"firstBackupId": "ocid1.volumebackup.oc1.eu-paris-1.<first_backup_unique_ID>",
"secondBackupId": "ocid1.volumebackup.oc1.eu-paris-1.<second_backup_unique_ID>",
"type": "volumeBackupDelta"
},
El atributo type para estos volúmenes es volumeBackupDelta.
Para obtener más información, consulte Visión general de Auditoría y Visualización de eventos del log de auditoría.
Paso 2: Conexión y conexión del volumen que contiene los bloques cambiados
Después de crear el volumen, antes de empezar a explorar el volumen, debe asociarlo a una instancia basada en Linux mediante una asociación iSCSI. Las asociaciones y asociaciones paravirtualizadas a instancias basadas en Windows no están soportadas.
Consulte los siguientes temas para obtener más información sobre estas tareas:
Paso 3: Escanee el volumen en busca de bloques cambiados con SCSI Obtener estado de LBA
Después de asociar y conectar el volumen a una instancia basada en Linux, puede explorar el volumen asociado en busca de bloques cambiados mediante los comandos SCSI GET LBA STATUS y, a continuación, recuperar los bloques cambiados informados por los comandos.
Uso de SCSI GET LBA STATUS
Puede enviar comandos SCSI GET LBA STATUS tanto a volúmenes de inicio como a volúmenes en bloque para buscar y obtener los bloques cambiados en el volumen para la dirección de bloque lógico (LBA) de inicio especificada y la longitud que se debe explorar para identificar los bloques cambiados (longitud de análisis). El tiempo que se tarda en devolver el estado de aprovisionamiento de los bloques en un dispositivo depende de la longitud de exploración proporcionada en el comando y del nivel de rendimiento configurado para el volumen.
Puede crear e instalar sg3_utils desde sg3_utils-1.48. Consulte también Manpage.
Limitaciones y consideraciones para usar el estado de LBA
- El comando de 32 bytes para Linux es la única versión admitida. El comando de 16 bytes para Linux no está soportado.
- No se admiten comandos para Windows.
- Solo se admiten volúmenes asociados a iSCSI.
- La longitud de exploración recomendada es de hasta 1 GB de bloques lógicos. Consulte el ejemplo de la siguiente sección para ver el uso de la longitud de exploración (
-s). No se admite una longitud de exploración superior a 1 GB y la salida no está definida. Si la longitud de exploración se especifica como 0 u omitida, el comportamiento no está definido. - La longitud de asignación predeterminada es de 24 bytes, solo para 1 descriptor.
- Si el tipo de informe es 0 (todos), los estados de aprovisionamiento para bloques no inicializados también se incluyen en el resultado, ya que los bloques desasignados que llevan a no hay distinción entre bloques no inicializados y explícitamente desasignados.
Ejemplo
Los detalles de esta sección proporcionan un ejemplo de ejecución de los comandos en una instancia de Linux para obtener los bloques cambiados.
Para obtener solo el estado de aprovisionamiento de los bloques asignados y anulados, y no de los bloques no inicializados, utilice el tipo de informe 1 para especificar un estado de aprovisionamiento distinto de cero.
sudo sg_get_lba_status -b -T -l 96 -m 32768 -s 2097152 -t 1 /dev/sdc
En el ejemplo anterior, el tamaño de bloque lógico es de 512 bytes y el dispositivo de bloques es /dev/sdc. En este ejemplo, se utiliza el comando de 32 bytes (-T) y se exploran bloques lógicos contiguos de 1 GB (o 2097152), a partir de lba 96 con una longitud de asignación de 32768 bytes. El tipo de informe especificado es 1. La especificación de la opción -b imprime la salida en resumen.
Descripción de la salida
A continuación, se muestra un ejemplo de la salida de la ejecución del comando anterior:
Completion condition=3
RTP=1
0x0000000000000060 0x10 3 0
0x0000000000000070 0x8 1 0
0x0000000000000078 0x10 3 0
0x0000000000000088 0x8 1 0
0x0000000000000090 0x10 3 0
0x00000000000000a0 0xfff60 1 0
La salida anterior contiene seis descriptores, cada uno con un estado inicial de lba, recuento y aprovisionamiento de tantos bloques contiguos.
Por ejemplo, el lba inicial del primer descriptor es 96, el recuento es 16 y el estado de aprovisionamiento es 3, lo que significa que se asignan bloques de 96 a 112.
RTP=1 significa que el tipo de informe enviado en el comando se consideró al procesar el comando Obtener estado de Lba.
Los cuatro tipos de condición de finalización de la salida de ejemplo son:
- Condición de finalización = 0: el servidor de dispositivos no devolvió ninguna salida.
- Condición de finalización = 1: el servidor de dispositivos dejó de procesarse a medida que se cumplía la longitud de asignación y el siguiente comando debería usar lba inicial después del último lba de la salida.
- Condición de finalización = 2: el servidor de dispositivos escaneó toda la longitud de exploración y devolvió la salida. Por lo tanto, el siguiente comando puede utilizar lba inicial después de la longitud de análisis enviada anteriormente.
- Condición de finalización = 3: el servidor de dispositivos alcanzó el final del volumen y no se deben enviar más comandos después del último lba de la salida.
Paso 4: Supresión del volumen que contiene los bloques cambiados
No debe utilizar volúmenes que contengan los bloques cambiados entre dos copias de seguridad para ningún otro fin que no sea la recuperación de los bloques cambiados, por lo que recomendamos que suprima estos volúmenes tan pronto como haya terminado de utilizar los bloques cambiados.
Primero debe desconectar el volumen de la instancia y, a continuación, desasociarlo de la instancia. Después de desasociar el volumen, puede suprimir el volumen.