Zoeken op website

Hoe software-RAID's in Linux te beheren met de 'Mdadm'-tool - Deel 9


Ongeacht je eerdere ervaring met RAID-arrays, en of je nu alle tutorials in deze RAID-serie hebt gevolgd of niet, het beheren van software-RAIDs in Linux is geen erg ingewikkelde taak als je eenmaal bekend bent met mdadm --manage commando.

In deze tutorial bespreken we de functionaliteit van deze tool, zodat je hem bij de hand hebt wanneer je hem nodig hebt.

RAID-testscenario

Net als in het laatste artikel van deze serie zullen we voor de eenvoud een RAID 1 (mirror) array gebruiken die bestaat uit twee 8 GB schijven (/dev/sdb en /dev/sdc) en een initieel reserveapparaat (/dev/sdd) ter illustratie, maar de hierin genoemde opdrachten en concepten zijn van toepassing op andere typen ook opstellingen. Dat gezegd hebbende, voel je vrij om deze pagina toe te voegen aan de bladwijzers van je browser, en laten we aan de slag gaan.

Inzicht in mdadm-opties en -gebruik

Gelukkig biedt mdadm een ingebouwde --help vlag die uitleg en documentatie biedt voor elk van de belangrijkste opties.

Laten we dus beginnen met het typen van:


mdadm --manage --help

om te zien welke taken mdadm --manage ons in staat zullen stellen uit te voeren en hoe:

Zoals we in de bovenstaande afbeelding kunnen zien, omvat het beheren van een RAID-array het uitvoeren van de volgende taken op een of ander moment:

  1. (Opnieuw) toevoegen van een apparaat aan de array.
  2. Markeer een apparaat als defect.
  3. Een defect apparaat uit de array verwijderen.
  4. Het defecte apparaat vervangen door een reserveapparaat.
  5. Start een array die gedeeltelijk is gebouwd.
  6. Een array stoppen.
  7. Markeer een array als ro (alleen-lezen) of rw (lezen-schrijven).

RAID-apparaten beheren met mdadm Tool

Merk op dat als u de optie --manage weglaat, mdadm toch de beheermodus aanneemt. Houd dit feit in gedachten om te voorkomen dat u verderop in de problemen komt.

De gemarkeerde tekst in de vorige afbeelding toont de basissyntaxis voor het beheren van RAID's:


mdadm --manage RAID options devices

Laten we dit illustreren met een paar voorbeelden.

Voorbeeld 1: Voeg een apparaat toe aan de RAID-array

Normaal gesproken voegt u een nieuw apparaat toe als u een defect apparaat vervangt, of als u een reserveonderdeel bij de hand wilt hebben in geval van een storing:


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

Voorbeeld 2: Een RAID-apparaat als defect markeren en het uit de array verwijderen

Dit is een verplichte stap voordat u het apparaat logisch uit de array verwijdert en het later fysiek uit de machine haalt – in die volgorde (als u een van deze stappen mist, kunt u uiteindelijk daadwerkelijke schade aan het apparaat veroorzaken):


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

Merk op hoe het reserveapparaat dat in het vorige voorbeeld is toegevoegd, wordt gebruikt om de defecte schijf automatisch te vervangen. Niet alleen dat, maar het herstel en opnieuw opbouwen van raid-gegevens begint ook onmiddellijk:

Zodra het apparaat handmatig als defect is aangegeven, kan het veilig uit de array worden verwijderd:


mdadm --manage /dev/md0 --remove /dev/sdb1
Voorbeeld 3: Een apparaat opnieuw toevoegen dat deel uitmaakte van de array en eerder was verwijderd

Tot nu toe hebben we een werkende RAID 1-array die bestaat uit twee actieve apparaten: /dev/sdc1 en /dev/sdd1. Als we /dev/sdb1 nu opnieuw proberen toe te voegen aan /dev/md0:


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

we zullen een fout tegenkomen:


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

omdat de array al uit het maximaal mogelijke aantal schijven bestaat. We hebben dus 2 keuzes: a) voeg /dev/sdb1 toe als reserve, zoals weergegeven in voorbeeld #1, of b) verwijder /dev/sdd1 uit de array en voeg vervolgens /dev/sdb1 opnieuw toe.

We kiezen optie b) en beginnen met het stoppen van de array om deze later opnieuw samen te stellen:


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

Als de bovenstaande opdracht /dev/sdb1 niet succesvol terug toevoegt aan de array, gebruik dan de opdracht uit Voorbeeld #1 om dit te doen.

Hoewel mdadm het nieuw toegevoegde apparaat in eerste instantie als reserveapparaat zal detecteren, zal het beginnen met het opnieuw opbouwen van de gegevens en als het klaar is, zou het het apparaat moeten herkennen als een actief onderdeel van de RAID:

Voorbeeld 4: Vervang een Raid-apparaat door een specifieke schijf

Het vervangen van een schijf in de array door een reserveschijf is net zo eenvoudig als:


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

Dit resulteert erin dat het apparaat de --with-schakelaar volgt en wordt toegevoegd aan de RAID, terwijl de schijf aangegeven via --replace als defect wordt gemarkeerd:

Voorbeeld 5: Een Raid-array markeren als ro of rw

Nadat u de array hebt gemaakt, moet u er een bestandssysteem bovenop hebben gemaakt en dit in een map hebben gemount om het te kunnen gebruiken. Wat u toen waarschijnlijk niet wist, is dat u de RAID kunt markeren als ro, waardoor er alleen leesbewerkingen op kunnen worden uitgevoerd, of rw, om te schrijven ook op het apparaat.

Om het apparaat als ro te markeren, moet het eerst worden ontkoppeld:


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

Om de array zo te configureren dat ook schrijfbewerkingen worden toegestaan, gebruikt u de optie --readwrite. Houd er rekening mee dat u het apparaat moet ontkoppelen en stoppen voordat u de vlag rw instelt:


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

Samenvatting

In deze serie hebben we uitgelegd hoe u een verscheidenheid aan software-RAID-arrays kunt instellen die in bedrijfsomgevingen worden gebruikt. Als u de artikelen en de voorbeelden in deze artikelen heeft gevolgd, bent u bereid de kracht van software-RAID's in Linux te benutten.

Mocht u vragen of suggesties hebben, neem dan gerust contact met ons op via onderstaand formulier.