Sådan styres software RAID'er i Linux med Mdadm Tool - Del 9


Uanset din tidligere erfaring med RAID-arrays, og om du har fulgt alle tutorials i denne RAID-serie eller ej, er det ikke en meget kompliceret opgave at styre software RAID'er i Linux, når du først er blevet bekendt med mdadm --manage kommando.

I denne vejledning gennemgår vi funktionaliteten fra dette værktøj, så du kan have det praktisk, når du har brug for det.

Som i den sidste artikel i denne serie vil vi for enkelheds skyld bruge et RAID 1 (spejl) array, der består af to 8 GB diske (/ dev/sdb og/dev/sdc) og en indledende reserveenhed (/ dev/sdd) for at illustrere, men kommandoer og begreber, der er anført heri, gælder også for andre typer opsætninger. Når det er sagt, er du velkommen til at fortsætte og føje denne side til din browsers bogmærker, og lad os komme i gang.

Forståelse af mdadm-muligheder og anvendelse

Heldigvis leverer mdadm et indbygget --help -flag, der giver forklaringer og dokumentation for hver af de vigtigste muligheder.

Lad os starte med at skrive:

# mdadm --manage --help

for at se, hvad er de opgaver, som mdadm --manage giver os mulighed for at udføre, og hvordan:

Som vi kan se i ovenstående billede indebærer administration af et RAID-array at udføre følgende opgaver ad gangen:

  1. (Re) Tilføjelse af en enhed til arrayet.
  2. Marker en enhed som defekt.
  3. Fjernelse af en defekt enhed fra arrayet.
  4. Udskiftning af den defekte enhed med en ekstra.
  5. Start en matrix, der er delvist bygget.
  6. Stop en matrix.
  7. Marker et array som ro (skrivebeskyttet) eller rw (read-skriv).

Administration af RAID-enheder med mdadm Tool

Bemærk, at hvis du udelader indstillingen --manage , antager mdadm alligevel styringstilstand. Husk denne kendsgerning for at undgå at komme i problemer længere nede ad vejen.

Den fremhævede tekst i det forrige billede viser den grundlæggende syntaks til styring af RAID'er:

# mdadm --manage RAID options devices

Lad os illustrere med et par eksempler.

Du vil typisk tilføje en ny enhed, når du udskifter en defekt, eller når du har en reservedel, som du vil have praktisk i tilfælde af en fejl:

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

Dette er et obligatorisk trin, før enheden logisk fjernes fra arrayet og senere fysisk trækkes ud af maskinen - i den rækkefølge (hvis du går glip af et af disse trin, kan du ende med at forårsage faktisk skade på enheden):

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

Bemærk, hvordan reserveenheden, der blev tilføjet i det foregående eksempel, bruges til automatisk at udskifte den mislykkede disk. Ikke kun det, men gendannelse og genopbygning af raiddata starter også med det samme:

Når enheden er angivet som mislykket manuelt, kan den fjernes sikkert fra arrayet:

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

Indtil dette tidspunkt har vi et fungerende RAID 1-array, der består af 2 aktive enheder:/dev/sdc1 og/dev/sdd1. Hvis vi forsøger at tilføje/dev/sdb1 til/dev/md0 lige nu:

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

vi løber ind i en fejl:

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

fordi arrayet allerede består af det maksimalt mulige antal drev. Så vi har to valgmuligheder: a) tilføj/dev/sdb1 som en reserve, som vist i eksempel nr. 1, eller b) fjern/dev/sdd1 fra arrayet og tilføj derefter/dev/sdb1 igen.

Vi vælger mulighed b) og starter med at stoppe arrayet for senere at samle det igen:

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

Hvis ovenstående kommando ikke tilføjer/dev/sdb1 tilbage til arrayet, skal du bruge kommandoen fra eksempel 1 til at gøre det.

Selvom mdadm oprindeligt registrerer den nyligt tilføjede enhed som reserve, vil den begynde at genopbygge dataene, og når den er færdig, skal den genkende enheden som en aktiv del af RAID:

At udskifte en disk i arrayet med en ekstra er lige så let som:

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

Dette resulterer i, at enheden efter --med -afbryderen føjes til RAID, mens disken angivet gennem --placering markeres som defekt:

Når du har oprettet arrayet, skal du have oprettet et filsystem oven på det og monteret det på en mappe for at kunne bruge det. Hvad du sandsynligvis ikke vidste dengang, er at du kan markere RAID som ro, hvorved kun læsningsprocesser kan udføres på den eller rw for også at skrive til enheden.

For at markere enheden som ro skal den først afmonteres:

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

For at konfigurere arrayet, så det også tillader skriveoperationer, skal du bruge indstillingen --readwrite . Bemærk, at du bliver nødt til at afmontere enheden og stoppe den, før du indstiller rw-flag:

# 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

Resumé

Gennem hele denne serie har vi forklaret, hvordan man opsætter en række forskellige RAID-arrays til software, der bruges i virksomhedsmiljøer. Hvis du fulgte artiklerne og eksemplerne i disse artikler, er du parat til at udnytte styrken ved software-RAID'er i Linux.

Hvis du tilfældigvis har spørgsmål eller forslag, er du velkommen til at kontakte os ved hjælp af nedenstående formular.