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 een sudo 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.

Waarschuwing

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
Output
Personalities : 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:

Note

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
Output
NAME 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
/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
/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
Output
NAME 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
Output
Personalities : 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
Output
Filesystem 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
Output
NAME 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:

Output
mdadm: 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
Output
Personalities : 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
Output
Filesystem 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
Output
NAME 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
Output
Personalities : 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
Output
Filesystem 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
Output
Personalities : 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
Output
NAME 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
Output
Personalities : 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
Output
Filesystem 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
Output
NAME 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
Output
Personalities : 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
Output
Filesystem 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.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.