1. RAID-oversigt
I 1988 foreslog University of California, Berkeley, konceptet RAID (RedundantArrayofInexpensiveDisks), og efterhånden som prisen på diske fortsatte med at falde, blev RAID til (RedundantArrayofIndependentDisks), men indholdet ændrede sig ikke. SNIA, Berkeley og andre organisationer har sat de syv niveauer af RAID0~RAID6 som standard RAID-niveauer, og standard RAID kan kombineres med andre RAID-niveauer, og de mest brugte niveauer er RAID0, RAID1, RAID3, RAID5, RAID6 og RAID10. Hvert RAID-niveau repræsenterer en implementeringsmetode og teknologi, og der er ingen forskel mellem niveauerne. I praktiske anvendelser bør det passende RAID-niveau og specifikke implementeringsmetoder vælges baseret på brugerens dataapplikations karakteristika med hensyntagen til tilgængelighed, ydeevne og omkostninger.
Set fra implementeringsperspektivet er RAID hovedsageligt opdelt i tre typer: soft RAID, hard RAID og hybrid RAID. Alle funktioner i soft RAID udføres af operativsystemet og CPU'en, som naturligvis er den mindst effektive. Hard RAID er udstyret med specialiserede RAID-kontrol-/behandlingschips samt I/O-processorchips og array-buffere, som ikke bruger CPU-ressourcer, men er dyre. Hybrid RAID har RAID-kontrol-/behandlingschips, men mangler I/O-processorchips, som kræver CPU og drivere for at fuldføre, og ydeevne og omkostninger ligger mellem blød og hård RAID.
2. Grundlæggende principper
RAID er et disksubsystem bestående af flere uafhængige, højtydende diskdrev, hvilket giver højere lagringsydelse og dataredundansteknologi end en enkelt disk. RAID er en klasse af multi-disk management-teknologi, der leverer højtydende lagring med høj datapålidelighed til en overkommelig pris for værtsmiljøet. De to hovedmål med RAID er at forbedre datapålidelighed og I/O-ydelse. I et diskarray er data spredt over flere diske, men for et computersystem er det som en enkelt disk. Redundans opnås ved at skrive de samme data til flere diske samtidig (typisk som spejling) eller ved at skrive beregnede kontroldata til et array, hvilket sikrer, at datatab ikke opstår, når en enkelt disk fejler.
Der er tre hovedkoncepter og teknikker i RAID: Mirroring, DataStripping og Dataparity:
Spejling, som replikerer data til flere diske, forbedrer pålideligheden på den ene side og forbedrer læseydelsen ved at læse data fra to eller flere replikaer samtidig. Det er selvfølgelig en smule lavere skriveydelse for billedet, og det tager længere tid at sikre, at dataene er skrevet korrekt til flere diske. Datastriping, som holder datafragmenter på flere forskellige diske, og flere datafragmenter udgør tilsammen en komplet kopi af data, hvilket adskiller sig fra flere kopier af mirroring, og det bruges ofte af hensyn til ydeevne. Datastrips har en højere samtidighedsgranularitet, og når data tilgås, kan de læse og skrive data på forskellige disker samtidig, hvilket resulterer i en meget markant forbedring af I/O-ydelsen. Dataverifikation, hvor redundante data bruges til fejldetektion og reparation, beregnes redundante data normalt ved hjælp af Hemingway-kode, XOR-operation og andre algoritmer. Verifikationsfunktionen kan i høj grad forbedre pålideligheden, tyveriet og fejltolerancen af diskarrays. Datavalidering kræver dog, at data læses fra flere kilder, beregnes og sammenlignes, hvilket kan påvirke systemets ydeevne. Forskellige grader af RAID anvender en eller flere af de tre teknologier for at opnå forskellig datapålidelighed, tilgængelighed og I/O-ydelse. Hvad angår hvilken RAID der skal designes (eller endda en ny kvalitet eller type) eller hvilken RAID-form der skal bruges, er det nødvendigt at træffe et rimeligt valg baseret på en dyb forståelse af systemets behov og at evaluere pålidelighed, ydeevne og omkostninger grundigt for at indgå et kompromis.
Generelt er de største fordele ved RAID: stor kapacitet, høj ydeevne, pålidelighed og håndterbarhed.
3. RAID-vurdering
JBOD (JustaBunchOfDisks) er ikke et standard RAID-lag, det bruges ofte til at repræsentere en samling diske, der ikke har kontrolsoftware til at sikre koordineret kontrol. JBOD forbinder flere fysiske diske i serie for at skabe en enorm logisk disk. Lagerydelsen er præcis den samme som på en enkelt disk, og den giver ikke datasikkerhed. Den tilgængelige lagerkapacitet svarer til summen af lagringspladsen for alle medlemsdiske.
RAID0, kaldet striping, er en simpel, ukontrolleret datastriping-teknologi. Ydelsen er den højeste af alle RAID-niveauer. Der tilbydes ingen overflødighedspolicer af nogen art. 100% udnyttelse af lagerplads.
RAID1 kaldes spejling, og den skriver data til den fungerende disk og den spejlede disk fuldstændig konsekvent, og den har en diskpladsudnyttelse på 50%. Ydelsen påvirkes, når data skrives, men data ikke læses. Det giver den bedste databeskyttelse; når den fungerende disk fejler, læser systemet automatisk dataene fra den spejlede disk, hvilket ikke påvirker brugerens arbejde.
RAID2 kaldes Heming Code Disk Array, og dets designidé er at bruge Heming Code til at opnå dataverifikationsredundans. Jo større databredde, desto højere lagringspladsudnyttelse, men desto flere diske har du brug for. Den har evnen til at rette fejl, men Hemingcodes dataredundans-overhead er for stor, og datarekonstruktion er meget tidskrævende, så RAID2 bruges sjældent i praksis.
RAID3 kaldes en dedikeret paritetsstribe, som bruger en dedikeret disk som kontroldisk og resten af diskene som datadisk, og dataene gemmes kryds-gemt på hver datadisk i bits og bytes. RAID3 kræver mindst tre diske.
RAID4 og RAID3 fungerer efter stort set samme princip. Giver meget god læseydelse, men dårlig skriveydelse. Og efterhånden som antallet af medlemsdisker øges, vil systemflaskehalsen på checksumdisken blive mere fremtrædende. Det er sjældent i virkelige anvendelser, og almindelige lagringsprodukter bruger sjældent RAID4-beskyttelse.
RAID5 kaldes den distribuerede paritetskontrolstrimmel, som burde være det mest almindelige RAID-niveau i øjeblikket, og princippet ligner RAID4, men der er ingen flaskehals i kontroldiskens ydeevne under samtidige skriveoperationer i RAID4.
RAID6, kaldet dobbeltparitetsstrimmelen, introducerer konceptet dobbelttjek for at løse problemet med dataintegritet, når to diske fejler samtidig, som andre RAID-klasser ikke kan løse. Dog koster det meget mere end RAID5, har dårlig skriveydelse og er meget komplekst at designe og implementere. Derfor anvendes RAID6 sjældent i praksis og er generelt et økonomisk alternativ til RAID10-løsninger.
Standard RAID-niveauer har deres styrker og svagheder. Kombiner flere RAID-niveauer for at opnå komplementære fordele og kompensere for hinandens mangler, så man opnår et RAID-system med højere ydeevne, datasikkerhed og andre indikatorer. Selvfølgelig er implementeringsomkostningerne for kombinationsniveauet generelt meget høje og bruges kun i få specifikke tilfælde. Faktisk er det kun RAID01 og RAID10, der er bredt brugt.
RAID01 stribes først og spejles derefter, hvilket i bund og grund er for at afbilde den fysiske disk; RAID10 er at image først og derefter stripe, hvilket er at image den virtuelle disk. Under samme konfiguration har RAID01 normalt bedre fejltolerance end RAID10. RAID01 kombinerer fordelene fra RAID0 og RAID1 med en samlet diskudnyttelse på kun 50%.
4. Sammenligning af mainstream RAID-niveauer
RAID-konfiguration
Niveau/Beskrivelse: | Fejltolerance | Fortjeneste | mangel | RAID 0
Kort data på tværs af drev for at skabe store virtuelle diske. Da hver fysisk disk kun behandler en del af forespørgslen, kan den levere højere ydeevne. Men hvis et drev fejler, vil den virtuelle disk (VD) blive utilgængelig, og dataene vil gå permanent tabt. | ikke | Bedre ydeevne Yderligere opbevaring | Den må ikke bruges til kritiske data | RAID 1
Spejl data, gem dataredundans på to drev. Hvis den ene disk fejler, overtager den anden disk som primært drev. | Diskfejl Enkeltdiskfejl | Høj læseydelse Hurtig genopretning efter en diskfejl Dataredundans | Diskoverhead er stor Begrænset kapacitet | RAID 5
Kort data på tværs af drev og gem paritetsbits for hver datastribe på forskellige drev i VD. Paritetsbitten indeholder information, der kan bruges til at rekonstruere data fra en fejlet disk fra en anden disk i tilfælde af en enkelt diskfejl. | Diskfejl Enkeltdiskfejl | Effektiv udnyttelse af drivkapacitet Høj læseydelse Mellem til høj skriveydelse | Moderat indvirkning på diskfejl På grund af genberegningen af paritet er rekonstruktionstiden længere | RAID 6
Kort data på tværs af drev og gem paritetsbits for hver datastribe på forskellige drev i VD. I modsætning til RAID 5 udfører RAID 6 to paritetsberegninger (P og Q), hvilket gør det muligt at modstå fejl på to diske. | Dataredundans Høj læseydelse | Diskfejl Dobbelt diskfejl | Skriveydelsen reduceres på grund af to paritetsberegninger Da det svarer til at bruge 2 diske for paritet, er der en ekstra omkostning | RAID 10
Strimler på spejlsættet. Diskoverhead er høj, men det er en fremragende løsning for høj ydeevne, redundans og hurtig gendannelse i tilfælde af en harddiskfejl. | Diskfejl Én diskfejl pr. billedsæt | Høj læseydelse RAID-grupper med op til 192 drev kan understøttes | Den højeste pris | RAID 50
RAID 5-stribe på sættet. Ved at reducere disklæsninger pr. paritetsberegning kan ydeevnen forbedres med RAID 5, afhængigt af konfigurationen. | Diskfejl Én diskfejl pr. periode | Høj læseydelse Mellem til høj skriveydelse RAID-grupper med op til 192 drev kan understøttes | Moderat indvirkning på diskfejl På grund af genberegningen af paritet er rekonstruktionstiden længere | RAID 60
RAID 6-stribe på settet. Med færre disklæsninger pr. paritetsberegning kan ydeevnen forbedres med RAID 6, afhængigt af konfigurationen. | Diskfejl To diske fejler pr. spændvidde | Høj læseydelse RAID-grupper med op til 192 drev kan understøttes | Skriveydelsen reduceres på grund af to paritetsberegninger Da det svarer til at bruge 2 diske for paritet, er der en ekstra omkostning |
5. Forskel i RAID-software og hardware
Soft RAID
Soft RAID har ikke en dedikeret kontrolchip og I/O-chip, og operativsystemet og CPU'en implementerer alle RAID-funktioner. Moderne operativsystemer tilbyder grundlæggende soft RAID-understøttelse, hvilket skaber en abstraktion mellem fysiske og logiske drev ved at tilføje et softwarelag oven på diskenheders drivere. I øjeblikket er de mest almindelige RAID-ratings, der understøttes af operativsystemet, RAID0, RAID1, RAID10, RAID01 og RAID5. For eksempel understøtter Windows Server RAID0, RAID1 og RAID5, Linux understøtter RAID0, RAID1, RAID4, RAID5, RAID6 osv., og Mac OS X Server, FreeBSD, NetBSD, OpenBSD, Solaris og andre operativsystemer understøtter også tilsvarende RAID-niveauer.
Konfigurationsstyring og datagendannelse af soft RAID er relativt enkel, men alle RAID-opgaver udføres fuldstændigt af CPU'en, såsom beregning af kontrolværdier, så eksekveringseffektiviteten er relativt lav.
Soft RAID implementeres af operativsystemet, så partitionen, hvor systemet er placeret, kan ikke bruges som en logisk medlemsdisk i RAID, og soft RAID kan ikke beskytte systemdisk D. For nogle operativsystemer gemmes RAID-konfigurationsinformation i systeminformation i stedet for som en separat fil på disken. På denne måde, når systemet crasher uventet og skal geninstalleres, går RAID-informationen tabt. Derudover understøtter diskens fejltoleranceteknologi ikke fuldt ud online udskiftning, hot swapping eller hot swapping, og om den kan understøtte hot swap af den forkerte disk afhænger af operativsystemets implementering.
Hard RAID
Hard RAID har sine egne RAID-kontrolprocessorer og I/O-processorchips, og endda array-buffering, som er den bedste af de tre typer implementeringer med hensyn til CPU-brug og samlet ydeevne, men også har de højeste implementeringsomkostninger. Hard RAID understøtter typisk hot-swapping-teknologi, som udskifter defekte diske, mens systemet kører.
Hard RAID består af et RAID-kort og en RAID-chip integreret på bundkortet, og serverplatforme bruger ofte RAID-kort. Et RAID-kort består af 4 dele: RAID-kerneprocessorchippen (CPU'en på RAID-kortet), porten, cachen og batteriet. Blandt dem refererer porte til de typer diskgrænseflader, der understøttes af RAID-kort, såsom IDE/ATA, SCSI, SATA, SAS, FC og andre grænseflader.
Blandet hård og blød RAID
Soft RAID er ikke særlig godt og beskytter ikke systempartitioner, hvilket gør det vanskeligt at anvende på desktop-systemer. Hard RAID er meget dyrt, og forskellige RAD'er er uafhængige af hinanden og ikke interoperable. Derfor adopterer folk en kombination af software og hardware for at implementere RAID, for at opnå et kompromis mellem ydeevne og omkostninger, det vil sige en høj omkostningsydelse.
Selvom denne RAID bruger en processorstyringschip, er chippen ofte billigere og har svagere processorkraft for at spare omkostninger, og det meste af RAID-opgavebehandlingen udføres stadig af CPU'en via firmwaredrivere.
6. Udvælgelse af RAID-applikation
Der er tre hovedfaktorer ved valg af RAID-niveau: datatilgængelighed, I/O-ydelse og omkostninger. Hvis tilgængelighed ikke er nødvendig, vælg RAID0 for høj ydeevne. Hvis tilgængelighed og ydeevne er vigtige, og omkostninger ikke er en væsentlig faktor, vælg RAID1 baseret på antallet af diske. Hvis tilgængelighed, pris og ydeevne er lige vigtige, vælg RAID3 eller RAID5 baseret på generel dataoverførsel og diskantælling. I praktiske anvendelser bør det passende RAID-niveau vælges baseret på brugerens dataapplikations karakteristika og specifikke betingelser, idet tilgængelighed, ydeevne og omkostninger tages i betragtning.
|