Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
A.3. Supporto Device Mapper per il Device Manager udev
Il ruolo primario del device manager
udev
è quello di fornire un metodo dinamico per l'impostazione dei nodi nella directory /dev
. La creazione di questi nodi viene eseguita tramite l'implementazione delle regole udev
nello spazio utente. Le suddette regole sono processate sugli eventi udev
inviati dal kernel come risultato di una aggiunta, rimozione o modifica di dispositivi particolari. Ciò fornisce un meccanismo centrale conveniente per un supporto di tipo hotplug.
Oltre a creare i nodi il device manager
udev
è in grado di creare qualsiasi link simbolico con i rispettivi nomi, fornendo agli utenti la possibilità di scegliere i nomi e la struttura della directory personalizzati nella directory /dev
.
Ogni evento
udev
contiene le informazioni di base sul dispositivo processato, ad esempio il nome, il sottosistema a cui appartiene ed il tipo di dispositivo, i numeri maggiore e minore usati ed il tipo di evento. Con questi dati e con la possibilità di accedere a tutte le informazioni disponibili nella directory /sys
accessibile anche all'interno delle regole udev
, gli utenti saranno in grado di utilizzare filtri semplici ed eseguire le regole in base alle suddette informazioni.
Il device manager
udev
fornisce anche un metodo centralizzato per l'impostazione dei permessi dei nodi. Un utente sarà in grado di aggiungere un set di regole personalizzate per definire i permessi per qualsiasi dispositivo specificato da qualsiasi informazione disponibile durante la processazione dell'evento.
È possibile aggiungere direttamente gli hook di programma nelle regole
udev
. Il device manager udev
è in grado di chiamare i suddetti programmi in modo da fornire una ulteriore processazione per la gestione degli eventi. Inoltre il programma è in grado di esportare le variabili dell'ambiente come risultato di questo processo. Ogni risultato dato può essere usato nelle regole come risorsa supplementare.
Qualsiasi software che utilizza la libreria
udev
è in grado di ricevere e processare gli eventi udev
con tutte le informazioni disponibili, in questo modo la processazione non dipende solo dal demone udev
.
A.3.1. Integrazione udev con il Device Mapper
Con RHEL 6 il Device Mapper fornisce un supporto diretto all'integrazione
udev
. Tale operazione sincronizza il Device Mapper con tutta la processazione di udev
relativa ai dispositivi del Device Mapper, incluso i dispositivi LVM. La sincronizzazione è necessaria poichè l'applicazione delle regole nel demone di udev
è una forma di processazione parallela al programma d'origine delle modifiche del dispositivo (come ad esempio dmsetup
e LVM). Senza questo supporto il tentativo di rimozione di un dispositivo ancora aperto e processato dalle regole udev
a causa di alcune modifiche di eventi precedenti risultava essere un problema comune; questa tendenza era molto comune se il tempo intercorso tra le modifiche era breve.
La release RHEL 6 fornisce le regole
udev
ufficialmente supportate per i dispositivi del Device Mapper in generale e LVM. Tabella A.1, «Regole udev per dispositivi Device-Mapper» riassume le suddette regole presenti in /lib/udev/rules.d
.
Tabella A.1. Regole udev per dispositivi Device-Mapper
Nome file | Descrizione | ||
---|---|---|---|
10-dm.rules |
| ||
11-dm-lvm.rules |
| ||
13-dm-disk.rules | Contiene le regole da applicare per tutti i dispositivi del Device Mapper in generale e crea i link simbolici nelle directory /dev/disk/by-id , /dev/disk/by-uuid e /dev/disk/by-uuid | ||
95-dm-notify.rules | Contiene le regole per la notifica dei processi in attesa che utilizzano libdevmapper (proprio come LVM e dmsetup ). La notifica viene eseguita dopo aver applicato le precedenti regole in modo da assicurare il completamento di qualsiasi processazione da parte di udev . Il processo notificato verrà successivamente riattivato. |
È possibile aggiungere regole aggiuntive sui permessi per mezzo del file
12-dm-permissions.rules
. Questo file non è installato nella directory /lib/udev/rules
ma nella directory /usr/share/doc/device-mapper-version
. Il file 12-dm-permissions.rules
è un modello il quale contiene suggerimenti su come impostare i permessi, in base ad alcune regole d'esempio; il file contiene gli esempi per alcune situazioni tipo. Sarà possibile modificare questo file e posizionarlo manualmente nella directory /etc/udev/rules.d
dove potrà preservare le impostazioni.
Queste regole impostano tutte le variabili di base che possono essere usate da qualsiasi altra regola durante la processazione degli eventi.
Le seguenti variabili sono impostate all'interno di 10-dm.rules:
DM_NAME
:Nome dispositivo del Device MapperDM_UUID
: UUID del dispositivo del Device MapperDM_SUSPENDED
: lo stato sospeso del dispositivo del Device MapperDM_UDEV_RULES_VSN
: versione regoleudev
(principalmente per tutte le altre regole per controllare che le variabili precedentemente indicate siano state impostate direttamente da regole ufficiali del Device Mapper)
Le seguenti variabili sono impostate in
11-dm-lvm.rules
:
DM_LV_NAME
: nome volume logicoDM_VG_NAME
: nome gruppo di volumiDM_LV_LAYER
: nome livello LVM
Tutte queste variabili possono essere usate nel file
12-dm-permissions.rules
per definire un permesso di dispositivi Device Mapper specifici come documentato nel file 12-dm-permissions.rules
.