Ho un grave problema con un array di archiviazione SAN collegato a un box Linux tramite Fibre Channel. Ecco la configurazione:
- Debian con plain vanilla linux 2.6.27.25
- Controller fibra QLogic 4Gb doppia porta (basato su ISP2432)
Fondamentalmente il problema è: come ottenere questo #? @ !! Controller / driver FC per riconoscere correttamente le modifiche alla configurazione (LUN nuove o rimosse) dell'array di archiviazione?
- quando creo un nuovo LUN sul mio array (in genere un'istantanea di un LUN esistente) e lo associo al mio HBA, non riesco a farlo riconoscere correttamente:
rescan-scsi-bus -l -w -r
rileva effettivamente qualcosa (un dispositivo generico / dev / sgXX) ma nessun dispositivo a blocchi viene creato (/ dev / sdXX). stessa cosa quando si emette un LIP e si esegue nuovamente la scansione manualmente:
echo 1> / sys / class / fc_host / host6 / issue_lip
echo "- - -"> / sys / class / scsi_host / host6 / scan
se rimuovo un LUN esistente, né l'emissione di LIP né i riscans o il rescan-scsi-bus hanno alcun effetto. I dispositivi precedenti rimangono lì e ovviamente non funzionano ("file -s / dev / sdXX -> errore I / O").
- ricaricare il driver qla2xxx funziona. Tuttavia è completamente impraticabile in un ambiente di produzione.
Apparentemente questo è un problema molto comune con QLogic . Esiste una sorta di soluzione che funziona solo quando si utilizza il driver emesso QLogic disponibile solo per le distribuzioni aziendali di RedHat e Suse: vedere questa spiegazione .
Informazioni addizionali :
Ecco i dispositivi scsi prima del LIP e della nuova scansione:
# sg_map -x
/dev/sg0 0 0 0 0 0 /dev/sda
/dev/sg1 0 0 1 0 5 /dev/scd0
/dev/sg2 1 0 0 0 0 /dev/sdb
/dev/sg3 6 0 0 0 0 /dev/sdc
/dev/sg4 6 0 0 1 0 /dev/sdd
/dev/sg5 6 0 0 2 3
Dopo un LIP e una nuova scansione, ho un nuovo dispositivo sg, ma nessuna unità corrispondente. Se ricarico il driver, viene visualizzata un'unità:
# sg_map -x
/dev/sg0 0 0 0 0 0 /dev/sda
/dev/sg1 0 0 1 0 5 /dev/scd0
/dev/sg2 1 0 0 0 0 /dev/sdb
/dev/sg3 6 0 0 0 0 /dev/sdc
/dev/sg4 6 0 0 1 0 /dev/sdd
/dev/sg5 6 0 0 2 3
/dev/sg6 6 0 0 3 3
~# sg_map -x
/dev/sg0 0 0 0 0 0 /dev/sda
/dev/sg1 0 0 1 0 5 /dev/scd0
/dev/sg2 1 0 0 0 0 /dev/sdb
/dev/sg3 8 0 0 0 0 /dev/sdc
/dev/sg4 8 0 0 1 0 /dev/sdd
/dev/sg5 8 0 0 2 0 /dev/sde
/dev/sg6 8 0 0 3 3
Modifica: OK, ovviamente questo è un dado difficile da decifrare. Chiederò a LKML e riferirò qui.