05
Jun
09

Hacer respaldos en cintas de tape backup en Ubuntu – HP DAT72

Bueno, hace poco migré un equipo de M$ Windows a Ubuntu y éste tenía un HP DAT72 que es un dispositivo para realizar respaldos en cintas de tape backup de hasta 72GB (comprimido). Al principio pensé que podía montar la cinta de tape backup y usarlo como si fuera un punto de montaje, pero la cosa no trabaja así… La cuestión es que, por medio del comando TAR, tu puedes escribir en la cinta y, para gestionar la cinta, utilizas el comando MT.

Como generalidad, hay que recordar que las cintas de tape backup son cintas que trabajan de forma SECUENCIAL, por lo que no trabaja como si fuera el disco duro… es un poco tedioso, pero es una forma muy segura de hacer respaldos y tenerlos guardados por muuucho tiempo. Entonces, tenemos que estar rebobinando, y buscando las sesiones de la cinta de una forma muy lenta en dispositivos de almacenamiento de ésta índole… Cuando manipulamos éstas cintas desde Ubuntu, no es necesario formatear la cinta ni nada, practicamete solo la ponemos y ya podemos trabajar con ella. Recomiendo verificar antes la cinta para verificar si tiene data (con un comando que veremos más adelante…).

Generalmente me he fijado que los unidades HP DAT 72 se encuentra representado casi siempre en /dev/nst0 o /dev/st0. Cuál es la diferencia entre éstos dos?

/dev/st0 –> Al realizar un proceso con respecto a la cinta, automáticamente la rebobina.
/dev/nst0 –> No rebobina la cinta de forma automática.

Bueno, después de ésta introducción, vamos a la practica! los comandos de batalla que debes conocer de memoria son los siguientes:

Para ver el estatus de la cinta (podemos ver la sesión o marca record en donde nos encontramos)…

oscard@skrdz:~# mt -f /dev/nst0 status

Para rebobinar la cinta…

oscard@skrdz:~# mt -f /dev/nst0 rewind

Para borrar el contenido de la cinta…

oscard@skrdz:~# mt -f /dev/nst0 erase

Para expulsar la cinta…

oscard@skrdz:~# mt -f /dev/nst0 eject

Para buscar la última sesión escrita en la cinta (podemos adicionar más archivos en la cinta!)

oscard@skrdz:~# mt -f /dev/nst0 eom

Esos son básicamente los más utilizados y ahora, para realizar respaldos deberás de utilizar el comando tar. Un ejemplo sería:

oscard@skrdz:~# tar -cvzf /dev/nst0 /home/oscard/Documentos

Ésa línea de comando anterior lo que hace es escribir en la cinta (en la posición en donde se encuentre…) todo el contenido de la carpeta /home/oscard/Documentos. Si quisieras guardar más, solo tendrías que darle un espacio al final de la linea y colocar otro directorio o archivo. También, podrías colocar, en otra línea el mismo comando pero con otro archivo o directorio a resguardar  y no es necesario rebobinar o usar el mt -f /dev/nst0 oem siempre y cuando uses el dispositivo nst0.

Como un consejo personal, puedes generar un archivo tar comprimido (tar.gz por ejemplo) de la información que quieras guardar en la cinta generando y luego crear un script con los comandos adecuados para adicionar dicho archivo a la cinta y, siempre como recomendación, puedes generar un archivo TXT con cada proceso que haces y así auditar que todo salió bien. Ésto te facilitará la adminstración de tus respaldos.

Ahora, para ver tu información en la cinta, deberás de rebobinar la cinta (mt -f /dev/nst0 rewind) y poner el comando:

oscard@skrdz:~# tar -tzf /dev/nst0

Te mostrará la primera sesión y estará con la marca record Uno, por lo que si digitas mt -f /dev/nst0 status, verás que cambiará el número de la marca Record o sesión respectivo a Uno. Así sucesivamente puedes repetir la línea de comando tar -tzf /dev/nst0 hasta encontrar en qué sesión (record) esta tu archivo.

Para restaurar un archivo, pues primero debes saber en qué marca de record o sesión se encuentra. puedes usar el comando anterior para ir viendo a donde está, pero si conoces el número de sesión, pues puedes ir directamente a él de ésta manera:

oscard@skrdz:~# mt -f /dev/nst0 fsf 1

Donde fsf 1 esta indicando el número de sesión o marca record en donde quieres adelantar la cinta. Una vez ubicado en la sesión respectiva, puedes digitar la línea de comando:

oscard@skrdz:~# tar xvf /dev/nst0

Ésto restaurará el contenido de la sesión que pusimos.

Espero que más de alguno le sirva la información. SALUDOS!!!!!


16 Responses to “Hacer respaldos en cintas de tape backup en Ubuntu – HP DAT72”


  1. 1 Marcelo
    junio 11, 2009 a las 3:46 pm

    Buenos días,

    Ante todo agradecer este post. Me ha resultado muy útil y ameno. Tengo un servidor con la misma grabadora que describes, pero me encuentro en un problerma. Hago la copia de seguridad con el comando explicado de la forma siguiente:

    root@Servidor-R:/home/usuario# tar -cvzf /dev/nst0 /home/usuario/Documentos
    tar: Eliminando la `/’ inicial de los nombres
    /home/usuario/Documentos/
    /home/usuario/Documentos/road.pdf
    /home/usuario/Documentos/trash.desktop
    root@Servidor-R:/home/usuario#

    y aparentemente todo bien, luego rebobino la cinta

    root@Servidor-R:/home/usuario# mt -f /dev/nst0 rewind
    root@Servidor-R:/home/usuario#

    y continúa todo correcto.
    El problema es cuando quiero restaurar la sesión ya que me da el siguiente error:

    root@Servidor-Ruifer-Oil:/home/usuario# tar xvf /dev/nst0

    gzip: stdin: not in gzip format
    tar: Child died with signal 13
    tar: Salida con error demorada desde errores anteriores
    root@Servidor-Ruifer-Oil:/home/usuario#

    ¿Qué es lo que estoy haciendo mal?

    Desde ya muchas gracias

    Marcelo

  2. 3 Marcelo
    junio 11, 2009 a las 10:00 pm

    Hola nuevamente,

    Gracias por la ayuda. Lamentablemente no funciona. Ahora me saca todo el listado del contenido de la cinta (en total 8 archivos) pero no restaura nada.
    Para comprobarlo, primero renombré el directorio para ver si lo reconstruía con el nombre original y su contenido, pero como no realizaba ninguna de estas tareas, fuí más drástico y borré carpeta y contenido.
    Rebobiné la cinta y volví a ejecutar el comando agregándo la “z”, pero no ocurrió nada.

    Gracias nuevamente por cualquier pista que puedas darme.

    Atentamente

    Marcelo

  3. 4 lacros
    julio 3, 2009 a las 11:12 pm

    Muchas gracias por el resumen oscard !!

    La verdad es que este tema es un coñazo (almenos para mi) pero de vital importancia.

    En serio, gracias por evitarme la lectura de tropocientos manuales.

  4. 6 esteban
    agosto 12, 2009 a las 8:46 pm

    hay forma de saber cuando espacio libre le queda a la cinta?

  5. 8 Nogueras
    septiembre 21, 2009 a las 6:07 pm

    Que tal.. antes que nada dejame hacer notar mi reconocimiento para este tipo de usuario que mas de una vez me ha sacado de muchiiiiisimos apuros, y gracias a ellos he podido aprender muchas cosas… Que informacion y explicacion tan buena… ojala y nunca se cansen de compartir sus conocimientos… muchas gracias… ok ok

    Ahora la duda que tengo, es que si mi informacion son mas de 100 GB y mi unidad con todo y compresion es de 72GB, ¿me ira pidiendo cinta por cinta hasta que se complete la copia?

    Muchas gracias y espero su respuesta.

    • septiembre 22, 2009 a las 9:16 pm

      Muchas gracias por tu comentario Nogueras!, es una de las razones por las cuales da gusto ser un blogger!!! Infinitamente agradecido!

      Bueno, con tu duda… me da pena decirte que creo que no es posible… por lo menos yo estuve investigando esto porque igual, mis respaldos suelen mayores de 72GB y antes, con un producto de terceros en guin2, hacía algo así como un grupo de cintas y éstas se rotaban de tal manera que, cuando se llenaba una, se salia la cinta y esperaba otra en blanco para continuar. Desgraciadamente, creo que no funciona así de ésta forma que postee… Estuve buscando una solución distinta en gnu/linux (de ser posible gráfica) pero al final, por no encontrarla, decidí mejor distribuir los respaldos ya que tengo 3 unidades de tap backup en servidores con SO diferente.

      Si encuentras una solución que hace eso y te permita saber cuánto espacio libre hay en la cinta (en sistemas gnu/linux), te lo agradecerá mucho.

      Muchas gracias y Saludos!!!!

  6. 10 BicaReloaded
    octubre 28, 2009 a las 8:38 am

    Buen dia, ante todo gracias por su ayuda y su tiempo.
    Tengo un problema y es el siguiente:cuento con un cartucho de almacenamiento masivo de datos de 800gb, y quiero sacarle el mayor provecho posible, ya se como poder grabar varios archivos de mi disco duro en el tape(tar y mt), tambien el modo de restaurarlo; el problema es que ahora lo que quiero hacer es primero grabar un backup nivel cero de la base de datos (para ello uso ontape -s -L)y luego grabar los siguientes archivos que estan en mi disco duro. Ya he hecho mis pruebas, primero he generado el backup nivel cero, pero no logro seguir grabando despues del backup nivel cero y peor aun restaurarlo…
    Ayuda please.

    • noviembre 11, 2009 a las 8:41 am

      Eso de ontape -s -L no lo conozco… pero qué pasa si intestas poner después de generar tu backup nivel cero de tu BD el comando:
      mt -f /dev/nst0 eom

      Ésto antes de poner el proceso de grabar los archivos de tu disco duro.

      Comenta a ver qué tal te va. Saludos!

  7. 12 jose
    octubre 29, 2009 a las 1:41 pm

    Muy bueno el blog , tengo un hp dat 160 , y o que no logro entender es lo siguiente ,
    tengo un bash con un script que graba los backups que se corre todas las noches, este graba varias carpetas que coindicen con la fecha del dia anterior:

    for i in $(ls /home/)
    do
    case $i in
    “saver2”) tar cvf /dev/nst0 /home/$i/$fecha;;
    “saver3”) tar cvf /dev/nst0 /home/$i/$fecha;;
    “saver4”) tar cvf /dev/nst0 /home/$i/$fecha;;
    “saver5”) tar cvf /dev/nst0 /home/$i/$fecha;;
    “saver6”) tar cvf /dev/nst0 /home/$i/$fecha;;
    “saver8”) tar cvf /dev/nst0 /home/$i/$fecha;;
    esac
    done
    y cada “saver” (nombre que le puse) me lo guarda en un fsf distinto , hasta ahi todo bien m pero al otro dia cuando corre , me pisa todo lo que grabo el dia anterior , vuelve al prinpcio de la cinta o no se que puede pasar , por que el script hace ese for y nada mas y queda espacio liobre.
    no se si te paso alguna vez , desde ya muchas gracias

    • noviembre 11, 2009 a las 8:38 am

      Pues, debería funcionar porque estas usando el dispositivo nst0 el cual no rebobina la cinta de forma automática…. y si intentas poner un “mt -f /dev/nst0 eom” al inicio de tu script? esto para que te posiciones en el fsf siguiente del último escrito en la cinta.

      Aunque yo más creo que debería funcionar como lo tienes porque en ningún momento le dices que rebobine o que utilice el dispositivo st0.

      Comenta a ver como te sale.
      Saludos!

  8. marzo 15, 2010 a las 11:55 pm

    encontre este comando lo voy a probar hoy por la noche. Según es para hacer el backup en multiples cintas, espero que funcione.

    To backup to multiple tape use the following command (backup /home file system):
    # tar -clpMzvf /dev/st0 /home

    saludos…

  9. marzo 16, 2010 a las 12:04 am

    Como ven no acepta compresión en el modo multiple tapes…

    You can’t use -M (multiple tapes) with -z option (compression).

    $ tar -clpMzvf /dev/st0 /anydir
    tar: Cannot use multi-volume compressed archives

  10. 16 cangrejo
    abril 26, 2010 a las 11:00 am

    Hola, tengo un sistema de cintas y ay puedo guardar, guardar comprimido y recuperar lo que he guardado. tengo una duda como se que espacio tengo libre o cuanto he ocupado o cuanto espacio soporta la cinta.

    gracias por el blog!


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: