Red Hat Enterprise Linux supporta nativamente lo storage con percorsi multipli presentati al sistema operativo. La configurazione di CentOS/RHEL per l'utilizzo della funzionalità multipath è un processo semplice:
Installazione
Se non è già installato, installa il pacchetto device-mapper-multipath:
# yum install device-mapper-multipath
Posizione dei dispositivi multipath
Quando i dispositivi vengono portati sotto il controllo di device-mapper-multipath, i nuovi dispositivi multipath possono essere visualizzati in tre diverse posizioni nella directory /dev:
1. /dev/dm-N
2. /dev/mapper/mpathN
3. /dev/mpath/mpathN
I dispositivi /dev/dm-N sono interni al device mapper e non dovrebbero mai essere usati. Questi dispositivi non sono persistenti. A partire da CentOS/RHEL 5, questi dispositivi non vengono più creati da udev. I dispositivi /dev/mpath/mpathN sono forniti in RHEL 4 e 5 in modo che tutti i dispositivi multipath possono essere visti in un unico posto; questa directory non esiste più in RHEL 6. Tuttavia, questi nodi del dispositivo potrebbero non essere creati all'avvio prima che il sistema debba accedervi. Pertanto non dovrebbero essere usati per creare volumi fisici per gruppi di volumi o partizioni con filesystem in quelle versioni in cui è disponibile.
I dispositivi /dev/mapper/mpathN sono persistenti e vengono creati all'inizio del processo di avvio. Pertanto questi sono i nomi dei dispositivi che dovrebbero essere utilizzati per accedere ai dispositivi multipath.
Abilitazione del multipath del device mapper
Genera un /etc/multipath.conf predefinito file usando il comando mpathconf. Per determinare le impostazioni predefinite per la versione installata, utilizzare l'opzione –help:
# mpathconf --help usage: /usr/sbin/mpathconf [command] Commands: Enable: --enable Disable: --disable Set user_friendly_names (Default n): --user_friendly_names [y|n] Set find_multipaths (Default n): --find_multipaths [y|n] Load the dm-multipath modules on enable (Default y): --with_module [y|n] start/stop/reload multipathd (Default n): --with_multipathd [y|n] chkconfig on/off multipathd (Default y): --with_chkconfig [y|n]
Le opzioni che per impostazione predefinita sono il valore richiesto non devono essere specificate nella riga di comando. Ad esempio, per abilitare il multipath con la funzione dei nomi descrittivi lasciando tutte le altre opzioni impostate sui valori predefiniti, emettere il comando seguente:
# mpathconf --enable --user_friendly_names y
Inserimento nella blacklist dei dispositivi
Device mapper multipath supporta una serie di meccanismi per consentire l'inserimento nella lista nera dei dispositivi che soddisfano determinati criteri. Un dispositivo nella lista nera verrà ignorato durante il rilevamento e la creazione di dispositivi multipath. Un uso di questo meccanismo consiste nell'escludere i dispositivi locali (dischi integrati o supporti rimovibili, ad esempio) dalla configurazione multipath. Ciò consente a tali dispositivi di continuare a essere utilizzati come normali dispositivi a percorso singolo senza interferenze dal sottosistema multipath.
Device Mapper multipath include anche una blacklist integrata per escludere i dispositivi che non supportano più percorsi. Questo elenco è preconfigurato e non deve essere incluso in multipath.conf per essere efficace. L'attuale set di blacklist integrate è il seguente:
blacklist { devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" }
Funzione trova_multipercorsi
Le versioni di device mapper multipath in Red Hat Enterprise Linux 6 e versioni successive includono la funzione "find_multipaths". Ciò esclude qualsiasi dispositivo dalla configurazione multipath fino a quando non sono stati rilevati almeno due percorsi al dispositivo contemporaneamente. Questa è un'alternativa efficace alla blacklist manuale che richiede meno configurazione e manutenzione per scenari comuni. La funzione viene abilitata aggiungendo la seguente riga alla sezione 'predefiniti' globali di multipath.conf:
defaults { ... find_multipaths yes ... }
Rilevamento e configurazione di dispositivi multipath
Un file multipath.conf di base è stato ora creato e popolato con le impostazioni appropriate per il sistema dopo l'installazione dei pacchetti richiesti. Esegui il comando multipath per rilevare e configurare i dispositivi multipath:
# multipath mpatha (3600601f0d057000018fc7845f46fe011) dm-1 DGC,RAID 0 size=98G features='0' hwhandler='1 emc' wp=rw |-+- policy='round-robin 0' prio=1 status=active | - 11:0:0:0 sdd 8:128 active ready running | - 10:0:0:0 sde 8:64 active ready running -+- policy='round-robin 0' prio=0 status=enabled |- 8:0:0:0 sdc 8:32 active ready running - 9:0:0:0 sdf 8:80 active ready running
Il comando può stampare informazioni aggiuntive che possono essere utili per diagnosticare problemi o creare configurazioni personalizzate. Ciò include informazioni sulle impostazioni della lista nera e sulla corrispondenza dei dispositivi di archiviazione alle configurazioni integrate. Specificando un'opzione dettagliata con l'opzione -v[numero] si abilita questo output aggiuntivo:
Nov 04 16:48:56 | Found matching alias [mpatha] in bindings file. Setting wwid to 3600601608e661a00e4710bf88370e211 Nov 04 16:48:56 | ram0: device node name blacklisted Nov 04 16:48:56 | ram1: device node name blacklisted Nov 04 16:48:56 | ram2: device node name blacklisted Nov 04 16:48:56 | ram3: device node name blacklisted Nov 04 16:48:56 | ram4: device node name blacklisted Nov 04 16:48:56 | ram5: device node name blacklisted Nov 04 16:48:56 | ram6: device node name blacklisted Nov 04 16:48:56 | ram7: device node name blacklisted Nov 04 16:48:56 | ram8: device node name blacklisted Nov 04 16:48:56 | ram9: device node name blacklisted Nov 04 16:48:56 | ram10: device node name blacklisted Nov 04 16:48:56 | ram11: device node name blacklisted Nov 04 16:48:56 | ram12: device node name blacklisted Nov 04 16:48:56 | ram13: device node name blacklisted Nov 04 16:48:56 | ram14: device node name blacklisted Nov 04 16:48:56 | ram15: device node name blacklisted Nov 04 16:48:56 | loop0: device node name blacklisted Nov 04 16:48:56 | loop1: device node name blacklisted Nov 04 16:48:56 | loop2: device node name blacklisted Nov 04 16:48:56 | loop3: device node name blacklisted Nov 04 16:48:56 | loop4: device node name blacklisted Nov 04 16:48:56 | loop5: device node name blacklisted Nov 04 16:48:56 | loop6: device node name blacklisted Nov 04 16:48:56 | loop7: device node name blacklisted Nov 04 16:48:56 | sr0: device node name blacklisted Nov 04 16:48:56 | sda: device node name blacklisted Nov 04 16:48:56 | sdc: not found in pathvec Nov 04 16:48:56 | sdc: mask = 0x3f Nov 04 16:48:56 | sdc: dev_t = 8:32 Nov 04 16:48:56 | sdc: size = 10485760 Nov 04 16:48:56 | sdc: subsystem = scsi Nov 04 16:48:56 | sdc: vendor = DGC Nov 04 16:48:56 | sdc: product = RAID 5 Nov 04 16:48:56 | sdc: rev = 0220 Nov 04 16:48:56 | sdc: h:b:t:l = 3:0:0:1 Nov 04 16:48:56 | sdc: tgt_node_name = 0x50060160ba601693 Nov 04 16:48:56 | sdc: serial = FCNPR063600652 Nov 04 16:48:56 | sdc: get_state Nov 04 16:48:56 | loading /lib64/multipath/libcheckemc_clariion.so checker
Visualizza e rivedi la configurazione specificando le opzioni "-l" o "-ll" nel comando multipath:
# multipath -ll mpatha (3600601f0d057000018fc7845f46fe011) dm-1 DGC,RAID 0 size=98G features='0' hwhandler='1 emc' wp=rw |-+- policy='round-robin 0' prio=1 status=active | - 11:0:0:0 sdd 8:128 active ready running | - 10:0:0:0 sde 8:64 active ready running -+- policy='round-robin 0' prio=0 status=enabled |- 8:0:0:0 sdc 8:32 active ready running - 9:0:0:0 sdf 8:80 active ready running