RAID FAQ

Pagina: 1
Acties:
  • 57.347 views sinds 30-01-2008

Acties:
  • 0 Henk 'm!

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Topicstarter

Acties:
  • 0 Henk 'm!

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Topicstarter

Introductie

Goedkoop of Onafhankelijk?

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.

Preventie dataverlies: 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.

Verschillende configuraties: 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.

Van goedkoop naar onafhankelijk: 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).

Terug naar boven
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).

Twee mogelijkheden: 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:

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

Terug naar boven
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 het moederbord. Hardwarematige controllers zijn over het algemeen sneller, maar ook duurder.

HardwareRAID: dankzij een gespecialiseerde I/O processor zijn praktisch alle RAID levels met pariteitsberekeningen (RAID3, RAID5, RAID15, etc) sneller op hardwarematige controllers dan op softwarematige controllers. Bij RAID0, RAID1, RAID10 en JBOD is een hardwarematige controller in principe geldverspilling. De snelheidsverschil is haast nihil en soms zelfs in het voordeel van de softwarematige oplossing.

SoftwareRAID: 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? ;) ).

Twee soorten SoftwareRAID: je hebt wel twee soorten softwarematige RAID. De ene wordt gestuurd via de BIOS/drivers, zoals bij de welbekende Promise en Highpoint controllers (ook wel firmware RAID genoemd), 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 van elk denkbaar RAID array kunt booten, bij de tweede kun je alleen booten van een mirror, terwijl de striped array's pas benaderbaar zijn wanneer het hele besturingssysteem is opgestart. Zie voor meer achtergrondinformatie ook dit gedeelte van OM FAQ: Basic vs Dynamic disks.

Prestatieverschillen: 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.

MultiRAID: 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 onderstaand screenshot:

Klik om te vergroten
Een dergelijke configuratie is niet mogelijk met een hardware danwel firmware RAID controller. Intel biedt met haar ICH6 southbridge (welke in de Intel 9xx chipsets voorkomt) wel de mogelijkheid om een RAID0 én een RAID1 array op 2 schijven te indelen. Maar daar blijft het ook bij.

Win2K/XP RAID Hack: de beschrijving van de hack is te vinden in [TIP] Software RAID5 onder windows XP Pro en op The BalusC Server. Tot slot kun je ervaringen met software RAID in de tweede vorm (OS-based) hier terugvinden:
Abbadon in Post hier je RAID0 scores! (SCSI)
BalusC in Post hier je RAID0 scores! (IDE)
BalusC in Post hier je RAID0 scores! (SCSI)
BalusC in Het grote IOMeter benchmark topic (IDE)
BalusC in Het grote IOMeter benchmark topic (SCSI)

Review: in BalusC's review van de Mylex AcceleRAID 600 zijn ook enkele SoftwareRAID benchmarks meegenomen ter vergelijk met de HardwareRAID scores: [Review] Mylex AcceleRAID 600

Terug naar boven
Spanning (JBOD): 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. Spanning wordt overigens ook weleens JBOD genoemd: Just a Bunch Of Disks.

Terug naar boven
Kan ik een single HDD aan een RAID controller hangen?

Ja, dat kan. Gewoon even de HDD aan de controller hangen. Bij sommige RAID controllers (bijv. Highpoint) hoef je verder niks te doen, terwijl je bij andere RAID controllers (bijv. oudere Promise exemplaren) eerst een array moet toewijzen eer je van de HDD gebruik kan maken. Duik hiertoe de RAID BIOS in, selecteer de harddisk en maak een single-disk RAID0/1/whatever array aan :Y)

Jumpertje: op de modernere moederborden hoef je zelfs slechts een jumpertje te omzetten om de RAID controller om te zetten in een normale IDE controller. Zie de handleiding van het moederbord voor meer details.

Terug naar boven
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 2MB cache schijf en een 40GB 7200rpm 8MB cache 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. De schijfcache blijft onaangeroerd.

SoftwareRAID: mocht je in het geval van verschillende schijfgroottes de beschikbare schijfruimte 100% te willen benutten, dan ben je beter af met OS-based software RAID onder Win2K/XP. Zie ook Hardware of Software? :)

Terug naar boven
Kan ik veranderen van RAID controller met behoud van data?

Bij zuivere mirrors (RAID1) is dat tot zover bekend geen probleem. Je hoeft enkel de array te verhuizen en eventueel in de BIOS de bronschijf opnieuw rebuilden naar de mirrorschijf. Maar bij RAID levels waarbij striping wordt gebruikt (RAID0, RAID5, RAID10, etc) is dat minder makkelijk. De stelregel is:

  • zelfde merk/type > zelfde merk/type = geen probleem
  • zelfde merk, ene type > andere type = geen probleem, meestal alleen "forward compatible"
  • ene merk > andere merk = no-go

Forward compatible: met "forward compatible" wordt er dus bedoeld, dat wanneer je de schijven verplaatst van een oudere controller (bijv. Promise Fasttrak66) naar een nieuwere type controller van hetzelfde merk (bijv. Promise Fasttrak133), dat de array gewoon opnieuw wordt herkend en de data dus behouden blijft. Omgekeerd gaat dat niet altijd.

Terug naar boven
Kan ik een schijf uit een RAID1 array halen en deze zó uitlezen?

Dat hangt ervan af: wanneer je OS-based SoftwareRAID gebruikt, dan is het totaal geen probleem. Een voorwaarde is wel dat je Windows 2000 of XP draait. Soms laat de schijf zich niet zien, dan zul je deze even via de schijfbeheer moeten "importeren", dat wijst normaal gesproken vanzichzelf uit. Wanneer je daarentegen FirmwareRAID of HardwareRAID draait, dan geldt hiervoor de punt hierboven: Kan ik veranderen van RAID controller met behoud van data? De beste aanpak is dus: aan dezelfde controller hangen en dan uitlezen.

Terug naar boven
Kan ik een schijf/array zonder dataverlies uitbreiden?

Dat hangt af van de RAID controller. De meeste controllers ondersteunen de uitbreiding van een bestaande RAID array met extra schijf/schijven zonder dataverlies alleen bij single RAID levels met een pariteit (RAID3/4/5/etc). Enkele controllers, vooral de duurdere exemplaren (Areca bijvoorbeeld), ondersteunen uitbreidingen bij alle denkbare levels. Dat is normaliter wel in de handleiding van de controller terug te vinden en het is vooralsnog niet mogelijk bij firmware RAID en software RAID. Het zonder dataverlies uitbreiden van een enkele schijf naar een RAID array is in het algemeen alleen mogelijk bij mirrors (RAID1) en dat wordt door praktisch alle controllers ondersteund, ook door firmware RAID en software RAID. De duurdere controllers (Areca bijvoorbeeld) kunnen zonder dataverlies van een enkele schijf naar een willekeurige RAID array omgezet worden.

Terug naar boven
Kan ik een RAID level zonder dataverlies omzetten in andere level?

Dat is alleen mogelijk met specifieke hardware- en firmware controllers, bijvoorbeeld die van Areca, Intel en Promise. Dat is gewoonlijk wel in de specificaties en de handleiding van de controller terug te vinden. Dit eigenschap wordt gewoonlijk "RAID level migration" genoemd. Bij andere software/firmware/hardware controllers die het niet ondersteunen moet je dus backuppen naar andere harddisk(s) CD's, DVD's en/of tapes, de array breken, een nieuwe array bouwen en vervolgens de backup terugzetten.

Terug naar boven
Wat is het verschil tussen Cluster size en Block size?

Kort: cluster size geldt voor de partitie en block size (ook wel stripe size genoemd) geldt voor de array. Hieronder volgt een iets diepzinnigere uitleg.

Partitie: 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.

Schijven: 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 :)

Prestaties: de block size is overigens minder relevant bij mirrors. Maar bij stripes is een grotere block size van minimaal 128KB sneller wanneer je veel met grote bestanden werkt (audio/video, etc). En een kleinere block size van maximaal 128KB is dan weer sneller wanneer je veel met kleine bestanden werkt (Word documenten, mailtjes, Operating System, etc).

Terug naar boven
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).

Voorbeeldje: 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 :)

Prestaties: 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 bij grote bestanden t.o.v. de kleine bestanden.

Terug naar boven
Mijn RAID array is broken, hoe red ik de data?

Hier staat een stukje over in OM FAQ - Hoe krijg ik verloren gegane data terug?.

Broken RAID Arrays, terwijl de schijven in orde zijn: deze kun je meestal nog wel herstellen door nogmaals exact dezelfde RAID array in de BIOS van de controller te instellen. Verder zijn er (freeware) tooltjes beschikbaar wanneer je serieuze Broken RAID Array problemen hebt. Kijk eens op de Highpoint RAID Controller FAQ van Sudhian.com. Een groot deel van deze tips werken ook met de andere merken RAID controllers. De datarecoverytooltjes UFS Explorer en R-Studio kunnen trouwens ook met broken RAID arrays werken. Met het RAID Reconstructor tooltje kun je een image maken van een broken RAID array, waarna je GetDataBack erop los kan laten.

Terug naar boven
Een aantal interessante topics met betrekking tot RAID

[Review] Mylex AcceleRAID 600
Wat is het snelst? 4 HD's in RAID
[TIP] Software RAID5 onder windows XP Pro
[HOWTO] SATA RAID met IDE installeren op A7N8X
[RAID] Promise Ultra100-TX2 gehacked naar ATA133 RAID
[Ervaringen] Software RAID
Post hier je RAID0 scores!
Meerdere RAID controllers in 1 systeem

Terug naar boven
Enkele termen

Hieronder worden enkele aan RAID gerelateerde termen nader toegelicht:

bit - een bit is gelijk aan 0 óf 1
byte - een byte is gelijk aan acht bits
data - alle data dat wordt opgeslagen bestaat uit bits, dat zijn dus allemaal enen en nullen
redundant - de data wordt meer dan één keer vastgelegd door mirroring en/of pariteit
mirroring - de data wordt exact gekopieërd naar een andere schijf
pariteit - dat is grof gezegd de som van de data, stel: er valt een schijf uit, dan kan de oorspronklijke data met behulp van de bestaande data en de pariteit worden achterhaald
striping - de data wordt in meerdere stukken gesplitst en verdeeld over meerdere schijven, zuivere striping (zonder enige vorm van mirroring en pariteit) is géén vorm van redundantie
block - een block is een deel van de data met een vaste grootte, dit kan 4KB, 8KB, 16KB, 32KB, etc. zijn
array - een groep harde schijven dat als één harde schijf werkt

De verschillende vormen van opslag worden hierna ook nader toegelicht:

bit-level striping - de data wordt per bit verdeeld over meerdere schijven
byte-level striping - de data wordt per (kilo)byte verdeeld over meerdere schijven
block-level striping - de data wordt per block verdeeld over meerdere schijven
aparte pariteit - de pariteit wordt vastgelegd in één afzonderlijke schijf
verspreide pariteit - de pariteit wordt vastgelegd in meerdere schijven

Terug naar boven

[ Voor 255% gewijzigd door BalusC op 28-06-2007 18:03 ]


Acties:
  • 0 Henk 'm!

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Topicstarter

Single Levels

Level 0 - Block-level striping zonder pariteit

In feite mag RAID 0 niet tot RAID worden gerekend, omdat pure striping niet Redundant is. Immers, de data wordt simpelweg zonder enige vorm van extra controle verdeeld over de schijven. Dat verklaart ook min of meer de benaming van deze level: RAID 0 (nul).

Bij RAID 0 wordt de data in blokjes verdeeld en elk blokje komt telkens op een andere harde schijf terecht. De grootte van deze blokken zijn vooraf instelbaar. Geen redundancy betekent ook geen bescherming van de data; mocht er een harde schijf uitvallen, dan ben je al je data kwijt.

EigenschapBeschrijving
controller eisenondersteund door praktisch elke controller, zowel SCSI als IDE
aantal schijvenminimaal twee harde schijven, het maximum is afhankelijk van de controller
array capaciteit(grootte van kleinste schijf) x (aantal schijven)
bruikbare opslagruimte100%, indien identieke schijven worden gebruikt
fout tolerantiegeen, alle data gaat verloren bij de minste geringste fout
beschikbaarheidlaagst van alle RAID levels, door het ontbreken van fout tolerantie is er relatief veel tijd nodig om alles te herstellen
degradatie en herstelniet van toepassing
random leessnelheidzeer goed, op haar best als je een grotere blok grootte gebruikt
random schrijfsnelheidzeer goed, op haar best als je een grotere blok grootte gebruikt
sequentiële leessnelheiduitmuntend
sequentiële schrijfsnelheidzeer goed
kostenlaagst van alle RAID levels
toepassingonbelangrijke data, zoals data dat continu aan veranderingen onderhevig is, audio en video, webservers, zware spelletjes en virtueel geheugen

Terug naar boven
Level 1 - Mirroring

Bij RAID 1 wordt de data gekopieerd naar twee harde schijven, waardoor er op elke harde schijf exact dezelfde data staat. Dit verhoogt de veiligheid; immers, als de ene harde schijf kapot gaat, dan heb je nog altijd een backup ervan op de andere harde schijf.

EigenschapBeschrijving
controller eisenondersteund door praktisch elke controller, zowel SCSI als IDE
aantal schijventwee harde schijven
array capaciteitgrootte van kleinste schijf
bruikbare opslagruimte50%, indien identieke schijven worden gebruikt
fout tolerantiezeer goed, er is zogezegd een realtime backup
beschikbaarheidzeer goed, de meeste controllers ondersteunen automatische herstel van de data
degradatie en hersteldegradatie brengt de prestatie niveau tot de niveau van een enkele harde schijf en herstel is relatief snel
random leessnelheidgoed, beter dan een enkele harde schijf, maar slechter dan de meeste RAID levels
random schrijfsnelheidgoed, beter dan een enkele harde schijf, maar slechter dan de meeste RAID levels
sequentiële leessnelheidvoldoende, ongeveer dezelfde als een enkele harde schijf
sequentiële schrijfsnelheidgoed, beter dan de meeste RAID levels
kostenrelatief hoog, door de beperkte opslag capaciteit
toepassingbelangrijke data, zoals boekhoudingen, kleine databaseservers, thuisgebruikers met mp3, divx, etc.

Terug naar boven
Level 1.5 - Block-level striping over twee schijven met verspreide pariteit

De RAID level 1.5 is ontwikkeld door Highpoint en is in principe een 'veredelde' vorm van mirroring. Highpoint claimt hiermee de schrijfsnelheid van RAID1 te kunnen combineren met de relatief hoge leessnelheid van RAID0. Een beetje intelligente controller zou dat in principe inderdaad moeten kunnen bereiken. Maar de praktijk met de tot zover als enig beschikbare RAID1.5 controller Highpoint HPT372N laat anders zien: het performeert praktisch dezelfde als RAID1.

De eigenschappen komen voorlopig volledig overeen met die van RAID1. Misschien dat dit in de toekomst verandert wanneer er beter afgestelde controllers op de markt komen, waarbij de leessnelheid ook daadwerkelijk die van RAID0 benadert.

Terug naar boven
Level 2 - Bit-level striping met ECC

Bij RAID 2 wordt ECC (Error Correcting Code) gebruikt om de fouten in de data te controleren en eventueel te corrigeren. Dit is vergelijkbaar met de welbekende ECC geheugenreepjes. De striping geschiedt niet per data blok, maar per data bit, wat het allerkleinste deel van de data is. Als er zich een fout in een enkele bit voordoet, dan kan het 'on the fly' (zonder vertraging) worden gecorrigeerd.

Deze RAID level is nooit echt groot geworden. Het is erg duur en er zijn na RAID 2 ook nog andere levels met parity check ontworpen, welke simpelweg superieur zijn aan RAID 2.

EigenschapBeschrijving
controller eisengespecialiseerde controller met ECC processor vereist (zeldzaam)
aantal schijvenafhankelijk van de controller, een veel voorkomende configuratie bestaat uit 10 harde schijven voor data en 4 harde schijven voor ECC (10+4), verder zijn er ook 32+7 configuraties (39 harde schijven!)
array capaciteitafhankelijk van de controller, bij 10+4 zijn dat dus 10 harde schijven
bruikbare opslagruimteafhankelijk van de controller, bij 10+4 is dat 71%
fout tolerantievoldoende
beschikbaarheidzeer goed, voornamelijk door de 'on the fly' foutcorrectie
degradatie en hersteldegradatie heeft een relatief kleine invloed en herstel is relatief snel
random leessnelheidvoldoende, door de bit level striping is het niet mogelijk om de schijven tegelijk te benaderen
random schrijfsnelheidslecht, door de bit level striping en ECC berekeningen
sequentiële leessnelheidzeer goed, door het grote aantal schijven
sequentiële schrijfsnelheidvoldoende
kostenerg hoog, door het grote aantal schijven en een gespecialiseerde controller
toepassingafgeschreven, doordat er erg hoge kosten aan verbonden zijn en door de relatief slechte prestaties wordt RAID 2 tegenwoordig niet meer gebruikt in moderne systemen

Terug naar boven
Level 3 - Byte-level striping met aparte pariteit

De data wordt bij RAID 3 gesplitst in stukjes van kleiner dan 1KB, waarvan de precieze grootte afhankelijk is van de controller. Deze stukjes worden vervolgens verspreid over verschillende schijven, terwijl er zich een pariteit controle op een aparte schijf plaatsvindt.

Soms is er verwarring met RAID 4, aangezien dat de principe nagenoeg gelijk is. Echter, er is wel een fundamenteel verschil, bij RAID 4 wordt de data in blokken van groter dan 4KB gesplitst. De blokgroottes van RAID 4 zijn ook nog zelf naar eigen smaak in te stellen.

EigenschapBeschrijving
controller eisengespecialiseerde controller vereist
aantal schijvenminimaal drie harde schijven, het maximum is afhankelijk van de controller
array capaciteit(grootte van kleinste schijf) x (aantal schijven - 1)
bruikbare opslagruimte(aantal schijven - 1) / (aantal schijven), indien identieke schijven worden gebruikt
fout tolerantiegoed, kan verlies van een hele schijf tolereren
beschikbaarheidzeer goed, hot spare en automatisch herstel zijn gewoonlijk standaard
degradatie en hersteldegradatie heeft een relatief kleine invloed en herstel duurt relatief lang
random leessnelheidgoed, maar niet zeer goed, door de byte level striping
random schrijfsnelheidslecht, door de byte level striping en pariteit berekeningen
sequentiële leessnelheidzeer goed
sequentiële schrijfsnelheidvoldoende
kostenvallen best wel mee
toepassinggrote bestanden, zoals multimedia en grote databases

Terug naar boven
Level 4 - Block-level striping met aparte pariteit

Terwijl bij RAID 3 de data op byte-level wordt gestript, wordt de data bij RAID 4 in blokken verdeeld, waarvan de grootte vooraf instelbaar is. Dat vergroot de random lees- en schrijfsnelheden, maar het verkleint de sequentiële lees- en schrijfsnelheden.

EigenschapBeschrijving
controller eisengespecialiseerde controller vereist
aantal schijvenminimaal drie harde schijven, het maximum is afhankelijk van de controller
array capaciteit(grootte van kleinste schijf) x (aantal schijven - 1)
bruikbare opslagruimte(aantal schijven - 1) / (aantal schijven), indien identieke schijven worden gebruikt
fout tolerantiegoed, kan verlies van een hele schijf tolereren
beschikbaarheidzeer goed, hot spare en automatisch herstel zijn gewoonlijk standaard
degradatie en hersteldegradatie heeft een relatief kleine invloed en herstel duurt relatief lang
random leessnelheidzeer goed, op haar best als je een grotere blok grootte gebruikt en als de controller de schijven onafhankelijk van elkaar kan benaderen
random schrijfsnelheidvoldoende, door de pariteit berekeningen
sequentiële leessnelheidgoed
sequentiële schrijfsnelheidvoldoende
kostenvallen best wel mee
toepassingwordt als een compromis gezien tussen RAID 3 en RAID 5

Terug naar boven
Level 5 - Block-level striping met verspreide pariteit

Dat is een van de meest populaire RAID levels. Het lijkt op RAID 4, maar de pariteit is in dit geval ook met de data mee verspreid over de schijven. Je kunt zo ongeveer spreken van een gestripte pariteit. Dat heeft een positieve invloed op de schrijfsnelheden.

EigenschapBeschrijving
controller eisengespecialiseerde controller vereist
aantal schijvenminimaal drie harde schijven, het maximum is afhankelijk van de controller
array capaciteit(grootte van kleinste schijf) x (aantal schijven - 1)
bruikbare opslagruimte(aantal schijven - 1) / (aantal schijven), indien identieke schijven worden gebruikt
fout tolerantiegoed, kan verlies van een hele schijf tolereren
beschikbaarheidzeer goed, hot spare en automatisch herstel zijn gewoonlijk standaard
degradatie en herstelbeiden voldoende, niet te langzaam, maar ook niet snel
random leessnelheiduitmuntend, op haar best als je een grotere blok grootte gebruikt
random schrijfsnelheidvoldoende, door de pariteit berekeningen, maar nog altijd beter dan RAID 3 en 4
sequentiële leessnelheidzeer goed, op haar best als je een grotere blok grootte gebruikt
sequentiële schrijfsnelheidvoldoende
kostenvallen best wel mee
toepassingalgemeen, van kleine webservers tot grote databaseservers, maar wanneer er een grotere schrijfsnelheid wordt vereist, ben je beter af met RAID 10

Terug naar boven
Level 6 - Block-level striping met verspreide dubbele pariteit

Je kunt RAID 6 ook 'RAID 5 met een extra pariteit' noemen. Verder zijn er geen noemenswaardige verschillen, zij het dan dat de lees- en schrijfsnelheid iets minder is dan bij RAID 5.

EigenschapBeschrijving
controller eisengespecialiseerde controller vereist
aantal schijvenminimaal vier harde schijven, het maximum is afhankelijk van de controller
array capaciteit(grootte van kleinste schijf) x (aantal schijven - 2)
bruikbare opslagruimte(aantal schijven - 2) / (aantal schijven), indien identieke schijven worden gebruikt
fout tolerantieuitmuntend, kan verlies van twee hele schijven tolereren
beschikbaarheiduitmuntend
degradatie en herstelbeiden voldoende, niet te langzaam, maar ook niet snel
random leessnelheidzeer goed, op haar best als je een grotere blok grootte gebruikt
random schrijfsnelheidslecht, door de dubbele pariteit berekeningen
sequentiële leessnelheidgoed, op haar best als je een kleinere blok grootte gebruikt
sequentiële schrijfsnelheidvoldoende
kostenrelatief hoog, door de beperkte opslag capaciteit
toepassingin feite net als RAID 5, maar dan betrouwbaarder, alhoewel RAID 6 toch niet vaak wordt gebruikt dankzij hot spare mogelijkheden bij RAID 5

Terug naar boven
Level 7 - Asynchrone block-level striping met aparte pariteit

Deze bijzondere level is een gepatenteerd product van Storage Computer. Het is in principe gewoon een HDD-kastje met een enorm snelle RAID4 "controller" (mini-mobo, mini-CPU, wat cache geheugen, gespecialiseerd Firmware/OS). Je kunt zo'n ding een realtime-RAID4 controller noemen; je hebt in principe geen tijdverlies bij het schrijven/lezen van de schijven. Storage Computer heeft er een patent op genomen en "RAID7" genoemd. Het was verkrijgbaar onder de noemers StorageSuite en OmniRAID.

EigenschapBeschrijving
controller eisengespecialiseerde controller met processor en cache vereist
aantal schijvenminimaal drie harde schijven, het maximum is afhankelijk van de controller
array capaciteit(grootte van kleinste schijf) x (aantal schijven - 1)
bruikbare opslagruimte(aantal schijven - 1) / (aantal schijven), indien identieke schijven worden gebruikt
fout tolerantiegoed, kan verlies van een hele schijf tolereren
beschikbaarheiduitmuntend, mede door het gebruik van meerdere hot spares
degradatie en herstelveel beter dan alle RAID levels, door hardwarematige ondersteuning
random leessnelheiduitmuntend, op haar best als je een grotere blok grootte gebruikt
random schrijfsnelheidzeer goed, mede door de cache
sequentiële leessnelheiduitmuntend, op haar best als je een grotere blok grootte gebruikt
sequentiële schrijfsnelheidzeer goed
kostenerg hoog, door het gebruik van een controller met een gespecialiseerde processor en cache
toepassingvoor diegenen die de beste van het beste willen, maar minderbedeelden kunnen nog altijd ruimschoots mee met RAID 10

Terug naar boven

[ Voor 253% gewijzigd door BalusC op 03-10-2006 13:14 ]


Acties:
  • 0 Henk 'm!

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Topicstarter

Multiple Levels

Level 01 en 10 - Mirroring en striping zonder pariteit

De meest populaire multiple level RAID zijn zonder twijfel RAID 01 en RAID 10. Vooral RAID 10, maar soms ook RAID 01, worden ook ondersteund door goedkopere controllers, waardoor deze RAID levels ook toegankelijk zijn voor de kleinbehuisde particulier. Deze RAID levels zijn een uitstekende combinatie van de snelle RAID 0 en de veilige RAID 1, wat resulteert op een relatief snel, doch veilig systeem. En dat allemaal zonder noodzaak tot een dure controller om de pariteits berekeningen uit te voeren.

De verschillen tussen deze twee levels zijn niet wereldschokkend groot, maar over het algemeen heeft RAID 10 een betere fout tolerantie en een snellere herstel van data dan RAID 01. Dat komt vooral doordat er bij RAID 01 eerst gemirrored en dan gestript wordt; mocht er wat data verloren gaan, dan moet er opnieuw worden gemirrored én gestript. Bij RAID 10 hoeft er vaak alleen te worden gemirrored.

EigenschapBeschrijving
controller eisenmeestal wordt alleen RAID 01 ondersteund, terwijl de duurdere controllers de beide levels ondersteunen
aantal schijveneen even aantal harde schijven met een mininum van vier, het maximum is afhankelijk van de controller
array capaciteit(grootte van kleinste schijf) x ((aantal schijven) / 2)
bruikbare opslagruimte50%, indien identieke schijven worden gebruikt
fout tolerantiezeer goed voor RAID 01 en uitmuntend voor RAID 10
beschikbaarheidzeer goed voor RAID 01 en uitmuntend voor RAID 10
degradatie en hersteldegradatie en herstel hebben een relatief kleine invloed op RAID 10 en is wat groter bij RAID 01
random leessnelheidzeer goed, op haar best als je een grotere blok grootte gebruikt
random schrijfsnelheidgoed, op haar best als je een grotere blok grootte gebruikt
sequentiële leessnelheidzeer goed
sequentiële schrijfsnelheidgoed
kostenrelatief hoog, door de beperkte opslag capaciteit
toepassingbelangrijke data dat snel verkrijgbaar is, zoals enterprise servers, grotere databaseservers en de thuisgebruiker met mp3, divx, etc.

Terug naar boven
Level 03 en 30 - Byte-level striping met aparte pariteit,
gecombineerd met block-level striping

De RAID levels 03 en 30 maken gebruik van de snelheid van een dubbele stripe en de veiligheid van de pariteit. Bij RAID 03 worden de datablokken die uit RAID 3 komen op hun beurt weer gestript door RAID 0, terwijl dat bij RAID 30 precies omgekeerd is. Velen noemen RAID 30 ook wel RAID 53, wat helemaal onjuist is. De data ondergaat eerst een zuivere stripe, RAID 0 dus, voordat de pariteit wordt berekend door RAID 3.

De verschillen zijn hier ook marginaal. RAID 30 wint met een kleine marge door de grotere fout tolerantie en een snellere herstel van data.

EigenschapBeschrijving
controller eisengespecialiseerde controller vereist
aantal schijvenminimaal zes harde schijven, het maximum is afhankelijk van de controller
array capaciteitRAID 03: (grootte van kleinste schijf) x (aantal schijven in een RAID 0 set) x ((aantal RAID 0 sets) - 1)
RAID 30: (grootte van kleinste schijf) x ((aantal schijven in een RAID 3 set) - 1) x (aantal RAID 3 sets)
bruikbare opslagruimteRAID 03: ((aantal RAID 0 sets) - 1) / (aantal RAID 0 sets)
RAID 30: ((aantal schijven in een RAID 3 set) - 1) / (aantal schijven in een RAID 3 set)
fout tolerantiegoed voor RAID 03 en zeer goed voor RAID 30
beschikbaarheidzeer goed
degradatie en hersteldegradatie en herstel hebben een relatief kleine invloed op RAID 30, doch meer dan bij RAID 10, en is wat groter bij RAID 03
random leessnelheidzeer goed, op haar best als je een grotere blok grootte gebruikt
random schrijfsnelheidvoldoende
sequentiële leessnelheiduitmuntend
sequentiële schrijfsnelheidgoed
kostenrelatief hoog, door het grote aantal schijven en een gespecialiseerde controller, maar bedenk wel dat opslag capaciteit beter is dan bij RAID 01 en 10
toepassingovervloed aan belangrijke data dat snel verkrijgbaar is, zoals enterprise servers, grotere database servers en file servers

Terug naar boven
Level 05 en 50 - Block-level striping met verspreide pariteit,
gecombineerd met block-level striping

De RAID levels 05 en 50 vertonen grote overeenkomsten met 03 en 30, met natuurlijk als enige verschil dat er RAID 5, block-level striping met een verspreide pariteit, wordt gebruikt in plaats van RAID 3. RAID 05 en 50 profiteren van alle voordelen van RAID 5, verrijkt met het grootste voordeel van RAID 0: een goede random schrijfsnelheid. Evenals de andere multiple RAID levels bieden deze RAID levels een grotere fout tolerantie, zeker bij RAID 50.

EigenschapBeschrijving
controller eisengespecialiseerde controller vereist
aantal schijvenminimaal zes harde schijven, het maximum is afhankelijk van de controller
array capaciteitRAID 05: (grootte van kleinste schijf) x (aantal schijven in een RAID 0 set) x ((aantal RAID 0 sets) - 1)
RAID 50: (grootte van kleinste schijf) x ((aantal schijven in een RAID 5 set) - 1) x (aantal RAID 5 sets)
bruikbare opslagruimteRAID 05: ((aantal RAID 0 sets) - 1) / (aantal RAID 0 sets)
RAID 50: ((aantal schijven in een RAID 5 set) - 1) / (aantal schijven in een RAID 5 set)
fout tolerantiegoed voor RAID 05 en zeer goed voor RAID 50
beschikbaarheidzeer goed
degradatie en hersteldegradatie en herstel hebben een relatief kleine invloed op RAID 50, en is wat groter bij RAID 05
random leessnelheiduitmuntend
random schrijfsnelheidgoed
sequentiële leessnelheidzeer goed
sequentiële schrijfsnelheidgoed
kostenrelatief hoog, door het grote aantal schijven en een gespecialiseerde controller, maar bedenk wel dat opslag capaciteit beter is dan bij RAID 01 en 10
toepassingovervloed aan belangrijke data dat snel verkrijgbaar en verwerkbaar is, zoals grotere database servers en file servers

Terug naar boven
Level 15 en 51 - Block-level striping met verspreide pariteit,
gecombineerd met mirroring

De RAID levels 15 en 51 zijn de enige levels die gebruik maken van zowel mirroring als parity check. Deze levels zijn vergelijkbaar met de RAID 01 en 10, behalve dan dat er zich een pariteit controle tijdens de striping plaatsvindt.

Door het gebruik van de beide redundantie methoden zijn de fout tolerantie en de beschikbaarheid ongetwijfeld uitmuntend te noemen. Maar daar staat tegenover dat er wel veel verlies van opslagruimte optreedt. Bij een minimale configuratie van 6 schijven is de bruikbare opslagruimte zelfs slechts 33%.

EigenschapBeschrijving
controller eisengespecialiseerde controller vereist, eventueel met extra hardware- of softwarematige besturing
aantal schijvenminimaal zes harde schijven, het maximum is afhankelijk van de controller
array capaciteit(grootte van kleinste schijf) x (((aantal schijven) / 2) - 1)
bruikbare opslagruimte(((aantal schijven) / 2) - 1) / (aantal schijven)
fout tolerantieuitmuntend
beschikbaarheiduitmuntend
degradatie en herstelbeiden voldoende, niet te langzaam, maar ook niet snel
random leessnelheidzeer goed, op haar best als je een grotere blok grootte gebruikt
random schrijfsnelheidgoed, op haar best als je een grotere blok grootte gebruikt
sequentiële leessnelheidzeer goed
sequentiële schrijfsnelheidgoed
kostenerg hoog, door het grote aantal schijven, een gespecialiseerde controller en de beperkte opslag capaciteit
toepassingzeer belangrijke data dat een zeer hoge fout tolerantie vereist, zoals de zogenaamde critical mission servers, maar in de praktijk ben je zeker niet veel slechter af met de relatief veel goedkopere RAID 10

Terug naar boven

[ Voor 243% gewijzigd door BalusC op 18-05-2005 11:32 ]


Acties:
  • 0 Henk 'm!

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Topicstarter

Samenvatting

Overzicht van alle levels

Afkortingen

lv - RAID level
as - aantal schijven
ac - array capaciteit
bo - beschikbare opslagruimte
ft - fout tolerantie
bh - beschikbaarheid
rl - random leessnelheid
rs - random schrijfsnelheid
sl - sequentiële leessnelheid
ss - sequentiële schrijfsnelheid
ko - kosten
S - de grootte van het kleinste schijf
N - aantal schijven


Tabel

lvasacboftbhrlrsslssko
02,3,4,..SxN100%*************************
1/1.52SxN/250%***********************
2varieërtvarieërt70%~80%***********************
33,4,5,..Sx(N-1)(N-1)/N***********************
43,4,5,..Sx(N-1)(N-1)/N************************
53,4,5,..Sx(N-1)(N-1)/N**************************
64,5,6,..Sx(N-2)(N-2)/N**************************
73,4,5,..Sx(N-1)(N-1)/N***********************************
01/104,6,8,..SxN/250%***************************
03/306,8,9,..SxN0x(N3-1)(N3-1)/N3******************************
05/506,8,9,..SxN0x(N5-1)(N5-1)/N5*******************************
15/516,8,10,..Sx((N-2)-1)((N/2)-1)/N******************************


Bron: The BalusC Server
Opmerkingen en/of aanmerkingen? Mail BalusC dan gerust.

©2003 BalusC






Win2K/XP RAID Hack

Dynamisch
Windows 2000 Pro en Windows XP Pro zijn voorzien van een gestripte versie van de Veritas Volume Manager. Dat is een tooltje waarmee je dynamische volumes op de harddisks kunt aanmaken en beheren. In de eerste instantie is dat handig wanneer je een extra harddisk aan je systeem toevoegt en een bestaande partitie zonder gegevensverlies kan uitbreiden naar de nieuwe harddisk, zodat je extra schijfruimte onder eenzelfde schijfletter krijgt. In het jargon wordt dat ook wel Spanning en JBOD (Just a Bunch Of Disks) genoemd.

Maar het tooltje heeft meer mogelijkheden, het kan ook RAID volumes aanmaken en dan wel RAID0 (Striping), RAID1 (Mirroring) en RAID5 (Striping met pariteit). Enkel zijn de laatste twee vormen van RAID voorbehouden aan de Server versies van de genoemde besturingssystemen. Maar dat is natuurlijk met een kleine aanpassing realiseerbaar in de Pro versies (let wel: dit is niet mogelijk in XP Home). De Win2K/XP RAID Hack is hieronder beschreven.

Voor meer informatie omtrent RAID kun je terecht op de
RAID FAQ

Let op: wanneer je na de hack SP2 gaat installeren, dan worden de gehackte bestanden vervangen door nieuwere versies. De bestaande SWRAID1 en SWRAID5 volumes zullen hierna niet meer bereikbaar worden. Maar je kunt gewoon de hack opnieuw doen op de nieuwe bestanden. Daarna zul je de volumes terugkrijgen zonder enige vorm van dataverlies.
Benodigdheden & Methode
  • Windows 2000 Professional of Windows XP Professional
  • het bestand \%systemroot%\system32\dmadmin.exe[/b]
  • het bestand \%systemroot%\system32\dmconfig.dll[/b]
  • het bestand \%systemroot%\system32\drivers\dmboot.sys[/b]
  • een Hex Editor, zoals HHD Hex Editor 2.0 (1,00 MB)
De %systemroot% directory is dus de directory waar Windows is geïnstalleerd. Voor Win2K is dat gewoonlijk \winnt\ en voor WinXP is dat \windows\. Kopieer de genoemde bestanden naar een andere subdirectory en maak een dubbele backup, zodat je in geval van nood de originele bestanden alsnog kunt terugzetten. Ga dan als volgt met een hex-editor te lijf:

ScreenshotUitvoering
Afbeeldingslocatie: http://faq.tweakers.net/om/windows_raid_hack/dmadmin-before-sm.gifOpen dmadmin.exe en zoek naar "servernt".
Afbeeldingslocatie: http://faq.tweakers.net/om/windows_raid_hack/dmadmin-after-sm.gifWijzig deze in "winnt".

Let er wel op dat het woord op dezelfde punt moet beginnen en dat je de resterente ruimte met nulbytes vult.
Afbeeldingslocatie: http://faq.tweakers.net/om/windows_raid_hack/dmboot-before-sm.gifOpen dmboot.sys en zoek naar "winnt" en "servernt".
Afbeeldingslocatie: http://faq.tweakers.net/om/windows_raid_hack/dmboot-after-sm.gifWijzig deze in "SERVERNT" respectievelijk "WINNT".

Let er wel op dat wanneer het oorspronkelijke woord in hoofdletters is geschreven, dat het vervangende woord eveneens in hoofdletters geschreven dient te worden.
Afbeeldingslocatie: http://faq.tweakers.net/om/windows_raid_hack/dmconfig-before-sm.gifOpen dmconfig.dll en zoek naar "servernt" en "winnt".
Afbeeldingslocatie: http://faq.tweakers.net/om/windows_raid_hack/dmconfig-after-sm.gifWijzig deze in "WINNT" respectievelijk "SERVERNT".
Afbeeldingslocatie: http://faq.tweakers.net/om/windows_raid_hack/Bestandsbeveiliging-sm.gifHerstart Windows in de beveiligde modus (druk op F8 bij de systeemstart). Kopieer daarna deze bestanden naar de volgende subdirectories:
\%systemroot%\system32\dmadmin.exe
\%systemroot%\system32\dmconfig.dll
\%systemroot%\system32\drivers\dmboot.sys

Doe dit één voor één, na elk bestand moet je even wachten op een beveiligingsfoutmelding zoals weergeven op de screenshot. Negeer deze gewoon door op 'Annuleren' te klikken en klik bij een bevestigings-popup die daarop verschijnt op 'Ja'.

Voer hierna de volgende kopieeractie uit:
\%systemroot%\system32\dllcache\dmadmin.exe
\%systemroot%\system32\dllcache\dmconfig.dll
\%systemroot%\system32\dllcache\dmboot.sys

Herstart nu de computer.

Als het kopieren echt niet lukt doordat de beveiligingsfoutmelding lastig begint te worden, dan kun je ook met bijvoorbeeld via de recovery console van de 2K/XP setup CD in een DOS omgeving komen. Daarin kun je de bestanden naar de juiste plaatsen kopieren met behulp van de COPY commando.
Afbeeldingslocatie: http://faq.tweakers.net/om/windows_raid_hack/Volume-sm.gifIndien alles succesvol is verlopen, zul je na de herstart de opties 'Mirrored volume' (RAID1) en 'RAID5' op de volume wizard tegenkomen.
Afbeeldingslocatie: http://faq.tweakers.net/om/windows_raid_hack/Schijfbeheer-Atlas15K6-sm.gifNu kun je naar hartelust volumes in diverse smaken creeëren :)

Noot: deze screenshots zijn genomen tijdens het bewerken van de WinXP versies van de bestanden; binnen Win2K ziet het er natuurlijk iets anders uit, maar het komt er dus op neer dat enkel "winnt" gewijzigd moet worden in "servernt" en vice versa.

Disclaimer - BalusC verklaart zich hierbij niet verantwoordelijk voor de gevolgen van je eigen handelingen bij het nadoen van deze modificatie.

(C) Juni 2003, BalusC

[ Voor 89% gewijzigd door Twynn op 25-09-2007 15:11 ]


Dit topic is gesloten.