Managen van software RAID arrays met mdadm

Na eerder een korte introductie te hebben geschreven over het gebruik van mdadm volgt nu een uitgebreidere toelichting waarmee software RAID onder linux voor elke gebruiker toegankelijk zou moeten zijn.

Om de toelichting te verduidelijken wordt uitgegaan van een configuratie van 4 gelijke schijven.

Aanmaken van een nieuwe array

Commando:

mdadm --create [RAID_device] --level[level] -n[aantal] [devices]

parameters:
-n:
aantal devices in de RAID array

invoer:
[level]:
RAID level (0 voor RAID 0, 1 voor RAID 1, etc.)

[aantal]:
aantal devices in de RAID array

[RAID_device]:
nieuw te maken device waarop het OS de array kan benaderen (bijv. /dev/md0)

[devices]:
pointers naar de devices die deel uit moeten gaan maken van de array (bijv. /dev/sda)

Voorbeeld:
In dit voorbeeld maken we een RAID5 array aan met 4 devices.

mdadm --create /dev/md0 --level5 -n4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

Toevoegen van een schijf aan een array

Commando:

mdadm [RAID_device] --add [device]

invoer:
[RAID_device]:
device waarop het OS de array kan benaderen (bijv. /dev/md0)
[device]:
pointer naar de device die deel uit moet gaan maken van de array (bijv. /dev/sda)

Voorbeeld:
In dit voorbeeld voegen we aan de RAID array op /dev/md0 de schijf /dev/sdd toe.

mdadm /dev/md0 -add /dev/sdd

Verwijderen van een schijf uit een array

Voordat een schijf uit een RAID array gehaald kan worden, is het verstandig deze eerst als foutief te markeren:

Commando:

mdadm [RAID_device] -f [device]

parameters:
-f:
faulty

invoer:
[RAID_device]:
device waarop het OS de array kan benaderen (bijv. /dev/md0)

[device]:
pointer naar de device die deel uit moet gaan maken van de array (bijv. /dev/sda)

Voorbeeld:
In dit voorbeeld markeren we /dev/sdd uit de RAID array op /dev/md0 als foutief:

mdadm /dev/md0 -f /dev/sdd

Hierna kan de device verwijderd worden:

Commando:

mdadm [RAID_device] --remove [device]

invoer:
[RAID_device]:
device waarop het OS de array kan benaderen (bijv. /dev/md0)
[device]:
pointer naar de device die deel uit moet gaan maken van de array (bijv. /dev/sda)

Voorbeeld:
In dit voorbeeld verwijderen we /dev/sdd uit de RAID array op /dev/md0.

mdadm /dev/md0 --remove /dev/sdd

Array stoppen

Commando:

mdadm --stop [RAID_device]

invoer:
[RAID_device]:
device waarop het OS de array kan benaderen (bijv. /dev/md0)

Voorbeeld:
In dit voorbeeld stoppen we de RAID array op /dev/md0.

mdadm --stop /dev/md0

Reeds bestaande array starten

Een array die is gestopt of een tussen machines gemigreerde array kan eenvoudig weer worden opgestart.

Commando:

mdadm --assemble [RAID_device] [devices]

invoer:
[RAID_device]:
device waarop het OS de array kan benaderen (bijv. /dev/md0)
[devices]:
pointers naar de devices die deel uit moeten gaan maken van de array (bijv. /dev/sda)

Voorbeeld:
In dit voorbeeld starten we de RAID array op /dev/md0 met de devices /dev/sda, /dev/sdb, /dev/sdc en /dev/sdd.

mdadm --assemble /dev/md0 /dev/sda /dev/sdb /dev/sdc /dev/sdd

Of er kan gebruikt worden gemaakt van de automatische scan. De software zal dan automatisch op zoek gaan naar arrays die hervat kunnen worden.

Commando:

mdadm --assemble --scan

Array vergroten

Een raid array kan groter worden door het toevoegen van schijven. Een andere optie is het één voor één vervangen van de harde schijven door exemplaren met een grotere capaciteit. De array moet vervolgens meegroeien, dat gaat helaas niet automatisch.

Commando:

mdadm --grow --size=max [RAID_device]

invoer:
[RAID_device]:
nieuw te maken device waarop het OS de array kan benaderen (bijv. /dev/md0)

Voorbeeld:
In dit voorbeeld geven we de RAID array op /dev/md0 zijn maximale grootte.

mdadm --grow --size=max /dev/md0

Aantal devices reduceren

Een RAID1 array kan ook gereduceerd worden tot één device. De functionaliteit van het dubbel opslaan is dan weliswaar verloren. Zo kan data weg worden geschreven naar 2 devices, wanneer deze vol zijn kan er één extern worden bewaard. Om dan geen foutmeldingen te krijgen is het handig om de array naar één device te zetten.

Commando:

mdadm --grow --force -n[aantal] [RAID_device]

invoer:
[RAID_device]:
device waarop het OS de array kan benaderen (bijv. /dev/md0)

Voorbeeld:
In dit voorbeeld geven we de RAID array op /dev/md0 zijn maximale grootte.

mdadm --grow --size=max /dev/md0

Informatie over een array

Commando:

mdadm --detail [RAID_device]

invoer:
[RAID_device]:
device waarop het OS de array kan benaderen (bijv. /dev/md0)

Voorbeeld:
In dit voorbeeld willen we informatie over de RAID array op /dev/md0.

mdadm --detail /dev/md0

Dat levert:
/dev/md0:
Version : 1.2
Creation Time : Tue Jun 11 14:12:55 2013
Raid Level : raid5
Array Size : 5860532736 (5589.04 GiB 6001.19 GB)
Used Dev Size : 1953510912 (1863.01 GiB 2000.40 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent

Update Time : Tue Jun 11 14:34:14 2013
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0

Layout : left-symmetric
Chunk Size : 512K

Name : server:0 (local to host server)
UUID : 8b21a610:2eef9ba8:515342a1:b3623597
Events : 7752

Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 33 1 active sync /dev/sdb1
2 8 49 2 active sync /dev/sdc1
4 8 65 3 active sync /dev/sdd1

RAID informatie over een device

De informatie of een devices tot een RAID array behoort is ook bij de device zelf terug te vinden.

Commando:

mdadm --examine [device]

invoer:
[device]:
pointer naar de device waarvan de informatie opgevraagd moet worden (bijv. /dev/sda)

Voorbeeld:
In dit voorbeeld willen we informatie over de device /dev/sdc.

mdadm --examine /dev/sdc

Levert:
/dev/sdc1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 8b21a610:2eef9ba8:515342a1:b3623597
Name : server:0 (local to host server)
Creation Time : Tue Jun 11 14:12:55 2013
Raid Level : raid5
Raid Devices : 4

Avail Dev Size : 3907022240 (1863.01 GiB 2000.40 GB)
Array Size : 5860532736 (5589.04 GiB 6001.19 GB)
Used Dev Size : 3907021824 (1863.01 GiB 2000.40 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
State : clean
Device UUID : 45ebc85d:3d0bb9be:dc12e766:4a5f9915

Update Time : Tue Jun 11 14:39:15 2013
Checksum : 4ba0086d - correct
Events : 7752

Layout : left-symmetric
Chunk Size : 512K

Device Role : Active device 1
Array State : AAAA ('A' == active, '.' == missing)

Meer informatie

De meest gebruikte mdadm commando’s zijn hierboven besproken. Mocht je hierna toch nog acties missen, kijk dan op de manpage van mdadm.

Leave a Reply

Your email address will not be published. Required fields are marked *