Multipath är en feltoleransteknik som generellt syftar till att säkerhetskopiera anslutningen av fysiska servrar med lagring. När det blir skador på fiberkablarna är det viktigt att servern inte tappar tillgång till lagringen och bibehåller tillgängligheten. Det är därför system som banker och globala e-handelssajter använder multipath.

Här är allt du behöver veta om multipath på Linux.

Identifierare för flervägsenheter på servrar

För flervägsenheter är det också nödvändigt att söka efter flervägsenheter. Om du någonsin har hört talas om WWID (World Wide Identifier) koncept innan, det låter inte för främmande för dig.

Som standard är namnen på flervägsenheter inställda på deras WWID. Detta är ett system som garanterar att flervägsenheten är globalt unik och oföränderlig. Du kan ställa in standardnamnet här med vissa manipulationer av flervägskonfigurationsfilen genom att ändra användarvänliga_namn miljö.

Som ett exempel kan du tänka på det så här. Föreställ dig att du har lagringsenheter anslutna till din server som:

  • /dev/sda
  • /dev/sdb
  • /dev/sdc
  • /dev/sdd

Om användarvänliga_namn alternativet är inställt på "ja" vid denna tidpunkt, kommer enhetsnamnen att ändras.

cat /etc/multipath.conf

# Utgång
defaults {
användarvänliga_namn ja
}

Om du har en Ubuntu-server som använder virtualiseringstekniker, kan du få följande resultat. Vad du måste komma ihåg här är att enheten du vill styra måste vara en fysisk enhet.

När du har ställt in användarvänliga_namn möjlighet att ja i konfigurationsfilen kan du kontrollera enhetsnamnet enligt följande:

sudo fdisk -l

Procedur för enhetliga flervägsenhetsnamn

Namnet som tilldelas flervägsenheterna med denna procedur kommer att vara unikt för en nod. Det är inte möjligt att ange att det gäller alla noder. Om du vill ha konsekventa flervägsenheter på alla noder, ställ in användarvänliga_namn alternativet till "nej". Du kommer att minska eventuella problem på detta sätt eftersom enheterna inte längre kommer att ha en unik moniker och istället kommer att använda WWID.

Men under andra omständigheter kanske du vill designa noder som är både konsekventa och lättare att nå och använda.

I ett sådant fall måste du först installera alla flervägsenheter på en dator. Du bör också inaktivera alla flervägsenheter på andra maskiner efter detta steg. Du kan köra följande kommandon för detta:

sudosystemctlslutaflervägsverktyg.service
sudo multipath -F

Med dessa kommandon kommer du att stoppa flervägstjänsten och rensa alla kartor för flervägsenheter. Bli nu en root-användare och kopiera bindningar fil som finns i /etc/multipath katalogen till andra maskiner.

Vid det här laget kommer du att använda daemonprocesser i Linux. Efter alla dessa steg måste du köra flervägs demon igen:

sudosystemctlStartflervägsverktyg.service

Översikt över allmänna funktioner för flervägsenheter

Flervägsenheters funktioner och konfigurationsinställningar är inte begränsade till användarvänliga_namn. Nedan hittar du information om några andra konfigurationer du kan göra i /etc/mutipath.conf fil:

  • svartlista { }: Om du vill ange vilka enheter som ska uteslutas från multipath, kan du skriva deras namn mellan de två lockiga klammerparenteserna.
    svartlista {
    devnode "^sda"
    }
  • enheter { }: Mellan dessa två lockiga parenteser kan du sätta några detaljer för specifika enheter.
    enheter {
    Säljare "DELL"
    produkt "MD32xx"
    }
  • multipath { }: I det här fältet kan du ställa in attributen för specifika flervägsenheter. Som med andra attribut har flervägs också många olika underattribut.
    multipath {
    wwid 3500405b170164c3911244b325426400b
    alias gul
    failback manual
    }
  • blacklist_exceptions { }: Det här fältet är för enheter som finns på den svarta listan men du vill ha flervägsaktiverad för dem. Istället för att svartlista alla enheter en efter en kan du svartlista dem alla och ange de du vill använda senare i det här fältet.
    blacklist_exceptions {
    wwid "3500405b170164c3911244b325426400b"
    }

Naturligtvis är inte alla attribut begränsade till dessa, och varje attribut har sina egna underkvaliteter. Dessutom kan du använda dem tillsammans med varandra. Nedan finns ett exempel på en konfigurationsfil som du kan granska:

defaults {
användarvänliga_namn nr
}
svartlista {
devnode "^sda"
}
blacklist_exceptions {
devnode "sda|sdb"
enhet {
Säljare "DELL"
produkt "MD32xx"
}
}
enheter {
enhet {
Säljare "HP"
produkt "A6189A"
}
}
multipaths {
multipath {
wwid 3500405b170164c3911244b325426400b
alias röd
}
}

Logik i flervägsenheter

Du kan tänka på flervägsenheter som fysiska enheter. Till exempel, låt /dev/mapper/mpatha vara namnet på en flervägsenhet. Denna enhet kommer att fungera som en fysisk enhet. När du skapar en LVM (Logisk volymhantering), måste du också redigera /etc/lvm.conf fil.

Med de konfigurationer du gör här måste du filtrera diskarna under flervägsenheterna. Om du inte gör det kommer LVM att skanna den passiva sökvägen och multipath kommer att börja fungera igen, eftersom den aktiva sökvägen automatiskt kan ändras till den passiva sökvägen.

För att förhindra detta kan du göra följande manipulation på /etc/lvm.conf fil:

filter = [ "En slinga.*/", "r/.*/" ]

Detta kommando kommer att lägga till loopar och ta bort alla enheter. Processen slutar dock inte där. Efter att ha gjort denna ändring /etc/lvm.conf, spara filen och uppdatera initrd också. initrd låter dig utföra vissa manipulationer på RAM-disken. Anledningen till att du gör ändringar här är att kopiera dem vid uppstart.

uppdatering-initramfs -u -k Allt

Varje gång lvm.conf och multipath.conf filer uppdateras, är det nödvändigt att utföra denna uppdatering på initramfs. Så får du en stabil och hållbar server. Du bör inte heller glömma initramfs-uppdateringen, särskilt om du har gjort ändringar i svartlista och filterattribut.

Vikten av ett flervägssystem

I flervägsmiljöer kan servrar fortsätta att komma åt diskar även om en av komponenterna (HBA, SAN, lagringskontroller) de använder misslyckas. Detta är en fråga av särskilt intresse för system- och serveradministratörer.

Det är mycket viktigt för högtrafikerade servrar som innehåller viktig information, där säkerhetsprotokollen måste vara höga. För om servern på en webbplats med tusentals kreditkortsinformation eller hundratusentals registrerade kunder är otillgängliga eftersom endast en komponent inte fungerade, det skulle vara en enorm problem.

Det är nödvändigt att behärska detaljerna för alla dessa operationer och underattributen för attributen i konfigurationsfilen. Detta beror på att att göra serverkonfigurationer alltid innebär en risk. För denna typ av operation är det vettigt att säkerhetskopiera allt eller köra tester på en testserver.

Om du inte har en server att testa allt detta på är installationen av Ubuntu Server det optimala valet och det är också ganska enkelt.