Oavsett om du har tidigare erfarenhet av RAID-matriser, och oavsett om du har följt alla handledningar i den här RAID-serien eller inte, är det inte särskilt komplicerat att hantera mjukvaru-RAID i Linux när du väl har bekantat dig med kommandot mdadm --manage
.
I den här handledningen kommer vi att gå igenom den funktionalitet som det här verktyget erbjuder så att du kan ha det till hands när du behöver det.
- RAID Testing Scenario
- Understanding mdadm Options and Usage
- Hantering av RAID-enheter med verktyget mdadm
- Exempel 1: Lägg till en enhet i RAID-matrisen
- Exempel 2: Detta är ett obligatoriskt steg innan enheten logiskt tas bort från matrisen och senare fysiskt dras ut ur maskinen – i den ordningen (om du missar något av dessa steg kan det sluta med att enheten skadas): # mdadm --manage /dev/md0 --fail /dev/sdb1
- Exempel 3: Återinförande av en enhet som ingick i matrisen och som hade tagits bort tidigare
- Exempel 4: Ersätt en Raid-enhet med en specifik disk
- Exempel 5: Markering av en Raid-array som ro eller rw
- Summary
RAID Testing Scenario
Som i den sista artikeln i den här serien kommer vi för enkelhetens skull att använda en RAID 1 (spegel) array som består av två 8 GB diskar (/dev/sdb och /dev/sdc) och en initial spare-enhet (/dev/sdd) för att illustrera, men kommandona och koncepten som listas här är även tillämpliga på andra typer av konfigurationer. Med det sagt, gå gärna vidare och lägg till den här sidan till din webbläsares bokmärken och låt oss komma igång.
Understanding mdadm Options and Usage
Troligtvis tillhandahåller mdadm en built-in --help
-flagga som ger förklaringar och dokumentation för vart och ett av de viktigaste alternativen.
Så låt oss börja med att skriva:
# mdadm --manage --help
för att se vilka uppgifter som mdadm --manage
tillåter oss att utföra och hur:
Som vi kan se i bilden ovan innebär hanteringen av en RAID-matris att följande uppgifter måste utföras vid något tillfälle:
- (Åter)lägga till en enhet till matrisen.
- Markera en enhet som felaktig.
- Föra bort en felaktig enhet från matrisen.
- Ersätta den felaktiga enheten med en reservenhet.
- Starta en matris som är delvis uppbyggd.
- Stoppa en matris.
- Markera en array som ro (read-only) eller rw (read-write).
Hantering av RAID-enheter med verktyget mdadm
Observera att om du utelämnar alternativet --manage
antar mdadm hanteringsläget ändå. Ha detta faktum i åtanke för att undvika att råka ut för problem längre fram.
Den markerade texten i föregående bild visar den grundläggande syntaxen för att hantera RAID:
# mdadm --manage RAID options devices
Låt oss illustrera med några exempel.
Exempel 1: Lägg till en enhet i RAID-matrisen
Du lägger vanligen till en ny enhet när du ersätter en defekt enhet, eller när du har en reservdel som du vill ha nära till hands om det skulle uppstå ett fel:
# mdadm --manage /dev/md0 --add /dev/sdd1
Exempel 2: Detta är ett obligatoriskt steg innan enheten logiskt tas bort från matrisen och senare fysiskt dras ut ur maskinen – i den ordningen (om du missar något av dessa steg kan det sluta med att enheten skadas):
# mdadm --manage /dev/md0 --fail /dev/sdb1
Notera hur den extra enhet som lades till i det föregående exemplet används för att automatiskt ersätta den trasiga disken. Inte bara det, utan återhämtningen och återuppbyggnaden av raiddata startar också omedelbart:
När enheten har angetts som misslyckad manuellt kan den tas bort från matrisen på ett säkert sätt:
# mdadm --manage /dev/md0 --remove /dev/sdb1
Exempel 3: Återinförande av en enhet som ingick i matrisen och som hade tagits bort tidigare
Hos den här punkten har vi en fungerande RAID 1-matris som består av två aktiva enheter: /dev/sdc1 och /dev/sdd1. Om vi försöker lägga till /dev/sdb1 på nytt till /dev/md0 just nu:
# mdadm --manage /dev/md0 --re-add /dev/sdb1
kommer vi att stöta på ett fel:
mdadm: --re-add for /dev/sdb1 to /dev/md0 is not possible
för att matrisen redan består av det högsta möjliga antalet enheter. Vi har alltså två alternativ: a) lägga till /dev/sdb1 som reservdator, enligt exempel 1, eller b) ta bort /dev/sdd1 från matrisen och sedan lägga till /dev/sdb1 igen.
Vi väljer alternativ b) och börjar med att stoppa arrayen för att senare återmontera den:
# mdadm --stop /dev/md0# mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1
Om ovanstående kommando inte lyckas lägga till /dev/sdb1 tillbaka till arrayen, använd kommandot från exempel #1 för att göra det.
Men även om mdadm till en början kommer att upptäcka den nytillagda enheten som en reservdel, kommer den att börja återuppbygga data och när den är klar med detta bör den känna igen enheten som en aktiv del av RAID:
Exempel 4: Ersätt en Raid-enhet med en specifik disk
Att byta ut en disk i matrisen mot en reservdel är lika enkelt som att:
# mdadm --manage /dev/md0 --replace /dev/sdb1 --with /dev/sdd1
Detta resulterar i att enheten efter växeln --with
läggs till i RAID-enheten medan disken som anges med --replace
markeras som defekt:
Exempel 5: Markering av en Raid-array som ro eller rw
När du har skapat arrayen måste du ha skapat ett filsystem ovanpå den och monterat den på en katalog för att kunna använda den. Vad du förmodligen inte visste då är att du kan markera RAID-enheten som ro, vilket gör att endast läshändelser kan utföras på den, eller rw, för att även skriva till enheten.
För att markera enheten som ro måste den först demonteras:
# umount /mnt/raid1# mdadm --manage /dev/md0 --readonly# mount /mnt/raid1# touch /mnt/raid1/test1
För att konfigurera matrisen så att även skrivhändelser kan tillåtas, använd alternativet --readwrite
. Observera att du måste avmontera enheten och stoppa den innan du ställer in rw-flaggan:
# 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
I hela den här serien har vi förklarat hur man konfigurerar en mängd olika RAID-matriser för programvara som används i företagsmiljöer. Om du har följt artiklarna och exemplen i dessa artiklar är du beredd att utnyttja kraften i mjukvaru-RAID i Linux.
Om du råkar ha frågor eller förslag är du välkommen att kontakta oss via formuläret nedan.