Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /var/www/vhosts/webconnexxion.com/httpdocs/raid/includes/functions/sessions.php on line 88
Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /var/www/vhosts/webconnexxion.com/httpdocs/raid/includes/functions/sessions.php on line 88
Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /var/www/vhosts/webconnexxion.com/httpdocs/raid/includes/functions/sessions.php on line 88
Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /var/www/vhosts/webconnexxion.com/httpdocs/raid/includes/functions/sessions.php on line 88
Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /var/www/vhosts/webconnexxion.com/httpdocs/raid/includes/functions/sessions.php on line 88
Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /var/www/vhosts/webconnexxion.com/httpdocs/raid/includes/functions/sessions.php on line 88
Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /var/www/vhosts/webconnexxion.com/httpdocs/raid/includes/functions/sessions.php on line 88
Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /var/www/vhosts/webconnexxion.com/httpdocs/raid/includes/functions/sessions.php on line 88
Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /var/www/vhosts/webconnexxion.com/httpdocs/raid/includes/functions/sessions.php on line 88
Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /var/www/vhosts/webconnexxion.com/httpdocs/raid/includes/functions/sessions.php on line 88 www.WebConneXXion.com | It s all about RAID
Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /var/www/vhosts/webconnexxion.com/httpdocs/raid/includes/functions/sessions.php on line 88 My Account | Cart Contents | Checkout
De term "RAID", Redundant Arrays of Inexpensive Disks, vindt haar
oorsprong in de Universiteit van Californi? op Berkeley. Op 1987 bogen een
aantal onderzoekers zich over een goedkope oplossing voor een snelle doch
veilige opslagsysteem. In die tijd waren grote, snelle en zeer betrouwbare
harde schijven relatief duur, je mag gerust spreken van prijsverschillen in
tienvoud. Het idee achter RAID is om een aantal goedkope kleine schijven
samen te laten werken als ??n grote schijf. Al die kleine schijven bij
elkaar waren toentertijd goedkoper dan ??n grote schijf van dezelfde
capaciteit.
Wanneer je meerdere schijven bij elkaar als ??n schijf laat werken, wordt de
(gezamelijke) kans groter dat een schijf overlijdt en dat daarmee gepaard
dataverlies optreedt. De betrouwbaarheid van zulke schijfconfiguraties werd
dan verhoogd met behulp van RAID.
In de loop van de tijd waren er steeds verschillende RAID configuraties
onderzocht en ontwikkeld. Elke RAID configuratie heeft zo haar eigen voor-
en nadelen, welke kunnen worden afgewogen tegen de eisen en doelstellingen
van het opslagsysteem. Bijvoorbeeld Databaseservers hebben naast een zo
optimaal mogelijk benut opslagcapaciteit een grotere eis met betrekking tot
leessnelheid dan tot schrijfsnelheid, in dit geval is RAID5 een geschikte
oplossing. Videobewerking daarentegen vereist naast een snelle leessnelheid
ook nog een snelle schrijfsnelheid, hiervoor is RAID 01 of 10 (ook wel 0+1
respectievelijk 1+0 genoemd) uitermate geschikt.
Eind de jaren negentig waren de prijsverschillen tussen de kleine en grote
harde schijven steeds kleiner; tegenwoordig is het zelfs zo dat bijvoorbeeld
??n 40GB harde schijf goedkoper is dan twee 20GB harde schijven. Mede
daardoor was de term Inexpensive (goedkoop) in RAID een beetje
misplaatst, deze werd langzamerhand dan ook gewijzigd in Independent
(onafhankelijk).
Single of Multiple?
Er zijn veel verschillende manieren om een RAID array (samenwerkende
harde schijven) te configureren, hieronder vallen de volgende methoden:
mirroring (kopieren), striping (verdelen) en parity check
(berekening van de pariteit bit). De verschillende manieren om een array te
maken worden levels genoemd. De levels worden weer onderverdeeld in
single en multiple levels, afhankelijk van de gebruikte RAID
methode. Zo is de single level RAID 0 louter striping en is de multiple
level RAID 15 een combinatie van mirroring (1) en parity check (5). De
multiple levels worden dus aangeduid door de twee single levels samen te
voegen, zoals dat de multiple level RAID 10 een combinatie is van de single
levels RAID 0 en RAID 1. Maar de multiple level RAID 01 is ??k een
combinatie van dezelfde single levels. Het verschil zit "em in de
configuratie (zie ook de plaatjes op de rechter kolom):
RAID 01
-
-
-
verdeel acht harde
schijven in twee RAID 0 arrays
nu heb je twee virtuele
harde schijven
Laat de twee virtuele harde schijven in RAID 1 lopen
RAID 10
-
-
-
verdeel acht harde
schijven in vier RAID 1 arrays
nu heb je vier virtuele
harde schijven
laat de vier virtuele
harde schijven in RAID 0 lopen
Hardware of Software?
Het verschil is simpel: hardwarematige RAID controllers hebben een eigen
processor en vaak ook eigen cache geheugen. De softwarematige controllers
maken gebruik van de processor en het geheugen op de moederbord.
Hardwarematige controllers zijn over het algemeen sneller, maar ook duurder.
Maar tegenwoordig is het dankzij de relatief snelle PC s beslist geen straf
om softwarematige RAID te draaien. Vooral de RAID levels zonder
pariteitsberekeningen zoals RAID0, RAID1 en RAID10 zijn tegenwoordig op hun
best in combinatie met een softwarematige controller.
De gangbare Promise en Highpoint chipjes/kaartjes
(FT100/FT133/HPT370/HPT374/etc) zijn allemaal softwarematige RAID
controllers. Het maakt nog steeds misbruik van de CPU en het geheugen op het
moederbord. De echte hardwarematige RAID controllers maken allemaal gebruik
van een ?igen CPU en ?igen geheugenruimte (nooit afgevraagd waarom die
"zware" RAID controllers in verhouding erg duur zijn?).
Je hebt wel twee soorten softwarematige RAID. De ene wordt gestuurd via de
BIOS/drivers (zoals bij de welbekende promise en highpoint controllers) en
de andere wordt louter via gespecialiseerde software gestuurd (zoals die is
ge?ntegreerd in Win2K/XP). Met het eerste heb je het voordeel dat je ervan
kan booten, bij de tweede zijn de array"s alleen benaderbaar wanneer het
hele besturingssysteem is opgestart. Maar de prestaties tussen deze twee
vormen van software RAID verschillen nauwelijks. In ieder geval is de tweede
vorm over het algemeen beter schaalbaar. Oftewel een extra schijf levert een
snelheidstoename op wat haast gelijk is aan de snelheid van desbetreffende
schijf (zie ook de plaatjes op de rechter kolom). Een ander groot voordeel
van OS-based software RAID onder Win2K/XP is dat je meerdere RAID levels
door elkaar heen kunt gebruiken en dan wel RAID0, RAID1 en RAID5, al dan
niet met behulp van een kleine Hack. Zie ook
Tweaks |
Win2K/XP RAID Hack.
Spanning: RAID of niet? Velen denken dat Spanning ook onder RAID valt, maar het tegendeel is
waar. Spanning is zo ongeveer het tegengestelde van meerdere partities op
??n harde schijf: ??n partitie bestaande uit meerdere harde schijven. De
manier van het lezen en schrijven van de data blijft onveranderd; er treedt
dus geen mirroring, striping en parity check op. Wanneer de eerste harde
schijf is volgeschreven, dan wordt er simpelweg aan de volgende harde schijf
begonnen en ga zo voorts.
Verschillende schijven in RAID mogelijk?
Ja, dat kan. Alleen moet je rekening houden met het feit dat de grootte en
de snelheid van de kleinste resp langzaamste schijf bepalend is voor de
totale grootte en snelheid. Stel, je hebt een 20GB 5400rpm en een 40GB
7200rpm schijf en je wilt deze in RAID0 laten draaien. Er wordt dan slechts
20GB van de 40GB schijf benut en de totale snelheid is ongeveer tweemaal de
snelheid van de 5400rpm schijf. Bij OS-based software RAID onder Win2K/XP
heb je het voordeel dat je de resterende ruimte ook gewoon kunt benutten.
Wat is het verschil tussen Cluster size en Block size?
Kort: Cluster size geldt voor de partitie en Block size geldt voor de array.
Hieronder volgt een iets diepzinnigere uitleg. Bij een Cluster size van
bijvoorbeeld 4KB wordt de data wordt per blokjes van 4KB over de partitie
verdeeld. Stel: je hebt een bestand van 10KB, dan zullen er 3 volledige
clusters in beslag worden genomen: 4KB - 4KB - 2KB. De resterende 2KB wordt
slackspace genoemd en kan niet gevuld worden met andere bestanden.
Bij een Block size van bijvoorbeeld 64KB wordt de data wordt per blokjes van
64KB over de schijven verdeeld. Stel: je hebt een bestand van 200KB
en een 2-disk RAID0 array, dan komt eerst 64KB op schijf A, daarna 64KB op
schijf B, daarna weer 64KB op schijf A en tenslotte de resterende 8KB op
schijf B. Hierbij is geen sprake van de zgn slackspace. De Block size staat
boven de Cluster size, dus deze blokken worden weer onderverdeeld over
clusters. De Block size is overigens minder relevant bij mirrors. Maar bij
stripes is een grotere Block size sneller wanneer je veel met grote
bestanden werkt (audio/video, etc). En een kleinere Block size is dan weer
sneller wanneer je veel met kleine bestanden werkt (Word documenten,
mailtjes, Operating System, etc).
En waar is de Chunk size goed voor?
Bij sommige RAID controllers zie je ook de BIOS optie "Chunk size" staan.
Dat is de minimale grootte van een datarequest dat de controller aan een
schijf van een RAID config kan doen. Het is alleen nuttig bij RAID configs
waarin striping wordt gebruikt (RAID0, RAID5, RAID10, etc.. en dus niet bij
RAID1 - mirroring). Hier heb je even een simpel voorbeeldje van de werking
van Chunk size: stel, je hebt een 2-disk RAID0 config met een block size (stripesize)
van 16KB en je wil daarvan een bestand van 1MB lezen. De controller moet dus
64 maal een blok van 16KB uitlezen. Bij een chunk size van 32KB wordt dus
eerst twee blokken (chunk size / block size = 32/16 = 2) bij de ene schijf
uitgelezen, daarna 2 blokken bij de andere schijf en dan weer 2 blokken bij
de ene schijf etcetera. Bij een chunk size van 128KB wordt dus omstebeurt
128/16 = 8 blokken bij de schijven uitgelezen. Wat betreft performance, hier
geldt hetzelfde als bij de block size/stripesize: wanneer je veel met grote
bestanden werkt (audio/video, etc), dan is een grotere chunk size sneller.
Een kleinere chunk size is dan weer sneller wanneer je veel met kleine
bestanden werkt (Word documenten, mailtjes, Operating System, etc). Ook
geldt: hoe sneller de schijfconfig is (SCSI, SATA, IDE schijven op aparte
kanalen, etc), hoe kleiner de chunk size kan zijn, zonder dat je
performanceverlies bemerkt.