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
.
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
- Understanding mdadm Options and Usage
- Håndtering af RAID-enheder med værktøjet mdadm
- Eksempel 1: Tilføj en enhed til RAID-arrayet
- Eksempel 2: Markering af en RAID-enhed som defekt og fjernelse af den fra arrayet
- Eksempel 3: Genindsættelse af en enhed, der var en del af arrayet, som tidligere var blevet fjernet
- Eksempel 4: Udskift en Raid-enhed med en bestemt disk
- Eksempel 5: Markering af et Raid-array som ro eller rw
- Summary
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:
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:
- (Gen)tilføjelse af en enhed til arrayet.
- Markere en enhed som defekt.
- Fjernelse af en defekt enhed fra arrayet.
- Udskiftning af den defekte enhed med en reserveenhed.
- Start et array, der er delvist opbygget.
- Stop et array.
- 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
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:
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:
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
Dette resulterer i, at enheden efter --with
-switchen tilføjes til RAID’et, mens den disk, der er angivet via --replace
, markeres som defekt:
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
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
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.