Avanti Indietro Indice

11. Assegnazione dei numeri secondari

A causa dei vincoli imposti dall'uso di Linux di un dev_t di 16 bit con soli 8 bit allocati al numero secondario, i numeri minori dei disci, nastri, CD-ROM e disposisitivi SCSI generici sono assegnati dinamicamente seguendo la seguente procedura:


Per tutti gli adattatori host SCSI, da scsi0 a scsiN
    Per tutti gli ID SCSI su questo bus, da 0 a 7, eccetto per questo
    adattatore host ID.
        Per tutte le unità logiche, da 0 tramite max_scsi_luns:
          - Provare la combinazione bus, target, LUN inviando un comando 
            TEST UNIT READY. Se non c'è possibilità che altre unità siano 
            qui, non provare altri LUN per questa combinazione bus + SCSI ID
          - Inviare un comando INQUIRY per determinare cosa è stato trovato 
            incluso il tipo di dispositivo, il produttore, il modello, la
            revisione del firmware.
          - Passare i risultati di ciò a una funzione speciale di ricognizione 
            per ciascun driver di alto livello presente (cioè dischi, nastri 
            ecc). Attaccare questo dispositivo alla prossima unità disponibile 
            per ciascun driver che sia disponibile per gestirlo. Il device 
            generico si attacca a ogni dispositivo.
          - Se si trattava di un SCSI-I, o di un dispositivo appartenente ad 
            una lista di dispositivi noti per non gestire LUN multipli, 
            non provare alcun altro LUN su questo bus + SCSI ID.
          - Se si tratta di un dispositivo noto per avere LUN multipli, allora 
            viene forzata una scansione di tutto lo spettro Lun, scavalcando 
            max_scsi_luns. 

Ci sono spesso problemi con questo approccio a causa del fatto che se possedete un sistema dove alcuni dispositivi sono presenti saltuariamente, allora i numeri secondari per un dato dispositivo dipenderanno da quali dispositivi erano presenti al momento del boot. Questo può far insorgere dei problemi, perché gli script rc o il file /etc/fstab potrebbero contenere istruzioni per il montaggio di particolari partizioni che falliscono quando il disco appare con un numero secondario diverso.

Questo problema non è ancora stato del tutto risolto. C'è un programma che può essere trovato su tsx-11 che crea una gerarchia /dev/scsi basata sui numeri host, id e lun. Questo sistema non è perfetto, ma aiuta a risolvere alcuni problemi.

Una soluzione migliore verrà probabilmente fornita dalla pseudo directory /proc/scsi. Questo è attualmente un lavoro in corso, quindi al momento attuale non possiamo descrivere la forma della soluzione, ma al momento in cui scriviamo appare essere un'approccio promettente per la soluzione di alcune delle priorità.


Avanti Indietro Indice