GNU/Linux >> Linux Esercitazione >  >> Cent OS

Comprensione del multipath di Linux (dm-multipath)

Cos'è il multipathing?

Il multipathing consente la combinazione di più connessioni fisiche tra un server e un array di archiviazione in un dispositivo virtuale. Questo può essere fatto per fornire una connessione più resiliente allo spazio di archiviazione (un percorso in discesa non ostacolerà la connettività) o per aggregare la larghezza di banda dello storage per prestazioni migliori.

Ad esempio, il server nel diagramma seguente dispone di due HBA, ciascuno collegato a uno switch Fibre Channel separato, che a loro volta sono collegati a controller separati sull'array di archiviazione.

Red Hat Enterprise Linux 7 supporta il multipathing utilizzando dm-multipath sottosistema. Questo utilizza il sistema di mappatura dei dispositivi del kernel per generare dispositivi virtuali, gestiti dal demone multipathd e dallo strumento da riga di comando multipath.

I binari, i demoni e i moduli del kernel necessari sono disponibili nel pacchetto device-mappermultipath. Dopo aver installato, configurato e avviato device-mapper-multipath, i nodi dispositivo per i dispositivi multipath verranno creati in due posizioni diverse.

Per scopi amministrativi, i dispositivi multipath vengono creati in /dev/mapper . Possono essere denominati mpathN[pM] se vengono scelti nomi descrittivi, oppure possono essere denominati in base al World Wide ID (WWID) del dispositivo di archiviazione. Un amministratore può anche impostare nomi personalizzati per i dispositivi con più percorsi. Questi nomi personalizzati vengono stabiliti utilizzando l'opzione alias nella sezione multipaths del file di configurazione multipath.

I dispositivi multipath vengono creati anche in /dev sotto forma di /dev/dm-N per abbinare quelli creati in /dev/mapper. Questi dispositivi sono strettamente per uso interno del sistema e pertanto non dovrebbero mai essere utilizzati direttamente per scopi amministrativi.

Nota :Il multipathing fornisce protezione contro un percorso di accesso allo storage inattivo. Se lo spazio di archiviazione stesso non è disponibile, l'accesso allo spazio di archiviazione andrà perso.

Per creare un dispositivo multipath, percorsi diversi verranno combinati in gruppi, in base alle impostazioni in /etc/multipath.conf file di configurazione. In genere sarà attivo un solo gruppo alla volta, ma un gruppo può essere costituito da più percorsi. Quando un gruppo ha esito negativo, il demone multipath passerà il traffico di archiviazione a un gruppo diverso.

Configurazione del multipath

Per configurare il multipath, assicurati innanzitutto che il pacchetto device-mapper-multipath sia installato.

# yum -y install device-mapper-multipath

Una volta installato il pacchetto device-mapper-multipath, è necessario creare un file di configurazione per il demone multipath, /etc/multipath.conf. Il modo più semplice per creare questo file è usare mpathconf utilità.

Se esiste già un file chiamato /etc/multipath.conf, il comando mpathconf lo modificherà. Se non esiste un file di questo tipo, mpathconf copierà la configurazione predefinita da /usr/share/doc/device-mapper-multipath-*/multipath.conf . Se quel file non esiste, mpathconf creerà da zero un nuovo file di configurazione.

Per creare una configurazione predefinita, quindi avviare e abilitare il demone multipathd, utilizzare il comando seguente:

# mpathconf --enable --with_multipathd y --with_chkconfig y
Nota :nel file di configurazione predefinito creato da mpathconf, i nomi user-friendly sono abilitati con l'opzione user_friendly_names. I nomi descrittivi faranno sì che i dispositivi con percorsi multipli vengano denominati mpathN. Anche se questo può essere utile se c'è un solo dispositivo multipath, può creare confusione quando ci sono più dispositivi multipath. Per disabilitare i nomi descrittivi, utilizza –user_friendly_names n opzione per mpathconf. Ciò si tradurrà in dispositivi multipath che prenderanno il nome dai loro WWID.

Se si desidera ottimizzare la configurazione multipath prima di avviare il demone multipathd, utilizzare il comando mpathconf solo con l'opzione –enable:

# mpathconf --enable

Dopo aver modificato il file di configurazione, abilitare e avviare il demone multipathd normalmente con il comando systemctl.

Il file di configurazione multipath.conf

Il file di configurazione multipath.conf è composto da cinque sezioni:

sezione multipath.conf Descrizione
lista nera'{} Questa sezione definisce quali dispositivi devono essere esclusi dal rilevamento della topologia multipath.
blacklist_eccezioni {} Questa sezione definisce quali dispositivi devono essere inclusi nel rilevamento della topologia multipath, nonostante siano elencati nella sezione blacklist.
predefinito {} Questa sezione definisce le impostazioni predefinite da utilizzare per tutti i multipercorsi, a meno che non siano esplicitamente sovrascritti nella sezione dispositivi {} o multipercorsi {}.
dispositivi {} Questa sezione contiene le sostituzioni per la sezione di default {} per tipi specifici di dispositivi, a meno che non venga sovrascritta dalla sezione multipaths {}. I dispositivi vengono identificati in base al fornitore, al prodotto e alle parole chiave di revisione (espressioni regolari che corrispondono alle informazioni di sysfs).
multipercorsi {} Questa sezione contiene le impostazioni per percorsi multipli specifici. Questa sezione sovrascrive quanto definito nelle impostazioni predefinite {} e nella sezione dispositivi {}. I multipath sono identificati in base ai loro WWID (ottenuti utilizzando la funzione getuid_callout).

Un modo semplice per ricordare le sostituzioni è:multipath> dispositivi> predefiniti .

Inserimento nella lista nera

I dispositivi possono essere inseriti nella lista nera nel file di configurazione utilizzando la lista nera {} sezione di multipath.conf. Se si inserisce nella lista nera utilizzando caratteri jolly, i singoli dispositivi possono essere esentati dalla lista nera utilizzando la sezione blacklist_exceptions {}. I dispositivi possono essere inseriti nella lista nera utilizzando il loro nodo dispositivo o il loro WWID. L'esempio seguente mostra un esempio di entrambi:

blacklist {
    devnode "^cciss" 
    wwid 1234567890abcde
}

Per determinare il WWID di un dispositivo disco, utilizzare l'utilità scsi_id.

/usr/lib/udev/scsi_id -g -u /dev/sdN 
360014053bd9ea2a35914e39a556051cf

Predefiniti

I valori predefiniti per tutti i percorsi multipli possono essere impostati nei predefiniti {} sezione di multipath.conf. L'elenco completo di tutte le impostazioni predefinite integrate può essere trovato nel file /usr/share/doc/devicemapper-multipath-*/multipath.conf.defaults. Alcune delle impostazioni più interessanti sono:

  • selettore_percorso :l'algoritmo che determina quale percorso all'interno di un gruppo di priorità da utilizzare per l'I/O successivo. Il valore predefinito di "round-robin 0 ” distribuisce I/O su tutti i percorsi nel gruppo. Il numero di richieste da inviare utilizzando un percorso prima di passare al successivo è determinato da rr_min_io_rq ambientazione. Le alternative sono "lunghezza coda 0 ", che invierà la successiva richiesta di I/O al percorso con la coda di richieste in sospeso più breve e "service-time 0 ", che invierà la successiva richiesta 1/0 al percorso con il tempo di servizio stimato più breve.
  • politica_di_raggruppamento_percorso :questa impostazione definisce come più percorsi vengono combinati in gruppi di priorità. Nell'impostazione predefinita di failover , ogni percorso verrà inserito in un gruppo separato. D'altra parte, con il multibus policy, tutti i percorsi possibili vengono aggregati in un unico gruppo. Prima di configurare un dispositivo multipath per l'utilizzo della policy multibus, accertarsi che il controller di archiviazione supporti le connessioni attivo-attivo.
  • controllo_percorso :questa impostazione determina come il demone multipathd determinerà se un percorso è integro. Oltre alle opzioni indipendenti dall'hardware di directio e readsector0 , ci sono un certo numero di checker indipendenti dall'hardware. Sebbene l'impostazione predefinita per questa opzione sia directio, in genere viene sovrascritta in uno dei dispositivi predefiniti specificati nella sezione dispositivi {}.
  • caratteristiche :questa opzione specifica le funzioni multipath da abilitare. La sintassi è la forma di elenco numerico , dove num rappresenta il numero di funzioni abilitate e list rappresenta l'elenco delle funzioni abilitate. Le due funzioni disponibili sono queue_if_no_path e nessuna_partizione .
  • user_friendly_names :questa impostazione determina se i multipath senza un alias definito verranno denominati mpathN (se impostato su yes) o se prenderanno il nome dal loro WWID.
Nota :Se la funzione queue_if_no_path è abilitata con l'impostazione, dispone di "1 queue_if_no_path" e i percorsi hanno esito negativo, i processi che emettono I/O si bloccheranno fino al ripristino dei percorsi. Questo comportamento è indesiderabile nelle implementazioni del cluster poiché un nodo bloccato su 1/0 su un dispositivo di archiviazione guasto può impedire al resto del cluster di accedere alla risorsa di archiviazione. Per evitare questa situazione, specificare un valore di fail per il parametro no-path_retry. In questo modo, l'I/O non verrà eseguito immediatamente, il backup su livelli superiori anziché il blocco su 1/0 indefinitamente fino al ripristino dei percorsi.Nota :La sezione commentata defaults {} in multipath.conf prodotta da mpathconf non riflette le effettive impostazioni predefinite del demone multipath.

I dispositivi {} sezione

Nei dispositivi {} sezione, le impostazioni predefinite per dispositivi specifici possono essere sovrascritte. All'interno della sezione dispositivi {}, ci sono le sottosezioni dei singoli dispositivi {} che descrivono in dettaglio le impostazioni per dispositivi specifici. L'hardware di archiviazione più comune ha già una propria sezione definita nelle impostazioni predefinite integrate per il demone multipath. Se un hardware non è (ancora) elencato, è possibile aggiungere manualmente una sezione per l'hardware. Di seguito è riportata una definizione di esempio per un componente hardware di archiviazione inesistente. Il dispositivo stesso viene selezionato utilizzando una combinazione di fornitore , prodotto e revisione .

devices { 
    device { 
        vendor "MegaHyperSuperStorage" 
        product "BAS" 
        revision "513/B" 
        features "1 queue_if_no_path" 
        path_grouping_policy multibus 
        path_checker tur 
    }
}

Negli esempi precedenti, la riga delle caratteristiche indica che le nuove richieste di I/O verranno accettate e accodate anche quando non sono attualmente disponibili percorsi.

La sezione dei multipercorsi {}

Nei multipercorsi {} sezione, è possibile definire sostituzioni per percorsi multipli specifici. Questo può essere utilizzato per impostare diverse politiche di raggruppamento di percorsi per uno specifico multipath. Uno degli altri usi comuni della sezione multipaths {} è definire un alias per un multipath. Quando viene impostato un alias. il nome del nodo del dispositivo in /dev/mapper/ per questo multipath sarà basato sull'alias, rendendo più facile distinguere tra diversi multipath.

Ad esempio, la configurazione seguente imposterà un alias di clusterstorage per il multipath con un WWID di "1234567890abcdef", nonché un path_selector di lunghezza della coda.

multipaths { 
    multipath { 
        wwid "1234567890abcdef" 
        alias "clusterstorage" 
        path_selector "queue-length 0"
    }
}

Aggiunta di partizioni

Per aggiungere una partizione su un dispositivo con più percorsi, attenersi alla seguente procedura:

  1. Crea la partizione sul dispositivo multipath utilizzando un editor di partizioni, ad esempio fdisk /dev/mapper/mpath0 .
  2. Esegui il partprobe comando per aggiornare la vista del kernel della tabella delle partizioni su tutti i dispositivi (inclusi i dispositivi raccolti in un multipath).
  3. Esegui il comando kpartx -a , sul dispositivo multipath per creare dispositivi di mappatura dei dispositivi per le partizioni appena create.

Rimozione di un multipath

Dopo aver rimosso tutti i percorsi per un multipath, rimuovi il dispositivo multipath eseguendo il comando multipath -f [device] . Se il demone multipathd è stato interrotto e sono ancora presenti nodi dispositivo per dispositivi multipath, svuota tutti i dispositivi multipath eseguendo multipath -F . Questo può essere utile quando si testano diverse configurazioni e si vedono i resti di vecchie configurazioni in giro.


Cent OS
  1. Comprendere il file system Btrfs in Fedora Linux

  2. Comprensione del file /etc/xinetd.conf in Linux

  3. Comprensione del demone DM-multipath (multipathd)

  4. Comprensione del file /etc/hosts in Linux

  5. Comprensione di Linux /proc/id/maps

Comprendere i permessi dei file Linux

Il file host su Linux

Comprensione dei processi su Linux

Comprendere i permessi dei file Linux

Comprendere le autorizzazioni di base dei file e la proprietà in Linux

Comprendere il file /etc/fstab in Linux