Multipath er en feiltoleranseteknikk som generelt tar sikte på å sikkerhetskopiere tilkoblingen til fysiske servere med lagring. Når det er skader på fiberkablene er det viktig at serveren ikke mister tilgang til lageret og opprettholder tilgjengeligheten. Det er derfor systemer som banker og globale e-handelssider bruker multipath.
Her er alt du trenger å vite om multipath på Linux.
Identifikatorer for flerveisenheter på servere
For multipath er det også nødvendig å søke etter multipath-enheter. Hvis du noen gang har hørt om WWID (Verdensomspennende identifikator) konsept før, vil det ikke høres for fremmed ut for deg.
Som standard er navnene på flerveisenheter satt til deres WWID. Dette er et system som garanterer at flerveisenheten er globalt unik og uforanderlig. Du kan angi standardnavnet her med noen manipulasjoner til flerveis konfigurasjonsfilen ved å endre brukervennlige_navn omgivelser.
Som et eksempel kan du tenke på det slik. Tenk deg at du har lagringsenheter koblet til serveren din, for eksempel:
- /dev/sda
- /dev/sdb
- /dev/sdc
- /dev/sdd
Hvis brukervennlige_navn alternativet er satt til "ja" på dette tidspunktet, vil enhetsnavnene endres.
cat /etc/multipath.conf
# Utgang
standard {
brukervennlige_navn ja
}
Hvis du har en Ubuntu-server som bruker virtualiseringsteknologier, kan du få følgende utfall. Det du må huske her er at enheten du ønsker å kontrollere må være en fysisk enhet.
Etter at du har satt brukervennlige_navn mulighet til ja i konfigurasjonsfilen kan du sjekke enhetsnavnet som følger:
sudo fdisk -l
Prosedyre for konsistente flerveis enhetsnavn
Navnet som er tildelt flerveisenhetene ved denne prosedyren vil være unikt for en node. Det er ikke mulig å oppgi at det gjelder alle noder. Hvis du vil ha konsistente flerveisenheter på alle noder, setter du inn brukervennlige_navn alternativet til "nei". Du vil redusere eventuelle problemer på denne måten ettersom enhetene ikke lenger vil ha en unik moniker og i stedet vil bruke WWID.
I andre tilfeller kan det imidlertid være lurt å designe noder som er både konsistente og lettere å nå og bruke.
For et slikt tilfelle må du først installere alle flerveisenheter på én maskin. Du bør også deaktivere alle flerveisenheter på andre maskiner etter dette trinnet. Du kan kjøre følgende kommandoer for dette:
sudosystemctlStoppeflerveisverktøy.service
sudo multipath -F
Med disse kommandoene vil du henholdsvis stoppe flerveistjenesten og slette alle flerveisenhetskart. Bli en root-bruker og kopier bindinger filen som ligger i /etc/multipath katalog til andre maskiner.
På dette tidspunktet vil du bruke daemon-prosesser i Linux. Etter alle disse trinnene må du kjøre multipathd daemon igjen:
sudosystemctlstartflerveisverktøy.service
Oversikt over generelle funksjoner for multipath-enheter
Multipath-enheters funksjoner og konfigurasjonsinnstillinger er ikke begrenset til brukervennlige_navn. Nedenfor finner du informasjon om noen andre konfigurasjoner du kan gjøre i /etc/mutipath.conf fil:
-
svarteliste { }: Hvis du vil spesifisere hvilke enheter som skal ekskluderes fra multipath, kan du skrive navnene deres mellom de to krøllete klammeparentesene.
svarteliste {
devnode "^sda"
} -
enheter { }: Mellom disse to krøllete parentesene kan du sette noen detaljer for spesifikke enheter.
enheter {
Leverandør "DELL"
produkt "MD32xx"
} -
multipath { }: I dette feltet kan du angi attributtene til spesifikke flerveisenheter. Som med andre attributter, har multipath også mange forskjellige underattributter.
multipath {
wwid 3500405b170164c3911244b325426400b
alias gul
feilback manual
} -
blacklist_exceptions { }: Dette feltet er for enheter som er på svartelisten, men du vil ha multipath aktivert for dem. I stedet for å svarteliste alle enheter én etter én, kan du svarteliste dem alle og spesifisere de du vil bruke senere i dette feltet.
blacklist_exceptions {
wwid "3500405b170164c3911244b325426400b"
}
Selvfølgelig er ikke alle attributter begrenset til disse, og hver attributt har sine egne underkvaliteter. Dessuten kan du bruke dem sammen med hverandre. Nedenfor er et eksempel på en konfigurasjonsfil som du kan se gjennom:
standard {
brukervennlige_navn nr
}
svarteliste {
devnode "^sda"
}
blacklist_exceptions {
devnode "sda|sdb"
enhet {
Leverandør "DELL"
produkt "MD32xx"
}
}
enheter {
enhet {
Leverandør "HP"
produkt "A6189A"
}
}
multipaths {
multipath {
wwid 3500405b170164c3911244b325426400b
alias rød
}
}
Logikk i flerveisenheter
Du kan tenke på flerveisenheter som fysiske enheter. La for eksempel /dev/mapper/mpatha være navnet på en flerveisenhet. Denne enheten vil fungere som en fysisk enhet. Når du oppretter en LVM (Logisk volumstyring), må du også redigere /etc/lvm.conf fil.
Med konfigurasjonene du gjør her, må du filtrere diskene under multipath-enhetene. Hvis du ikke gjør det, vil LVM skanne den passive banen og multipath vil begynne å fungere igjen, fordi den aktive banen automatisk kan endres til den passive banen.
For å forhindre dette, kan du gjøre følgende manipulasjon på /etc/lvm.conf fil:
filter = [ "a/loop.*/", "r/.*/" ]
Denne kommandoen vil legge til løkker og fjerne alle enheter. Prosessen slutter imidlertid ikke der. Etter å ha gjort denne endringen /etc/lvm.conf, lagre filen og oppdater initrd også. initrd lar deg utføre noen manipulasjoner på RAM-disken. Grunnen til at du gjør endringer her er å kopiere dem ved oppstart.
Oppdater-initramfs -u -k alle
Hver gang lvm.conf og multipath.conf filene er oppdatert, er det nødvendig å utføre denne oppdateringen på initramfs. Slik får du en stabil og bærekraftig server. Du bør heller ikke glemme initramfs-oppdateringen, spesielt hvis du har gjort endringer i svarteliste- og filterattributtene.
Viktigheten av et flerveissystem
I flerveismiljøer kan servere fortsette å få tilgang til disker selv om en av komponentene (HBA, SAN, lagringskontroller) de bruker feiler. Dette er et spørsmål av spesiell interesse for system- og serveradministratorer.
Det er veldig viktig for servere med høy trafikk som inneholder viktig informasjon, hvor sikkerhetsprotokollene må være høye. Fordi hvis serveren til et nettsted med tusenvis av kredittkortinformasjon eller hundretusenvis av registrerte kunder er utilgjengelige fordi bare én komponent fungerte feil, det ville være en enorm problem.
Det er nødvendig å mestre detaljene for alle disse operasjonene og underattributtene til attributtene i konfigurasjonsfilen. Dette er fordi å lage serverkonfigurasjoner alltid innebærer en risiko. For denne typen operasjoner er det fornuftig å sikkerhetskopiere alt eller kjøre tester på en testserver.
Hvis du ikke har en server å teste alt dette på, er installering av Ubuntu Server det optimale valget og er ganske enkelt også.