Alcune istruzioni sull'uso della Exabyte 230D Tape Library (robot cambianastri della PC-Farm) Simone Piccardi, Settembre 1999 Per poter utilizzare le funzioni di cambianastri della Exabyte 230D e' stato installato un apposito device driver (modulo ch, che opera sul device /dev/sch0) e un programma di controllo (/usr/loca/bin/userland). L'utilizzo delle funzioni cambianastri avviene attraverso l'interfaccia standard per gli SCSI Media Changer; tale interfaccia e' del tutto indipendente dal tipo di device che legge e scrive i dati (nel caso specifico un DLT7000 Quantum) e prevede in genere uno SCSI Id per il controllo del robot e uno (o piu') per il (i) device che leggono/scrivono i dati. L'interfaccia prevede 4 elementi che compongono il media changer: - media transport: e' l'elemento che sposta i supporti dei dati, nel caso della Exabyte 230D e' composto dal braccio di trasporto e dal carrello rotante dove sono posti i tape - storage: un elemento che puo' contenere un supporto dei dati (nel caso specifico uno dei 30 slot del carrello rotante) - import/export: come sopra ma accessibile dall'esterno (non disponibile per la Exabyte 230D) - data transfer: il device che legge e scrive i dati (il DLT7000 nel caso specifico) In generale nessuno di questi elementi e' singolo; possono esservi piu' bracci di trasporto, piu' slot di immagazzinamento e piu' device; nel caso specifico la Exabyte 230D dispone di 1 media transport, 30 slot di storage, nessun import/export e 1 data transfer (che potrebbero diventare 2 qualora venisse installato nella Exabyte 230D un secondo DLT). Per poter usufruire del controllo via SCSI changer occorre assicurarsi che l'Exabyte 230D sia predisposta per ricevere i comandi via SCSI e non dal pannello. Il programma di controllo si chiama userland; chiamandolo senza argomenti esso stampa una lista di tutti gli elementi presenti (secondo la precedente classificazione) indicando quanti elementi di ciascun tipo sono presenti e i bit di stato di ciascuno; questi ultimi possono assumere i seguenti valori - full: settato indica che nell'elemento e' presente un supporto - access: settato quando il robot puo' accedere all'elemento - except: c'e' stata un'eccezione (qualcosa che non va relativa a quell'elemento) ad esempio al momento della stesura di questo manuale il risultato ottenuto e': [piccardi@c00 ~]$ userland /dev/sch0: mt=1 st=31 ie=0 dt=1 medium transport 0: storage 0: access except full 1: access 2: access 3: access 4: access except full 5: access except full 6: access except full 7: access 8: access 9: access 10: access 11: access 12: access 13: access 14: access 15: access 16: access 17: access 18: access 19: access 20: access 21: access 22: access 23: access 24: access 25: access 26: access 27: access 28: access 29: access 30: access import/export data transfer 0: access questo indica che sono disponibili: 1 medium transport (che ovviamente non e' accessibile per i supporti), 31 storage di cui 4 occupati; (lo zero si riferisce alla cleaning cartridge) che segnalano un errore (dovuto alla mancanza di etichetta a barre adeguata) nessun import/export 1 data transfer (il DLT7000) accessibile e vuoto Per muovere i nastri il comando principale e': userland mv dove e sono una combinazione lettera/numero in cui la lettera indica il tipo di elemento (valori possibili sono t,s,e o d; ma nel nostro caso sono validi solo s per gli slot di storage e d per il DLT) ed il numero e' il numero dello slot selezionato che parte sempre da 0; sia che devono essere marcate dal bit access. Un esempio di comando valido per la situazione precedente e': [piccardi@c00 ~]$ userland mv s4 d0 che trasporta il tape nella slot 4 dentro il DLT. Ripetendo il comando userland senza argomenti troveremmo adesso che: [piccardi@c00 ~]$ userland /dev/sch0: mt=1 st=31 ie=0 dt=1 medium transport 0: storage 0: access except full 1: access 2: access 3: access 4: access 5: access except full 6: access except full ... data transfer 0: except full con lo slot 4 libero e il tape occupato (non piu' con access disponibile). L'inserimento di un nastro dentro il DLT comporta anche il suo caricamento; l'operazione necessita di un certo tempo, inviare comandi in successione troppo rapida puo' dare luogo ad errori. Il DLT viene visto come un tape SCSI standard (nel nostro caso e' accessibile attraverso i due device file /dev/nst0 e /dev/st0, rewinding e non rewinding), una volta caricato il nastro si puo' leggere con i normali comandi unix, ad esempio si puo' operare con il comando mt (man mt da' le informazioni necessarie sulle opzioni disponibili) che prende il DLT (unico tape device disponibile) come default. Per poter estrarre il nastro occorre comunque prima scaricarlo (altrimenti ogni tentativo di accedervi con userland darebbe luogo ad un errore), questo puo' essere fatto con il comando: mt offline a questo punto diventa possibile poter spostare il nastro, il comando userland darebbe: [piccardi@c00 ~]$ userland ... data transfer 0: access except full e si puo' estrarre e riportare indietro il nastro con il comando: [piccardi@c00 ~]$ userland mv d0 s4 Sono poi disponibili altri comandi: Il comando userland info mostra le informazioni relative all'elemento per esempio: [piccardi@c00 ~]$ userland info d0 /dev/sch0: mt=1 st=31 ie=0 dt=1 status : access source : s4 scsi id : 1 scsi lun: 0 pvoltag : Il comando userland pos posiziona il braccio sull'elemento (puo' servire a capire qual'e' lo slot scelto sul carrello). Il comando userland ex sposta su e quest'ultimo su (che puo' essere uguale a consentendo lo scambio di due nastri). Per caricare/scaricare i nastri infine si possono usare i comandi: userland load n userland unload il primo carica il nastro dallo slot n dello storage (e non vuole pertanto la lettera dell'elemento), il secondo riporta indietro il nastro allo slot originario (posto che sia stato scaricato, non sostituisce cioe' la necessita' di dare il comando mt offline).