GNU/Linux >> Znalost Linux >  >> Cent OS

Porozumění Linuxu multipath (dm-multipath)

Co je multipathing?

Multipathing umožňuje kombinaci více fyzických připojení mezi serverem a diskovým polem do jednoho virtuálního zařízení. Toho lze dosáhnout za účelem zajištění odolnějšího připojení k vašemu úložišti (cesta sestupná nebude bránit připojení) nebo agregace šířky pásma úložiště pro lepší výkon.

Server na následujícím diagramu má například dva adaptéry HBA, každý připojený k samostatnému přepínači Fibre Channel, které jsou zase připojeny k samostatným řadičům na úložném poli.

Red Hat Enterprise Linux 7 podporuje multipathing pomocí dm-multipath subsystému. Toto využívá systém mapování zařízení jádra ke generování virtuálních zařízení spravovaných démonem multipathd a nástrojem příkazového řádku pro více cest.

Potřebné binární soubory, démony a moduly jádra jsou k dispozici v balíčku device-mappermultipath. Jakmile je zařízení-mapovač-multipath nainstalován, nakonfigurován a spuštěn, uzly zařízení pro zařízení s více cestami budou vytvořeny ve dvou různých umístěních.

Pro administrativní účely jsou vícecestná zařízení vytvořena pod /dev/mapper . Mohou být pojmenovány mpathN[pM] pokud jsou zvoleny uživatelsky přívětivé názvy, nebo mohou být pojmenovány podle World Wide ID (WWID) úložného zařízení. Správce může také nastavit vlastní názvy pro vícecestná zařízení. Tyto vlastní názvy jsou vytvořeny pomocí volby alias v sekci multipaths konfiguračního souboru pro více cest.

Vícecestná zařízení jsou také vytvořena pod /dev ve tvaru /dev/dm-N aby odpovídaly těm vytvořeným pod /dev/mapper. Tato zařízení jsou výhradně pro interní použití systému, a proto by se nikdy neměla používat přímo pro administrativní účely.

Poznámka :Multipathing poskytuje ochranu před poklesem přístupové cesty úložiště. Pokud samotné úložiště nebude dostupné, přístup k úložišti bude ztracen.

Pro vytvoření vícecestného zařízení budou různé cesty sloučeny do skupin na základě nastavení v /etc/multipath.conf konfigurační soubor. Obvykle bude aktivní vždy pouze jedna skupina, ale skupina se může skládat z více cest. Když skupina selže, vícecestný démon přepne provoz úložiště do jiné skupiny.

Konfigurace multipathing

Chcete-li nakonfigurovat multipathing, nejprve se ujistěte, že je nainstalován balíček device-mapper-multipath.

# yum -y install device-mapper-multipath

Jakmile je nainstalován balíček device-mapper-multipath, musí být vytvořen konfigurační soubor pro vícecestného démona /etc/multipath.conf. Nejjednodušší způsob, jak vytvořit tento soubor, je použít mpathconf utility.

Pokud již existuje soubor s názvem /etc/multipath.conf, příkaz mpathconf tento soubor upraví. Pokud žádný takový soubor neexistuje, mpathconf zkopíruje výchozí konfiguraci z /usr/share/doc/device-mapper-multipath-*/multipath.conf . Pokud tento soubor neexistuje, mpathconf vytvoří nový konfigurační soubor od začátku.

Chcete-li vytvořit výchozí konfiguraci a poté spustit a povolit vícecestného démona, použijte následující příkaz:

# mpathconf --enable --with_multipathd y --with_chkconfig y
Poznámka :Ve výchozím konfiguračním souboru vytvořeném mpathconf jsou uživatelsky přívětivá jména povolena pomocí volby user_friendly_names. Uživatelsky přívětivé názvy povedou k tomu, že vícecestná zařízení budou pojmenována mpathN. I když to může být užitečné, pokud existuje pouze jedno vícecestné zařízení, může to být matoucí, pokud existuje více vícecestných zařízení. Chcete-li zakázat uživatelsky přívětivá jména, použijte –user_friendly_names n možnost mpathconf. To povede k tomu, že vícecestná zařízení budou pojmenována podle jejich WWID.

Pokud je třeba před spuštěním démona multipathd doladit konfiguraci více cest, použijte příkaz mpathconf pouze s volbou –enable:

# mpathconf --enable

Po úpravě konfiguračního souboru povolte a spusťte démona multipathd jako obvykle pomocí příkazu systemctl.

Konfigurační soubor multipath.conf

Konfigurační soubor multipath.conf se skládá z pěti částí:

sekce multipath.conf Popis
černá listina'{} Tato sekce definuje, která zařízení by měla být vyloučena z vyhledávání topologie více cest.
blacklist_exceptions {} Tato část definuje, která zařízení by měla být zahrnuta do zjišťování vícecestné topologie, přestože jsou uvedena v sekci černé listiny.
výchozí {} Tato část definuje výchozí nastavení, která se mají použít pro všechny vícecestné cesty, pokud nejsou výslovně přepsány v části zařízení {} nebo vícenásobné cesty {}.
zařízení {} Tato část obsahuje přepsání části výchozích nastavení {} pro konkrétní typy zařízení, pokud nejsou přepsány v části více cest {}. Zařízení jsou identifikována na základě svých klíčových slov dodavatele, produktu a revize (regulární výrazy odpovídající informacím ze sysfs).
více cest {} Tato část obsahuje nastavení pro konkrétní vícecestné cesty. Tato část má přednost před tím, co je definováno v části výchozí nastavení {} a zařízení {}. Vícecestné cesty jsou identifikovány na základě jejich WWID (získaných pomocí funkce getuid_callout).

Snadný způsob, jak si zapamatovat přepsání, je:multipaths> zařízení> výchozí .

Černá listina

Zařízení lze zakázat v konfiguračním souboru pomocí černé listiny{} sekce multipath.conf. V případě černé listiny pomocí zástupných znaků lze jednotlivá zařízení z černé listiny vyjmout pomocí sekce blacklist_exceptions {}. Zařízení lze umístit na černou listinu pomocí jejich uzlu zařízení nebo jejich WWID. Následující příklad ukazuje příklad obou:

blacklist {
    devnode "^cciss" 
    wwid 1234567890abcde
}

Chcete-li zjistit WWID diskového zařízení, použijte obslužný program scsi_id.

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

Výchozí

Výchozí hodnoty pro všechny vícenásobné cesty lze nastavit v výchozích{} sekce multipath.conf. Úplný seznam všech vestavěných výchozích hodnot lze nalézt v souboru /usr/share/doc/devicemapper-multipath-*/multipath.conf.defaults. Některá z nejzajímavějších nastavení jsou:

  • path_selector :Algoritmus, který určuje, která cesta v rámci prioritní skupiny se má použít pro další I/O. Výchozí nastavení „round-robin 0 ” distribuuje I/O přes všechny cesty ve skupině. Počet požadavků, které mají být odeslány pomocí jedné cesty před přechodem na další, je určen rr_min_io_rq nastavení. Alternativy jsou „queue-length 0 “, který odešle další I/O požadavek na cestu s nejkratší frontou nevyřízených požadavků a „service-time 0 “, který odešle další požadavek 1/0 na cestu, která má nejkratší odhadovaný čas služby.
  • path_grouping_policy :Toto nastavení definuje, jak je více cest kombinováno do prioritních skupin. Ve výchozím nastavení failover , bude každá cesta zařazena do samostatné skupiny. Na druhou stranu s multibusem všechny možné cesty jsou agregovány do jediné skupiny. Před konfigurací vícecestného zařízení pro použití zásady vícesběrnic se ujistěte, že řadič úložiště podporuje aktivní-aktivní připojení.
  • path_checker :Toto nastavení určuje, jak bude vícecestný démon určovat, zda je cesta v pořádku. Jiné než hardwarově nezávislé možnosti directio a readsector0 , existuje řada hardwarově nezávislých kontrolorů. Ačkoli výchozí nastavení pro tuto možnost je directio, je obvykle přepsáno v jednom z výchozích zařízení uvedených v části zařízení {}.
  • funkce :Tato možnost určuje funkce více cest, které se mají povolit. Syntaxe je ve formě num list , kde num představuje počet povolených funkcí a seznam představuje seznam povolených funkcí. Dvě dostupné funkce jsou queue_if_no_path a žádné_oddíly .
  • user_friendly_names :Toto nastavení určuje, zda budou vícecestné cesty bez definovaného aliasu pojmenovány mpathN (pokud je nastaveno na ano), nebo zda budou pojmenovány podle svého WWID.
Poznámka :Pokud je s nastavením povolena funkce queue_if_no_path, funkce „1 queue_if_no_path“ a cesty selžou, procesy vydávající I/O se zablokují, dokud nebudou cesty obnoveny. Toto chování je v implementacích klastru nežádoucí, protože jeden uzel zaseknutý blokováním na 1/0 pro selhané úložné zařízení může zbytku klastru zablokovat přístup k prostředku úložiště. Chcete-li se této situaci vyhnout, zadejte pro parametr no-path_retry hodnotu fail. Pokud tak učiníte, okamžitě selže I/O zálohování do vyšších vrstev namísto blokování na 1/0 na dobu neurčitou, dokud nebudou cesty obnoveny.Poznámka :Sekce komentovaných výchozích hodnot {} v multipath.conf vytvořeném mpathconf neodráží skutečné vestavěné výchozí hodnoty démona s více cestami.

Sekce zařízení {}

V zařízeních {} části, lze výchozí nastavení pro konkrétní zařízení přepsat. Uvnitř sekce zařízení {} jsou jednotlivé podsekce zařízení {} s podrobným nastavením pro konkrétní zařízení. Většina běžného úložného hardwaru již má svou vlastní sekci definovanou ve vestavěných výchozích nastaveních pro vícecestného démona. Pokud hardware není (zatím) uveden, lze sekci pro hardware přidat ručně. Následuje příklad definice neexistujícího hardwaru úložiště. Samotné zařízení se vybírá pomocí kombinace prodejce , produkt a revizi .

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

V předchozích příkladech řádek funkcí označuje, že nové požadavky I/O budou přijímány a zařazeny do fronty, i když nejsou aktuálně dostupné žádné cesty.

Sekce více cest {}

V multipaths {} části lze definovat přepisy pro konkrétní vícecestné cesty. To lze použít k nastavení různých zásad seskupování cest pro konkrétní vícecest. Jedním z dalších běžných použití sekce multipaths {} je definování aliasu pro multipath. Když je nastaven alias. název uzlu zařízení v /dev/mapper/ pro tuto vícecestnou cestu bude založen na aliasu, což usnadní rozlišování mezi různými vícecestnými cestami.

Následující konfigurace například nastaví alias clusterstorage pro vícecestnou cestu s WWID „1234567890abcdef“ a také parametr path_selector pro délku fronty.

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

Přidávání oddílů

Chcete-li přidat oddíl na vícecestném zařízení, použijte následující kroky:

  1. Vytvořte oddíl na zařízení s více cestami pomocí editoru oddílů, např. fdisk /dev/mapper/mpath0 .
  2. Spusťte partprobe příkaz k aktualizaci pohledu jádra na tabulku oddílů na všech zařízeních (včetně zařízení seřazených do více cest).
  3. Spusťte příkaz kpartx -a , na zařízení s více cestami k vytvoření zařízení mapovače zařízení pro nově vytvořené oddíly.

Odstranění vícecestné cesty

Po odstranění všech cest pro vícecestné zařízení odeberte vícecestné zařízení spuštěním příkazu multipath -f [zařízení] . Pokud byl démon s více cestami zastaven a stále existují uzly zařízení pro zařízení s více cestami, vyprázdněte všechna zařízení s více cestami spuštěním multipath -F . To může být užitečné při testování různých konfigurací a sledování pozůstatků starých konfigurací, které přetrvávají.


Cent OS
  1. Pochopení souborového systému Btrfs ve Fedora Linux

  2. Linux – všechno je soubor?

  3. Pochopení souboru /etc/xinetd.conf v Linuxu

  1. Porozumění linuxové rezervaci SCSI

  2. Pochopení souboru /etc/hosts v Linuxu

  3. Porozumění Linuxu /proc/id/maps

  1. Linux – Rozumíte unixovým oprávněním a typům souborů?

  2. Pochopení multipath Utility pro konfiguraci DM-Multipath

  3. Pochopení identifikátorů dm-Multipath v Linuxu