jueves, 3 de enero de 2008

Bacula lleno mi cinta de respaldo!!!

Bien, he estado teniendo problemas con el sistema de respaldo, pero el problema no es FreeBSD o bacula o la cinta, nada de eso, el problema han sido los usuarios, por que?

Los días anteriores estuve recibiendo mensaje de bacula a mi correo de este tipo:
30-Dec 04:00 bacula-sd JobId 2620: Please mount Volume "FullTape-0024" or label a new one for:
Job: MAIL.2007-12-28_20.35.28
Storage: "StorageWorks-232" (/dev/nsa0)
Pool: MFullTape
Media type: LTO-1

Estos mensajes son cuando el requiere que le proporcionemos otra cinta, en mi caso, si estamos respaldando en disco duro, el mismo toma el volumen solito.

Pero si es un dispositivo de cinta para una sola cinta, nos manda este mensaje, me imagino que los dispositivos multicargadores tomarian la siguiente cinta disponible.

Revisando el problema, me fui a ver como estaban los volumenes en la base de datos y tengo esto:

+---------+---------------+-----------+---------+-----------------+----------+--------------+---------+------+
| MediaId | VolumeName | VolStatus | Enabled | VolBytes | VolFiles |
+---------+---------------+-----------+---------+-----------------+----------+--------------+---------+------+
| 2 | FullTape-0002 | Used | 1 | 94,028,175,360 | 100 | 6,912,000
| 3 | FullTape-0003 | Used | 1 | 70,534,388,736 | 74 | 6,912,000
| 6 | FullTape-0005 | Used | 1 | 101,141,591,040 | 106 | 6,912,000
| 7 | FullTape-0006 | Used | 1 | 70,140,607,488 | 73 | 6,912,000
| 9 | FullTape-0007 | Used | 1 | 85,557,040,128 | 88 | 6,912,000
| 11 | FullTape-0008 | Used | 1 | 78,246,862,848 | 82 | 6,912,000
| 13 | FullTape-0009 | Full | 1 | 1,421,263,872 | 1 | 6,912,000 | 16 | FullTape-0010 | Used | 1 | 69,391,078,364 | 73 | 6,912,000
| 30 | FullTape-0011 | Full | 1 | 79,628,903,424 | 82 | 6,912,000 |
| 36 | FullTape-0013 | Used | 1 | 74,269,762,560 | 78 | 6,912,000
| 42 | FullTape-0014 | Used | 1 | 74,910,818,304 | 78 | 6,912,000
| 43 | FullTape-0015 | Used | 1 | 87,342,016,462 | 91 | 6,912,000
| 45 | FullTape-0001 | Used | 1 | 73,082,225,664 | 77 | 6,912,000
| 47 | FullTape-0004 | Used | 1 | 96,514,790,400 | 102 | 6,912,000
| 51 | FullTape-0016 | Used | 1 | 72,709,668,864 | 77 | 6,912,000
| 55 | FullTape-0017 | Used | 1 | 97,137,395,712 | 103 | 6,912,000
| 59 | FullTape-0018 | Used | 1 | 72,848,369,664 | 77 | 6,912,000
| 61 | FullTape-0019 | Used | 1 | 95,234,098,176 | 101 | 6,912,000
| 63 | FullTape-0020 | Used | 1 | 72,996,424,704 | 77 | 6,912,000
| 64 | FullTape-0021 | Used | 1 | 95,546,271,744 | 101 | 6,912,000
| 66 | FullTape-0012 | Used | 1 | 69,667,024,896 | 73 | 6,912,000
| 70 | FullTape-0023 | Full | 1 | 76,203,767,808 | 80 |6,912,000
+---------+---------------+-----------+---------+-----------------+----------+--------------+---------+------+---
Les elimine información innecesaria, como podrán ver la columna VolStatus, tenemos 2 valores:
  • Used
  • Full
  
El estatus Full como su significado dice, "Lleno", cuando se llena la cinta fisicamente hablando, automaticamente lo pone en este estatus. Que fue lo que me paso.

El status "Used" se pone cuando ya agregamos los suficientes "Jobs" a el volumen, en mi caso lo tengo para 13 que cada Job es un cliente, cuando recibe el Job #13 independientemente a que la cinta se llene o no, bacula cambia el estatus y ya no usara esa cinta hasta que pasen los dias de retencion que es el periodo que esa cinta no se toca.

Las cintas de fabrica vienen habilitadas para comprimir los datos almacenados, muchas no tienen este mecanismo, pero las recientes si, es una compresion que se llama por Hardware(HW), y cada fabricante tiene su espeficacion, yo estoy trabajando con una HP StorageWorks 232 Utrium externa, que esta cinta pueden almacenar hasta 200GB con la compresion del fabricante 2:1 y 100GB sin compresion.

Ahora, cuando hablamos de la compresion del fabricante 2:1, es en realidad que de 2 archivos hace 1? No.

Es un calculo que ellos hacen tomando en cuenta archivos que se pueden comprimir, ahora que pasa con los archivos que no se comprimen mucho, como los dibujos, musica, archivos de Autocad, video etc? Pues aqui es donde viene el pequeno problema, ya que estamos haciendo una compresion 1:1 y ahi empezamos a perder espacio.

Que fue lo que me paso?, se me lleno la cinta, revise los servidores y me encontre con que los usuarios respaldaron su musica y videos que nada tienen que ver con su trabajo en ellos y ahi empece a perder espacio.

Ahora lo que hice primero que nada, es borrar toda esa informacion.

Ahora en el sistema de respaldo tenemos 2 opciones para comprimir:
  • Compresion por Hardware
  • Compresion por Software
La primera ya hable de ella, la segunda ese metodo lo hacemos nosotros, ya que antes de mandar los datos a cinta se comprime con alguno de los programas en tengamos a la mano, en el caso de bacula hace uso de gzip, podemos usar otros disponibles en Unix, pero este es el estandard.

Nomas como informacion, no es recomendable hacer uso de los metodos de compresion mezclados, o sea tener hablitado tanto la opcion por hardware como software ya que se han tenido mala experiencia con esto, no quieran ganar mas espacio y perder su informacion por andar de ahorradores.

Para ver si tebemos habilitado la compresion de la cinta en FreeBSD hacemos uso del comando mt asi:

mt -f /dev/nsa0 status

Mode Density Blocksize bpi Compression
Current: 0x40 variable 0 0x1
---------available modes---------
0: 0x40 variable 0 0x1
1: 0x40 variable 0 0x1
2: 0x40 variable 0 0x1
3: 0x40 variable 0 0x1
---------------------------------
Current Driver State: at rest.
---------------------------------
File Number: 0 Record Number: 0 Residual Count 0

Como podran ver, en la primera linea tenemos

Mode Density Blocksize bpi Compression
Current: 0x40 variable 0 0x1

Que esta en hexadecimal y tenemos 0x1 lo cual es Verdadero y por lo tanto tenemos habilitada la compresion por HW o de la cinta.

Si deseamos hacer uso de software para la compresion, tenemos que deshabilitarla de la cinta asi:

mt -f /dev/nsa0 comp off

Volvemos a ejecutar el comando anterior para verificar el cambio y nos da esto:

bacula# mt -f /dev/nsa0 status
Mode Density Blocksize bpi Compression
Current: 0x40 variable 0 disabled
---------available modes---------
0: 0x40 variable 0 0x1
1: 0x40 variable 0 0x1
2: 0x40 variable 0 0x1
3: 0x40 variable 0 0x1
---------------------------------
Current Driver State: at rest.
---------------------------------
File Number: 0 Record Number: 0 Residual Count 0

Ya se deshabilito, asi que ya podemos usar a gzip en bacula para comprimir los datos.

Tener en cuenta que cuando actualizamos a FreeBSD con buildworld, este cambia el estatus de la compresion de la cinta, asi que tomen en cuenta esto, y no vayan por ahi a recibir sorpresas.

Bueno manana corro el respaldo a ver como nos va...Saludos!!!

No hay comentarios: