Capitolo 3. Come utilizzare il comando e il driver di GNBD
Il driver del Global Network Block Device (GNBD) permette ad un nodo di esportare il proprio storage locale come GNBD attraverso una rete, così facendo gli altri nodi presenti sulla rete sono in grado di condividere il suddetto storage. I nodi del client che importano GNBD lo utilizzano come qualsiasi altro dispositivo a blocchi. L'importazione di un GNBD su client multipli, forma una configurazione di storage condiviso attraverso il quale è possibile utilizzare il GFS.
Il driver del GNBD viene implementato attraverso i seguentei componenti.
gnbd_serv
— Implementa il sever GNBD. Esso è un demone dello spazio-utente che permette ad un nodo di esportare lo storage locale attraverso una rete.gnbd.ko
— Implementa il driver del dispositivo GNBD sui client GNBD (con nodi che utilizzano i dispositivi GNBD).
Per configurare GNBD sono disponibili due comandi:
3.1. Come esportare un GNBD da un server
Il demone
gnbd_serv
deve essere in esecuzione su di un nodo prima di poter esportare lo storage come un GNBD. È possibile avviare il demone eseguendo gnbd_serv
nel modo seguente:
#gnbd_serv
gnbd_serv: startup succeeded
Una volta identificato lo storage locale da esportare, utilizzare il comando
gnbd_export
per iniziare il processo di esportazione.
Nota
Quando configurate i server GNBD con il device-mapper multipath non utilizzate il page caching. Tutti i GNBD facenti parte di un volume logico devono essere eseguiti con il caching disabilitato. Per impostazione predefinita il comando
gnbd_export
esegue il processo di esportazione con il caching disabilitato.
Nota
Un server non dovrebbe importare i GNBD per utilizarli come potrebbe fare un client. Se un server esporta i dispositivi uncached, i dispositivi sottostanti potrebbero essere usati anche dal
gfs
.
Utilizzo
gnbd_export -d
pathname
-e
gnbdname
[-c
][-u
][-U
pathname
- Specifica il dispositivo di storage da esportare.
gnbdname
- Specifica un nome arbitrario selezionato per il GNBD. Esso viene usato come nome del dispositivo sui client del GNBD. Questo nome deve essere unico su tutti i GNBD esportati in una rete.
-o
- Esporta il dispositivo come di sola-lettura.
-c
- Abilita il caching. Esegue la lettura dal GNBD esportato e sfrutta il page cache di Linux.Per impostazione predefinita il comando
gnbd_export
non abilita il caching.Nota
Durante la configurazione dei server del GNBD con il device-mapper multipath, non specificate l'opzione-c
. Tutti i GNBD facenti parte di un volume logico devono essere eseguiti con il caching disabilitato.Nota
Se utilizzate il GFS 5.2, o una versione precedente, e non desiderate modificare l'impostazione del GNBD, è consigliato specificare l'opzione-c
. Prima del GFS Release 5.2.1, il caching di Linux pergnbd_export
era abilitato per default. Se non specificate l'opzione-c
, le prestazioni del GNBD diminuiranno in modo consistente. Altresì, se l'opzione-c
non viene specificata, il GNBD esportato verrà eseguito in modalità timeout, utilizzando il valore di timeout predefinito (l'opzione-t
). Per maggiori informazioni sul comandognbd_export
e sulle rispettive opzioni, consultate la pagina man dignbd_export
. -u
uid
- Permette l'impostazione manuale dell'Identificatore Universale (Universal Identifier) per un dispositivo esportato. Questa opzione viene usata con
-e
. UID viene usato dal device-mapper multipath per determinare i dispositivi che appartengono ad una mappa multipath. Un dispositivo deve avere un UID multipathed. Tuttavia per la maggior parte dei dispositivi SCSI il comando Get UID predefinito,/usr/sbin/gnbd_get_uid
, ritornerà un valore appropriato.Nota
UID si riferisce al dispositivo esportato e non al GNBD. Gli UID di due dispositivi GNBD dovrebbero essere uguali solo se essi esportano lo stesso dispositivo sottostante. Ciò significa che entrambi i server del GNBD sono collegati allo stesso dispositivo fisico.Nota
Questa opzione deve essere usata solo per l'esportazione dei dispositivi di storage condivisi quando l'opzione-U
command
non funziona. Questa procedura non dovrebbe mai interessare i dispositivi SCSI. Se due dispositivi GNBD, ai quali è stato attribuito lo stesso UID, non esportano lo stesso dispositivo sottostante, si verificherà una corruzione dei dati. -U
Command
- Ottiene il comando UID. Il comando UID è un comando eseguito da
gnbd_export
per ottenere un Universal Identifier per il dispositivo esportato. L'UID è necessario per utilizzare il device-mapper multipath con GNBD. Il comando deve utilizzare il percorso completo di qualsiasi eseguibile desiderato. Un comando è in grado di contenere le sequenze escape %M, %m o %n. %M verrà modificato al numero maggiore del dispositivo esportato, %m modificato al numero minore del dispositivo esportato, e %n verrà modificato al nomesysfs
per il dispositivo. Se non viene specificato alcun comando il GNBD userà il comando/usr/sbin/gnbd_get_uid
predefinito. Questo comando funzionerà per la maggior parte dei dispositivi SCSI.
Esempi
Questo esempio è relativo al server GNBD configurato con GNBD multipath. In questo caso viene esportato il dispositivo
/dev/sdc2
come GNBD gamma
. Cache è disabilitato per default.
gnbd_export -d /dev/sdc2 -e gamma -U
Questo esempio è relativo al server GNBD non configurato con GNBD multipath. In questo esempio viene esportato il dispositivo
/dev/sdb2
come GNBD delta
con cache abilitato.
gnbd_export -d /dev/sdb1 -e delta -c
In questo esempio viene esportato il dispositivo
/dev/sdb2
come GNBD delta
con cache abilitato.
gnbd_export -d /dev/sdb2 -e delta -c