miércoles, noviembre 14, 2007

Tape backup con autocargador en Debian

Hace un par de dias nos han traido un tape para backup con autocargador, especificamente un Dell PowerVault 124T. Al principio quede muy fascinado con la tecnología que traen ahora.

El dispositivo en sí consta de un drive, que es donde se realizan los procesos de lectura/escritura en el tape. También consta de un "magazine", el cual se encarga de mantener los tape almacenados. Este último es una especie de caja con slots en la que son almacenados los tape, que en nuestro caso trae una capacidad para 8 slots; pero puede instalarse un magazine adicional de otros 8 slots para tener una capacidad de almacenar en total 16 tapes.

A cada tape se le pueden pegar unos stickers, los cuales estan identificados con número y su respectivo código de barras. Lo interesante del código de barras es que pueden ser leidos por el dispositivo y asi saber que tape se encuentra en cada slot para identificarlo mas facilmente.

Otro aspecto interesante es que entre el magazine y el drive se encuentra una especie de robot, el cual se encarga de pasar los tapes del magazine al drive y viceversa.

Anteriormente habia manejado tape desde Linux con el comando 'mt', pero nunca con un autocargador. Navegando por internet me encontré con un sitio en el que se comenta la experiencia con un tape del mismo modelo en Debian.

Ahora es el momento de contar mi experiencia con un tape de este tipo. Generalmente el drive se maneja con el comando 'mt', como se mencionaba anteriormente; y el dispositivo en Linux es identificado, en nuestro caso, como /dev/st0.

Otro aspecto interesante es que entre el magazine y el drive se encuentra una especie de robot, el cual se encarga de pasar los tapes del magazine al drive y viceversa.

Para controlar el autocargador, debemos de conocer el dispositivo con el cual Linux lo ha identificado, y para ello podemos hacer los siguiente en consola:

# cat /proc/scsi/sg/device_strs


Y nos tendría que mostrar algo como esto:

DP BACKPLANE 1.05
DELL PERC 5/i 1.03
CERTANCE ULTRIUM 2 1914
DELL PV-124T 0043


En esa lista podemos observar el dispositivo 'PV-124T' en la posición número 4, para lo cual Linux lo identifica como /dev/sg3.

Una vez identificado el dispositivo, debemos de ver la manera con la que podamos manejar dicho dispositivo, y para ello utilizaremos el comando 'mtx'.

En mi caso, con Debian Etch, es necesario agregar un repositorio 'deb http://ftp.de.debian.org/debian etch main' para descargarlo con apt en caso no lo tengamos ya agregado, y no olvidemos darle un 'apt-get update' para actualizar la lista de los repositorios.

Luego de tener el repositorio listo, instalamos el comando mtx de la siguiente manera:

# apt-get install mtx

Y con esto tendríamos todo listo para trabajar. Lo mas básico sería ver el status del magazine, y eso lo podemos ver de la siguiente manera:

# /usr/sbin/mtx -f /dev/sg3 status

Notese que el parametro '-f' es similar al del comando 'mt', en el que le indicamos cual es el dispositivo que queremos manejar. El resultado del comando anterior nos tendria que mostrar algo similar a esto:

Storage Changer /dev/sg3:1 Drives, 8 slots ( 0 Import/Export)
Storage Element 0:Empty
Storage Element 1:Full :VolumeTag=000001L2
Storage Element 2:Full :VolumeTag=000002L2
Storage Element 3:Full :VolumeTag=000003L2
Storage Element 4:Full :VolumeTag=000004L2
Storage Element 5:Full :VolumeTag=000005L2
Storage Element 6:Full :VolumeTag=000006L2
Storage Element 7:Full :VolumeTag=000007L2
Storage Element 8:Empty


Aqui podemos observar que tengo 7 slots llenos con su correspondiente tape, y cada uno con un VolumeTag, el cual es el ID de cada tape que fue leido mediante código de barras dentro del magazine.

Si cargamos uno de los tape dentro del magazine tendría que aparecer un slot vació, y el slot 0 tendría que salir ocupado, ya que es ese el que se toma para el driver. A continuación cargaremos el slot 5 en el drive de la siguiente manera:

# /usr/sbin/mtx -f /dev/sg3 load 5

Y tendriamos que ver algo similar a lo siguiente:

Storage Changer /dev/sg3:1 Drives, 8 slots ( 0 Import/Export)
Data Transfer Element 0:Full (Storage Element 5 Loaded):VolumeTag = 000005L2
Storage Element 1:Full :VolumeTag=000001L2
Storage Element 2:Full :VolumeTag=000002L2
Storage Element 3:Full :VolumeTag=000003L2
Storage Element 4:Full :VolumeTag=000004L2
Storage Element 5:Empty
Storage Element 6:Full :VolumeTag=000006L2
Storage Element 7:Full :VolumeTag=000007L2
Storage Element 8:Empty


Ahora podriamos hacer uso del comando 'mt' para ver si realmente se encuentra el tape en el driver, de la siguiente manera:

# /bin/mt -f /dev/st0 status

Y nos tendria que mostrar toda la info del status del tape cargado. Finalmente para volver a pasar el tape desde el driver al slot correspondiente, utilizamos lo siguiente:

# /usr/sbin/mtx -f /dev/sg3 unload

Con todo lo explicado anteriormente, podriamos realizar un script el cual cargue el tape correspondiante a cada día de la semana, e inclusive podríamos programas que cada cierto tiempo (por ejemplo cada dos o tres meses) cargar un tape de limpieza que este almacenado en el slot 8.


2 comentarios:

deepred dijo...

popta fumaste de la buena man..

mtwom dijo...

Hola, me parece interesante el aporte, y por lo visto tienes alguna experiencia con la manipulación de tapebackups, quiero hacerte una pregunta al respecto, espero tengas la respuesa, necesito saber de alguna forma el espacio disponible en un tapebackup antes de iniciar el proceso de copiado. Será esto posible?

De antemano muchas gracias.