Tuesday, December 5, 2006

Quantum DLT7000

ADVISORY:
--------------

I comando qui elencati sono stati testati su di un Tape Drive DLT7000. Dovrebbero funzionare anche su altri modelli ma non ho avuto modo di verificarlo direttamente. Quindi se qualcosa non va sono problemi vostri ;).

EDIT 13/02/2006: tutti i comandi sotto sono generici (a parte i comandi per la compressione hardware).

Verifichiamo che tape drive abbiamo installato:

# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 06 Lun: 00
Vendor: QUANTUM Model: DLT7000 Rev: 2255
Type: Sequential-Access ANSI SCSI revision: 02

Da notare Type: Sequential Access ;)

Il modulo del kernel utilizzato per gestire questo device è: st.ko

Per caricarlo basta usare il comando:

# modprobe st

Una volta caricato il modulo dovrebbero essere disponibili i device:

# ls /dev/nst0* /dev/st0*
/dev/nst0 /dev/nst0l /dev/st0 /dev/st0l
/dev/nst0a /dev/nst0m /dev/st0a /dev/st0m

Per comprendere le differenze tra i diversi device possiamo iniziare da /usr/src/linux/Documenation/devices.txt:

[CUT]
9 char SCSI tape devices
0 = /dev/st0 First SCSI tape, mode 0
1 = /dev/st1 Second SCSI tape, mode 0
...
32 = /dev/st0l First SCSI tape, mode 1
33 = /dev/st1l Second SCSI tape, mode 1
...
64 = /dev/st0m First SCSI tape, mode 2
65 = /dev/st1m Second SCSI tape, mode 2
...
96 = /dev/st0a First SCSI tape, mode 3
97 = /dev/st1a Second SCSI tape, mode 3
...
128 = /dev/nst0 First SCSI tape, mode 0, no rewind
129 = /dev/nst1 Second SCSI tape, mode 0, no rewind
...
160 = /dev/nst0l First SCSI tape, mode 1, no rewind
161 = /dev/nst1l Second SCSI tape, mode 1, no rewind
...
192 = /dev/nst0m First SCSI tape, mode 2, no rewind
193 = /dev/nst1m Second SCSI tape, mode 2, no rewind
...
224 = /dev/nst0a First SCSI tape, mode 3, no rewind
225 = /dev/nst1a Second SCSI tape, mode 3, no rewind
...
[CUT]

Si noti che non tutti i device sono funzionanti. Ad esempio nel mio caso posso usare solo /dev/st0 e /dev/nst0:

/dev/st0 ----> con rewind
/dev/nts0 ----> senza rewind

Nel caso i cui siano presenti più tape drive dello stesso tipo il
secondo device verrà indicato con /dev/st1 il terzo con /dev/st2 e via dicendo.

Per gestire questo i tape drive in genere possiamo usare le utility: mt-st, disponibili a questo indirizzo: http://www.gnu.org/software/tar/

Qui analizziamo soltanto alcune delle funzioni più comuni di mt per una guida dettagliata si veda la man page.

Per definire il device su cui si vuole operare si puo' usare sia -t che -f oppure in alternativa si puo' definire la variabile di ambiente TAPE. Ad esempio:

# mt -f /dev/st0 status

oppure

# export TAPE=/dev/st0
# mt status

0 - Raccogliere la cassetta
----------------------------------
# mt -f /dev/st0 rewind


1 - Informazioni sullo stato della casetta e del tape drive
------------------------------------------------------------------------
# mt -f /dev/st0 status
SCSI 2 tape drive:
File number=0, block number=0, partition=0.
Tape block size 0 bytes. Density code 0x1b (DLT 35GB).
Soft error count since last status=0
General status bits on (45010000):
BOT WR_PROT ONLINE IM_REP_EN


Status Bit Description
----------------------------
  • BOT: La casetta è posizionata all'inizio del primo file.
  • EOT: Un'operazione ha raggiunto la fine della cassetta.
  • EOF: La casetta è posizionata alla fine di un file.
  • WR_PROT: La casetta del tape drive è write-protected
  • ONLINE: Il tape drive ha una casetta al suo interno ed è pronto per l'uso.
  • DR_OPEN: Il tape drive non ha una cassetta al suo interno.
  • IM_REP_EN: Immediate report mode. Questo bit è settato nel caso in cui non ci sia garanzia che i dati siano stati fisicamente scritti sulla casetta. E' settato a zero solo quando il tape drive non ha dati in buffer.


2 - Creare un archivio sulla cassetta
----------------------------------------------
# tar cvf /dev/st0 sample_dir
sample_dir/
sample_dir/file1.txt
sample_dir/file2.txt
sample_dir/file3.txt

3 - Elencare i file presenti in una cassetta
-----------------------------------------------------
# tar tvf /dev/st0
sample_dir/
sample_dir/file1.txt
sample_dir/file2.txt
sample_dir/file3.txt

4 - Ripristinare tutti i file
-------------------------------
# tar xvf /dev/st0

5 - Ripristinare un single file
-------------------------------------
# tar xvf /dev/st0 sample_dir/file1.txt

6 - Ripristinare una directory
------------------------------------
# tar xvf /dev/nst0 sample_dir

Si noti l'uso di nts0. Dal momento che abbiamo usato il dispositivo di non rewind la casetta adesso è posizionata alla fine del file sample. Si lo so che è una directory ma in unix ALL IS A FILE ;).

Se adesso supponiamo che dopo la directory sample_dir ci sia un'altra directory ad esempio sample_dir2 possiamo usare il comando:

# tar xvf /dev/nst0 sample_dir2

per estrarla dalla cassetta.

Se volessimo partire invece a ripristinare direttamente dalla seconda directory, allora dovremmo usare i comandi:

# mt -f /dev/nst0 fsf 1
# tar xvf /dev/nst0

7 - Creare un archivio multi volume
--------------------------------------------
# tar cvfM /dev/st0 verybigdir

verybigdir/
verybigdir/file1
verybigdir/file2
verybigdir/file3
...
Prepare volume #2 for `/dev/st0' and hit return:
verybigdir/file4
verybigdir/file5
verybigdir/file6
...

8 - Abilitare/Disabilitare la compressione hardware
---------------------------------------------------------------

mt -f /dev/st0 compression 0 # Disabilita la compressione hardware
mt -f /dev/st0 compression # Abilita la compressione hardware

EDIT 13/02/2006:

I comandi per la compressione hardware sono generici e non funzionano con questo modello di DLT. Per Il DLT 7000 si debbono usare:
mt -f /dev/st0 setdensity 0x1b # Disabilita la compressione hardware (35GB)
mt -f /dev/st0 setdensity 0x85 # Abilita la compressione hardware (70 GB)

1 comment:

  1. Edit 13/02/2006:
    Modificati i comandi per la compressione hardware.

    ReplyDelete