Hvordan administrere programvare-RAID-er i Linux med Mdadm-verktøyet - del 9


Uavhengig av din tidligere erfaring med RAID-arrayer, og om du fulgte alle veiledningene i denne RAID-serien eller ikke, er det ikke en veldig komplisert oppgave å administrere RAID-programvare i Linux når du først har blitt kjent med mdadm --manage kommando.

I denne opplæringen vil vi gjennomgå funksjonaliteten som tilbys av dette verktøyet, slik at du kan ha det praktisk når du trenger det.

Som i den siste artikkelen i denne serien, vil vi for enkelhets skyld bruke en RAID 1 (speil)-array som består av to 8 GB disker (/dev/sdb og /dev/sdc) og en første reserveenhet (/dev/sdd) for å illustrere, men kommandoene og konseptene som er oppført her, gjelder også for andre typer oppsett. Når det er sagt, legg gjerne til denne siden i nettleserens bokmerker, og la oss komme i gang.

Forstå mdadm-alternativer og bruk

Heldigvis gir mdadm et innebygd --help-flagg som gir forklaringer og dokumentasjon for hvert av hovedalternativene.

Derfor, la oss starte med å skrive:

# mdadm --manage --help

for å se hva som er oppgavene som mdadm --manage lar oss utføre og hvordan:

Som vi kan se i bildet ovenfor, innebærer administrasjon av en RAID-array å utføre følgende oppgaver på et eller annet tidspunkt:

  1. (Re)Legge til en enhet i arrayet.
  2. Merk en enhet som defekt.
  3. Fjerne en defekt enhet fra arrayet.
  4. Skifte ut den defekte enheten med en reservedel.
  5. Start en matrise som er delvis bygget.
  6. Stopp en matrise.
  7. Merk en matrise som ro (skrivebeskyttet) eller rw (lese-skrive).

Administrere RAID-enheter med mdadm Tool

Merk at hvis du utelater --manage alternativet, antar mdadm administrasjonsmodus uansett. Ha dette i bakhodet for å unngå problemer lenger nede i veien.

Den uthevede teksten i det forrige bildet viser den grunnleggende syntaksen for å administrere RAID-er:

# mdadm --manage RAID options devices

La oss illustrere med noen få eksempler.

Du vil vanligvis legge til en ny enhet når du erstatter en defekt, eller når du har en reservedel du vil ha tilgjengelig i tilfelle feil:

# mdadm --manage /dev/md0 --add /dev/sdd1

Dette er et obligatorisk trinn før du logisk fjerner enheten fra arrayet, og senere fysisk trekker den ut fra maskinen – i den rekkefølgen (hvis du går glipp av ett av disse trinnene, kan du ende opp med å forårsake faktisk skade på enheten):

# mdadm --manage /dev/md0 --fail /dev/sdb1

Legg merke til hvordan reserveenheten som ble lagt til i forrige eksempel, brukes til automatisk å erstatte den mislykkede disken. Ikke bare det, men gjenopprettingen og gjenoppbyggingen av raiddata starter også umiddelbart:

Når enheten har blitt indikert som feilet manuelt, kan den trygt fjernes fra arrayet:

# mdadm --manage /dev/md0 --remove /dev/sdb1

Frem til dette punktet har vi en fungerende RAID 1-array som består av 2 aktive enheter: /dev/sdc1 og /dev/sdd1. Hvis vi prøver å legge til /dev/sdb1 til /dev/md0 på nytt akkurat nå:

# mdadm --manage /dev/md0 --re-add /dev/sdb1

vi får en feil:

mdadm: --re-add for /dev/sdb1 to /dev/md0 is not possible

fordi matrisen allerede består av maksimalt mulig antall stasjoner. Så vi har 2 valg: a) legg til /dev/sdb1 som reserve, som vist i eksempel #1, eller b) fjern /dev/sdd1 fra matrisen og legg deretter til /dev/sdb1 på nytt.

Vi velger alternativ b), og starter med å stoppe arrayet for senere å sette det sammen igjen:

# mdadm --stop /dev/md0
# mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1

Hvis kommandoen ovenfor ikke legger til /dev/sdb1 tilbake til arrayet, bruker du kommandoen fra eksempel #1 for å gjøre det.

Selv om mdadm i utgangspunktet vil oppdage den nylig lagt til enheten som en reserve, vil den begynne å gjenoppbygge dataene, og når den er ferdig med det, bør den gjenkjenne enheten for å være en aktiv del av RAID:

Å bytte ut en disk i arrayet med en reservedisk er så enkelt som:

# mdadm --manage /dev/md0 --replace /dev/sdb1 --with /dev/sdd1

Dette resulterer i at enheten som følger --with-bryteren blir lagt til RAID-en mens disken angitt gjennom --replace blir merket som defekt:

Etter å ha opprettet arrayet, må du ha opprettet et filsystem på toppen av det og montert det på en katalog for å bruke det. Det du sannsynligvis ikke visste da, er at du kan merke RAID som ro, og dermed tillate bare å utføre leseoperasjoner på den, eller rw, for å skrive til enheten også.

For å merke enheten som ro, må den demonteres først:

# umount /mnt/raid1
# mdadm --manage /dev/md0 --readonly
# mount /mnt/raid1
# touch /mnt/raid1/test1

For å konfigurere matrisen til å tillate skriveoperasjoner også, bruk --readwrite-alternativet. Merk at du må demontere enheten og stoppe den før du setter rw-flagget:

# umount /mnt/raid1
# mdadm --manage /dev/md0 --stop
# mdadm --assemble /dev/md0 /dev/sdc1 /dev/sdd1
# mdadm --manage /dev/md0 --readwrite
# touch /mnt/raid1/test2

Sammendrag

Gjennom denne serien har vi forklart hvordan du setter opp en rekke programvare-RAID-arrayer som brukes i bedriftsmiljøer. Hvis du fulgte gjennom artiklene og eksemplene i disse artiklene, er du forberedt på å utnytte kraften til programvare-RAID-er i Linux.

Skulle du tilfeldigvis ha spørsmål eller forslag, ta gjerne kontakt med oss ved å bruke skjemaet nedenfor.