Uanset om du har tidligere erfaring med RAID-arrays, og uanset om du har fulgt alle tutorials i denne RAID-serie eller ej, er det ikke særlig kompliceret at administrere software-RAID’er i Linux, når du først har stiftet bekendtskab med kommandoen mdadm --manage.

Håndter Raid-enheder med Mdadm i Linux – Del 9

I denne vejledning vil vi gennemgå de funktioner, som dette værktøj tilbyder, så du kan have det ved hånden, når du har brug for det.

RAID-testscenarie

Som i den sidste artikel i denne serie vil vi for enkelhedens 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) til illustration, men de kommandoer og koncepter, der er anført heri, gælder også for andre typer opsætninger. Når det er sagt, er du velkommen til at gå videre og tilføje denne side til din browsers bogmærker, og lad os komme i gang.

Understanding mdadm Options and Usage

Glædeligvis indeholder mdadm et built-in --help-flag, der giver forklaringer og dokumentation for hver af de vigtigste muligheder.

Så lad os starte med at skrive:

# mdadm --manage --help

for at se, hvilke opgaver mdadm --manage vil give os mulighed for at udføre og hvordan:

Håndtering af RAID med værktøjet mdadm

Som vi kan se på ovenstående billede, indebærer håndtering af et RAID-array, at følgende opgaver skal udføres på et eller andet tidspunkt:

  1. (Gen)tilføjelse af en enhed til arrayet.
  2. Markere en enhed som defekt.
  3. Fjernelse af en defekt enhed fra arrayet.
  4. Udskiftning af den defekte enhed med en reserveenhed.
  5. Start et array, der er delvist opbygget.
  6. Stop et array.
  7. Mærke et array som ro (skrivebeskyttet) eller rw (skrivebeskyttet).

Håndtering af RAID-enheder med værktøjet mdadm

Bemærk, at hvis du udelader indstillingen --manage, antager mdadm alligevel administrationstilstand. Husk denne kendsgerning for at undgå at løbe ind i problemer senere hen.

Den fremhævede tekst i det foregående billede viser den grundlæggende syntaks til at administrere RAID’er:

# mdadm --manage RAID options devices

Lad os illustrere med et par eksempler.

Eksempel 1: Tilføj en enhed til RAID-arrayet

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

# mdadm --manage /dev/md0 --add /dev/sdd1
Add Device to Raid Array
Eksempel 2: Markering af en RAID-enhed som defekt og fjernelse af den fra arrayet

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 overser et af disse trin, kan du ende med at forårsage faktiske skader på enheden):

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

Bemærk, hvordan den ekstra enhed, der blev tilføjet i det foregående eksempel, bruges til automatisk at erstatte den defekte disk. Ikke nok med det, men genoprettelsen og genopbygningen af raid-data starter også med det samme:

Oprettelse og genopbygning af raid-data

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

# mdadm --manage /dev/md0 --remove /dev/sdb1
Eksempel 3: Genindsættelse af en enhed, der var en del af arrayet, som tidligere var blevet fjernet

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

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

vil vi løbe 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 2 valgmuligheder: a) tilføje /dev/sdb1 som en reserve, som vist i eksempel nr. 1, eller b) fjerne /dev/sdd1 fra arrayet og derefter tilføje /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 det ikke lykkes at tilføje /dev/sdb1 tilbage til arrayet med ovenstående kommando, skal du bruge kommandoen fra eksempel nr. 1 til at gøre det.

Selv om mdadm i første omgang vil registrere den nyligt tilføjede enhed som en reserve, vil den begynde at genopbygge dataene, og når den er færdig med det, bør den genkende enheden som en aktiv del af RAID’et:

Raid Rebuild Status
Eksempel 4: Udskift en Raid-enhed med en bestemt disk

Det er så nemt som at udskifte en disk i arrayet med en reserve-disk:

# mdadm --manage /dev/md0 --replace /dev/sdb1 --with /dev/sdd1
Replace Raid Device

Dette resulterer i, at enheden efter --with-switchen tilføjes til RAID’et, mens den disk, der er angivet via --replace, markeres som defekt:

Check Raid Rebuild Status
Eksempel 5: Markering af et Raid-array som ro eller rw

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 sikkert ikke vidste dengang, er, at du kan markere RAID’et som ro, så der kun kan udføres læseoperationer på det, eller som rw, så der også kan skrives på 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
Sæt tilladelser på Raid Array

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

# 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
Allow Read Write Permission on Raid

Summary

Igennem hele denne serie har vi forklaret, hvordan du konfigurerer en række software-RAID-arrays, der bruges i virksomhedsmiljøer. Hvis du har fulgt artiklerne og eksemplerne i disse artikler, er du klar til at udnytte styrken i software-RAID’er i Linux.

Hvis du skulle have spørgsmål eller forslag, er du velkommen til at kontakte os ved hjælp af formularen nedenfor.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.