AlcaLabs

[[docs:scsi_fc_notes]]

Traccia: » Appunti di Configurazione SCSI FiberChannel su Linux 2.6

Ti trovi qui: Alca Labs » docs » Appunti di Configurazione SCSI FiberChannel su Linux 2.6

Login

Non sei ancora collegato! Inserisci il tuo nome utente e la tua password per autenticarti. E' necessario che il tuo browser abbia i cookie abilitati.

Entra

Hai dimenticato la password? Richiedine una nuova: Invia nuova password

Appunti di Configurazione SCSI FiberChannel su Linux 2.6

Le schede FiberChannel (utilizzate per l'accesso ad una SAN) vengono viste dal kernel Linux come un qualunque device scsi.

Nel nostro caso il device in questione era una scheda QLogic (HP MSA2100fc) supportata dal driver del kernel vanilla qla2xxx.

Il Controller della SAN è in grado di mappare diversi volumi allo scopo di renderli disponibili agli host come device scsi di tipo disk, assegnadogli anche un determinato LUN.

Su questi device sarà possibile creare le partizioni necessarie mediante i normali tool di partizionamento (fdisk, sfdisk, cfdisk) e crearci i filesystem di cui necessitiamo (mke2fs etc.).

Problema

Come riconoscere il device da cui montare la partizione? Possiamo fidarci dell'ordine dei device /dev/sda, /dev/sdb, /dev/sdc etc.?

Ovviamente NO :-(

Soluzione 1: mounting by-label

La prima soluzione è stata quella di assegnare una label al filesystem:

# mke2fs -j -L MYLABEL /dev/sda1

Grazie ad una feature del kernel saranno creati automaticamente dei link in /dev/disk/by-label che puntano al device corretto:

# ls /dev/disk/by-label
MYLABEL

Ed è possibile montare il filesystem al boot definendo in /etc/fstab:

FILESYSTEM=MYLABEL     /mnt      auto,defaults  0  0

Pro

Il vantaggio di questo approccio è che potendo avere 2 canali fiberchannel in ridondanza, si avranno 2 percorsi diversi per raggiungere lo stesso filesystem e nel caso in cui uno dei percorsi si dovesse interrompere, basterebbe riavviare il sistema e il sistema monterebbe il primo filesystem disponibile con quella label.

Contro

Il suddetto vantaggio in alcuni contesti si potrebbe rivelare uno svantaggio in quanto non sarebbe possibile distinguere 2 volumi contenenti dei filesystem con la stessa LABEL.

Questa situazione è più comune di quanto si possa pensare:

Quando si effettua uno snapshot del volume attraverso le funzionalità del SAN Controller, si ottiene un nuovo volume con un filesystem che sicuramente avrà la stessa LABEL!!!

Ancora peggio:

Effettuando più snapshot dello stesso volume si otterranno N volumi con N filesystem con la stessa LABEL!!! :-(

Inoltre… come rilevare senza riavvio del sistema e senza rimuovere il driver (cosa che necessiterebbe dell'umount di tutti le partizioni già montate mediante tale driver) :-(

Soluzione 2: scsitools, /etc/scsi.alias

La soluzione ad entrambi i contro del precedente approccio si trova negli scsitools.

Mediante il file /etc/scsi.alias è possibile effettuare un mapping dei device basato su LUN e manufacter molto preciso:

id=1, model="MSA2012fc", devtype=disk, lun=0, alias=VOL1_SNAPSHOT1
id=1, model="MSA2012fc", devtype=disk, lun=2, alias=VOL1_SNAPSHOT2
id=1, model="MSA2012fc", devtype=disk, lun=6, alias=VOL1_SNAPSHOT3

A questo punto avviando il comando scsidev si otterrà il mapping in /dev/scsi:

# mkdir /dev/scsi
# scsidev
Alias device VOL1_SNAPSHOT1: sdh2-0c0i1l0 (sda) -> (sgh2-0c0i1l0, sg2)
Alias device VOL1_SNAPSHOT2: sdh2-0c0i1l2 (sdb) -> (sgh2-0c0i1l2, sg3)
Alias device VOL1_SNAPSHOT3: sdh2-0c0i1l6 (sde) -> (sgh2-0c0i1l6, sg7)
# ls /dev/scsi
VOL1_SNAPSHOT1      VOL1_SNAPSHOT2     VOL1_SNAPSHOT3
VOL1_SNAPSHOT1-p1   VOL1_SNAPSHOT2-p1  VOL1_SNAPSHOT3-p1

E configurare fstab di conseguenza:

/dev/scsi/VOL1_SNAPSHOT1-p1     /mnt/vol1s1     noauto,defaults    0   0
/dev/scsi/VOL1_SNAPSHOT2-p1     /mnt/vol1s2     noauto,defaults    0   0
/dev/scsi/VOL1_SNAPSHOT3-p1     /mnt/vol1s3     noauto,defaults    0   0

Link