Raid 1 beskrivelse. Sammenligning av standardnivåer. Hva er en RAID-array

I dag skal vi snakke om RAID-arrayer. La oss finne ut hva det er, hvorfor vi trenger det, hvordan det er og hvordan du kan bruke all denne storheten i praksis.

Så, i rekkefølge: hva er RAID-array eller rett og slett PLYNDRINGSTOKT? Denne forkortelsen står for "Redundant Array of Independent Disks" eller "redundant (backup) array of independent disks." For å si det enkelt, RAID-array dette er en samling fysiske disker kombinert til en logisk disk.

Det skjer vanligvis omvendt - inn systemenhetén fysisk disk er installert, som vi deler opp i flere logiske. Her er situasjonen motsatt – noe harddisk først slås de sammen til ett, og deretter oppfattes operativsystemet som ett. De. OS er overbevist om at det fysisk bare har én disk.

RAID-arrayer Det er maskinvare og programvare.

Maskinvare RAID-arrayer opprettes før operativsystemet starter opp via spesielle verktøy, koblet til RAID-kontroller- noe sånt som en BIOS. Som et resultat av å lage slike RAID-array allerede på OS-installasjonsstadiet "ser" distribusjonssettet én disk.

Programvare RAID-arrayer opprettet av OS-verktøy. De. under lasting operativsystem"forstår" at hun har flere fysiske disker og først etter at OS starter, gjennom programvare disker er kombinert til arrays. Selve operativsystemet er naturligvis ikke plassert på RAID-array, siden den er installert før den er opprettet.

"Hvorfor er alt dette nødvendig?" - du spør? Svaret er: å øke hastigheten på lesing/skriving av data og/eller øke feiltoleranse og sikkerhet.

"Hvordan RAID-array kan øke hastigheten eller sikre data?" - for å svare på dette spørsmålet, vurder hovedtypene RAID-arrayer, hvordan de dannes og hva det gir som et resultat.

RAID-0. Også kalt "Stripe" eller "Tape". To eller flere harddisker kombineres til én ved sekvensiell sammenslåing og oppsummering av volumene. De. hvis vi tar to 500GB disker og lager dem RAID-0, vil operativsystemet oppfatte dette som én terabyte disk. Samtidig vil lese/skrivehastigheten til denne matrisen være dobbelt så høy som for én disk, siden for eksempel hvis databasen fysisk befinner seg på denne måten på to disker, kan én bruker lese data fra én disk , og en annen bruker kan skrive til en annen disk samtidig. Mens når det gjelder databaseplasseringen på én disk, vil HDD lese/skrive oppgaver forskjellige brukere vil kjøre sekvensielt. RAID-0 vil tillate lesing/skriving parallelt. Som en konsekvens, jo flere disker i arrayet RAID-0, jo raskere fungerer selve matrisen. Avhengigheten er direkte proporsjonal - hastigheten øker N ganger, hvor N er antall disker i matrisen.
Ved matrisen RAID-0 det er bare en ulempe som oppveier alle fordelene ved å bruke den - den fullstendige mangelen på feiltoleranse. Hvis en av de fysiske diskene i matrisen dør, dør hele matrisen. Det er en gammel vits om dette: "Hva betyr "0" i tittelen? RAID-0? - mengden informasjon gjenopprettet etter døden av arrayet!"

RAID-1. Også kalt "Speil" eller "Speil". To eller flere harddisker kombineres til én ved parallell sammenslåing. De. hvis vi tar to 500GB disker og lager dem RAID-1, vil operativsystemet oppfatte dette som én 500 GB disk. I dette tilfellet vil lese/skrivehastigheten til denne matrisen være den samme som for én disk, siden informasjon leses/skrives til begge diskene samtidig. RAID-1 gir ingen hastighetsgevinst, men gir større feiltoleranse, siden i tilfelle død av en av harddiskene, er det alltid et fullstendig duplikat av informasjon plassert på den andre stasjonen. Det må huskes at feiltoleranse kun gis mot døden til en av array-diskene. Hvis dataene ble slettet med hensikt, slettes de fra alle diskene i arrayet samtidig!

RAID-5. Mer trygt alternativ RAID-0. Volumet av matrisen beregnes ved hjelp av formelen (N - 1) * Diskstørrelse RAID-5 fra tre 500 GB disker får vi en rekke på 1 terabyte. Essensen av matrisen RAID-5 er at flere disker er kombinert til RAID-0, og den siste disken lagrer den såkalte "checksum" - tjenesteinformasjon beregnet på å gjenopprette en av array-diskene i tilfelle dens død. Matrise skrivehastighet RAID-5 noe lavere, siden det brukes tid på å beregne og skrive kontrollsummen til en egen disk, men lesehastigheten er den samme som i RAID-0.
Hvis en av array-diskene RAID-5 dør, synker lese-/skrivehastigheten kraftig, siden alle operasjoner er ledsaget av ytterligere manipulasjoner. Faktisk RAID-5 blir til RAID-0 og hvis gjenoppretting ikke blir tatt hånd om i tide RAID-array det er en betydelig risiko for å miste data fullstendig.
Med en rekke RAID-5 Du kan bruke den såkalte Reservedisken, dvs. reserve. Ved stabil drift RAID-array Denne disken er inaktiv og ikke brukt. Men i tilfelle en kritisk situasjon, restaurering RAID-array starter automatisk - informasjon fra den skadede gjenopprettes til reservedisken ved hjelp av kontrollsummer som ligger på en separat disk.
RAID-5 opprettes fra minst tre disker og lagres fra enkeltfeil. Ved samtidig forekomst av forskjellige feil på forskjellige disker RAID-5 lagrer ikke.

RAID-6- er en forbedret versjon av RAID-5. Essensen er den samme, bare for kontrollsummer, ikke én, men to disker brukes, og kontrollsummene beregnes ved hjelp av forskjellige algoritmer, noe som øker feiltoleransen til alt betydelig. RAID-array som regel. RAID-6 satt sammen fra minst fire disker. Formelen for å beregne volumet til en matrise ser slik ut (N - 2) * Diskstørrelse, der N er antall disker i arrayet, og DiskSize er størrelsen på hver disk. De. mens du lager RAID-6 fra fem 500 GB disker får vi en rekke på 1,5 terabyte.
Skrivehastighet RAID-6 lavere enn RAID-5 med ca. 10-15 %, noe som skyldes ekstra tid brukt på å beregne og skrive sjekksummer.

RAID-10- også noen ganger kalt RAID 0+1 eller RAID 1+0. Det er en symbiose av RAID-0 og RAID-1. Arrayen er bygget fra minst fire disker: på den første RAID-0-kanalen, på den andre RAID-0 for å øke lese-/skrivehastigheten, og mellom dem i et RAID-1-speil for å øke feiltoleransen. Dermed, RAID-10 kombinerer fordelene med de to første alternativene - rask og feiltolerant.

RAID-50- på samme måte er RAID-10 en symbiose av RAID-0 og RAID-5 - faktisk er RAID-5 bygget, bare dens bestanddeler er ikke uavhengige harddisker, og arrayene er RAID-0. Dermed, RAID-50 gir svært god lese/skrivehastighet og inneholder stabiliteten og påliteligheten til RAID-5.

RAID-60- samme idé: vi har faktisk RAID-6, satt sammen fra flere RAID-0-arrayer.

Det finnes også andre kombinerte arrays RAID 5+1 Og RAID 6+1- de ser ut som RAID-50 Og RAID-60 den eneste forskjellen er at de grunnleggende elementene i arrayet ikke er RAID-0-bånd, men RAID-1-speil.

Hvordan forstår du kombinerte RAID-arrayer: RAID-10, RAID-50, RAID-60 og alternativer RAID X+1 er direkte etterkommere av de grunnleggende matrisetypene RAID-0, RAID-1, RAID-5 Og RAID-6 og tjener bare til å øke enten lese-/skrivehastigheten eller øke feiltoleransen, samtidig som de har funksjonaliteten til grunnleggende overordnede typer RAID-arrayer.

Hvis vi går videre til praksis og snakker om bruken av visse RAID-arrayer i livet er logikken ganske enkel:

RAID-0 Vi bruker den ikke i sin rene form i det hele tatt;

RAID-1 Vi bruker den der lese/skrivehastighet ikke er spesielt viktig, men feiltoleranse er viktig - for eksempel på RAID-1 Det er greit å installere operativsystemer. I dette tilfellet er det ingen unntatt operativsystemet som får tilgang til diskene, hastigheten på selve harddiskene er ganske tilstrekkelig for drift, feiltoleranse er sikret;

RAID-5 Vi installerer det der hastighet og feiltoleranse er nødvendig, men det er ikke nok penger til å kjøpe flere harddisker eller det er behov for å gjenopprette arrays i tilfelle skade uten å stoppe arbeidet - reservedeler-stasjoner vil hjelpe oss her. Vanlig applikasjon RAID-5- datalagring;

RAID-6 brukes der det rett og slett er skummelt eller det er en reell dødstrussel for flere disker i arrayet samtidig. I praksis er det ganske sjeldent, hovedsakelig blant paranoide mennesker;

RAID-10- brukes der det er nødvendig å arbeide raskt og pålitelig. Også hovedbruksretningen RAID-10 er filservere og databaseservere.

Igjen, hvis vi forenkler ytterligere, kommer vi til den konklusjon at der det ikke er noe stort og omfangsrikt arbeid med filer, er det ganske nok RAID-1- operativsystem, AD, TS, mail, proxy, etc. Når seriøst arbeid med filer kreves: RAID-5 eller RAID-10.

Den ideelle løsningen for en databaseserver er en maskin med seks fysiske disker, hvorav to er kombinert til et speil RAID-1 og OS er installert på den, og de resterende fire kombineres til RAID-10 for rask og pålitelig databehandling.

Hvis du, etter å ha lest alt ovenfor, bestemmer deg for å installere det på serverne dine RAID-arrayer, men vet ikke hvordan du gjør det og hvor du skal begynne - kontakt oss! - vi hjelper deg med å velge nødvendig utstyr, samt utføre installasjonsarbeid for implementering RAID-arrayer.

Alle moderne hovedkort er utstyrt med en integrert RAID-kontroller, og toppmodellene har til og med flere integrerte RAID-kontrollere. I hvilken grad integrerte RAID-kontrollere etterspørres av hjemmebrukere er et eget spørsmål. I alle fall moderne hovedkort gir brukeren muligheten til å lage en RAID-array med flere disker. Imidlertid vet ikke alle hjemmebrukere hvordan de skal lage en RAID-array, hvilket array-nivå de skal velge, og har generelt liten ide om fordeler og ulemper ved å bruke RAID-arrayer.
I denne artikkelen vil vi gi korte anbefalinger om å lage RAID-arrays på hjemme-PCer og bruke et spesifikt eksempel for å demonstrere hvordan du uavhengig kan teste ytelsen til en RAID-array.

skapelseshistorie

Begrepet «RAID-array» dukket opp første gang i 1987, da amerikanske forskere Patterson, Gibson og Katz fra University of California Berkeley i sin artikkel «A Case for Redundant Arrays of Inexpensive Discs, RAID» beskrev hvordan På denne måten kan du kombinere flere rimelige harddisker inn i en logisk enhet slik at den resulterende kapasiteten og ytelsen til systemet økes, og feil på individuelle stasjoner fører ikke til feil i hele systemet.

Mer enn 20 år har gått siden denne artikkelen ble publisert, men teknologien for å bygge RAID-matriser har ikke mistet sin relevans i dag. Det eneste som har endret seg siden den gang er dekodingen av RAID-akronymet. Faktum er at RAID-arrayer i utgangspunktet ikke ble bygget på billige disker i det hele tatt, så ordet Inexpensive (billig) ble endret til Independent (uavhengig), som var mer sant.

Driftsprinsipp

Så, RAID er en redundant rekke uavhengige disker (Redundant Arrays of Independent Discs), som har til oppgave å sikre feiltoleranse og øke ytelsen. Feiltoleranse oppnås gjennom redundans. Det vil si at en del av diskplasskapasiteten tildeles til offisielle formål, og blir utilgjengelig for brukeren.

Økt ytelse til diskundersystemet sikres ved samtidig drift av flere disker, og i denne forstand, jo flere disker i matrisen (opp til en viss grense), jo bedre.

Fellesoperasjonen av disker i en matrise kan organiseres ved hjelp av enten parallell eller uavhengig tilgang. Ved parallell tilgang er diskplass delt inn i blokker (strips) for opptak av data. På samme måte er informasjon som skal skrives til disk delt inn i de samme blokkene. Ved skriving skrives individuelle blokker til forskjellige disker, og flere blokker skrives til forskjellige disker samtidig, noe som fører til økt ytelse i skriveoperasjoner. Den nødvendige informasjonen leses også i separate blokker samtidig fra flere disker, noe som også øker ytelsen proporsjonalt med antall disker i matrisen.

Det skal bemerkes at parallelltilgangsmodellen bare implementeres hvis størrelsen på dataskriveforespørselen er større enn størrelsen på selve blokken. Ellers er parallell registrering av flere blokker nesten umulig. La oss forestille oss en situasjon der størrelsen på en individuell blokk er 8 KB, og størrelsen på en forespørsel om å skrive data er 64 KB. I dette tilfellet kuttes kildeinformasjonen i åtte blokker på 8 KB hver. Hvis du har en matrise med fire disker, kan du skrive fire blokker, eller 32 KB, om gangen. I det betraktede eksemplet vil åpenbart skrive- og lesehastighetene være fire ganger høyere enn ved bruk av en enkelt disk. Dette gjelder bare for en ideell situasjon, men forespørselsstørrelsen er ikke alltid et multiplum av blokkstørrelsen og antall disker i matrisen.

Hvis størrelsen på de registrerte dataene er mindre enn blokkstørrelsen, implementeres en fundamentalt annen modell - uavhengig tilgang. Dessuten kan denne modellen også brukes når størrelsen på dataene som skrives er større enn størrelsen på en blokk. Med uavhengig tilgang skrives alle data fra en enkelt forespørsel til en separat disk, det vil si at situasjonen er identisk med å jobbe med en disk. Fordelen med den uavhengige tilgangsmodellen er at hvis flere skrive- (lese) forespørsler kommer samtidig, vil de alle bli utført på separate disker uavhengig av hverandre. Denne situasjonen er typisk for for eksempel servere.

I samsvar med forskjellige typer tilgang finnes og forskjellige typer RAID-matriser, som vanligvis er preget av RAID-nivåer. I tillegg til typen tilgang, varierer RAID-nivåene i måten de tar imot og genererer overflødig informasjon. Redundant informasjon kan enten plasseres på en dedikert disk eller distribueres mellom alle disker. Det er mange måter å generere denne informasjonen på. Den enkleste av dem er fullstendig duplisering (100 prosent redundans), eller speiling. I tillegg brukes feilrettingskoder, samt paritetsberegninger.

RAID-nivåer

For tiden er det flere RAID-nivåer som kan betraktes som standardiserte - disse er RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5 og RAID 6.

Ulike kombinasjoner av RAID-nivåer brukes også, noe som lar deg kombinere fordelene deres. Vanligvis er dette en kombinasjon av et slags feiltolerant nivå og et nullnivå som brukes for å forbedre ytelsen (RAID 1+0, RAID 0+1, RAID 50).

Merk at alle moderne RAID-kontrollere støtter JBOD-funksjonen (Just a Bench Of Disks), som ikke er ment for å lage arrays - den gir muligheten til å koble individuelle disker til RAID-kontrolleren.

Det bør bemerkes at RAID-kontrollerne integrert på hovedkort for hjemme-PCer ikke støtter alle RAID-nivåer. RAID-kontrollere med to porter støtter bare nivå 0 og 1, mens RAID-kontrollere med flere porter (for eksempel 6-ports RAID-kontroller integrert i sørbroen til ICH9R/ICH10R-brikkesettet) også støtter nivå 10 og 5.

I tillegg, hvis vi snakker om hovedkort basert på Intel-brikkesett, implementerer de også Intel Matrix RAID-funksjonen, som lar deg lage harddisk x samtidig RAID-matriser på flere nivåer, som tildeler deler av diskplassen for hver av dem.

RAID 0

RAID-nivå 0 er strengt tatt ikke en redundant array og gir følgelig ikke pålitelig datalagring. Likevel dette nivået brukes aktivt i tilfeller der det er nødvendig å sikre høy ytelse av diskundersystemet. Når du oppretter en RAID-nivå 0-matrise, deles informasjon inn i blokker (noen ganger kalles disse blokkene striper), som skrives til separate disker, det vil si at det opprettes et system med parallell tilgang (hvis, selvfølgelig, blokkstørrelsen tillater det ). Ved å tillate samtidig I/O fra flere disker, gir RAID 0 de raskeste dataoverføringshastighetene og maksimal diskplasseffektivitet fordi det ikke kreves lagringsplass for kontrollsummer. Implementeringen av dette nivået er veldig enkelt. RAID 0 brukes hovedsakelig i områder hvor det kreves rask overføring av store datamengder.

RAID 1 (speilet disk)

RAID Level 1 er en rekke av to disker med 100 prosent redundans. Det vil si at dataene ganske enkelt er fullstendig duplisert (speilet), på grunn av dette oppnås et veldig høyt nivå av pålitelighet (så vel som kostnad). Merk at for å implementere nivå 1, er det ikke nødvendig å først partisjonere diskene og dataene i blokker. I det enkleste tilfellet inneholder to disker den samme informasjonen og er én logisk disk. Hvis en disk feiler, utføres funksjonene av en annen (som er helt gjennomsiktig for brukeren). Gjenoppretting av en matrise utføres ved enkel kopiering. I tillegg dobler dette nivået hastigheten på lesing av informasjon, siden denne operasjonen kan utføres samtidig fra to disker. Denne informasjonslagringsordningen brukes hovedsakelig i tilfeller der kostnadene for datasikkerhet er mye høyere enn kostnadene ved å implementere et lagringssystem.

RAID 5

RAID 5 er en feiltolerant diskarray med distribuert kontrollsumlagring. Ved opptak blir datastrømmen delt inn i blokker (striper) på bytenivå og samtidig skrevet til alle diskene i matrisen i syklisk rekkefølge.

Anta at matrisen inneholder n disker og stripestørrelsen d. For hver del av n–1 striper, sjekksummen beregnes s.

Stripe d 1 tatt opp på den første disken, stripe d 2- på den andre og så videre opp til stripen dn–1, som er skrevet til ( n–1) disken. Neste på n-disksjekksum er skrevet p n, og prosessen gjentas syklisk fra den første disken som stripen er skrevet på dn.

Opptaksprosess (n–1) striper og deres kontrollsum produseres samtidig for alle n disker.

Kontrollsummen beregnes ved å bruke en bitvis eksklusiv-eller (XOR) operasjon som brukes på datablokkene som skrives. Så hvis det er det n harddisk, d- datablokk (stripe), deretter beregnes kontrollsummen ved å bruke følgende formel:

pn=d1 d 2 ... d 1–1.

Hvis en disk feiler, kan dataene på den gjenopprettes ved å bruke kontrolldataene og dataene som er igjen på arbeidsdiskene.

For å illustrere, vurder blokker med fire bits hver. La det bare være fem disker for lagring av data og registrering av sjekksummer. Hvis det er en sekvens av biter 1101 0011 1100 1011, delt inn i blokker på fire biter, er det nødvendig å utføre følgende bitvise operasjon for å beregne kontrollsummen:

1101 0011 1100 1011 = 1001.

Dermed er kontrollsummen skrevet til den femte disken 1001.

Hvis en av diskene, for eksempel den fjerde, feiler, blir blokken d 4= 1100 vil ikke være tilgjengelig ved lesing. Imidlertid kan verdien enkelt gjenopprettes ved å bruke kontrollsummen og verdiene til de gjenværende blokkene ved å bruke den samme "eksklusive ELLER" -operasjonen:

d4 = d1 d 2d 4p5.

I vårt eksempel får vi:

d4 = (1101) (0011) (1100) (1011) = 1001.

Når det gjelder RAID 5, er alle diskene i arrayet like store, men den totale kapasiteten til diskundersystemet som er tilgjengelig for skriving, blir nøyaktig én disk mindre. For eksempel, hvis fem disker er 100 GB store, er den faktiske størrelsen på arrayet 400 GB fordi 100 GB er tildelt kontrollinformasjon.

RAID 5 kan bygges på tre eller flere harddisker. Etter hvert som antallet harddisker i en matrise øker, reduseres redundansen.

RAID 5 har en uavhengig tilgangsarkitektur, som gjør at flere lesinger eller skrivinger kan utføres samtidig.

RAID 10

RAID nivå 10 er en kombinasjon av nivå 0 og 1. Minimumskravet for dette nivået er fire stasjoner. I en RAID 10-array med fire stasjoner kombineres de i par til nivå 0-arrayer, og begge disse arrays som logiske stasjoner kombineres til en nivå 1-array. En annen tilnærming er også mulig: til å begynne med kombineres diskene til speilede arrays nivå 1, og deretter logiske stasjoner basert på disse matrisene - inn i en matrise på nivå 0.

Intel Matrix RAID

De vurderte RAID-arrayene på nivå 5 og 1 brukes sjelden hjemme, noe som først og fremst skyldes de høye kostnadene for slike løsninger. Oftest, for hjemme-PCer, brukes en nivå 0-array på to disker. Som vi allerede har bemerket, gir ikke RAID-nivå 0 sikker datalagring, og derfor står sluttbrukere overfor et valg: opprette en rask, men upålitelig RAID-nivå 0-array eller, doble kostnadene for diskplass, RAID-en nivå 1-array som gir pålitelig datalagring, men ikke gir betydelige ytelsesfordeler.

For å løse dette vanskelige problemet utviklet Intel Intel Matrix Storage Technology, som kombinerer fordelene med Tier 0 og Tier 1-arrayer på bare to fysiske disker. Og for å understreke at i dette tilfellet snakker vi ikke bare om en RAID-array, men om en array som kombinerer både fysiske og logiske disker, brukes ordet "matrise" i navnet på teknologien i stedet for ordet "array". ".

Så, hva er en RAID-matrise med to disker som bruker Intel Matrix Storage-teknologi? Grunntanken er at dersom systemet har flere harddisker og et hovedkort med Intel-brikkesett som støtter Intel Matrix Storage Technology, er det mulig å dele opp diskplassen i flere deler som hver vil fungere som en egen RAID-array.

La oss se på et enkelt eksempel på en RAID-matrise som består av to disker på 120 GB hver. Enhver av diskene kan deles inn i to logiske disker, for eksempel 40 og 80 GB. Deretter kan to logiske stasjoner av samme størrelse (for eksempel 40 GB hver) kombineres til en RAID nivå 1-matrise, og de resterende logiske stasjonene til en RAID-nivå 0-matrise.

I prinsippet, ved å bruke to fysiske disker, er det også mulig å lage bare én eller to RAID nivå 0-matriser, men det er umulig å oppnå bare nivå 1-matriser. Det vil si at hvis systemet bare har to disker, da Intel-teknologi Matrix Storage lar deg lage følgende typer RAID-matriser:

  • en nivå 0 matrise;
  • to nivå 0 matriser;
  • nivå 0 matrise og nivå 1 matrise.

Hvis systemet har tre harddisker, kan følgende typer RAID-matriser opprettes:

  • en nivå 0 matrise;
  • en nivå 5 matrise;
  • to nivå 0 matriser;
  • to nivå 5 matriser;
  • nivå 0 matrise og nivå 5 matrise.

Hvis systemet har fire harddisker, er det i tillegg mulig å lage en RAID-matrise på nivå 10, samt kombinasjoner av nivå 10 og nivå 0 eller 5.

Fra teori til praksis

Hvis vi snakker om hjemmedatamaskiner, er de mest populære og populære RAID-arrays på nivå 0 og 1. Bruken av RAID-arrays på tre eller flere disker i hjemme-PCer er snarere et unntak fra regelen. Dette skyldes det faktum at kostnadene for RAID-matriser på den ene siden øker proporsjonalt med antall disker som er involvert i den, og på den annen side, for hjemmedatamaskiner, er kapasiteten til diskmatrisen av primær betydning , og ikke ytelsen og påliteligheten.

Derfor vil vi i fremtiden vurdere RAID-nivå 0 og 1 basert på kun to disker. Målet med vår forskning vil være å sammenligne ytelsen og funksjonaliteten til RAID-matriser på nivå 0 og 1, opprettet på grunnlag av flere integrerte RAID-kontrollere, samt å studere avhengigheten av hastighetsegenskapene til RAID-matrisen på stripen størrelse.

Faktum er at selv om lese- og skrivehastigheten teoretisk sett bør dobles når du bruker en RAID-nivå 0-matrise, er økningen i hastighetskarakteristikk i praksis mye mindre beskjeden og den varierer for forskjellige RAID-kontrollere. Det samme gjelder for en RAID-nivå 1-array: til tross for at lesehastigheten teoretisk burde dobles, er ikke alt i praksis så jevnt.

For vår RAID-kontroller-sammenligningstesting brukte vi Gigabyte GA-EX58A-UD7 hovedkort. Dette styret er basert på Intel brikkesett X58 Express med ICH10R southbridge, som har en integrert RAID-kontroller for seks SATA II-porter, som støtter organisering av RAID-matriser på nivå 0, 1, 10 og 5 med Intel Matrix RAID-funksjonen. I tillegg integrerer Gigabyte GA-EX58A-UD7-kortet GIGABYTE SATA2 RAID-kontrolleren, som har to SATA II-porter med mulighet til å organisere RAID-arrays på nivåene 0, 1 og JBOD.

Også på GA-EX58A-UD7-kortet er en integrert SATA III-kontroller Marvell 9128, på grunnlag av hvilken to SATA III-porter er implementert med muligheten til å organisere RAID-arrays på nivåene 0, 1 og JBOD.

Dermed har Gigabyte GA-EX58A-UD7-kortet tre separate RAID-kontrollere, på grunnlag av hvilke du kan lage RAID-arrayer på nivå 0 og 1 og sammenligne dem med hverandre. La oss huske at SATA III-standarden er bakoverkompatibel med SATA II-standarden, derfor, basert på Marvell 9128-kontrolleren, som støtter stasjoner med SATA III-grensesnittet, kan du også lage RAID-arrayer ved å bruke stasjoner med SATA II-grensesnittet.

Teststativet hadde følgende konfigurasjon:

  • prosessor - Intel kjerne i7-965 Ekstrem utgave;
  • hovedkort - Gigabyte GA-EX58A-UD7;
  • BIOS-versjon - F2a;
  • harddisker - to Western Digital WD1002FBYS-stasjoner, en Western Digital WD3200AAKS-stasjon;
  • integrerte RAID-kontrollere:
  • ICH10R,
  • GIGABYTE SATA2,
  • Marvell 9128;
  • minne - DDR3-1066;
  • minnekapasitet - 3 GB (tre moduler på 1024 MB hver);
  • minne driftsmodus - DDR3-1333, tre-kanals driftsmodus;
  • skjermkort - Gigabyte GeForce GTS295;
  • strømforsyning - Tagan 1300W.

Testingen ble utført under operativsystemkontroll Microsoft Windows 7 Ultimate (32-bit). Operativsystemet ble installert på en Western Digital WD3200AAKS-stasjon, som var koblet til porten til SATA II-kontrolleren integrert i ICH10R sørbroen. RAID-arrayet ble satt sammen på to WD1002FBYS-stasjoner med et SATA II-grensesnitt.

For å måle hastighetskarakteristikkene til de opprettede RAID-arrayene brukte vi IOmeter-verktøyet, som er industristandarden for å måle ytelsen til disksystemer.

IOmeter-verktøy

Siden vi ment denne artikkelen som en slags brukerveiledning for å lage og teste RAID-matriser, ville det være logisk å starte med en beskrivelse av IOmeter-verktøyet (Input/Output meter), som, som vi allerede har nevnt, er en slags industristandard for måling av ytelsen til disksystemer. Dette verktøyet er gratis og kan lastes ned fra http://www.iometer.org.

IOmeter-verktøyet er en syntetisk test og lar deg jobbe med harddisker som ikke er partisjonert i logiske partisjoner, slik at du kan teste stasjoner uavhengig av filstruktur og redusere påvirkningen av operativsystemet til null.

Når du tester, er det mulig å lage en spesifikk tilgangsmodell, eller "mønster", som lar deg spesifisere utførelsen av spesifikke operasjoner av harddisken. I tilfelle opprettelse spesifikk modell tilgang er tillatt å endre følgende parametere:

  • størrelsen på dataoverføringsforespørselen;
  • tilfeldig/sekvensiell fordeling (i %);
  • distribusjon av lese-/skriveoperasjoner (i %);
  • Antall individuelle I/O-operasjoner som kjører parallelt.

IOmeter-verktøyet krever ikke installasjon på en datamaskin og består av to deler: selve IOmeter og Dynamo.

IOmeter er en overvåkingsdel av programmet med brukerdefinert grafisk grensesnitt, slik at du kan gjøre alle nødvendige innstillinger. Dynamo er en lastgenerator som ikke har noe grensesnitt. Hver gang du kjører IOmeter.exe, starter Dynamo.exe-lastgeneratoren automatisk.

For å begynne å jobbe med IOmeter-programmet, kjør bare IOmeter.exe-filen. Dette åpner hovedvinduet til IOmeter-programmet (fig. 1).

Ris. 1. Hovedvindu i IOmeter-programmet

Det skal bemerkes at IOmeter-verktøyet lar deg teste ikke bare lokale disksystemer (DAS), men også nettverksstasjoner(NAS). Den kan for eksempel brukes til å teste ytelsen til en servers diskdelsystem (filserver) ved å bruke flere nettverksklienter. Derfor er noen av bokmerkene og verktøyene i IOmeter-verktøyvinduet spesielt knyttet til nettverksinnstillinger programmer. Det er klart at når vi tester disker og RAID-arrayer, vil vi ikke trenge disse programfunksjonene, og derfor vil vi ikke forklare formålet med alle faner og verktøy.

Så når du starter IOmeter-programmet, vil en trestruktur av alle kjørende lastgeneratorer (Dynamo-forekomster) vises på venstre side av hovedvinduet (i Topology-vinduet). Hver kjørende Dynamo load generator-forekomst kalles en manager. I tillegg er IOmeter-programmet flertrådet og hver enkelt tråd som kjører på en Dynamo-belastningsgeneratorforekomst kalles en Worker. Antall arbeidere som kjører tilsvarer alltid antallet logiske prosessorkjerner.

I vårt eksempel bruker vi bare én datamaskin med en firekjerners prosessor som støtter Hyper-Threading-teknologi, så bare én manager (én forekomst av Dynamo) og åtte (i henhold til antall logiske prosessorkjerner) arbeidere lanseres.

For å teste disker i dette vinduet er det faktisk ikke nødvendig å endre eller legge til noe.

Hvis du velger navnet på datamaskinen med musen i trestrukturen for å kjøre Dynamo-forekomster, så i vinduet Mål på fanen Diskmål Alle disker, diskarrayer og andre stasjoner (inkludert nettverksstasjoner) installert på datamaskinen vil vises. Dette er stasjonene som IOmeter kan jobbe med. Medier kan være merket med gult eller blått. Logiske partisjoner av media er merket med gult, og fysiske enheter uten logiske partisjoner opprettet på dem er merket med blått. En logisk del kan være krysset ut eller ikke. Faktum er at for at programmet skal fungere med en logisk partisjon, må det først forberedes ved å lage en spesiell fil på den, lik størrelse med kapasiteten til hele den logiske partisjonen. Hvis den logiske partisjonen er krysset over, betyr dette at seksjonen ennå ikke er klargjort for testing (den vil bli klargjort automatisk ved første testfase), men hvis seksjonen ikke er krysset over, betyr dette at en fil allerede er blitt opprettet på den logiske partisjonen, helt klar for testing.

Merk at til tross for den støttede muligheten til å jobbe med logiske partisjoner, er det optimalt å teste stasjoner som ikke er partisjonert i logiske partisjoner. Du kan slette en logisk diskpartisjon veldig enkelt - gjennom en snap-in Diskbehandling. For å få tilgang til det, høyreklikk bare på ikonet Datamaskin på skrivebordet og velg elementet i menyen som åpnes Få til. I vinduet som åpnes Databehandling på venstre side må du velge elementet Oppbevaring, og i den - Diskbehandling. Etter det, på høyre side av vinduet Databehandling Alle tilkoblede stasjoner vises. Ved å høyreklikke på til ønsket disk og velge elementet i menyen som åpnes Slett volum..., kan du slette en logisk partisjon på en fysisk disk. La oss minne deg på at når du sletter en logisk partisjon fra en disk, slettes all informasjon på den uten mulighet for gjenoppretting.

Generelt kan du ved å bruke IOmeter-verktøyet bare teste tomme disker eller diskarrayer. Det vil si at du ikke kan teste en disk eller diskarray som operativsystemet er installert på.

Så la oss gå tilbake til beskrivelsen av IOmeter-verktøyet. I vinduet Mål på fanen Diskmål du må velge disken (eller diskarrayen) som skal testes. Deretter må du åpne fanen Tilgangsspesifikasjoner(Fig. 2), hvor det vil være mulig å bestemme testscenarioet.

Ris. 2. Gå til kategorien Spesifikasjoner i IOmeter-verktøyet

I vinduet Globale tilgangsspesifikasjoner Det er en liste over forhåndsdefinerte testskript som kan tilordnes til oppstartsbehandlingen. Vi trenger imidlertid ikke disse skriptene, så alle kan velges og slettes (det er en knapp for dette Slett). Etter det klikker du på knappen Ny for å lage et nytt testskript. I vinduet som åpnes Rediger tilgangsspesifikasjon Du kan definere oppstartsscenarioet for en disk eller RAID-array.

Anta at vi ønsker å finne ut avhengigheten av hastigheten til sekvensiell (lineær) lesing og skriving av størrelsen på forespørselsblokken for dataoverføring. For å gjøre dette må vi generere en sekvens med oppstartsskript i sekvensiell lesemodus ved forskjellige blokkstørrelser, og deretter en sekvens med oppstartsskript i sekvensiell skrivemodus ved forskjellige blokkstørrelser. Vanligvis velges blokkstørrelser som en serie, hvor hvert medlem er dobbelt så stort som det forrige, og det første medlemmet i denne serien er 512 byte. Det vil si at blokkstørrelsene er som følger: 512 byte, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 KB, 1 MB. Det er ingen vits i å gjøre blokkstørrelsen større enn 1 MB for sekvensielle operasjoner, siden med så store datablokkstørrelser endres ikke hastigheten til sekvensielle operasjoner.

Så la oss lage et lasteskript i sekvensiell lesemodus for en blokk på 512 byte.

I felt Navn vindu Rediger tilgangsspesifikasjon skriv inn navnet på lasteskriptet. For eksempel Sequential_Read_512. Neste i feltet Størrelse på overføringsforespørsel vi setter datablokkstørrelsen til 512 byte. Skyveknapp Prosent tilfeldig/sekvensiell distribusjon(prosentforholdet mellom sekvensielle og selektive operasjoner) vi skifter helt til venstre slik at alle operasjonene våre bare er sekvensielle. Vel, glideren , som setter prosentforholdet mellom lese- og skriveoperasjoner, flyttes helt til høyre slik at alle operasjonene våre er skrivebeskyttede. Andre parametere i vinduet Rediger tilgangsspesifikasjon ikke nødvendig å endre (fig. 3).

Ris. 3. Vinduet Rediger tilgangsspesifikasjon for å lage et sekvensielt leselastskript
med en datablokkstørrelse på 512 byte

Klikk på knappen Ok, og det første skriptet vi laget vil vises i vinduet Globale tilgangsspesifikasjoner på fanen Tilgangsspesifikasjoner IOmeter-verktøy.

På samme måte må du lage skript for de gjenværende datablokkene, men for å gjøre arbeidet ditt enklere er det lettere å ikke lage skriptet på nytt hver gang ved å klikke på knappen Ny, og etter å ha valgt det sist opprettede scenariet, trykk på knappen Rediger kopi(rediger kopi). Etter dette åpnes vinduet igjen Rediger tilgangsspesifikasjon med innstillingene til vårt sist opprettede skript. Det vil være nok å endre bare navnet og størrelsen på blokken. Etter å ha fullført en lignende prosedyre for alle andre blokkstørrelser, kan du begynne å lage skript for sekvensielt opptak, noe som gjøres på nøyaktig samme måte, bortsett fra at glidebryteren Prosent lese/skrive distribusjon, som setter prosentforholdet mellom lese- og skriveoperasjoner, må flyttes helt til venstre.

På samme måte kan du lage skript for selektiv skriving og lesing.

Etter at alle skriptene er klare, må de tilordnes nedlastingsbehandleren, det vil si indikere hvilke skript som vil fungere med Dynamo.

For å gjøre dette sjekker vi igjen hva som er i vinduet Topologi Navnet på datamaskinen (det vil si belastningsbehandleren på den lokale PC-en) er uthevet, og ikke den enkelte arbeideren. Dette sikrer at belastningsscenarier vil bli tildelt alle arbeidere samtidig. Neste i vinduet Globale tilgangsspesifikasjoner velg alle lastescenarioene vi har laget og trykk på knappen Legg til. Alle valgte lastescenarier vil bli lagt til vinduet (Fig. 4).

Ris. 4. Tilordne de opprettede belastningsscenarioene til belastningsbehandleren

Etter dette må du gå til fanen Testoppsett(Fig. 5), hvor du kan angi utførelsestiden for hvert skript vi opprettet. For å gjøre dette i en gruppe Kjøretid angi utførelsestiden for lastescenariet. Det vil være nok å sette tiden til 3 minutter.

Ris. 5. Innstilling av utførelsestiden for belastningsscenarioet

Dessuten i felten Testbeskrivelse Du må angi navnet på hele testen. I prinsippet har denne fanen mange andre innstillinger, men de er ikke nødvendige for våre oppgaver.

Etter at alle nødvendige innstillinger er gjort, anbefales det å lagre den opprettede testen ved å klikke på knappen med bildet av en diskett på verktøylinjen. Testen lagres med filtypen *.icf. Deretter kan du bruke det opprettede lastscenarioet ved å kjøre ikke IOmeter.exe-filen, men den lagrede filen med *.icf-utvidelsen.

Nå kan du begynne å teste direkte ved å klikke på knappen med et flagg. Du vil bli bedt om å angi navnet på filen som inneholder testresultatene og velge plasseringen. Testresultater lagres i en CSV-fil, som deretter enkelt kan eksporteres til Excel, og ved å sette et filter på første kolonne velges ønskede data med testresultater.

Under testing kan mellomresultater sees på fanen Resultatvisning, og du kan bestemme hvilket belastningsscenario de tilhører på fanen Tilgangsspesifikasjoner. I vinduet Tildelt tilgangsspesifikasjon et kjørende skript vises i grønt, fullførte skript i rødt og ikke-utførte skript i blått.

Så vi så på de grunnleggende teknikkene for å jobbe med IOmeter-verktøyet, som vil være nødvendig for å teste individuelle disker eller RAID-arrayer. Legg merke til at vi ikke har snakket om alle funksjonene til IOmeter-verktøyet, men en beskrivelse av alle funksjonene er utenfor rammen av denne artikkelen.

Opprette en RAID-array basert på GIGABYTE SATA2-kontrolleren

Så vi begynner å lage en RAID-array basert på to disker ved å bruke GIGABYTE SATA2 RAID-kontrolleren integrert på brettet. Selvfølgelig produserer ikke Gigabyte selv brikker, og derfor skjuler det seg under GIGABYTE SATA2-brikken en ommerket brikke fra et annet selskap. Som du kan finne ut av driverens INF-fil, snakker vi om en kontroller i JMicron JMB36x-serien.

Tilgang til oppsettmenyen for kontrolleren er mulig på systemets oppstartsstadium, som du må trykke på tastekombinasjonen Ctrl+G når den tilsvarende inskripsjonen vises på skjermen. Naturligvis først inn BIOS-innstillinger du må definere driftsmodusen til to SATA-porter som tilhører GIGABYTE SATA2-kontrolleren som RAID (ellers vil ikke tilgang til RAID-array-konfiguratormenyen være mulig).

Oppsettmenyen for GIGABYTE SATA2 RAID-kontrolleren er ganske enkel. Som vi allerede har nevnt, er kontrolleren dual-port og lar deg lage RAID-arrayer på nivå 0 eller 1. Gjennom menyen for kontrollerinnstillinger kan du slette eller opprette en RAID-array. Når du oppretter en RAID-matrise, kan du angi navnet, velge matrisenivået (0 eller 1), angi stripestørrelsen for RAID 0 (128, 84, 32, 16, 8 eller 4K), og også bestemme størrelsen på array.

Når matrisen er opprettet, er det ikke lenger mulig å endre den. Det vil si at du ikke senere kan endre for den opprettede matrisen, for eksempel nivået eller stripestørrelsen. For å gjøre dette må du først slette matrisen (med tap av data), og deretter opprette den på nytt. Dette er faktisk ikke unikt for GIGABYTE SATA2-kontrolleren. Manglende evne til å endre parametrene til opprettede RAID-arrayer er en funksjon for alle kontrollere, som følger av selve prinsippet om å implementere en RAID-array.

Når en array basert på GIGABYTE SATA2-kontrolleren er opprettet, kan gjeldende informasjon ses ved hjelp av GIGABYTE RAID Configurer-verktøyet, som installeres automatisk sammen med driveren.

Opprette en RAID-array basert på Marvell 9128-kontrolleren

Konfigurering av Marvell 9128 RAID-kontrolleren er bare mulig gjennom innstillingene Board BIOS Gigabyte GA-EX58A-UD7. Generelt må det sies at Marvell 9128-kontrollerkonfiguratormenyen er noe grov og kan villede uerfarne brukere. Imidlertid vil vi snakke om disse mindre manglene litt senere, men foreløpig vil vi vurdere de viktigste funksjonalitet Marvell 9128 kontroller.

Så selv om denne kontrolleren støtter SATA III-stasjoner, er den også fullt kompatibel med SATA II-stasjoner.

Marvell 9128-kontrolleren lar deg lage en RAID-array med nivå 0 og 1 basert på to disker. For en nivå 0-matrise kan du sette stripestørrelsen til 32 eller 64 KB, og også angi navnet på matrisen. I tillegg er det et alternativ som Gigabyte Rounding, som trenger forklaring. Til tross for navnet, som ligner navnet på produsenten, har Gigabyte Rounding-funksjonen ingenting med det å gjøre. Dessuten er den på ingen måte forbundet med RAID-nivå 0-matrisen, selv om den i kontrollerinnstillingene kan defineres spesifikt for en matrise på dette nivået. Faktisk er dette den første av disse manglene i Marvell 9128-kontrollerkonfiguratoren som vi nevnte. Gigabyte-avrundingsfunksjonen er kun definert for RAID-nivå 1. Den lar deg bruke to stasjoner (for eksempel fra forskjellige produsenter eller ulike modeller), hvis kapasitet er litt forskjellig fra hverandre. Gigabyte-avrundingsfunksjonen angir nøyaktig forskjellen i størrelsene på de to diskene som brukes til å lage en RAID-nivå 1-array I Marvell 9128-kontrolleren lar Gigabyte-avrundingsfunksjonen deg sette forskjellen i størrelsene på diskene til 1 eller 10. GB.

En annen feil i Marvell 9128-kontrollerkonfiguratoren er at når du oppretter en RAID-nivå 1-array, har brukeren muligheten til å velge stripestørrelse (32 eller 64 KB). Konseptet stripe er imidlertid ikke definert i det hele tatt for RAID nivå 1.

Opprette en RAID-array basert på kontrolleren integrert i ICH10R

RAID-kontrolleren integrert i ICH10R southbridge er den vanligste. Som allerede nevnt, har denne RAID-kontrolleren 6-porter og støtter ikke bare opprettelsen av RAID 0- og RAID 1-arrayer, men også RAID 5 og RAID 10.

Tilgang til kontrollens oppsettmeny er mulig på systemets oppstartsstadium, som du må trykke på tastekombinasjonen Ctrl + I når den tilsvarende inskripsjonen vises på skjermen. Naturligvis bør du først i BIOS-innstillingene definere driftsmodusen til denne kontrolleren som RAID (ellers vil tilgang til RAID-array-konfiguratormenyen være umulig).

Oppsettmenyen for RAID-kontrolleren er ganske enkel. Gjennom menyen for kontrollerinnstillinger kan du slette eller opprette en RAID-array. Når du oppretter en RAID-matrise, kan du angi navnet, velge matrisenivået (0, 1, 5 eller 10), angi stripestørrelsen for RAID 0 (128, 84, 32, 16, 8 eller 4K), og også bestemme størrelsen på matrisen.

Sammenligning av RAID-ytelse

For å teste RAID-matriser ved å bruke IOmeter-verktøyet, laget vi scenarier for sekvensiell lesing, sekvensiell skriving, selektiv lesing og selektiv skrivebelastning. Datablokkstørrelsene i hvert belastningsscenario var som følger: 512 byte, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 KB, 1 MB.

På hver av RAID-kontrollerne opprettet vi en RAID 0-matrise med alle tillatte stripestørrelser og en RAID 1-matrise. I tillegg, for å kunne evaluere ytelsesgevinsten ved å bruke en RAID-array, testet vi også en enkelt disk. på hver av RAID-kontrollerne.

Så la oss se på resultatene av testene våre.

GIGABYTE SATA2-kontroller

Først av alt, la oss se på resultatene av testing av RAID-matriser basert på GIGABYTE SATA2-kontrolleren (fig. 6-13). Generelt viste kontrolleren seg å være bokstavelig talt mystisk, og ytelsen var rett og slett skuffende.

Ris. 6.Hastighetssekvensiell
og selektive diskoperasjoner
Western Digital WD1002FBYS

Ris. 7.Hastighetssekvensiell

med en stripestørrelse på 128 KB
(GIGABYTE SATA2-kontroller)

Ris. 12.Seriell hastighet
og selektive operasjoner for RAID 0
med en stripestørrelse på 4 KB
(GIGABYTE SATA2-kontroller)

Ris. 13. Seriell hastighet
og selektive operasjoner
for RAID 1 (GIGABYTE SATA2-kontroller)

Hvis du ser på hastighetsegenskapene til én disk (uten RAID-array), er den maksimale sekvensielle lesehastigheten 102 MB/s, og den maksimale sekvensielle skrivehastigheten er 107 MB/s.

Når du oppretter en RAID 0-matrise med en stripestørrelse på 128 KB, øker den maksimale sekvensielle lese- og skrivehastigheten til 125 MB/s, en økning på omtrent 22 %.

Med stripestørrelser på 64, 32 eller 16 KB er maksimal sekvensiell lesehastighet 130 MB/s, og maksimal sekvensiell skrivehastighet er 141 MB/s. Det vil si at med de spesifiserte stripestørrelsene øker den maksimale sekvensielle lesehastigheten med 27 %, og den maksimale sekvensielle skrivehastigheten øker med 31 %.

Faktisk er dette ikke nok for et nivå 0-array, og jeg vil gjerne at maksimalhastigheten for sekvensielle operasjoner skal være høyere.

Med en stripestørrelse på 8 KB forblir den maksimale hastigheten for sekvensielle operasjoner (lesing og skriving) omtrent den samme som med en stripestørrelse på 64, 32 eller 16 KB, men det er åpenbare problemer med selektiv lesing. Når datablokkstørrelsen øker opp til 128 KB, øker den selektive lesehastigheten (som den skal) proporsjonalt med datablokkstørrelsen. Men når datablokkstørrelsen er mer enn 128 KB, faller den selektive lesehastigheten til nesten null (til omtrent 0,1 MB/s).

Med en stripestørrelse på 4 KB synker ikke bare den selektive lesehastigheten når blokkstørrelsen er mer enn 128 KB, men også den sekvensielle lesehastigheten når blokkstørrelsen er mer enn 16 KB.

Bruk av en RAID 1-matrise på en GIGABYTE SATA2-kontroller endrer ikke den sekvensielle lesehastigheten vesentlig (sammenlignet med en enkelt stasjon), men den maksimale sekvensielle skrivehastigheten reduseres til 75 MB/s. Husk at for en RAID 1-matrise bør lesehastigheten øke, og skrivehastigheten bør ikke reduseres sammenlignet med lese- og skrivehastigheten til en enkelt disk.

Basert på resultatene av testing av GIGABYTE SATA2-kontrolleren, kan bare én konklusjon trekkes. Det er fornuftig å bruke denne kontrolleren til å lage RAID 0- og RAID 1-arrayer bare hvis alle andre RAID-kontrollere (Marvell 9128, ICH10R) allerede er i bruk. Selv om det er ganske vanskelig å forestille seg en slik situasjon.

Marvell 9128 kontroller

Marvell 9128-kontrolleren viste mye høyere hastighetsegenskaper sammenlignet med GIGABYTE SATA2-kontrolleren (fig. 14-17). Faktisk vises forskjellene selv når kontrolleren opererer med én disk. Hvis den maksimale sekvensielle lesehastigheten for GIGABYTE SATA2-kontrolleren er 102 MB/s og oppnås med en datablokkstørrelse på 128 KB, er den maksimale sekvensielle lesehastigheten for Marvell 9128-kontrolleren 107 MB/s og oppnås med en data blokkstørrelse på 16 KB.

Når du oppretter en RAID 0-matrise med stripestørrelser på 64 og 32 KB, øker den maksimale sekvensielle lesehastigheten til 211 MB/s, og sekvensiell skrivehastighet øker til 185 MB/s. Det vil si at med de spesifiserte stripestørrelsene øker den maksimale sekvensielle lesehastigheten med 97 %, og den maksimale sekvensielle skrivehastigheten øker med 73 %.

Det er ingen signifikant forskjell i hastighetsytelsen til en RAID 0-matrise med en stripestørrelse på 32 og 64 KB, men bruken av en 32 KB stripe er mer å foretrekke, siden i dette tilfellet hastigheten på sekvensielle operasjoner med en blokkstørrelse på mindre enn 128 KB vil være litt høyere.

Når du oppretter en RAID 1-array på en Marvell 9128-kontroller, forblir den maksimale sekvensielle operasjonshastigheten praktisk talt uendret sammenlignet med en enkelt disk. Så hvis den maksimale hastigheten for sekvensielle operasjoner for en enkelt disk er 107 MB/s, er den for RAID 1 105 MB/s. Vær også oppmerksom på at for RAID 1, reduseres selektiv leseytelse noe.

Generelt bør det bemerkes at Marvell 9128-kontrolleren har gode hastighetsegenskaper og kan brukes både til å lage RAID-arrayer og til å koble enkeltdisker til den.

Kontroller ICH10R

RAID-kontrolleren innebygd i ICH10R viste seg å være den beste ytelsen av alle de vi testet (Figur 18-25). Når du arbeider med en enkelt stasjon (uten å lage et RAID-array), er ytelsen tilnærmet den samme som Marvell 9128-kontrolleren. Den maksimale sekvensielle lese- og skrivehastigheten er 107 MB og oppnås med en datablokkstørrelse på 16 KB.

Ris. 18. Sekvensiell hastighet
og selektive operasjoner
for Western Digital WD1002FBYS-disk (ICH10R-kontroller)

Hvis vi snakker om RAID 0-arrayen på ICH10R-kontrolleren, er den maksimale sekvensielle lese- og skrivehastigheten ikke avhengig av stripestørrelsen og er 212 MB/s. Bare størrelsen på datablokken der den maksimale sekvensielle lese- og skrivehastigheten oppnås, avhenger av stripestørrelsen. Testresultater viser at for RAID 0 basert på ICH10R-kontrolleren er det optimalt å bruke en 64 KB stripe. I dette tilfellet oppnås maksimal sekvensiell lese- og skrivehastighet med en datablokkstørrelse på bare 16 KB.

Så, for å oppsummere, understreker vi nok en gang at RAID-kontrolleren innebygd i ICH10R betydelig overgår alle andre integrerte RAID-kontrollere i ytelse. Og gitt at den også har større funksjonalitet, er det optimalt å bruke akkurat denne kontrolleren og rett og slett glemme eksistensen av alle de andre (med mindre, selvfølgelig, systemet bruker SATA-stasjoner III).

Hvis du har støtt på eller forventer å snart støte på ett av følgende problemer på datamaskinen:

  • Det er tydeligvis ikke nok fysisk kapasitet på harddisken som en enkelt logisk stasjon. Oftest oppstår dette problemet når du arbeider med store filer (video, grafikk, databaser);
  • Harddiskens ytelse er tydeligvis ikke nok. Oftest oppstår dette problemet når du arbeider med ikke-lineære videoredigeringssystemer eller når et stort antall brukere samtidig får tilgang til filer på harddisken;
  • Harddiskens pålitelighet mangler tydeligvis. Oftest oppstår dette problemet når det er nødvendig å jobbe med data som aldri må gå tapt eller som alltid må være tilgjengelig for brukeren. Trist erfaring viser at selv det mest pålitelige utstyret noen ganger går i stykker, og som regel i det mest uleilige øyeblikket.

Å lage et RAID-system på datamaskinen din kan løse disse og noen andre problemer.

Hva er "RAID"?

I 1987 publiserte Patterson, Gibson og Katz fra University of California, Berkeley, "A Case for Redundant Arrays of Inexpensive Disks (RAID)." Denne artikkelen beskrev forskjellige typer diskarrayer, forkortet RAID - Redundant Array of Independent (eller Inexpensive) Disks (redundant array of uavhengige (eller rimelige) diskstasjoner). RAID er basert på følgende idé: ved å kombinere flere små og/eller billige diskstasjoner til en array, kan du få et system som er overlegent i kapasitet, hastighet og pålitelighet i forhold til de dyreste diskstasjonene. På toppen av det, fra en datamaskins synspunkt, ser et slikt system ut som én enkelt diskstasjon.

Det er kjent at gjennomsnittstiden mellom feil i en stasjonsgruppe er lik gjennomsnittstiden mellom feil i en enkelt stasjon delt på antall stasjoner i arrayen. Som et resultat er arrayens gjennomsnittlige tid mellom feil for kort for mange applikasjoner. Imidlertid kan en diskarray gjøres tolerant for feil på en enkelt stasjon på flere måter.

I denne artikkelen ble fem typer (nivåer) av diskarrayer definert: RAID-1, RAID-2, ..., RAID-5. Hver type ga feiltoleranse samt forskjellige fordeler i forhold til en enkelt stasjon. Sammen med disse fem typene har RAID-0-diskarrayen, som IKKE er overflødig, også vunnet popularitet.

Hvilke RAID-nivåer er det og hvilken bør du velge?

RAID-0. Vanligvis definert som en ikke-redundant gruppe diskstasjoner uten paritet. RAID-0 kalles noen ganger "Striping" basert på måten informasjon plasseres på stasjonene som er inkludert i arrayet:

Siden RAID-0 ikke har redundans, fører svikt i én stasjon til svikt i hele arrayet. På den annen side gir RAID-0 maksimal dataoverføringshastighet og effektiv bruk av diskplass. Fordi RAID-0 ikke krever komplekse matematiske eller logiske beregninger, er implementeringskostnadene minimale.

Anvendelsesområde: lyd- og videoapplikasjoner som krever høyhastighets kontinuerlig dataoverføring, som ikke kan leveres av en enkelt stasjon. For eksempel viser undersøkelser utført av Mylex for å bestemme den optimale disksystemkonfigurasjonen for en ikke-lineær videoredigeringsstasjon at sammenlignet med en enkelt stasjon, gir en RAID-0-array med to stasjoner en 96 % økning i skrive-/lesehastighet, av tre stasjoner - med 143 % (i henhold til Miro VIDEO EXPERT Benchmark-testen).

RAID-1. Bedre kjent som "speiling" ("diskspeil") eller et par diskstasjoner som inneholder samme informasjon og utgjør én logisk disk:

Kjør 0Kjør 1

Opptak utføres på begge stasjonene i hvert par. Imidlertid kan stasjoner i et par utføre samtidige leseoperasjoner. Dermed kan «speiling» doble lesehastigheten, men skrivehastigheten forblir uendret. RAID-1 har 100 % redundans og en feil på én stasjon fører ikke til svikt i hele arrayet – kontrolleren bytter ganske enkelt lese-/skriveoperasjoner til den gjenværende stasjonen.

RAID-1 gir høyeste hastighet fungerer blant alle typer redundante arrays, spesielt i et flerbrukermiljø, men den verste bruken av diskplass. Fordi RAID-1 ikke krever komplekse matematiske eller logiske beregninger, er implementeringskostnadene minimale.

Minste antall stasjoner i arrayet er 2.

For å øke skrivehastigheten og sikre pålitelig datalagring, kan flere RAID-1-arrayer i sin tur kombineres til RAID-0. Denne konfigurasjonen kalles "to-nivå" RAID eller RAID-10 (RAID 0+1)

Minste antall stasjoner i arrayet er 4.

Anvendelsesområde: billige arrays der det viktigste er påliteligheten til datalagring.

RAID-2. Distribuerer data i sektorstørrelser på tvers av en gruppe diskstasjoner. Noen stasjoner er dedikert til ECC-lagring (Error Correction Code). Siden de fleste stasjoner lagrer ECC-koder per sektor som standard, gir ikke RAID-2 spesielle fordeler sammenlignet med RAID-3 og er derfor praktisk talt ikke brukt.

RAID-3. Som i tilfellet med RAID-2, distribueres data over striper med én sektor i størrelse, og en av array-stasjonene er allokert til å lagre paritetsinformasjon:

RAID-3 er avhengig av ECC-koder lagret i hver sektor for å oppdage feil. Hvis en av stasjonene svikter, kan informasjonen som er lagret på den, gjenopprettes ved å beregne eksklusiv OR (XOR) ved å bruke informasjonen på de resterende stasjonene. Hver post er vanligvis distribuert over alle stasjoner, og derfor er denne typen array bra for diskintensive applikasjoner. Fordi hver I/U-operasjon får tilgang til alle diskstasjonene i arrayet, kan ikke RAID-3 utføre flere operasjoner samtidig. Derfor er RAID-3 bra for enkeltbrukermiljøer med én oppgave med lange poster. For å jobbe med korte opptak er det nødvendig å synkronisere rotasjonen av diskstasjonene, siden ellers er en reduksjon i utvekslingshastigheten uunngåelig. Lite brukt, pga dårligere enn RAID-5 når det gjelder diskplassbruk. Gjennomføring krever betydelige kostnader.

RAID-4. RAID-4 er identisk med RAID-3 bortsett fra at stripestørrelsen er mye større enn én sektor. I dette tilfellet utføres lesinger fra en enkelt stasjon (ikke medregnet stasjonen som lagrer paritetsinformasjon), slik at flere leseoperasjoner kan utføres samtidig. Men siden hver skriveoperasjon må oppdatere innholdet på paritetsstasjonen, er det ikke mulig å utføre flere skriveoperasjoner samtidig. Denne typen array har ingen merkbare fordeler i forhold til en RAID-5 array.

RAID-5. Denne typen matrise kalles noen ganger en "roterende paritetsmatrise". Denne typen Arrayen overvinner den iboende ulempen med RAID-4 - manglende evne til å utføre flere skriveoperasjoner samtidig. Denne matrisen, som RAID-4, bruker store striper, men i motsetning til RAID-4 lagres paritetsinformasjon ikke på én stasjon, men på alle stasjoner etter tur:

Skriveoperasjoner får tilgang til én stasjon med data og en annen stasjon med paritetsinformasjon. Siden paritetsinformasjonen for forskjellige striper er lagret på forskjellige stasjoner, er det umulig å utføre flere samtidige skrivinger bare i de sjeldne tilfellene der enten datastripene eller stripene med paritetsinformasjon er på samme stasjon. Jo flere stasjoner i arrayet, desto sjeldnere faller plasseringen av informasjons- og paritetsstripene sammen.

Bruksområde: pålitelige arrays med store volum. Gjennomføring krever betydelige kostnader.

Minste antall stasjoner i arrayet er 3.

RAID-1 eller RAID-5?

RAID-5, sammenlignet med RAID-1, bruker diskplass mer økonomisk, siden det for redundans ikke lagrer en "kopi" av informasjon, men et kontrollnummer. Som et resultat kan RAID-5 kombinere et hvilket som helst antall stasjoner, hvorav bare én vil inneholde redundant informasjon.

Men høyere diskplasseffektivitet går på bekostning av lavere informasjonsutvekslingskurs. Når du skriver informasjon til RAID-5, må paritetsinformasjonen oppdateres hver gang. For å gjøre dette må du bestemme hvilke paritetsbiter som har endret seg. Først leses den gamle informasjonen som skal oppdateres. Denne informasjonen blir deretter XORed med den nye informasjonen. Resultatet av denne operasjonen er en bitmaske der hver bit =1 betyr at verdien i paritetsinformasjonen ved den tilsvarende posisjonen må erstattes. Den oppdaterte paritetsinformasjonen skrives deretter til riktig sted. Derfor, for hver programforespørsel om å skrive informasjon, utfører RAID-5 to lesinger, to skrivere og to XOR-operasjoner.

Det er en kostnad å bruke diskplass mer effektivt (lagre en paritetsblokk i stedet for en kopi av dataene): det kreves ekstra tid for å generere og skrive paritetsinformasjon. Dette betyr at skrivehastigheten på RAID-5 er lavere enn på RAID-1 med et forhold på 3:5 eller til og med 1:3 (dvs. skrivehastigheten på RAID-5 er 3/5 til 1/3 skrivehastigheten RAID-1). På grunn av dette er RAID-5 meningsløst å lage i programvare. De kan heller ikke anbefales i tilfeller der opptakshastigheten er kritisk.

Hvilken RAID-implementeringsmetode bør du velge – programvare eller maskinvare?

Etter å ha lest beskrivelsene av de ulike RAID-nivåene, vil du legge merke til at ingen steder er det noen omtale av noen spesifikke maskinvarekrav som er nødvendige for å implementere RAID. Derfra kan vi konkludere med at alt som trengs for å implementere RAID er å koble det nødvendige antallet diskstasjoner til kontrolleren tilgjengelig på datamaskinen og installere spesiell programvare på datamaskinen. Dette er sant, men ikke helt!

Det er faktisk mulig å implementere RAID i programvare. Et eksempel er Microsoft Windows NT 4.0 Server OS, der programvareimplementering av RAID-0, -1 og til og med RAID-5 er mulig. derimot denne avgjørelsen bør betraktes som ekstremt forenklet, og ikke tillate å fullt ut realisere mulighetene til en RAID-array. Det er nok å merke seg at med programvareimplementering av RAID, hele byrden med å plassere informasjon på diskstasjoner, beregne kontrollkoder, etc. legge seg på prosessor, som naturligvis ikke øker ytelsen og påliteligheten til systemet. Av samme grunner er det praktisk talt ingen servicefunksjoner her, og alle operasjoner for å erstatte en defekt stasjon, legge til en ny stasjon, endre RAID-nivået osv. utføres med fullstendig tap av data og med fullstendig forbud mot å utføre andre operasjoner. Den eneste fordelen med programvareimplementering av RAID er den minimale kostnaden.

Mye flere muligheter er gitt av maskinvareimplementering av RAID ved bruk av spesielle RAID-kontrollere:

  • en spesialisert kontroller avlaster sentralprosessoren betydelig fra RAID-operasjoner, og kontrollerens effektivitet er mer merkbar jo høyere RAID-kompleksitetsnivået er;
  • kontrollere er som regel utstyrt med drivere som lar deg lage RAID for nesten alle populære operativsystemer;
  • Kontrollerens innebygde BIOS og inkluderte administrasjonsprogrammer lar systemadministratoren enkelt koble til, koble fra eller erstatte stasjoner som er inkludert i RAID, lage flere RAID-arrays, selv på forskjellige nivåer, overvåke statusen til diskarrayen, etc. Med "avanserte" kontrollere kan disse operasjonene utføres "on the fly", dvs. uten å slå av systemenheten. Mange operasjoner kan utføres i " bakgrunn", dvs.
  • uten å avbryte gjeldende arbeid og til og med eksternt, dvs. fra hvilken som helst (selvfølgelig, hvis du har tilgang) arbeidsplass;

kontrollere kan utstyres med et bufferminne ("cache") der de siste blokkene med data er lagret, som, med hyppig tilgang til de samme filene, kan øke ytelsen til disksystemet betydelig. Ulempen med maskinvare-RAID-implementering er de relativt høye kostnadene for RAID-kontrollere. Men på den ene siden må du betale for alt (pålitelighet, hastighet, service). På den annen side, i I det siste , med utviklingen av mikroprosessorteknologi begynte kostnadene for RAID-kontrollere (spesielt yngre modeller) å falle kraftig og ble sammenlignbare med kostnadene for vanlige diskkontrollere, noe som gjør det mulig å installere RAID-systemer ikke bare i dyre stormaskiner, men også i servere inngangsnivå

og til og med til arbeidsstasjoner.

© Andrey Egorov, 2005, 2006. TIM Group of Companies.

Forumbesøkende stiller oss spørsmålet: "Hvilket RAID-nivå er det mest pålitelige?" Alle vet at det vanligste nivået er RAID5, men det er ikke uten alvorlige ulemper som ikke er åpenbare for ikke-spesialister.

RAID 0, RAID 1, RAID 5, RAID6, RAID 10 eller hva er RAID-nivåer?

I denne artikkelen vil jeg prøve å karakterisere de mest populære RAID-nivåene, og deretter formulere anbefalinger for bruk av disse nivåene. For å illustrere artikkelen laget jeg et diagram der jeg plasserte disse nivåene i det tredimensjonale rommet pålitelighet, ytelse og kostnadseffektivitet. JBOD (Bare en haug med disker) er en enkel spennvidde av harddisker, som formelt sett ikke er et RAID-nivå. Et JBOD-volum kan være en rekke av en enkelt disk eller en aggregering av flere disker. RAID-kontrolleren trenger ikke å utføre noen beregninger for å betjene et slikt volum. I diagrammet vårt fungerer JBOD-stasjonen som et "enkelt" eller utgangspunkt - dens pålitelighet, ytelse og kostnadsverdier er de samme som for en enkelt stasjon..

harddisk("Striping") har ingen redundans, og distribuerer informasjon umiddelbart over alle disker som er inkludert i arrayet i form av små blokker ("striper"). På grunn av dette øker ytelsen betydelig, men påliteligheten lider. Som med JBOD får vi 100 % av diskkapasiteten for pengene.

La meg forklare hvorfor påliteligheten til datalagring på et hvilket som helst sammensatt volum reduseres - siden hvis noen av harddiskene som er inkludert i det feiler, går all informasjon fullstendig og uopprettelig tapt. I samsvar med sannsynlighetsteori, matematisk, er påliteligheten til et RAID0-volum lik produktet av påliteligheten til diskene som består av, som hver er mindre enn én, så den totale påliteligheten er åpenbart lavere enn påliteligheten til en hvilken som helst disk.

Bra nivå - RAID 1("Speiling", "speil"). Den har beskyttelse mot feil på halvparten av den tilgjengelige maskinvaren (i det generelle tilfellet en av to harddisker), gir en akseptabel skrivehastighet og øker lesehastigheten på grunn av parallellisering av forespørsler. Ulempen er at du må betale kostnadene for to harddisker for å få brukbar kapasitet til én harddisk.

I utgangspunktet antas det at harddisken er en pålitelig ting. Følgelig er sannsynligheten for feil på to disker samtidig lik (i henhold til formelen) med produktet av sannsynlighetene, dvs. størrelsesordener lavere! Dessverre er det virkelige liv ikke en teori! To harddisker tas fra samme batch og fungerer under de samme forholdene, og hvis en av diskene svikter, øker belastningen på den resterende, så i praksis, hvis en av diskene svikter, må det iverksettes hastetiltak for å gjenopprette overflødighet. For å gjøre dette, anbefales det å bruke hot spare-disker med et hvilket som helst RAID-nivå (unntatt null) HotSpare. Fordelen med denne tilnærmingen er å opprettholde konstant pålitelighet. Ulempen er enda større kostnader (dvs. kostnaden for 3 harddisker for å lagre volumet på en disk).

Speil på mange disker er et nivå RAID 10. Når du bruker dette nivået, er speilet par med disker ordnet i en "kjede", slik at det resulterende volumet kan overstige kapasiteten til en enkelt harddisk. Fordelene og ulempene er de samme som for RAID1-nivået. Som i andre tilfeller, anbefales det å inkludere HotSpare hot spare-disker i arrayet med en hastighet på én reserve for hver femte arbeider.

RAID 5, faktisk den mest populære av nivåene - først og fremst på grunn av effektiviteten. Ved å ofre kapasiteten til bare én disk fra arrayet for redundans, får vi beskyttelse mot feil på noen av volumets harddisker. Å skrive informasjon til et RAID5-volum krever ekstra ressurser, siden ytterligere beregninger kreves, men ved lesing (sammenlignet med en separat harddisk), er det en gevinst, fordi datastrømmer fra flere array-stasjoner er parallellisert.

Ulempene med RAID5 vises når en av diskene svikter - hele volumet går inn i kritisk modus, alle skrive- og leseoperasjoner er ledsaget av ytterligere manipulasjoner, ytelsen faller kraftig, og diskene begynner å varmes opp. Hvis umiddelbar handling ikke gjøres, kan du miste hele volumet. Derfor (se ovenfor) bør du definitivt bruke en Hot Spare-disk med et RAID5-volum.

I tillegg til de grunnleggende nivåene RAID0 - RAID5 beskrevet i standarden, er det kombinerte nivåer RAID10, RAID30, RAID50, RAID15, som tolkes ulikt av ulike produsenter.

Essensen av slike kombinasjoner er kort som følger. RAID10 er en kombinasjon av en og null (se ovenfor). RAID50 er en kombinasjon av "0" nivå 5-volumer. RAID15 er et "speil" av "femmerne". Og så videre.

Dermed arver kombinerte nivåer fordelene (og ulempene) til sine "foreldre". Så utseendet til en "null" i nivået RAID 50 tilfører det ingen pålitelighet, men har en positiv effekt på ytelsen. Nivå RAID 15, sannsynligvis veldig pålitelig, men det er ikke den raskeste og dessuten ekstremt uøkonomisk (den nyttige kapasiteten til volumet er mindre enn halvparten av størrelsen på den originale diskgruppen).

RAID 6 skiller seg fra RAID 5 ved at i hver rad med data (på engelsk stripe) har ikke en, men to sjekksum blokk. Sjekksummer er "flerdimensjonale", dvs. uavhengig av hverandre, så selv feilen på to disker i arrayet lar deg lagre de originale dataene. Beregning av kontrollsummer ved hjelp av Reed-Solomon-metoden krever mer intensive beregninger sammenlignet med RAID5, så tidligere ble det sjette nivået praktisk talt ikke brukt. Nå støttes det av mange produkter, siden de begynte å installere spesialiserte mikrokretser som utfører alle nødvendige matematiske operasjoner.

I følge noen studier ender gjenoppretting av integritet etter en enkelt diskfeil på et RAID5-volum som består av store SATA-disker (400 og 500 gigabyte) i datatap i 5 % av tilfellene. Med andre ord, i ett tilfelle av tjue, under regenereringen av en RAID5-array til en Hot Spare-disk, kan den andre disken mislykkes... Derfor anbefalingene fra de beste RAID-stasjonene: 1) Alltid gjøre sikkerhetskopier; 2) bruk RAID6!

Nylig har nye nivåer RAID1E, RAID5E, RAID5EE dukket opp. Bokstaven "E" i navnet betyr Forbedret.

RAID level-1 Enhanced (RAID level-1E) kombinerer speiling og datastriping. Denne blandingen av nivå 0 og 1 er ordnet som følger. Dataene i en rad er fordelt nøyaktig som i RAID 0. Det vil si at dataraden ikke har noen redundans. Den neste raden med datablokker kopierer den forrige med en forskyvning på én blokk. Således, som i standard RAID 1-modus, har hver datablokk en speilkopi på en av diskene, slik at det nyttige volumet til arrayet er lik halvparten av det totale volumet til harddiskene som er inkludert i arrayet. RAID 1E krever en kombinasjon av tre eller flere stasjoner for å fungere.

Jeg liker veldig godt RAID1E-nivået. For kraftig grafikk arbeidsstasjon eller til og med for hjemmedatamaskinoptimalt valg! Den har alle fordelene til null og første nivå - utmerket hastighet og høy pålitelighet.

La oss nå gå videre til nivået RAID level-5 Enhanced (RAID level-5E). Dette er det samme som RAID5, bare med en sikkerhetskopidisk innebygd i arrayet ekstra stasjon. Denne integrasjonen utføres som følger: på alle diskene i arrayet er 1/N del av plassen ledig, som brukes som en hot reserve hvis en av diskene svikter. På grunn av dette demonstrerer RAID5E, sammen med pålitelighet, bedre ytelse, siden lesing/skriving utføres parallelt fra et større antall stasjoner samtidig og reservestasjonen ikke er inaktiv, som i RAID5. Det er klart at backup-disken som er inkludert i volumet ikke kan deles med andre volumer (dedikert vs. delt). Et RAID 5E-volum er bygget på minimum fire fysiske disker. Det nyttige volumet til et logisk volum beregnes ved å bruke formelen N-2.

RAID level-5E Enhanced (RAID level-5EE) ligner på RAID level-5E, men den har mer effektiv distribusjon ekstra stasjon og, som et resultat, raskere gjenopprettingstid. I likhet med RAID5E-nivået, distribuerer dette RAID-nivået blokker med data og kontrollsummer i rader. Men den distribuerer også gratis blokker av reservestasjonen, og reserverer ikke bare deler av diskplassen til disse formålene. Dette reduserer tiden som kreves for å rekonstruere integriteten til et RAID5EE-volum. Sikkerhetskopieringsdisken som er inkludert i volumet kan ikke deles med andre volumer - som i forrige tilfelle. Et RAID 5EE-volum er bygget på minimum fire fysiske disker. Det nyttige volumet til et logisk volum beregnes ved å bruke formelen N-2.

Merkelig nok, ingen omtale av nivå RAID 6E Jeg kunne ikke finne det på Internett - så langt er ikke dette nivået tilbudt eller til og med annonsert av noen produsent. Men nivået RAID6E (eller RAID6EE?) kan tilbys etter samme prinsipp som det forrige. Disk HotSpare Nødvendigvis må følge med ethvert RAID-volum, inkludert RAID 6. Selvfølgelig vil vi ikke miste informasjon hvis en eller to disker feiler, men det er ekstremt viktig å begynne å regenerere integriteten til arrayet så tidlig som mulig for raskt å få systemet ut av den "kritiske" modusen. Siden behovet for en Hot Spare-disk er hevet over tvil for oss, ville det være logisk å gå lenger og "spre" det over volumet slik det gjøres i RAID 5EE for å få fordelene ved å bruke mer mengde disker ( beste hastighet lese-skrive og mer rask bedring integritet).

RAID-nivåer i "tall".

Jeg har samlet noen i en tabell viktige parametere nesten alle RAID-nivåer, slik at du kan sammenligne dem med hverandre og bedre forstå essensen deres.

Nivå
~~~~~~~

Hytter-
nøyaktig
ness
~~~~~~~

Bruk
Diskkapasitet
~~~~~~~

Produksjon
ditel-
ness
lesning

~~~~~~~

Produksjon
ditel-
ness
poster

~~~~~~~

Innebygd
disk
reservere

~~~~~~~

Min. antall disker
~~~~~~~

Maks. antall disker

~~~~~~~

Exc.

Exc.

Exc.

Exc.

Alle "speil"-nivåer er RAID 1, 1+0, 10, 1E, 1E0.

La oss prøve igjen for å forstå hvordan disse nivåene skiller seg?

RAID 1.
Dette er et klassisk "speil". To (og bare to!) harddisker fungerer som én, og er en komplett kopi av hverandre. Feil på noen av disse to stasjonene resulterer ikke i tap av dataene dine, ettersom kontrolleren fortsetter å operere på den gjenværende stasjonen. RAID1 i tall: 2x redundans, 2x pålitelighet, 2x kostnad. Skriveytelsen tilsvarer den til en enkelt harddisk. Leseytelsen er høyere fordi kontrolleren kan distribuere leseoperasjoner mellom to disker.

RAID 10.
Essensen av dette nivået er at diskene i matrisen kombineres i par til "speil" (RAID 1), og deretter blir alle disse speilparene på sin side kombinert til en felles stripet matrise (RAID 0). Det er derfor det noen ganger refereres til som RAID 1+0. Viktig poeng– RAID 10 kan bare kombinere et partall av disker (minimum 4, maksimum 16). Fordeler: pålitelighet arves fra "speilet", ytelse for både lesing og skriving arves fra "null".

RAID 1E.
Bokstaven "E" i navnet betyr "Forbedret", dvs. "forbedret". Prinsippet for denne forbedringen er som følger: dataene "strippes" i blokker på tvers av alle diskene i arrayet, og deretter "strippes" igjen med et skifte til en disk. RAID 1E kan kombinere fra tre til 16 disker. Pålitelighet tilsvarer de "ti" indikatorene, og ytelsen blir litt bedre på grunn av større "veksling".

RAID 1E0.
Dette nivået er implementert slik: vi lager en "null" array fra RAID1E arrays. Derfor må det totale antallet disker være et multiplum av tre: minimum tre og maksimalt seksti! I dette tilfellet er det usannsynlig at vi får en hastighetsfordel, og kompleksiteten til implementeringen kan påvirke påliteligheten negativt. Den største fordelen er muligheten til å kombinere et veldig stort (opptil 60) antall disker i en matrise.

Likheten til alle RAID 1X-nivåer ligger i deres redundansindikatorer: for pålitelighetens skyld ofres nøyaktig 50% av den totale kapasiteten til array-diskene.

Avhengig av den valgte RAID-spesifikasjonen, kan lese- og skrivehastigheter og/eller beskyttelse mot datatap bli forbedret.

Når du arbeider med diskundersystemer, møter IT-spesialister ofte to hovedproblemer.

  • Den første er lav hastighet lese/skrive, noen ganger er til og med hastighetene til en SSD-stasjon ikke nok.
  • Den andre er feilen på disker, noe som betyr tap av data, som kan være umulig å gjenopprette.

Begge disse problemene løses ved hjelp av RAID-teknologi (redundant rekke uavhengige disker) - en virtuell datalagringsteknologi som kombinerer flere fysiske disker til ett logisk element.

Avhengig av den valgte RAID-spesifikasjonen, kan lese-/skrivehastigheter og/eller beskyttelse mot datatap bli forbedret.

RAID-spesifikasjonsnivåene er: 1,2,3,4,5,6,0. I tillegg er det kombinasjoner: 01,10,50,05,60,06. I denne artikkelen vil vi se på de vanligste typene RAID-arrayer. Men først la oss si at det er maskinvare og programvare RAID-arrayer.

Maskinvare og programvare RAID-matriser

  • Programvarearrayer opprettes etter installasjonen av operativsystemet ved hjelp av programvareprodukter og verktøy, som er den største ulempen med slike diskarrayer.
  • Maskinvare-RAIDer oppretter en diskarray før du installerer operativsystemet og er ikke avhengige av det.

RAID 1

RAID 1 (også kalt "Mirror" - Mirror) innebærer fullstendig duplisering av data fra en fysisk disk til en annen.

Ulempene med RAID 1 inkluderer det faktum at du får halvparten av diskplassen. De. Hvis du bruker TO 250 GB disker, vil systemet kun se EN 250 GB i størrelse. Denne typen RAID gir ikke en gevinst i hastighet, men det øker nivået av feiltoleranse betydelig, fordi hvis en disk svikter, er det alltid en fullstendig kopi av den. Opptak og sletting fra disker skjer samtidig. Hvis informasjon ble slettet med vilje, vil det ikke være mulig å gjenopprette den fra en annen disk.

RAID 0

RAID 0 (også kalt Striping) innebærer å dele informasjon i blokker og samtidig skrive forskjellige blokker til forskjellige disker.

Denne teknologien øker lese/skrivehastigheten, lar brukeren bruke hele den totale kapasiteten til diskene, men reduserer feiltoleransen, eller rettere sagt reduserer den til null. Så hvis en av diskene svikter, vil det være nesten umulig å gjenopprette informasjon. For å bygge RAID 0, anbefales det å bruke bare svært pålitelige disker.

RAID 5 kan kalles en mer avansert RAID 0. Du kan bruke opptil 3 harddisker. På alle unntatt én registreres raid 0, og på den siste registreres en spesiell kontrollsum, som lar deg lagre informasjon på harddiskene i tilfelle "død" av en av dem (men ikke mer enn én) . Driftshastigheten til en slik gruppe er høy. Hvis du bytter ut disken, vil det ta mye tid.

RAID 2, 3, 4

Dette er metoder for distribuert informasjonslagring ved bruk av disker som er tildelt paritetskoder. De skiller seg bare fra hverandre i blokkstørrelser. I praksis blir de praktisk talt ikke brukt på grunn av behovet for å bruke en stor del av diskkapasiteten til lagring av ECC- og/eller paritetskoder, samt på grunn av lav ytelse.

RAID 10

Det er en blanding av RAID-arrays 1 og 0. Og den kombinerer fordelene med hver: høy ytelse og høy feiltoleranse.

Matrisen må inneholde et partall disker (minimum 4) og er det mest pålitelige alternativet for lagring av informasjon. Ulempen er den høye kostnaden for diskarrayen: den effektive kapasiteten vil være halvparten av den totale kapasiteten til diskplassen.

Er en blanding av RAID-arrays 5 og 0. RAID 5 bygges, men komponentene vil ikke være uavhengige harddisker, men RAID 0-matriser.

Egendommer.

Hvis RAID-kontrolleren bryter sammen, er det nesten umulig å gjenopprette informasjonen (gjelder ikke Mirror). Selv om du kjøper nøyaktig samme kontroller, er det stor sannsynlighet for at RAID-en blir satt sammen fra andre disksektorer, noe som betyr at informasjon på diskene går tapt.

Som regel kjøpes plater i ett parti. Følgelig kan arbeidslivet deres være omtrent det samme. I dette tilfellet anbefales det å umiddelbart, på tidspunktet for kjøp av disker for arrayet, kjøpe noe overskudd. For å konfigurere RAID 10 av 4 disker, bør du for eksempel kjøpe 5 disker. Så hvis en av dem feiler, kan du raskt erstatte den med en ny før andre disker svikter.

Konklusjoner.

I praksis brukes oftest bare tre typer RAID-arrayer. Disse er RAID 1, RAID 10 og RAID 5.

Når det gjelder kostnad/ytelse/feiltoleranse, anbefales det å bruke:

  • RAID 1(speiling) for å danne et diskundersystem for brukeroperativsystemer.
  • RAID 10 for data som har høye krav til skrive- og lesehastighet. For eksempel for lagring av 1C:Enterprise-databaser, e-postserver, AD.
  • RAID 5 brukes til å lagre fildata.

Den ideelle serverløsningen ifølge flertallet systemadministratorer er en server med seks disker. De to diskene "speiles" og operativsystemet er installert på RAID 1. De fire gjenværende stasjonene er kombinert til RAID 10 for rask, problemfri og pålitelig systemdrift.