Introductie
De mdadm
-tool kan worden gebruikt om opslagreeksen te creëren en beheren met behulp van de software-RAID-mogelijkheden van Linux. Beheerders hebben grote flexibiliteit in het coördineren van hun afzonderlijke opslagapparaten en het creëren van logische opslagapparaten met betere prestaties of redundantiekenmerken.
In deze handleiding voert u verschillende RAID-configuraties uit die kunnen worden ingesteld met behulp van een Ubuntu 22.04-server.
Vereisten
Om de stappen in deze handleiding te volgen, heeft u nodig:
- A non-root user with
sudo
privileges on an Ubuntu 22.04 server. To learn how to set up an account with these privileges, follow our Ubuntu 22.04 initial server setup guide. - A basic understanding of RAID terminology and concepts. To learn more about RAID and what RAID level is right for you, read our introduction to RAID article.
- Meerdere onbewerkte opslagapparaten beschikbaar op uw server. De voorbeelden in deze tutorial tonen hoe verschillende soorten arrays op de server kunnen worden geconfigureerd. U heeft dus enkele schijven nodig om te configureren.
- Afhankelijk van het type array heeft u twee tot vier opslagapparaten nodig. Deze schijven hoeven niet te zijn geformatteerd voordat u deze handleiding volgt.
Info: Vanwege de inefficiëntie van RAID-opstellingen op virtuele privéservers raden we het niet aan om een RAID-opstelling te implementeren op DigitalOcean-droplets. De efficiëntie van datacenter-schijfreplicatie maakt de voordelen van RAID verwaarloosbaar in vergelijking met een opstelling op baremetal hardware. Deze tutorial heeft tot doel een referentie te zijn voor een conventionele RAID-opstelling.
Het opnieuw instellen van bestaande RAID-apparaten (optioneel)
U kunt deze sectie nu overslaan als u nog geen arrays hebt ingesteld. Deze handleiding introduceert verschillende RAID-niveaus. Als u elke RAID-niveau voor uw apparaten wilt volgen en voltooien, wilt u waarschijnlijk uw opslagapparaten hergebruiken na elke sectie. Deze specifieke sectie Het opnieuw instellen van bestaande RAID-apparaten kan worden geraadpleegd om uw componentopslagapparaten opnieuw in te stellen voordat u een nieuw RAID-niveau test.
Waarschuwing: Dit proces zal het array volledig vernietigen en alle gegevens die erop zijn geschreven. Zorg ervoor dat u werkt aan het juiste array en dat u eventuele gegevens die u wilt behouden, hebt gekopieerd voordat u het array vernietigt.
Begin met het vinden van de actieve arrays in het bestand /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid0 sdc[1] sdd[0]
209584128 blocks super 1.2 512k chunks
unused devices: <none>
Vervolgens het array van het bestandssysteem afkoppelen:
- sudo umount /dev/md0
Nu het array stoppen en verwijderen:
- sudo mdadm --stop /dev/md0
Vind de apparaten die zijn gebruikt om het array te bouwen met het volgende commando:
Waarschuwing: Houd er rekening mee dat de namen /dev/sd*
op elk moment kunnen veranderen bij het opnieuw opstarten. Controleer ze elke keer om er zeker van te zijn dat u werkt met de juiste apparaten.
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G linux_raid_member disk
sdb 100G linux_raid_member disk
sdc 100G disk
sdd 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
Nadat de apparaten die zijn gebruikt om een array te maken zijn ontdekt, nul hun superblock dat metadata bevat voor de RAID-setup. Door dit te nul te zetten, worden de RAID-metadata verwijderd en worden ze teruggezet naar normaal:
- sudo mdadm --zero-superblock /dev/sda
- sudo mdadm --zero-superblock /dev/sdb
Het wordt aanbevolen om ook eventuele permanente verwijzingen naar de array te verwijderen. Bewerk het bestand /etc/fstab
en commentaar de verwijzing naar je array uit of verwijder deze. Je kunt het uitcommentariëren door een hashtag-symbool #
aan het begin van de regel toe te voegen, met behulp van nano
of je voorkeurteksteditor:
- sudo nano /etc/fstab
. . .
# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0
Commentaar ook de array-definitie uit of verwijder deze uit het bestand /etc/mdadm/mdadm.conf
:
- sudo nano /etc/mdadm/mdadm.conf
. . .
# ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=7261fb9c:976d0d97:30bc63ce:85e76e91
Tenslotte, update de initramfs
opnieuw zodat het vroegtijdige opstartproces niet probeert om een niet-beschikbare array online te brengen:
- sudo update-initramfs -u
Vanaf hier zou je klaar moeten zijn om de opslagapparaten individueel te hergebruiken, of als onderdelen van een ander array.
Het maken van een RAID 0 Array
De RAID 0-array werkt door gegevens in stukjes te breken en deze over de beschikbare schijven te strippen. Dit betekent dat elke schijf een deel van de gegevens bevat en dat meerdere schijven worden geraadpleegd bij het ophalen van informatie.
- Vereisten: Minimum van 2 opslagapparaten.
- Belangrijkste voordeel: Prestaties op het gebied van lezen/schrijven en capaciteit.
- Let op: Zorg ervoor dat je functionele back-ups hebt. Een enkel apparaatdefect zal alle gegevens in het array vernietigen.
Identificatie van de componentapparaten
Om te beginnen, zoek de identificatoren voor de ruwe schijven die je gaat gebruiken:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G disk
sdb 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
In dit voorbeeld heb je twee schijven zonder bestandssysteem, elk 100G groot. Deze apparaten zijn de identificatoren /dev/sda
en /dev/sdb
gegeven voor deze sessie en zullen de ruwe componenten zijn die worden gebruikt om de array te bouwen.
Array maken
Om een RAID 0-array met deze componenten te maken, geef je ze door aan het mdadm --create
commando. Je moet de apparaatnaam die je wilt maken, het RAID-niveau en het aantal apparaten specificeren. In dit voorbeeld van het commando geef je het apparaat de naam /dev/md0
en voeg je de twee schijven toe die de array zullen opbouwen:
- sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda /dev/sdb
Bevestig dat de RAID succesvol is aangemaakt door het bestand /proc/mdstat
te controleren:
- cat /proc/mdstat
OutputPersonalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid0 sdb[1] sda[0]
209584128 blocks super 1.2 512k chunks
unused devices: <none>
Deze uitvoer onthult dat het apparaat /dev/md0
is aangemaakt in de RAID 0-configuratie met gebruik van de apparaten /dev/sda
en /dev/sdb
.
Het creëren en monteren van het bestandssysteem
Volgende, maak een bestandssysteem op de array:
- sudo mkfs.ext4 -F /dev/md0
Vervolgens, maak een koppelingspunt aan om het nieuwe bestandssysteem aan te sluiten:
- sudo mkdir -p /mnt/md0
Je kunt het bestandssysteem koppelen met het volgende commando:
- sudo mount /dev/md0 /mnt/md0
Daarna, controleer of de nieuwe ruimte beschikbaar is:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 1.4G 23G 6% /
/dev/vda15 105M 3.4M 102M 4% /boot/efi
/dev/md0 196G 61M 186G 1% /mnt/md0
Het nieuwe bestandssysteem is nu gemonteerd en toegankelijk.
Het opslaan van de array-indeling
Om ervoor te zorgen dat de array automatisch wordt geassembleerd bij het opstarten, moet je het bestand /etc/mdadm/mdadm.conf
aanpassen. Je kunt de actieve array automatisch scannen en het bestand aanvullen met het volgende:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Vervolgens kun je de initramfs
, of het initiële RAM-bestandssysteem, bijwerken zodat de array beschikbaar is tijdens het vroege opstartproces:
- sudo update-initramfs -u
Voeg de nieuwe bestandssysteem-koppelopties toe aan het bestand /etc/fstab
voor automatische koppeling bij het opstarten:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Je RAID 0-array zal nu automatisch worden geassembleerd en gekoppeld bij elke opstart.
Je bent nu klaar met het instellen van je RAID. Als je een andere RAID wilt proberen, volg dan de resetinstructies aan het begin van deze handleiding om door te gaan met het maken van een nieuw RAID-arraytype.
Het maken van een RAID 1-array
Het RAID 1-arraytype wordt geïmplementeerd door gegevens over alle beschikbare schijven te spiegelen. Elke schijf in een RAID 1-array krijgt een volledige kopie van de gegevens, waardoor redundantie wordt geboden in geval van een apparaatstoring.
- Vereisten: Minimaal 2 opslagapparaten.
- Belangrijkste voordeel: Redundantie tussen twee opslagapparaten.
- Dingen om in gedachten te houden: Aangezien twee kopieën van de gegevens worden onderhouden, zal slechts de helft van de schijfruimte bruikbaar zijn.
Identificatie van de Componentapparaten
Begin met het vinden van de identificatoren voor de ruwe schijven die je gaat gebruiken:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G disk
sdb 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
In dit voorbeeld heeft u twee schijven zonder bestandssysteem, elk van 100G groot. Deze apparaten hebben de identificatoren /dev/sda
en /dev/sdb
gekregen voor deze sessie en zullen de ruwe componenten zijn die u gebruikt om het array te bouwen.
Het Array Maken
Om een RAID 1-array te maken met deze componenten, voert u ze in bij het mdadm --create
-commando. U moet de apparaatnaam opgeven die u wilt maken, het RAID-niveau en het aantal apparaten. In dit voorbeeld van het commando noemt u het apparaat /dev/md0
en voegt u de schijven toe die de array zullen opbouwen:
- sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb
Als de componentapparaten die u gebruikt geen partities zijn met de boot
-vlag ingeschakeld, ontvangt u waarschijnlijk de volgende waarschuwing. Het is veilig om met y
te antwoorden en door te gaan:
Outputmdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
mdadm: size set to 104792064K
Continue creating array? y
Het mdadm
-hulpprogramma begint met het spiegelen van de schijven. Dit kan enige tijd duren, maar de array kan tijdens deze periode worden gebruikt. U kunt de voortgang van het spiegelen controleren door het bestand /proc/mdstat
te controleren:
- cat /proc/mdstat
OutputPersonalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb[1] sda[0]
104792064 blocks super 1.2 [2/2] [UU]
[====>................] resync = 20.2% (21233216/104792064) finish=6.9min speed=199507K/sec
unused devices: <none>
In de eerste gemarkeerde regel is het /dev/md0
-apparaat gemaakt in de RAID 1-configuratie met behulp van de /dev/sda
en /dev/sdb
-apparaten. De tweede gemarkeerde regel onthult de voortgang van het spiegelen. U kunt doorgaan naar de volgende stap terwijl dit proces wordt voltooid.
Het bestandssysteem maken en koppelen
Maak vervolgens een bestandssysteem op de array:
- sudo mkfs.ext4 -F /dev/md0
Maak vervolgens een koppelpunt om het nieuwe bestandssysteem aan te sluiten:
- sudo mkdir -p /mnt/md0
U kunt het bestandssysteem koppelen door het volgende uit te voeren:
- sudo mount /dev/md0 /mnt/md0
Controleer of de nieuwe ruimte beschikbaar is:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 1.4G 23G 6% /
/dev/vda15 105M 3.4M 102M 4% /boot/efi
/dev/md0 99G 60M 94G 1% /mnt/md0
Het nieuwe bestandssysteem is gemount en toegankelijk.
Het opslaan van het array-indeling
Om ervoor te zorgen dat het array automatisch opnieuw wordt geassembleerd bij het opstarten, moet je het bestand /etc/mdadm/mdadm.conf
aanpassen. Je kunt het actieve array automatisch scannen en het bestand aanvullen met het volgende:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Vervolgens kun je de initramfs
, of het initiële RAM-bestandssysteem, bijwerken, zodat het array beschikbaar is tijdens het vroege opstartproces:
- sudo update-initramfs -u
Voeg de nieuwe bestandssysteemkoppelopties toe aan het bestand /etc/fstab
voor automatisch koppelen bij het opstarten:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Je RAID 1-array zal nu automatisch assembleren en koppelen bij elke opstart.
Je bent nu klaar met het opzetten van je RAID. Als je een ander RAID-type wilt proberen, volg dan de resetinstructies aan het begin van deze handleiding om door te gaan met het maken van een nieuw RAID-arraytype.
Het maken van een RAID 5-array
Het RAID 5-arraytype wordt geïmplementeerd door gegevens over de beschikbare apparaten te strippen. Een component van elke stripe is een berekend pariteitsblok. Als een apparaat uitvalt, kunnen het pariteitsblok en de overgebleven blokken worden gebruikt om de ontbrekende gegevens te berekenen. Het apparaat dat het pariteitsblok ontvangt, wordt geroteerd zodat elk apparaat een evenwichtige hoeveelheid pariteitsinformatie heeft.
- Vereisten: Minimaal 3 opslagapparaten.
- Belangrijkste voordeel: Redundantie met meer bruikbare capaciteit.
- Dingen om in gedachten te houden: Hoewel de pariteitsinformatie wordt verdeeld, zal de capaciteit van één schijf worden gebruikt voor pariteit. RAID 5 kan te maken krijgen met zeer slechte prestaties wanneer het in een gedegradeerde staat verkeert.
Het identificeren van de componentapparaten
Begin met het vinden van de identificatoren voor de ruwe schijven die je zult gebruiken:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G disk
sdb 100G disk
sdc 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
Je hebt drie schijven zonder bestandssysteem, elk 100G groot. Deze apparaten hebben de identificatoren /dev/sda
, /dev/sdb
en /dev/sdc
gekregen voor deze sessie en zullen de ruwe componenten zijn die je gebruikt om het array te bouwen.
Het array maken
Om een RAID 5-array te maken met deze componenten, voert u ze in het mdadm --create
commando. U moet de apparaatnaam specificeren die u wilt maken, het RAID-niveau en het aantal apparaten. In dit voorbeeld van het commando geeft u het apparaat de naam /dev/md0
en omvat u de schijven die de array zullen vormen:
- sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc
De mdadm
-tool begint de array te configureren. Het gebruikt het herstelproces om de array op te bouwen om prestatieredenen. Dit kan enige tijd duren om te voltooien, maar de array kan tijdens deze tijd worden gebruikt. U kunt de voortgang van de spiegeling controleren door het bestand /proc/mdstat
te controleren:
- cat /proc/mdstat
OutputPersonalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdc[3] sdb[1] sda[0]
209582080 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
[>....................] recovery = 0.9% (957244/104791040) finish=18.0min speed=95724K/sec
unused devices: <none>
In de eerste gemarkeerde regel werd het apparaat /dev/md0
gemaakt in de RAID 5-configuratie met behulp van de apparaten /dev/sda
, /dev/sdb
en /dev/sdc
. De tweede gemarkeerde regel toont de voortgang van de opbouw.
Waarschuwing: Vanwege de manier waarop mdadm
RAID 5-arrays bouwt, wordt het aantal reservaten in de array onnauwkeurig gerapporteerd terwijl de array nog wordt gebouwd. Dit betekent dat u moet wachten tot de array klaar is met monteren voordat u het bestand /etc/mdadm/mdadm.conf
bijwerkt. Als u het configuratiebestand bijwerkt terwijl de array nog wordt gebouwd, heeft het systeem onjuiste informatie over de status van de array en kan het deze niet automatisch monteren bij het opstarten met de juiste naam.
U kunt doorgaan met de handleiding terwijl dit proces wordt voltooid.
Het aanmaken en koppelen van het bestandssysteem
Vervolgens maak je een bestandssysteem aan op de array:
- sudo mkfs.ext4 -F /dev/md0
Creëer een aankoppelpunt voor het nieuwe bestandssysteem:
- sudo mkdir -p /mnt/md0
Je kunt het bestandssysteem koppelen met het volgende commando:
- sudo mount /dev/md0 /mnt/md0
Controleer of de nieuwe ruimte beschikbaar is:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 1.4G 23G 6% /
/dev/vda15 105M 3.4M 102M 4% /boot/efi
/dev/md0 197G 60M 187G 1% /mnt/md0
Het nieuwe bestandssysteem is gekoppeld en toegankelijk.
Het opslaan van de lay-out van de array
Om ervoor te zorgen dat de array automatisch wordt geassembleerd bij het opstarten, moet je het bestand /etc/mdadm/mdadm.conf
aanpassen.
Waarschuwing: Zoals eerder vermeld, controleer opnieuw voordat je de configuratie aanpast om ervoor te zorgen dat de array volledig is geassembleerd. Het uitvoeren van de volgende stappen voordat de array is gebouwd, voorkomt dat het systeem de array correct assembleert bij het opnieuw opstarten.
Je kunt de voortgang van het spiegelen volgen door het bestand /proc/mdstat
te controleren:
- cat /proc/mdstat
OutputPersonalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdc[3] sdb[1] sda[0]
209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
Deze uitvoer onthult dat de herbouw is voltooid. Nu kun je de actieve array automatisch scannen en het bestand bijwerken:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Nadien kun je de initramfs
of initiële RAM-bestandssysteem bijwerken, zodat de array beschikbaar is tijdens het vroege opstartproces.
- sudo update-initramfs -u
Voeg de nieuwe bestandssysteem montageopties toe aan het /etc/fstab
-bestand voor automatische montage bij het opstarten:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Je RAID 5-array zal nu automatisch worden samengevoegd en gemonteerd bij elke opstart.
Je bent nu klaar met het instellen van je RAID. Als je een andere RAID wilt proberen, volg dan de resetinstructies aan het begin van deze handleiding om door te gaan met het maken van een nieuw RAID-arraytype.
Het maken van een RAID 6-array
Het RAID 6-arraytype wordt geïmplementeerd door gegevens over de beschikbare apparaten te stripen. Twee componenten van elke stripe zijn berekende pariteitsblokken. Als één of twee apparaten uitvallen, kunnen de pariteitsblokken en de overgebleven blokken worden gebruikt om de ontbrekende gegevens te berekenen. De apparaten die de pariteitsblokken ontvangen, worden geroteerd, zodat elk apparaat een evenwichtige hoeveelheid pariteitsinformatie heeft. Dit lijkt op een RAID 5-array, maar staat het falen van twee schijven toe.
- Vereisten: Minimaal 4 opslagapparaten.
- Belangrijkste voordeel: Dubbele redundantie met meer bruikbare capaciteit.
- Dingen om in gedachten te houden: Terwijl de pariteitsinformatie wordt verdeeld, zal de capaciteit van twee schijven worden gebruikt voor pariteit. RAID 6 kan erg slechte prestaties vertonen in een gedegradeerde toestand.
Het identificeren van de componentapparaten
Om te beginnen, zoek de identificatoren voor de ruwe schijven die je zult gebruiken:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G disk
sdb 100G disk
sdc 100G disk
sdd 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
In dit voorbeeld heb je vier schijven zonder een bestandssysteem, elk 100G groot. Deze apparaten hebben de identificatoren /dev/sda
, /dev/sdb
, /dev/sdc
, en /dev/sdd
gekregen voor deze sessie en zullen de ruwe componenten zijn die gebruikt worden om de array te bouwen.
Het maken van de array
Om een RAID 6-array te maken met deze componenten, voer ze in de mdadm --create
opdracht. Je moet de apparaatnaam opgeven die je wilt maken, het RAID-niveau en het aantal apparaten. In dit volgende voorbeeld van de opdracht zul je het apparaat /dev/md0
benoemen en de schijven toevoegen die de array zullen bouwen:
- sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
De mdadm
tool zal beginnen met het configureren van de array. Het gebruikt het herstelproces om de array te bouwen om prestatieredenen. Dit kan even duren om te voltooien, maar de array kan worden gebruikt tijdens deze tijd. Je kunt de voortgang van het kopiëren controleren door het /proc/mdstat
bestand te controleren:
- cat /proc/mdstat
OutputPersonalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid6 sdd[3] sdc[2] sdb[1] sda[0]
209584128 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUU]
[>....................] resync = 0.6% (668572/104792064) finish=10.3min speed=167143K/sec
unused devices: <none>
In de eerste gemarkeerde regel is het apparaat /dev/md0
aangemaakt in de RAID 6 configuratie met gebruik van de apparaten /dev/sda
, /dev/sdb
, /dev/sdc
en /dev/sdd
. De tweede gemarkeerde regel toont de voortgang van de opbouw. U kunt doorgaan met de handleiding terwijl dit proces wordt voltooid.
Het maken en koppelen van het bestandssysteem
Maak vervolgens een bestandssysteem op de array:
- sudo mkfs.ext4 -F /dev/md0
Maak een koppelpunt aan om het nieuwe bestandssysteem aan te koppelen:
- sudo mkdir -p /mnt/md0
U kunt het bestandssysteem aankoppelen met het volgende commando:
- sudo mount /dev/md0 /mnt/md0
Controleer of de nieuwe ruimte beschikbaar is:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 1.4G 23G 6% /
/dev/vda15 105M 3.4M 102M 4% /boot/efi
/dev/md0 197G 60M 187G 1% /mnt/md0
Het nieuwe bestandssysteem is aangekoppeld en toegankelijk.
Het opslaan van de array-indeling
Om ervoor te zorgen dat de array automatisch wordt geassembleerd bij het opstarten, moet u het bestand /etc/mdadm/mdadm.conf
aanpassen. U kunt de actieve array automatisch scannen en het bestand aanvullen door het volgende commando in te voeren:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Daarna kunt u de initramfs
bijwerken, ofwel het initiële RAM-bestandssysteem, zodat de array beschikbaar zal zijn tijdens het vroege opstartproces.
- sudo update-initramfs -u
Voeg de nieuwe bestandssysteemkoppelopties toe aan het /etc/fstab
-bestand voor automatische koppeling bij het opstarten:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Uw RAID 6-array zal nu automatisch worden samengesteld en gekoppeld bij elke opstart.
U bent nu klaar met uw RAID-instelling. Als u een andere RAID wilt proberen, volg dan de resetinstructies aan het begin van deze handleiding om door te gaan met het maken van een nieuw RAID-arraytype.
Het maken van een complexe RAID 10-array
Het RAID 10-arraytype wordt traditioneel geïmplementeerd door het maken van een gestreept RAID 0-array bestaande uit sets RAID 1-arrays. Dit geneste arraytype biedt zowel redundantie als hoge prestaties, ten koste van grote hoeveelheden schijfruimte. Het hulpprogramma mdadm
heeft zijn eigen RAID 10-type dat dezelfde voordelen biedt met verhoogde flexibiliteit. Het wordt niet gemaakt door arrays in elkaar te nestelen, maar heeft veel van dezelfde kenmerken en garanties. U zult hier het mdadm
RAID 10-type gebruiken.
- Vereisten: Minimaal 3 opslagapparaten.
- Belangrijkste voordeel: Prestaties en redundantie.
- Dingen om in gedachten te houden: De hoeveelheid capaciteitsvermindering voor het array wordt bepaald door het aantal gekozen datakopieën. Het aantal kopieën dat wordt opgeslagen met
mdadm
-stijl RAID 10 is configureerbaar.
Standaard worden twee exemplaren van elk datablok opgeslagen in wat de near lay-out wordt genoemd. De mogelijke lay-outs die bepalen hoe elk datablok wordt opgeslagen, zijn als volgt:
- near: De standaardindeling. Kopieën van elk blok worden achtereenvolgens geschreven bij striping, wat betekent dat de kopieën van de datablokken rond hetzelfde deel van meerdere schijven worden geschreven.
- far: De eerste en volgende kopieën worden naar verschillende delen van de opslagapparaten in de array geschreven. Bijvoorbeeld, het eerste blok kan dichtbij het begin van een schijf worden geschreven, terwijl het tweede blok halverwege op een andere schijf wordt geschreven. Dit kan enige leesprestatiewinst opleveren voor traditionele draaiende schijven, ten koste van schrijfprestaties.
- offset: Elke strook wordt gekopieerd en verschoven door één station. Dit betekent dat de kopieën van elkaar zijn verschoven, maar nog steeds dicht bij elkaar op de schijf staan. Dit helpt bij het minimaliseren van overmatig zoeken tijdens sommige werkbelastingen.
U kunt meer te weten komen over deze lay-outs door de RAID10
-sectie van deze man
-pagina te bekijken:
- man 4 md
U kunt deze man
-pagina ook online vinden.
Het identificeren van de componentapparaten
Om te beginnen, zoek de identificatoren voor de ruwe schijven die u gaat gebruiken:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G disk
sdb 100G disk
sdc 100G disk
sdd 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
In dit voorbeeld heb je vier schijven zonder bestandssysteem, elk 100G groot. Deze apparaten hebben de identificatoren /dev/sda
, /dev/sdb
, /dev/sdc
en /dev/sdd
gekregen voor deze sessie en zullen de ruwe componenten zijn die worden gebruikt om de array te bouwen.
Het maken van de array
Om een RAID 10-array met deze componenten te maken, geeft u ze door aan het mdadm --create
commando. U moet de apparaatnaam opgeven die u wilt maken, het RAID-niveau en het aantal apparaten. In het volgende voorbeeld van een opdracht, noemt u het apparaat /dev/md0
en omvat u de schijven die de array zullen bouwen:
U kunt twee kopieën instellen met behulp van de near-indeling door geen indeling en kopieaantal op te geven:
- sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
Als u een andere indeling wilt gebruiken of het aantal kopieën wilt wijzigen, moet u de --layout=
optie gebruiken, die een indeling en kopie-identificator accepteert. De indelingen zijn n
voor near, f
voor far en o
voor offset. Het aantal te bewaren kopieën wordt daarna toegevoegd.
Bijvoorbeeld, om een array te maken die drie kopieën heeft in de offset-indeling, zou de opdracht het volgende bevatten:
- sudo mdadm --create --verbose /dev/md0 --level=10 --layout=o3 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
De mdadm
-tool zal beginnen met het configureren van de array. Het gebruikt het herstelproces om de array op te bouwen voor prestatieredenen. Dit kan enige tijd in beslag nemen, maar de array kan tijdens deze periode worden gebruikt. U kunt de voortgang van de spiegeling controleren door het bestand /proc/mdstat
te controleren:
- cat /proc/mdstat
OutputPersonalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
md0 : active raid10 sdd[3] sdc[2] sdb[1] sda[0]
209584128 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
[===>.................] resync = 18.1% (37959424/209584128) finish=13.8min speed=206120K/sec
unused devices: <none>
In de eerste gemarkeerde regel is het /dev/md0
-apparaat gemaakt in de RAID 10-configuratie met gebruik van de /dev/sda
, /dev/sdb
, /dev/sdc
en /dev/sdd
-apparaten. Het tweede gemarkeerde gebied toont de lay-out die voor dit voorbeeld is gebruikt (twee exemplaren in de nabije configuratie). Het derde gemarkeerde gebied toont de voortgang van de opbouw. U kunt de handleiding blijven volgen terwijl dit proces wordt voltooid.
Het maken en koppelen van het bestandssysteem
Maak vervolgens een bestandssysteem op de array:
- sudo mkfs.ext4 -F /dev/md0
Maak een koppelingspunt om het nieuwe bestandssysteem aan te sluiten:
- sudo mkdir -p /mnt/md0
U kunt het bestandssysteem koppelen met het volgende commando:
- sudo mount /dev/md0 /mnt/md0
Controleer of de nieuwe ruimte beschikbaar is:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 1.4G 23G 6% /
/dev/vda15 105M 3.4M 102M 4% /boot/efi
/dev/md0 197G 60M 187G 1% /mnt/md0
Het nieuwe bestandssysteem is gekoppeld en toegankelijk.
Het opslaan van de lay-out van de array
Om ervoor te zorgen dat de array automatisch opnieuw wordt geassembleerd bij het opstarten, moet u het bestand /etc/mdadm/mdadm.conf
aanpassen. U kunt de actieve array automatisch scannen en het bestand bijwerken door het volgende uit te voeren:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Vervolgens kunt u de initramfs
, of initial RAM-bestandssysteem, bijwerken zodat de array beschikbaar is tijdens het vroege opstartproces:
- sudo update-initramfs -u
Voeg de nieuwe bestandssysteemkoppelopties toe aan het bestand /etc/fstab
voor automatisch aankoppelen bij het opstarten:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Uw RAID 10-array zal nu automatisch assembleren en aankoppelen bij elke opstart.
Conclusie
In deze handleiding leerde u hoe u verschillende soorten arrays kunt maken met behulp van de Linux-software RAID-hulpprogramma mdadm
. RAID-arrays bieden enkele overtuigende redundantie- en prestatieverbeteringen ten opzichte van het gebruik van meerdere schijven afzonderlijk.
Zodra u hebt besloten welk type array nodig is voor uw omgeving en het apparaat hebt gemaakt, kunt u leren hoe u dagelijks beheer uitvoert met mdadm
. Onze gids over hoe u RAID-arrays beheert met mdadm
op Ubuntu kan u helpen op weg.