Wat is RAID0 en wanneer is het zinvol?
Auteur: Redactie Domeny.ForSale Gepubliceerd
Kort samengevat: RAID0 combineert minstens twee schijven tot één opslagruimte en verdeelt de gegevens over die schijven. Dat kan het lezen en schrijven versnellen. Het biedt echter geen bescherming tegen schijfuitval: als één schijf uitvalt, verlies je doorgaans de toegang tot de hele array. In Linux kun je met mdadm een softwarematige RAID0-array maken, maar gebruik die bij voorkeur voor gegevens die je opnieuw kunt aanmaken of waarvan je een afzonderlijke back-up hebt.
Hoe RAID0 gegevens over schijven verdeelt
RAID is een manier om meerdere schijven te organiseren als één logisch geheel, een zogeheten array. RAID0 gebruikt striping: gegevens worden verdeeld in blokken die afwisselend op verschillende schijven worden geschreven. Er wordt geen extra kopie gemaakt en ook geen informatie opgeslagen waarmee ontbrekende blokken kunnen worden hersteld.
Een bestand kan bijvoorbeeld zo worden verdeeld dat het eerste blok op schijf A terechtkomt, het tweede op schijf B en het derde weer op A. Bij het lezen kunnen beide schijven tegelijk werken. Het systeem ziet daarbij één opslagruimte waarop je een bestandssysteem kunt aanmaken en mappen kunt opslaan.
Twee schijven van 1 TB bieden samen nominaal ongeveer 2 TB aan ruimte, voordat rekening wordt gehouden met overhead. Het systeem kan een ander getal tonen door de manier waarop het de eenheden omrekent. Bij schijven met verschillende capaciteiten hangt de benutting van de ruimte af van de RAID0-implementatie. Het eenvoudigst is daarom om schijven met een vergelijkbare capaciteit en snelheid te gebruiken.
Welke snelheid kun je verwachten?
Bij het lezen en schrijven van grote, aaneengesloten hoeveelheden gegevens kunnen twee vergelijkbare schijven samen een snelheid halen die in de buurt komt van de som van hun afzonderlijke snelheden. Dat betekent echter niet dat de computer twee keer zo snel wordt. Bij het starten van programma’s, het verwerken van kleine bestanden en bewerkingen die een korte reactietijd vereisen, kan de winst veel kleiner zijn.
Ook de controller, de interfaces, de gedeelde verbinding van de schijven met de rest van de computer, de processor en de werkwijze van de toepassing beperken het resultaat. Twee snelle SSD’s komen niet volledig tot hun recht als hun gezamenlijke gegevensoverdracht de bandbreedte van de gedeelde verbinding overschrijdt. De array neemt ook de vertraging van een afzonderlijke schijf niet weg.
Meet voordat je voor RAID0 kiest hoe lang een echte taak duurt: het kopiëren van een groot bestand, het exporteren van een video of het verwerken van een dataset. Vergelijk die tijd met dezelfde taak op één schijf. Gebruik voor de test meer gegevens dan in het beschikbare cachegeheugen passen als je de schijven wilt beoordelen en niet vooral het RAM.
Wanneer is RAID0 zinvol en wat betekent schijfuitval?
RAID0 kan nuttig zijn als werkruimte voor tijdelijke bestanden, lokale gegevens voor berekeningen of materiaal waarvan de originelen op een andere schijf staan. Een videomonteur kan bijvoorbeeld de originele opnamen en het project op een afzonderlijke, beveiligde plek bewaren en de array gebruiken voor tussenbestanden. Bij een storing kost het dan tijd om de gegevens opnieuw te genereren, maar gaat niet de enige kopie van het werk verloren.
Het is geen goede keuze voor de enige kopie van een fotoarchief, bedrijfsdocumenten of gegevens van een dienst die beschikbaar moet blijven. Elke schijf is een onmisbaar onderdeel van de array. Hoe meer schijven je toevoegt, hoe meer apparaten er zijn waarvan een defect de werking van de array kan onderbreken.
Als één schijf defect raakt, kun je die niet simpelweg vervangen en de gegevens herstellen vanaf de overige schijven, zoals bij een array met redundantie: extra informatie voor herstel. De overgebleven schijven bevatten slechts een deel van de blokken. Professioneel gegevensherstel is soms mogelijk, maar dat hangt af van de schade en biedt geen garantie.
Als het belangrijker is dat de opslag blijft werken wanneer een schijf uitvalt, overweeg dan RAID1, dat gespiegelde kopieën van de gegevens opslaat. Je hebt nog steeds een afzonderlijke back-up nodig: geen van beide arrays beschermt op zichzelf tegen het per ongeluk verwijderen van bestanden of tegen versleuteling door schadelijke software.
RAID0 maken in Linux met mdadm
mdadm is een hulpmiddel voor het beheren van softwarematige arrays in Linux. Het onderstaande voorbeeld gaat uit van twee lege, extra schijven: /dev/sdb en /dev/sdc. De opdrachten vernietigen gegevens op de opgegeven apparaten. Voer ze niet uit zonder de schijfnamen te controleren en de bestanden die je nodig hebt veilig te stellen.
Controleer eerst de apparaten:
lsblk -o NAME,SIZE,MODEL,SERIAL,FSTYPE,MOUNTPOINTS
Vergelijk de capaciteiten, modellen en serienummers. Controleer of de gekozen schijven geen besturingssysteem, actieve partities of gegevens bevatten die je nodig hebt. Installeer het pakket mdadm met de pakketbeheerder van je distributie; in Debian en Ubuntu doe je dat bijvoorbeeld zo:
sudo apt install mdadm
Maak de array, het bestandssysteem en het koppelpunt:
sudo mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdc
cat /proc/mdstat
sudo mkfs.ext4 /dev/md0
sudo mkdir -p /mnt/raid0
sudo mount /dev/md0 /mnt/raid0
Deze opdrachten gaan er ook van uit dat /dev/md0 niet al door een andere array wordt gebruikt. Als het hulpmiddel waarschuwt voor bestaande gegevens of signatures, stop dan en ga na waar die vandaan komen in plaats van de bewerking automatisch te bevestigen.
Wat moet je instellen nadat je de array hebt gemaakt?
Eenmalig aankoppelen is niet voldoende om te zorgen dat de array na een herstart goed werkt. Controleer de instellingen voor het detecteren van arrays in mdadm. De locatie van het configuratiebestand en de eventuele noodzaak om initramfs bij te werken hangen af van de distributie. Raadpleeg de officiële documentatie van je distributie om de instructies te controleren.
Gebruik voor blijvende aankoppeling via /etc/fstab de UUID van het bestandssysteem, die je kunt opvragen met sudo blkid /dev/md0. Ga er niet van uit dat de apparaatnaam altijd hetzelfde blijft. Test de configuratieregel vóór een herstart en stel de toegangsrechten van de map in op basis van de behoeften van de gebruiker of toepassing.
Beantwoord voordat je je werk naar de array verplaatst één vraag: waarvandaan herstel je de gegevens als de array verloren gaat? Als het antwoord ‘nergens vandaan’ is, maak dan eerst een back-up of kies een andere schijfconfiguratie.
Zie ook: Wat is een VPN?
