Trabajos de Copia y Migración

Los trabajos de copia y migración de Bacula son óptimos para mover datos de copia de seguridad de hardware de almacenamiento antiguo a nuevos, realizar copias de seguridad de disco a cinta, o implementar un segundo almacenamiento fuera de sitio.

La copia y la migración ocurren en el nivel de granularidad de Job, por lo que el tamaño de la cinta o los medios de origen o destino no es importante. Los trabajos que se van a copiar de un pool (y de almacenamiento) de la fuente de Bacala de origen se deben seleccionar a partir de algunos criterios definidos y se almacenan en un pool de destino.

La diferencia entre los trabajos de copia y migración es que Bacula descarta los Jobs grabados de la piscina de origen en el caso de la migración.

Cuando la copia de seguridad original de un trabajo copiado se recicla o se elimina por algún motivo, Bacula seleccionará automáticamente la copia para realizar una restauración de un cliente en ese momento, si se solicita.

Los trabajos de copia y migración no requieren conexión con los Clientes de Bacula. Esto generalmente significa que se puede ejecutar durante el día, sin riesgo de impacto en los demás servicios.

El ámbito de selección de Jobs para la copia, puede ser:

  • uno o varios trabajos de copia de seguridad configurados;
  • uno o varios Volúmenes, por su nombre;
  • Empleos de un cliente, por su nombre;
  • Trabajos realizados que correspondan a una expresión regular;
  • si un trabajo existe en un determinado volumen;
  • volúmenes con la suma de ocupación en una Pool inferior o superior a un valor dado;
  • tamaño del volumen.

En un resumen, para realizar un trabajo de copia o migración, debe definir un recurso de trabajo especial en bacula-dir.conf con la directiva de Type igual a Copy o Migrate; la especificación de una Pool de origen; y, al menos, pero no menos importante, uno de los SelectionType (ya menudo SelectionPattern) que define los criterios de selección capaces de encontrar Jobs para ser copiados.

En los recursos de Pool (aún en bacula-dir.conf), debe especificar en el grupo de origen de la directiva Storage (el mismo en el que se están grabando sus volúmenes, que también será el origen de la copia), además de la directiva NextPool, debe informar el nombre de otro Pool de destino de la copia. Por último, en el recurso de Pool de destino, también debe especificarse una directiva de Storage para un dispositivo de almacenamiento diferente, que será el de destino.

Ahora vamos a ver más información sobre cada una de estas directrices necesarias. Más adelante hay también un ejemplo completo de configuración:

a) Para el recurso Job

Pool =

Determina dónde se aplicará el algoritmo de selección de trabajos de copia. Es la piscina de origen.

Type = Migrate

Los trabajos seleccionados se mueven desde la Pool de origen a la de destino (los trabajos originales se descartan). O…

Type = Copy

Los trabajos se copian al Pool de destino. Ellos recibirán los tiempos de retención y reciclarán el comportamiento de la nueva piscina, de igual suerte.

Selection Type =

Determina cómo se seleccionan los JobIds para la copia o la migración. Estos son los valores posibles:

  • SmallestVolume – selecciona todos los trabajos del menor volumen de grupo de origen.
  • OldestVolume – selecciona todos los trabajos del volumen más antiguo.
  • Client – si se utiliza, también requiere otra directiva (SelectionPattern) que debe ser una Expresión regular que corresponda a los nombres de los clientes para copiar / migrar sólo de los Jobs de los mismos.
  • Volume – Si se utiliza, esta directiva también requiere SelectionPattern, en este caso una expresión regular que corresponderá a los nombres de volumen cuyos trabajos se copiarán.
  • Job – En este caso SelectionPattern debe coincidir con los nombres de Jobs.
  • SQLQuery – Una consulta SQL para encontrar JobIds directamente de la base de datos Bacula que se copiar.
  • PoolOccupancy – el Bacula sumará el tamaño de todos los volúmenes de la piscina de origen. Si es menor que las directivas accesorias (necesarias en el propio recurso de la agrupación) MigrationLowBytes o superior a MigrationHighBytes, migrará los trabajos hasta que la ocupación de la piscina vuelva a los límites definidos.
  • PoolUncopiedJobs – Esto es bastante popular para las copias de seguridad fuera de sitio. Copia todos los trabajos que no tienen una copia en el grupo de destino.
Selection Pattern =

Esta directiva no es necesaria para SelectionType, OldestVolumen ni SmallestVolume, pero indispensable para Job, Client y Volume. El valor de SelectionPattern debe ser un RegExp que encontrará sus nombres de directiva. Ejemplo:

Selection Type = SQLQuery 
Selection Pattern = "select '<Jobid>';" # Selecciona un Job sólo para copiar

b) Para el recurso Pool de Origen

Migration Time =

Un período de tiempo que, al final, los Jobs de copia de seguridad se pueden migrar si se ejecuta un trabajo de migración.

Migration High Bytes =

Tamaño máximo de la ocupación de la Pool.

Migration Low Bytes =

Tamaño mínimo de la ocupación de la Pool.

Next Pool =

Especifica qué es la Pool de destino de la copia (obligatorio). Sin embargo, también puede reemplazar esta especificación de NextPool en el recurso de programación, lo que le permite realizar trabajos de copia o migración a diferentes destinos de destino de acuerdo con el tiempo.

Storage =

En este caso, se debe especificar el nombre del Storage de origen. Lo mismo que probablemente ya está siendo utilizado para grabar las copias de seguridad de esta Pool. De cualquier suerte, este es el mejor lugar para asociar las Pool a sus Storages, independientemente de estar configurando un job de copia.

c) Para el recurso Pool de Destino

Storage =

Se debe especificar el nombre del Storage de Destino en el que se almacenan los trabajos de copia o migración.

Un Ejemplo de Configuración de Job de copia

a) Recursos Pool (bacula-dir.conf)

# Pool de Origen
Pool {  
  Name = Monthly-Disk   
  Pool Type = backup 
  Storage = File1     # storage de origen
  Next Pool = Copy    # nombre pool de destino
  ...
}

# Pool de Destino
Pool {
  Name = Copy
  Pool Type = backup 
  Storage = File2      # storage de destino
  ...
}

b) Recurso Job (bacula-dir.conf)

Job {
  Name = "CopyJobs" 
  JobDefs = DefaultJob
  Type = Copy 	# ou Migrate
  Pool = Monthly-Disk   	# pool de origen
  Selection Type = PoolUncopiedJobs
  Schedule = CopySchedule  	# recomendado
}

Aplique los cambios en la configuración y ejecute (comando run) el trabajo creado como prueba. En este ejemplo, la primera copia puede tardar mucho tiempo, ya que seleccionará todos los trabajos nunca copiados del Pool de origen (SelectionPattern = PoolUncopiedJobs). Por lo tanto, planifique su inicio cuidadosamente porque esta primera carga de trabajo puede ser grande. Usted también debe querer crear y especificar para este Job un Schedule diferente de su copia de seguridad regular, como en el ejemplo.

Disponível em: pt-brPortuguês (Portugués, Brasil)enEnglish (Inglés)esEspañol

Deja una respuesta