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.

Hantera Raid-enheter med Mdadm i Linux – Del 9

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

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:

Hantera RAID med mdadm-verktyget

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:

  1. (Åter)lägga till en enhet till matrisen.
  2. Markera en enhet som felaktig.
  3. Föra bort en felaktig enhet från matrisen.
  4. Ersätta den felaktiga enheten med en reservenhet.
  5. Starta en matris som är delvis uppbyggd.
  6. Stoppa en matris.
  7. 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
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

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:

Rekonstruera och återskapa raiddata

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:

Raid Rebuild Status
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
Replace Raid Device

Detta resulterar i att enheten efter växeln --with läggs till i RAID-enheten medan disken som anges med --replace markeras som defekt:

Check Raid Rebuild Status
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
Set Permissions on Raid Array

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

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.

Lämna ett svar

Din e-postadress kommer inte publiceras.