Inleiding
Het hulpprogramma mdadm
kan worden gebruikt om opslagarrays te maken en te beheren met behulp van Linux’ software RAID-mogelijkheden. Beheerders hebben een grote flexibiliteit in het coördineren van hun individuele opslagapparaten en het creëren van logische opslagapparaten die betere prestaties of redundantie-eigenschappen hebben.
In deze gids zullen we een aantal verschillende RAID-configuraties bespreken die kunnen worden opgezet met behulp van een Ubuntu 16.04 server.
Voorvereisten
Om de stappen in deze gids te kunnen voltooien, moet u:
- Een niet-root gebruiker met
sudo
privileges op een Ubuntu 16.04 server hebben: De stappen in deze gids zullen worden voltooid met eensudo
gebruiker. Om te leren hoe u een account met deze privileges instelt, volgt u onze Ubuntu 16.04 initiële server setup gids. - Een basiskennis van RAID terminologie en concepten: Hoewel deze gids in het voorbijgaan wat RAID-terminologie zal aansnijden, is een completer begrip zeer nuttig. Om meer te leren over RAID en om beter te begrijpen welk RAID-niveau geschikt is voor u, leest u ons artikel over de inleiding tot RAID.
- Meerdere raw-opslagapparaten beschikbaar op uw server: We zullen demonstreren hoe u verschillende soorten arrays op de server kunt configureren. Als zodanig, zult u een aantal schijven nodig hebben om te configureren. Als u DigitalOcean gebruikt, kunt u Block Storage volumes gebruiken om deze rol te vervullen. Afhankelijk van het type array, heeft u minimaal twee tot vier opslag devices nodig.
Resetting Existing RAID Devices
Doorheen deze gids, zullen we de stappen introduceren om een aantal verschillende RAID levels aan te maken. Indien u het wenst te volgen, zal u waarschijnlijk uw opslagapparaten opnieuw willen gebruiken na elke sectie. Deze sectie kan worden gebruikt om te leren hoe u snel uw opslagmedia kunt resetten voordat u een nieuw RAID-niveau gaat testen. Sla deze sectie voorlopig over als u nog geen arrays hebt ingesteld.
Dit proces vernietigt de array volledig en alle gegevens die er naar toe zijn geschreven. Zorg ervoor dat u met de juiste array werkt en dat u alle gegevens die u moet bewaren, gekopieerd hebt voordat u de array vernietigt.
Vind de actieve arrays in het bestand /proc/mdstat
door te typen:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid0 sdc sdd 209584128 blocks super 1.2 512k chunks unused devices: <none>
Mount de array van het bestandssysteem:
- sudo umount /dev/md0
Stop vervolgens de array en verwijder deze door te typen:
- sudo mdadm --stop /dev/md0
- sudo mdadm --remove /dev/md0
Vind de apparaten die gebruikt zijn om de array te bouwen met het volgende commando:
Houd in gedachten dat de/dev/sd*
namen kunnen veranderen elke keer dat u reboot! Controleer ze elke keer om er zeker van te zijn dat u op de juiste apparaten werkt.
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disk sdb 100G disk sdc 100G linux_raid_member disk sdd 100G linux_raid_member disk vda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Na het ontdekken van de apparaten die zijn gebruikt om een array te maken, zet u hun superblok op nul om ze te resetten naar normaal:
- sudo mdadm --zero-superblock /dev/sdc
- sudo mdadm --zero-superblock /dev/sdd
U moet alle persistente verwijzingen naar de array verwijderen. Bewerk het /etc/fstab
bestand en commentaar uit of verwijder de verwijzing naar uw array:
- sudo nano /etc/fstab
. . .# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0
Ook commentaar uit of verwijder de array definitie uit het /etc/mdadm/mdadm.conf
bestand:
- sudo nano /etc/mdadm/mdadm.conf
. . .# ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=7261fb9c:976d0d97:30bc63ce:85e76e91
Werk tenslotte de initramfs
opnieuw bij:
- sudo update-initramfs -u
Op dit punt zou u klaar moeten zijn om de opslagapparaten afzonderlijk te hergebruiken, of als componenten van een andere array.
Een RAID 0-array maken
De RAID 0-array werkt door gegevens op te splitsen in brokken en deze te strippen over de beschikbare schijven. Dit betekent dat elke schijf een deel van de gegevens bevat en dat bij het ophalen van informatie naar meerdere schijven wordt verwezen.
- Eisen: minimaal 2 opslagapparaten
- Primair voordeel: Prestaties
- Dingen om in gedachten te houden: Zorg ervoor dat u functionele back-ups hebt. Een apparaatstoring vernietigt alle gegevens in de array.
Identificeer de Component Devices
Om te beginnen, zoekt u de identifiers voor de ruwe schijven die u gaat gebruiken:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Zoals u hierboven kunt zien, hebben we twee schijven zonder bestandssysteem, elk 100G groot. In dit voorbeeld hebben deze devices de /dev/sda
en /dev/sdb
identifiers gekregen voor deze sessie. Dit zullen de ruwe componenten zijn die we zullen gebruiken om de array te bouwen.
Create the Array
Om een RAID 0 array te maken met deze componenten, geeft u ze door aan het mdadm --create
commando. U moet de naam opgeven van het apparaat dat u wilt maken (/dev/md0
in ons geval), het RAID-niveau, en het aantal apparaten:
- sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda /dev/sdb
U kunt controleren of de RAID met succes is gemaakt door het /proc/mdstat
bestand te controleren:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid0 sdb sda 209584128 blocks super 1.2 512k chunks unused devices: <none>
Zoals u kunt zien in de gemarkeerde regel, is het /dev/md0
apparaat gemaakt in de RAID 0 configuratie met behulp van de /dev/sda
en /dev/sdb
apparaten.
Maak het bestandssysteem aan en koppel het
Naar aanleiding hiervan maakt u een bestandssysteem op de array:
- sudo mkfs.ext4 -F /dev/md0
Maak een koppelpunt aan om het nieuwe bestandssysteem te koppelen:
- sudo mkdir -p /mnt/md0
U kunt het bestandssysteem mounten door te typen:
- sudo mount /dev/md0 /mnt/md0
Controleer of de nieuwe ruimte beschikbaar is door te typen:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 197G 60M 187G 1% /mnt/md0
Het nieuwe bestandssysteem is gemount en toegankelijk.
De array-indeling opslaan
Om ervoor te zorgen dat de array bij het opstarten automatisch weer in elkaar wordt gezet, moeten we het /etc/mdadm/mdadm.conf
bestand aanpassen. U kunt de actieve array automatisch scannen en het bestand bijvoegen door te typen:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Daarna kunt u de initramfs, of het initiële RAM bestandssysteem, bijwerken zodat de array beschikbaar is tijdens het vroege boot proces:
- sudo update-initramfs -u
Voeg de nieuwe bestandssysteem mount opties toe aan het /etc/fstab
bestand voor het automatisch mounten bij het booten:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Uw RAID 0 array zou nu automatisch moeten worden geassembleerd en gemount bij elke boot.
Een RAID 1 array maken
Het RAID 1 array type 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 het geval van een apparaatstoring.
- Vereisten: minimaal 2 opslagapparaten
- Primair voordeel: Redundantie
- Dingen om in gedachten te houden: Omdat er twee kopieën van de gegevens worden onderhouden, zal slechts de helft van de schijfruimte bruikbaar zijn
Identificeer de Component Devices
Om te beginnen, zoek de identifiers voor de ruwe schijven die u zult gebruiken:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Zoals u hierboven kunt zien, hebben we twee schijven zonder bestandssysteem, elk 100G groot. In dit voorbeeld hebben deze devices de /dev/sda
en /dev/sdb
identifiers gekregen voor deze sessie. Dit zullen de ruwe componenten zijn die we zullen gebruiken om de array te bouwen.
Create the Array
Om een RAID 1 array te maken met deze componenten, geeft u ze door aan het mdadm --create
commando. U moet de apparaatnaam opgeven die u wilt maken (/dev/md0
in ons geval), het RAID-niveau en het aantal apparaten:
- 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 vlag boot
ingeschakeld, krijgt u waarschijnlijk de volgende waarschuwing. Het is veilig om y te typen om 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.90mdadm: size set to 104792064KContinue creating array? y
Het mdadm
gereedschap zal beginnen met het spiegelen van de drives. Het kan enige tijd duren voordat dit voltooid is, maar de array kan gedurende deze tijd gebruikt worden. U kunt de voortgang van het spiegelen controleren door het /proc/mdstat
bestand te controleren:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid1 sdb sda 104792064 blocks super 1.2 resync = 20.2% (21233216/104792064) finish=6.9min speed=199507K/secunused devices: <none>
Zoals u kunt zien in de eerste gemarkeerde regel, is het /dev/md0
apparaat aangemaakt in de RAID 1 configuratie met behulp van de /dev/sda
en /dev/sdb
apparaten. De tweede gemarkeerde regel toont de voortgang van het spiegelen. U kunt doorgaan met de gids terwijl dit proces wordt voltooid.
Maak het bestandssysteem aan en koppel het
Naar aanleiding hiervan, maakt u een bestandssysteem op de array:
- sudo mkfs.ext4 -F /dev/md0
Maak een koppelpunt aan om het nieuwe bestandssysteem te koppelen:
- sudo mkdir -p /mnt/md0
U kunt het bestandssysteem mounten door te typen:
- sudo mount /dev/md0 /mnt/md0
Controleer of de nieuwe ruimte beschikbaar is door te typen:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 99G 60M 94G 1% /mnt/md0
Het nieuwe bestandssysteem is gemount en toegankelijk.
De array-indeling opslaan
Om ervoor te zorgen dat de array bij het opstarten automatisch weer in elkaar wordt gezet, moeten we het /etc/mdadm/mdadm.conf
bestand aanpassen. U kunt de actieve array automatisch scannen en het bestand bijvoegen door te typen:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Daarna kunt u de initramfs, of het initiële RAM bestandssysteem, bijwerken zodat de array beschikbaar is tijdens het vroege boot proces:
- sudo update-initramfs -u
Voeg de nieuwe bestandssysteem mount opties toe aan het /etc/fstab
bestand voor het automatisch mounten bij het booten:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Uw RAID 1 array zou nu automatisch moeten worden geassembleerd en gemount bij elke boot.
Een RAID 5 Array maken
Het RAID 5 array type wordt geïmplementeerd door gegevens over de beschikbare apparaten te strippen. Eén component van elke strip is een berekend pariteitsblok. Als een apparaat uitvalt, kunnen het pariteitsblok en de resterende 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.
- Eisen: minimaal 3 opslagapparaten
- Primair voordeel: Redundantie met meer bruikbare capaciteit.
- Dingen om in gedachten te houden: Terwijl de pariteitsinformatie wordt gedistribueerd, zal de capaciteit van één schijf worden gebruikt voor pariteit. RAID 5 kan last hebben van zeer slechte prestaties wanneer het in een gedegradeerde staat verkeert.
Identificeer de Component Devices
Om te beginnen, zoek de identifiers voor de ruwe schijven die u zult gebruiken:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G disksdc 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Zoals u hierboven kunt zien, hebben we drie schijven zonder bestandssysteem, elk 100G groot. In dit voorbeeld hebben deze devices de /dev/sda
, /dev/sdb
, en /dev/sdc
identifiers gekregen voor deze sessie. Dit zullen de ruwe componenten zijn die we zullen gebruiken om de array te bouwen.
Create the Array
Om een RAID 5 array te maken met deze componenten, geeft u ze door aan het mdadm --create
commando. U moet de apparaatnaam opgeven die u wilt maken (/dev/md0
in ons geval), het RAID-niveau, en het aantal apparaten:
- sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc
Het mdadm
gereedschap zal beginnen met het configureren van de array (het gebruikt in feite het herstelproces om de array te bouwen om prestatieredenen). Dit kan enige tijd duren, maar de array kan gedurende deze tijd worden gebruikt. U kunt de voortgang van het spiegelen volgen door het /proc/mdstat
bestand te controleren:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid5 sdc sdb sda 209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 recovery = 15.6% (16362536/104792064) finish=7.3min speed=200808K/secunused devices: <none>
Zoals u kunt zien in de eerste gemarkeerde regel, is het /dev/md0
apparaat aangemaakt in de RAID 5 configuratie met behulp van de /dev/sda
, /dev/sdb
en /dev/sdc
apparaten. De tweede gemarkeerde regel toont de voortgang van het bouwen. U kunt doorgaan met de gids terwijl dit proces wordt voltooid.
Maak het bestandssysteem aan en koppel het
Naar aanleiding hiervan maakt u een bestandssysteem op de array:
- sudo mkfs.ext4 -F /dev/md0
Maak een koppelpunt aan om het nieuwe bestandssysteem te koppelen:
- sudo mkdir -p /mnt/md0
U kunt het bestandssysteem mounten door te typen:
- sudo mount /dev/md0 /mnt/md0
Controleer of de nieuwe ruimte beschikbaar is door te typen:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 197G 60M 187G 1% /mnt/md0
Het nieuwe bestandssysteem is gemount en toegankelijk.
De array-indeling opslaan
Om ervoor te zorgen dat de array bij het opstarten automatisch weer in elkaar wordt gezet, moeten we het bestand /etc/mdadm/mdadm.conf
aanpassen.
Voordat u de configuratie aanpast, controleert u nogmaals of de array klaar is met in elkaar zetten. Vanwege de manier waarop mdadm
RAID 5 arrays opbouwt, zal het aantal spares in de array onnauwkeurig worden gerapporteerd als de array nog in opbouw is:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid5 sdc sdb sda 209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 unused devices: <none>
De bovenstaande uitvoer laat zien dat de rebuild is voltooid. Nu kunnen we automatisch de actieve array scannen en het bestand toevoegen door te typen:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Daarna kunt u de initramfs, of het initiële RAM bestandssysteem, bijwerken, zodat de array beschikbaar zal zijn tijdens het vroege boot proces:
- sudo update-initramfs -u
Voeg de nieuwe bestandssysteem mount opties toe aan het /etc/fstab
bestand voor het automatisch mounten bij het booten:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Uw RAID 5 array zou nu automatisch moeten worden geassembleerd en gemount bij elke boot.
Een RAID 6 Array maken
Het RAID 6 array type wordt geïmplementeerd door gegevens over de beschikbare apparaten te strippen. Twee componenten van elke strip zijn berekende pariteitsblokken. Als een of twee apparaten uitvallen, kunnen de pariteitsblokken en de resterende 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 is vergelijkbaar met een RAID 5-array, maar maakt het mogelijk dat twee schijven uitvallen.
- Vereisten: minimaal 4 opslagapparaten
- Primair 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 lijden onder zeer slechte prestaties wanneer het in een gedegradeerde staat verkeert.
Identificeer de Component Devices
Om te beginnen, zoek de identifiers voor de ruwe schijven die u zult gebruiken:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G disksdc 100G disksdd 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Zoals u hierboven kunt zien, hebben we vier schijven zonder bestandssysteem, elk 100G groot. In dit voorbeeld hebben deze devices de /dev/sda
, /dev/sdb
, /dev/sdc
, en /dev/sdd
identifiers gekregen voor deze sessie. Dit zullen de ruwe componenten zijn die we zullen gebruiken om de array te bouwen.
Create the Array
Om een RAID 6 array te maken met deze componenten, geeft u ze door aan het mdadm --create
commando. U moet de apparaatnaam opgeven die u wilt maken (/dev/md0
in ons geval), het RAID-niveau, en het aantal apparaten:
- sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
Het mdadm
gereedschap zal beginnen met het configureren van de array (het gebruikt in feite het herstelproces om de array te bouwen om prestatieredenen). Dit kan enige tijd duren, maar de array kan gedurende deze tijd worden gebruikt. U kunt de voortgang van het spiegelen volgen door het /proc/mdstat
bestand te controleren:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid6 sdd sdc sdb sda 209584128 blocks super 1.2 level 6, 512k chunk, algorithm 2 resync = 0.6% (668572/104792064) finish=10.3min speed=167143K/secunused devices: <none>
Zoals u kunt zien in de eerste gemarkeerde regel, is het /dev/md0
apparaat aangemaakt in de RAID 6 configuratie met behulp van de /dev/sda
, /dev/sdb
, /dev/sdc
en /dev/sdd
apparaten. De tweede gemarkeerde regel toont de voortgang van het bouwen. U kunt doorgaan met de gids terwijl dit proces wordt voltooid.
Maak het bestandssysteem aan en koppel het
Naar aanleiding hiervan maakt u 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 mounten door te typen:
- sudo mount /dev/md0 /mnt/md0
Controleer of de nieuwe ruimte beschikbaar is door te typen:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 197G 60M 187G 1% /mnt/md0
Het nieuwe bestandssysteem is gemount en toegankelijk.
De array-indeling opslaan
Om ervoor te zorgen dat de array bij het opstarten automatisch weer in elkaar wordt gezet, moeten we het /etc/mdadm/mdadm.conf
bestand aanpassen. We kunnen de actieve array automatisch scannen en het bestand aanvullen door te typen:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Daarna kunt u de initramfs, of het initiële RAM bestandssysteem, bijwerken zodat de array beschikbaar is tijdens het vroege boot proces:
- sudo update-initramfs -u
Voeg de nieuwe bestandssysteem mount opties toe aan het /etc/fstab
bestand voor het automatisch mounten bij het booten:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Uw RAID 6 array zou nu automatisch moeten worden geassembleerd en gemount bij elke boot.
Een complexe RAID 10 Array maken
Het RAID 10 array type wordt traditioneel geïmplementeerd door een striped RAID 0 array te maken, samengesteld uit sets van RAID 1 arrays. Dit geneste array type geeft zowel redundantie als hoge prestaties, ten koste van grote hoeveelheden schijfruimte. Het hulpprogramma mdadm
heeft een eigen RAID 10-type dat dezelfde soort voordelen biedt met meer flexibiliteit. Het wordt niet gemaakt door arrays te nesten, maar heeft veel van dezelfde kenmerken en garanties. We zullen hier de mdadm
RAID 10 gebruiken.
- Eisen: minimaal 3 opslagapparaten
- Primair voordeel: Prestaties en redundantie
- Dingen om in gedachten te houden: De hoeveelheid capaciteitsvermindering voor de array wordt bepaald door het aantal gegevenskopieën dat u kiest om te bewaren. Het aantal kopieën dat wordt opgeslagen met
mdadm
style RAID 10 is configureerbaar.
Standaard worden er twee kopieën van elk gegevensblok opgeslagen in wat de “near” lay-out wordt genoemd. De mogelijke indelingen die dicteren hoe elk gegevensblok wordt opgeslagen zijn:
- near: De standaardindeling. Kopieën van elke chunk worden opeenvolgend geschreven bij striping, wat betekent dat de kopieën van de gegevensblokken rond hetzelfde deel van meerdere schijven worden geschreven.
- far: De eerste en volgende kopieën worden geschreven naar verschillende delen de opslagapparaten in de array. Het eerste stuk kan bijvoorbeeld aan het begin van een schijf worden geschreven, terwijl het tweede stuk halverwege op een andere schijf wordt geschreven. Dit kan voor traditionele draaiende schijven enige prestatiewinst bij het lezen opleveren, ten koste van de schrijfprestatie.
- offset: Elke strip wordt gekopieerd, verschoven met één schijf. Dit betekent dat de kopieën uit elkaar staan, maar nog steeds dicht bij elkaar op de schijf. Dit helpt bij het minimaliseren van excessief zoeken tijdens sommige werkbelastingen.
U kunt meer over deze lay-outs te weten komen door het “RAID10” gedeelte van deze man
pagina te bekijken:
- man 4 md
U kunt deze man
pagina ook hier online vinden.
Identificeer de Component Devices
Om te beginnen, zoek de identifiers voor de ruwe schijven die u zult gebruiken:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G disksdc 100G disksdd 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Zoals u hierboven kunt zien, hebben we vier schijven zonder bestandssysteem, elk 100G groot. In dit voorbeeld hebben deze devices de /dev/sda
, /dev/sdb
, /dev/sdc
, en /dev/sdd
identifiers gekregen voor deze sessie. Dit zullen de ruwe componenten zijn die we zullen gebruiken om de array te bouwen.
Create the Array
Om een RAID 10 array te maken met deze componenten, geeft u ze door aan het mdadm --create
commando. U moet de apparaatnaam opgeven die u wilt maken (/dev/md0
in ons geval), het RAID-niveau, en het aantal apparaten.
U kunt twee kopieën maken met de near layout door geen layout en kopie-nummer 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 layout wilt gebruiken, of het aantal kopieën wilt wijzigen, moet u de --layout=
optie gebruiken, die een layout en kopie-identifier neemt. De indelingen zijn n voor near, f voor far, en o voor offset. Het aantal op te slaan kopieën wordt daarna toegevoegd.
Om bijvoorbeeld een array met 3 kopieën in de offset layout te maken, zou het commando er als volgt uitzien:
- sudo mdadm --create --verbose /dev/md0 --level=10 --layout=o3 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
Het mdadm
gereedschap zal beginnen met het configureren van de array (het gebruikt in feite het herstelproces om de array te bouwen om prestatieredenen). Dit kan enige tijd duren, maar de array kan gedurende deze tijd gebruikt worden. U kunt de voortgang van het spiegelen volgen door het /proc/mdstat
bestand te controleren:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid10 sdd sdc sdb sda 209584128 blocks super 1.2 512K chunks 2 near-copies resync = 18.1% (37959424/209584128) finish=13.8min speed=206120K/secunused devices: <none>
Zoals u kunt zien in de eerste gemarkeerde regel, is het /dev/md0
apparaat aangemaakt in de RAID 10 configuratie met behulp van de /dev/sda
, /dev/sdb
, /dev/sdc
en /dev/sdd
apparaten. Het tweede gemarkeerde gebied toont de layout die is gebruikt voor dit voorbeeld (2 kopieën in de bijna configuratie). Het derde gemarkeerde gebied toont de voortgang van het bouwen. U kunt doorgaan met de gids terwijl dit proces wordt voltooid.
Maak het bestandssysteem aan en koppel het
Naar aanleiding hiervan maakt u 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 mounten door te typen:
- sudo mount /dev/md0 /mnt/md0
Controleer of de nieuwe ruimte beschikbaar is door te typen:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 197G 60M 187G 1% /mnt/md0
Het nieuwe bestandssysteem is gemount en toegankelijk.
De array-indeling opslaan
Om ervoor te zorgen dat de array bij het opstarten automatisch weer in elkaar wordt gezet, moeten we het /etc/mdadm/mdadm.conf
bestand aanpassen. We kunnen de actieve array automatisch scannen en het bestand aanvullen door te typen:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Daarna kunt u de initramfs, of het initiële RAM bestandssysteem, bijwerken, zodat de array beschikbaar is tijdens het vroege boot proces:
- sudo update-initramfs -u
Voeg de nieuwe bestandssysteem mount opties toe aan het /etc/fstab
bestand voor het automatisch mounten bij het booten:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Uw RAID 10 array zou nu automatisch moeten worden geassembleerd en gemount bij elke boot.
Conclusie
In deze gids hebben we laten zien hoe u verschillende soorten arrays kunt maken met Linux’s mdadm
software RAID hulpprogramma. RAID arrays bieden een aantal aantrekkelijke redundantie- en prestatieverbeteringen ten opzichte van het gebruik van meerdere schijven afzonderlijk.
Als u eenmaal het type array hebt gekozen dat nodig is voor uw omgeving en het apparaat hebt gemaakt, moet u leren hoe u het dagelijkse beheer met mdadm
uitvoert. Onze gids over hoe RAID arrays te beheren met mdadm
op Ubuntu 16.04 kan u op weg helpen.