Vad är raidsupport. Hur man skapar en RAID-array och varför behövs den. Bygga en rad diskar - från teori till praktik

Om du vill dubbla prestandan för ditt operativsystem, då är vår artikel för dig!

Oavsett hur kraftfull din dator är så har den fortfarande en svag länk, det är en hårddisk, den enda enheten i systemenheten som har mekanik inuti. All kraft från din processor och 16 GB random access minne kommer att omintetgöras av den föråldrade driftprincipen för en konventionell hårddisk. Det är inte för inte som en dator jämförs med en flaska, och en hårddisk mot halsen. Oavsett hur mycket vatten det är i flaskan kommer det att rinna ut genom en smal hals.

Det finns två kända sätt att snabba upp din dator, det första är att köpa en dyr SSD SSD-enhet, och det andra är att få ut det mesta av ditt moderkort, nämligen att sätta upp en RAID 0-array med två hårddiskar. Förresten, vem hindrar oss från att skapa RAID 0-array med två SSD:er!

Hur man ställer in en RAID 0-array och installerar Windows 10 på den. Eller hur man dubblar hastigheten på disksystemet

Som du gissat handlar dagens artikel om att skapa och konfigurera en diskarray RAID 0 bestående från två hårddiskar. Jag tänkte på det för flera år sedan och specialköpte två nya SATA III (6 Gb/s) 250 GB hårddiskar, men på grund av komplexiteten i detta ämne för nybörjare var jag tvungen att skjuta upp det då. Idag, när möjligheterna med modern moderkort närmade sig en sådan funktionalitetsnivå att även en nybörjare kan skapa en RAID 0-array, återkommer jag till detta ämne med stor glädje.

Obs: För att skapa en RAID 0-array kan du ta diskar av valfri storlek, till exempel 1 TB. I artikeln, för ett enkelt exempel, tas två 250 GB diskar, eftersom det inte fanns några lediga diskar med en annan volym till hands.

Det är viktigt för alla datorentusiaster att veta att RAID 0 ("striping" eller "striping") är en diskuppsättning av två eller flera hårddiskar utan redundans. Du kan översätta den här frasen till vanlig ryska så här: när den är installerad i systemenhet två eller flera hårddiskar (helst av samma storlek och en tillverkare) och kombinera dem till en RAID 0-diskarray skrivs/läses information till dessa diskar samtidigt, vilket fördubblar prestandan för diskoperationer. Det enda villkoret är att ditt moderkort måste stödja RAID 0-teknik (i vår tid stöder nästan alla moderkort skapandet av raid-arrayer).

Den uppmärksamma läsaren kan fråga sig: "Vad är frånvaron av redundans?"

Svar. RAID datavirtualiseringsteknik utvecklades främst för datasäkerhet och börjar med, vilket ger dubbel tillförlitlighet (data skrivs till två hårddiskar parallellt och om en hårddisk går sönder förblir all information säker på den andra hårddisken). Så, RAID 0-teknik skriver inte data parallellt till två hårddiskar, RAID 0 delar upp information i datablock när man skriver och skriver den till flera hårddiskar samtidigt, på grund av detta fördubblas prestanda för diskoperationer, men om någon hårddisk misslyckas, disk all information på andra hårddiskenÄr försvunnen.

Det är därför skaparna av RAID-virtualiseringsteknologi - Randy Katz och David Patterson, inte ansåg RAID 0 vara någon form av RAID-nivå och kallade den "0", eftersom den inte är säker på grund av bristen på redundans.

Vänner, men ni måste erkänna att hårddiskar inte går sönder varje dag, och för det andra, med två hårddiskar kombinerade i en RAID 0-array, kan du fungera som en enkel hårddisk, det vill säga om du med jämna mellanrum skapar ett operativsystem, då du kommer att försäkra dig från eventuella problem med 100 %.

Så innan du skapar en RAID 0-array föreslår jag att du installerar en av våra två nya hårddiskarSATA III (6 Gb/s) till systemenheten och kontrollera den för lässkrivhastighet med verktygCrystalDiskMark och ATTO Disk Benchmark. Redan efter skapandetVi kommer att kontrollera RAID 0-arrayen och installera Windows 10 på den igenhastigheten för att läsa posten med samma verktyg och se om den verkligen denna tekniköka hastigheten på vårt operativsystem.

För experimentet kommer vi att ta en långt ifrån nybliven mamma ASUS-kort P8Z77-V PRO byggd på Intel chipset Z77 Express. Fördelarna med moderkort byggda på Intel Z77, Z87 och nyare H87, B87-chipset är avancerade Intels teknologier Rapid Storage Technology (RST), som är speciellt designad för RAID 0-arrayer även från SSD:er.

Vi ansluter SATA III WDC WD2500AAKX 250 GB hårddisk till höghastighetsporten på moderkortet och slå på datorn.

Våra program.

Framöver kommer jag att säga att testresultaten är ganska normala för en vanlig hårddisk med det modernaste gränssnittet. SATA III.

CrystalDiskMark

Är äldsta programmet för att testa hårddiskarnas prestanda kan du ladda ner på min molnlagring, länk https://cloud.mail.ru/public/6kHF/edWWJwfxa

Programmet utför ett test av slumpmässig och sekventiell läsning/skrivning till hårddisken i block om 512 och 4 kb.

Välj önskad enhet, till exempel vår hårddisk med dig under bokstaven C: och klicka på Alla.

Slutresultat. Den maximala hastigheten för att skriva information till hårddisken nådde 104 Mb / s, läshastigheten - 125 Mb / s.

ATTO Disk Benchmark

Slutresultat. Den maximala hastigheten för att skriva information till en hårddisk har uppnåtts 119 Mb/s, läshastighet - 121 Mb/s.

Nåväl, nu ställer vi in ​​vår RAID 0-array i BIOS och installerar operativsystemet Windows 10 på den.

Konfigurera en RAID 0-array

Vi ansluter till vårt moderkort två identiska i volym (250 GB) hårt SATA-enhet III: WDC WD2500AAKX-00ERMA0 och WDC WD2500AAKX-001CA0.

Vårt moderkort har 4 portar SATA III (6 Gb/s), vi kommer att använda nr 5 och nr 6


Vi slår på datorn och går in i BIOS genom att trycka på DEL-tangenten vid uppstart.

Gå till fliken Avancerat, alternativet SATA-konfiguration.

Ställ in SATA Mode Selection på RAID

För att spara ändringarna, tryck på F10 och välj Ja. En omstart pågår.

Om du har aktiverat RAID-teknik i BIOS, kommer en uppmaning att visas på skärmen vid nästa uppstart för att trycka på kortkommandot ( CTRL-I) för att gå in i RAID-konfigurationens kontrollpanel.

Det här fönstret visar även våra WDC-hårddiskar anslutna till port 4 och 5, som ännu inte finns i en RAID-array (Non-RAID Disk). Tryck på CTRL-I och gå till inställningspanelen.


I panelens första fönster behöver vi den första fliken Skapa en RAID-volym (Skapa en RAID-volym), för att komma in i den trycker du på Enter.

Här gör vi grundinställningarna för vår framtida RAID 0-array.

Namn : (RAID-namn).

Tryck på mellanslagstangenten och ange ett namn.

Låt det vara "RAID 0 new" och tryck på Enter. Scrolla nedåt med Tab-tangenten.

RAID-nivå: (RAID-nivå).

Vi skapar RAID 0 (stripe) - en diskuppsättning av två hårddiskar utan redundans. Välj den här nivån med pilarna på tangentbordet och tryck på Enter.

Scrolla nedåt med Tab-tangenten.

Remsstorlek:

Vi lämnar det som det är.

Kapacitet: (volym)

Visas automatiskt. Volymen på våra två hårddiskar är 500 GB, eftersom vi använder RAID 0-nivån (stripe) och våra två hårddiskar fungerar som en. F meme Enter.

Vi ändrar inget annat och flyttar till det sista objektet Skapa volym och trycker på Enter.

En varning visas:

VARNING: ALLA DATA PÅ UTVALDA DISKAR KOMMER FÖRLORA.

Är du säker på att du vill skapa den här volymen? (J/N):

VARNING: ALL DATA på de valda enheterna kommer att gå förlorade.

Är du säker på att du vill skapa den här volymen? (J/N):

Tryck på Y (Ja) på tangentbordet.

RAID 0-matrisen har skapats och fungerar redan och är i normalstatus. För att lämna inställningspanelen, tryck på Esc-tangenten på tangentbordet.

Är du säker på att du vill avsluta (Är du säker på att du vill avsluta? Tryck på Y (Ja). En omstart sker.

Nu, varje gång datorn startas, kommer information om tillståndet för vår RAID 0-array att visas på skärmen under några sekunder och en uppmaning att trycka på tangentkombinationen (CTRL-I) för att gå in i RAID-konfigurationens kontrollpanel.

Installera Windows 10 på en RAID 0-array

Vi ansluter till vår systemenhet, startar om datorn, går in i BIOS och ändrar startprioriteten till USB-minnet. Eller så kan du helt enkelt gå in i datorns startmeny och välja att starta från Windows 10-installationsflashenheten (i vårt fall Kingston). I startmenyn kan du se RAID 0-arrayen vi skapade som heter "RAID 0 new".

Installera.

Custom: Endast Windows installation(för avancerade användare)

Du kan skapa partitioner i det här fönstret eller göra det efter att du har installerat operativsystemet, det spelar ingen roll.

Windows 10 är installerat på en RAID 0-array.

Låt oss gå till Diskhantering. Operations rum Windows-system 10 ser utrymmet på våra två hårddiskar 250 GB vardera som en 500 GB hårddisk.

Enhetshanteraren. Diskenheterna innehåller vår RAID 0-array.

Och nu, viktigast av allt, testar vi hastigheten på RAID 0-arrayen.

CrystalDiskMark

Den maximala hastigheten för att skriva information till hårddisken nådde 186 Mb / s, läshastigheten - 248 Mb / s.

I nästa artikel kommer vi att skapa en RAID 0 från solid state SSD-enheter och avsevärt överträffa genomströmningen av det senaste och snabbaste SATA 6 Gb/s-gränssnittet.

RAID 0, RAID 1, RAID 5, RAID 10 eller vad är RAID-nivåer?

Forumbesökare ställer oss frågan: "Vilken är den mest tillförlitliga RAID-nivån?" Alla vet att RAID5 är den vanligaste nivån, men den saknar inte på något sätt allvarliga brister som inte är uppenbara för icke-specialister.

RAID 0, RAID 1, RAID 5, RAID 10 eller vad är RAID-nivåer?
I min artikel kommer jag att försöka karakterisera de mest populära RAID-nivåerna och sedan formulera rekommendationer för att använda dessa nivåer. För att illustrera den här artikeln har jag byggt ett diagram som placerar dessa nivåer i ett tredimensionellt utrymme av tillförlitlighet, prestanda och kostnadseffektivitet.
JBOD (Just a Bunch of Disks) är en enkel union (spänner över) hårddiskar, som inte formellt är en RAID-nivå. En JBOD-volym kan vara en array av en enda disk eller en kombination av flera diskar. RAID-styrenheten behöver inte utföra några beräkningar för att arbeta med en sådan volym. I vårt diagram fungerar JBOD som den "vanliga" eller startpunkten - dess tillförlitlighet, prestanda och kostnadsvärden är desamma som för en enda disk. hårddisk.

RAID 0 ("Striping") har ingen redundans och distribuerar information på en gång över alla diskar som ingår i arrayen i form av små block ("stripes"). Detta förbättrar prestandan avsevärt, men lider av tillförlitlighet. Som i fallet med JBOD, för våra pengar får vi 100% av diskkapaciteten.

Låt mig förklara varför tillförlitligheten för datalagring på alla sammansatta volymer minskar - eftersom om någon av hårddiskarna som ingår i den misslyckas, går all information helt och oåterkalleligt förlorad. I enlighet med sannolikhetsteorin, matematiskt är tillförlitligheten för en RAID0-volym lika med produkten av tillförlitligheten hos dess ingående diskar, som var och en är mindre än en, så den totala tillförlitligheten är uppenbarligen lägre än tillförlitligheten för någon disk .

En bra nivå är RAID 1 ("Spegling", "spegel"). Den har skydd mot fel på hälften av den tillgängliga hårdvaran (i det allmänna fallet en av de två hårddiskarna), ger en acceptabel skrivhastighet och ökad läshastighet på grund av frågeparallellisering. Nackdelen är att du måste betala kostnaden för två hårddiskar och få den användbara kapaciteten för en hårddisk.

Det antas initialt att HDD- en pålitlig sak. Följaktligen är sannolikheten för fel på två diskar samtidigt lika (enligt formeln) med produkten av sannolikheterna, dvs. storleksordningar lägre! Tyvärr är det verkliga livet ingen teori! Två hårddiskar tas från samma batch och fungerar under samma förhållanden, och om en av diskarna misslyckas ökar belastningen på den återstående, och därför bör i praktiken brådskande åtgärder vidtas om en av diskarna misslyckas - för att återställa redundansen igen. För att göra detta, med vilken RAID-nivå som helst (förutom noll), rekommenderas att du använder HotSpare hot spare-diskar. Fördelen med detta tillvägagångssätt är upprätthållandet av konstant tillförlitlighet. Nackdelen är ännu större kostnader (dvs kostnaden för 3 hårddiskar för att lagra volymen på en disk).

Multi-drive-spegling är en RAID 10-nivå. Med den här nivån kedjas speglade par av enheter samman, så den resulterande volymen kan vara större än kapaciteten för en enskild hårddisk. För- och nackdelarna är desamma som för RAID1-nivån. Som i andra fall rekommenderas det att inkludera HotSpare-varma reservdelar i arrayen med en hastighet av en reserv för fem arbetare.

RAID 5 är verkligen den mest populära av nivåerna - främst på grund av dess kostnadseffektivitet. Genom att för redundansens skull offra kapaciteten på endast en disk från arrayen får vi skydd mot fel på någon av volymens hårddiskar. Ytterligare resurser spenderas på att skriva information till en RAID5-volym, eftersom ytterligare beräkningar krävs, men vid läsning (jämfört med en separat hårddisk) finns det en vinst, eftersom dataströmmar från flera array-enheter parallelliseras.

Nackdelarna med RAID5 uppträder när en av diskarna misslyckas - hela volymen går in i kritiskt läge, alla skriv- och läsoperationer åtföljs av ytterligare manipulationer, prestandan sjunker kraftigt, diskarna börjar värmas upp. Om brådskande åtgärder inte vidtas kan du förlora hela volymen. Därför (se ovan) måste en Hot Spare-enhet användas med en RAID5-volym.

Förutom grundläggande nivåer RAID0 - RAID5, beskrivet i standarden, det finns kombinerade nivåer RAID10, RAID30, RAID50, RAID15, som olika tillverkare tolkar på sitt eget sätt.

Kärnan i sådana kombinationer är i korthet följande. RAID10 är en kombination av ett och noll (se ovan). RAID50 är en gruppering av "0"-volymer på den 5:e nivån. RAID15 är en "spegel" av "femmor". Och så vidare.

Således ärver kombinerade nivåer sina "föräldrars" fördelar (och nackdelar). Så utseendet på en "nolla" i RAID 50-nivån ger inte någon tillförlitlighet, men det har en positiv effekt på prestanda. RAID 15 är förmodligen mycket tillförlitlig, men det är inte det snabbaste, och det är också extremt slösaktigt (den användbara kapaciteten för volymen är mindre än hälften så stor som den ursprungliga diskarrayen).

RAID 6 skiljer sig från RAID 5 genom att varje datarad (på engelska stripe) inte har ett utan två block kontrollsummor. Kontrollsummor är "flerdimensionella", d.v.s. oberoende av varandra, så även fel på två diskar i arrayen låter dig spara originaldata. Reed-Solomon kontrollsummaberäkning kräver mer intensiva beräkningar jämfört med RAID5, så den sjätte nivån användes praktiskt taget inte tidigare. Nu stöds det av många produkter, eftersom de började installera specialiserade mikrokretsar som utför alla nödvändiga matematiska operationer.

Enligt vissa studier slutar återhämtning efter ett enda diskfel på en RAID5-volym som består av stora SATA-enheter (400 och 500 gigabyte) i 5 % av fallen med dataförlust. Med andra ord, i ett fall av tjugo, under regenereringen av en RAID5-array till en Hot Spare-disk, kan en andra disk misslyckas ... Därför rekommendationerna från de bästa RAID-drivrutinerna: 1) gör alltid det säkerhetskopior; 2) använd RAID6!

Nya nivåer RAID1E, RAID5E, RAID5EE har nyligen dykt upp. Bokstaven "E" i namnet står för Enhanced.

RAID level-1 Enhanced (RAID level-1E) kombinerar spegling och datastripning. Denna blandning av nivåerna 0 och 1 är anordnad enligt följande. Datan i raden fördelas exakt som i RAID 0. Det vill säga att raden med data inte har någon redundans. Nästa rad med datablock kopierar det föregående med en förskjutning av ett block. Således, som i standard RAID 1-läge, har varje datablock en spegelkopia på en av diskarna, så den användbara volymen för arrayen är hälften av den totala volymen av hårddiskarna som ingår i arrayen. RAID 1E kräver en sammanslagning av tre eller fler enheter.

Jag gillar verkligen RAID1E-nivån. För en kraftfull grafikarbetsstation eller till och med för hemdator- det bästa valet! Den har alla fördelar med noll och första nivåer - utmärkt hastighet och hög tillförlitlighet.

Låt oss nu gå vidare till RAID-nivå-5 Enhanced (RAID-nivå-5E). Detta är samma sak som RAID5, bara med en reservenhet inbyggd i arrayen. Denna inbäddning utförs enligt följande: på alla diskar i arrayen lämnas 1/N av utrymmet ledigt, vilket, om en av diskarna misslyckas, används som en hot-spare. På grund av detta uppvisar RAID5E bättre prestanda tillsammans med tillförlitlighet, eftersom läsning/skrivning utförs parallellt från ett större antal enheter samtidigt och reservenheten inte är ledig, som i RAID5. Uppenbarligen kan reservdisken som ingår i volymen inte delas med andra volymer (dedikerad vs. delad). En RAID 5E-volym är byggd på minst fyra fysiska diskar. Den användbara storleken på en logisk volym beräknas med formeln N-2.

RAID level-5E Enhanced (RAID level-5EE) liknar RAID level-5E, men den har effektivare reservdisktilldelning och som ett resultat snabbare återställningstid. Liksom RAID5E-nivån distribuerar denna RAID-nivå block av data och kontrollsummor i rader. Men den allokerar också lediga extra enhetsblock och lämnar inte bara en del av diskutrymmet för dessa ändamål. Detta minskar tiden som krävs för att rekonstruera integriteten hos en RAID5EE-volym. Reservdisken som ingår i volymen kan inte delas med andra volymer - som i föregående fall. En RAID 5EE-volym är byggd på minst fyra fysiska diskar. Den användbara storleken på en logisk volym beräknas med formeln N-2.

Konstigt nog hittade jag inget omnämnande av RAID 6E-nivån på Internet - än så länge har denna nivå inte erbjudits eller ens meddelats av någon av tillverkarna. Men nivån RAID6E (eller RAID6EE?) kan föreslås på samma princip som den föregående. En HotSpare-disk måste åtfölja alla RAID-volymer, inklusive RAID 6. Naturligtvis kommer vi inte att förlora information om en eller två diskar misslyckas, men det är oerhört viktigt att börja regenerera integriteten för arrayen så snart som möjligt för att snabbt få systemet ur det "kritiska" läget. Eftersom behovet av en Hot Spare-disk är utom tvivel för oss, skulle det vara logiskt att gå längre och "sprida" det på det sätt som det görs i RAID 5EE för att få fördelarna med att använda fler diskar (bättre läs-skriva hastighet och mer snabb återhämtning integritet).

Nivå
~~~~~~~ Redundans Diskkapacitet Utnyttjande Läsprestanda Skrivprestanda Inbyggd reservdisk Min. antal skivor Max. antal diskar
RAID 0 ingen 100% utom ingen 1 16
RAID 1 + 50% Cho + Cho + ingen 2 2
RAID 10 + 50% Cho + Cho + ingen 4 16
RAID 1E + 50% Cho + Cho + ingen 3 16
RAID 5 + 67-94% Utmärkt Chorus nr 3 16
RAID 5E + 50-88% Utmärkt Chorus + 4 16
RAID 5EE + 50-88% Utmärkt Bra + 4 16
RAID 6 + 50-88% Utmärkt Chorus Ingen 4 16
RAID 00 ingen 100% utom ingen 2 60
RAID 1E0 + 50% Cho + Cho + ingen 6 60
RAID 50 + 67-94% Utmärkt Chorus Ingen 6 60
RAID 15 + 33-48% Utmärkt Chorus Ingen 6 60

Alla "spegelnivåer" är RAID 1, 1+0, 10, 1E, 1E0.

Låt oss återigen försöka förstå hur dessa nivåer skiljer sig?

RAID 1.
Detta är en klassisk spegel. Två (och bara två!) hårddiskar fungerar som en och är en komplett kopia av varandra. Fel på någon av dessa två enheter leder inte till att dina data går förlorade, eftersom styrenheten fortsätter att arbeta med den återstående enheten. RAID1 i antal: 2x redundans, 2x tillförlitlighet, 2x kostnad. Skrivprestandan är likvärdig med en enda hårddisk. Läsprestandan är bättre eftersom styrenheten kan sprida läsningar över två enheter.

RAID 10.
Kärnan i denna nivå är att diskarna i arrayen kombineras i par till "speglar" (RAID 1), och sedan kombineras alla dessa spegelpar i sin tur till en gemensam randig array (RAID 0). Det är därför det ibland kallas RAID 1+0. En viktig punkt är att endast ett jämnt antal diskar kan kombineras i RAID 10 (minst - 4, max - 16). Fördelar: tillförlitlighet ärvs från "spegeln", från "noll" - både läs- och skrivprestanda.

RAID 1E.
Bokstaven "E" i namnet betyder "Förbättrad", dvs. "förbättrad". Principen för denna förbättring är som följer: data "strippas" i block på alla diskar i arrayen och "interfolieras" igen med en förskjutning med en disk. I RAID 1E kan du kombinera från tre till 16 diskar. Tillförlitligheten motsvarar "tiotalet", och prestandan på grund av den större "växlingen" blir lite bättre.

RAID 1E0.
Denna nivå implementeras enligt följande: vi skapar en "null"-array från RAID1E-arrayer. Därför måste det totala antalet diskar vara en multipel av tre: minst tre och högst sextio! I det här fallet är det osannolikt att vi får en fördel i hastighet, och komplexiteten i implementeringen kan påverka tillförlitligheten negativt. Den största fördelen är möjligheten att kombinera ett mycket stort (upp till 60) antal diskar i en array.

Likheten mellan alla RAID 1X-nivåer ligger i deras redundansindikatorer: exakt 50 % av den totala diskkapaciteten i arrayen offras för tillförlitlighetens skull.

Idag ska vi prata om RAID-arrayer. Låt oss ta reda på vad det är, varför vi behöver det, vad det händer och hur man använder all denna prakt i praktiken.

Så, i ordning: vad är RAID-array eller bara RÄD? Denna förkortning står för "Redundant Array of Independent Disks" eller "redundant (redundant) array of independent disks". För att uttrycka sig enkelt, RAID-array detta är en samling fysiska diskar kombinerade till en logisk disk.

Det händer oftast tvärtom - en fysisk disk är installerad i systemenheten, som vi delar upp i flera logiska. Här är situationen den omvända - flera hårddiskar kombineras först till en, och sedan operativ system uppfattas som en. De där. OS är fast övertygat om att det fysiskt bara har en disk.

RAID-arrayerär hårdvara och mjukvara.

Hårdvara RAID-arrayer skapas innan operativsystemet laddas med hjälp av särskilda verktyg fastsydd RAID-kontroller- något som BIOS. Som ett resultat av att skapa sådana RAID-array redan vid OS-installationsstadiet "ser" distributionssatsen en disk.

programvara RAID-arrayer skapad av OS. De där. under uppstart "förstår" operativsystemet att det har flera fysiska diskar, och först efter att OS startar, med hjälp av programvara diskar kombineras till arrayer. Självklart sitter inte själva operativsystemet på RAID-array, eftersom den ställs in innan den skapas.

"Varför är allt detta nödvändigt?" - du frågar? Svaret är: att öka hastigheten för att läsa/skriva data och/eller förbättra feltoleransen och säkerheten.

"Hur RAID-array kan öka hastigheten eller säkra data?" - För att svara på den här frågan, överväg huvudtyperna RAID-arrayer hur de bildas och vad det ger som resultat.

RAID-0. Kallas även "Stripe" eller "Tape". Två eller flera hårddiskar kombineras till en genom sekventiell sammanslagning och summering av volymer. De där. om vi tar två 500 GB diskar och skapar från dem RAID-0, kommer operativsystemet att behandla den som en enda terabytedisk. Samtidigt kommer läs-/skrivhastigheten för denna array att vara dubbelt så hög som för en enskild disk, eftersom till exempel databasen fysiskt är placerad på två diskar på detta sätt, kan en användare läsa data från en disk, och den andra användaren kan skriva till en annan disk samtidigt. När det gäller platsen för databasen på en disk, kommer hårddisken själv att utföra läs-/skrivuppgifter för olika användare sekventiellt. RAID-0 kommer att tillåta läsning/skrivande parallellt. Som ett resultat, desto fler diskar i arrayen RAID-0, desto snabbare fungerar själva arrayen. Beroendet är direkt proportionellt - hastigheten ökar med N gånger, där N är antalet diskar i arrayen.
Vid arrayen RAID-0 det finns bara en nackdel som åsidosätter alla fördelar med att använda den - den totala avsaknaden av feltolerans. Om en av arrayens fysiska diskar dör dör hela arrayen. Det finns ett gammalt skämt om detta ämne: "Vad betyder "0" i rubriken RAID-0? - mängden information som ska återställas efter arrayens död!"

RAID-1. Kallas även "Mirror" eller "Mirror". Två eller flera hårddiskar kombineras till en genom parallell sammanslagning. De där. om vi tar två 500 GB diskar och skapar från dem RAID-1, kommer operativsystemet att behandla det som en enda 500 GB disk. Samtidigt kommer läs-/skrivhastigheten för denna array att vara densamma som för en enda disk, eftersom information läses/skrivs till båda diskarna samtidigt. RAID-1 ger ingen hastighetsökning, men ger större feltolerans, eftersom i händelse av att en av hårddiskarna dör, finns det alltid en fullständig kopia av informationen som finns på den andra enheten. Samtidigt måste man komma ihåg att feltolerans tillhandahålls endast från döden av en av diskarna i arrayen. Om data raderades avsiktligt, raderas de från alla diskar i arrayen samtidigt!

RAID-5. En säkrare version av RAID-0. Volymen av arrayen beräknas med formeln (N - 1) * Diskstorlek RAID-5 från tre diskar på 500 GB vardera får vi en array på 1 terabyte. Kärnan i arrayen RAID-5 att flera diskar kommer att kombineras till RAID-0, och den så kallade "checksumman" lagras på den sista disken - serviceinformation, utformad för att återställa en av diskarna i arrayen, i händelse av dess död. Array skrivhastighet RAID-5 något lägre, eftersom det tar tid att beräkna och skriva checksumman till en separat disk, men läshastigheten är densamma som i RAID-0.
Om en av diskarna i arrayen RAID-5 dör, sjunker läs-/skrivhastigheten kraftigt, eftersom alla operationer åtföljs av ytterligare manipulationer. Faktiskt RAID-5 förvandlas till RAID-0 och om du inte tar hand om återställningen i tid RAID-array det finns en betydande risk att förlora data helt.
Med en array RAID-5 du kan använda den så kallade Spare-disken, dvs. reserv. Under stabil drift RAID-array denna disk är inaktiv och används inte. Men i händelse av en kritisk situation, återhämtning RAID-array startar automatiskt - information från den skadade återställs till reservdisken med hjälp av kontrollsummor som finns på en separat disk.
RAID-5 skapas från minst tre diskar och sparas från enstaka fel. Vid samtidig förekomst av olika fel på olika diskar RAID-5 sparar inte.

RAID-6- är en förbättrad version av RAID-5. Kärnan är densamma, bara för kontrollsummor, inte en utan två diskar används, och kontrollsummor beräknas med olika algoritmer, vilket avsevärt ökar feltoleransen för allting RAID-array rent generellt. RAID-6är sammansatt av minst fyra skivor. Formeln för att beräkna volymen av en array ser ut (N - 2) * Diskstorlek, där N är antalet diskar i arrayen och DiskSize är storleken på varje disk. De där. medan du skapar RAID-6 från fem diskar på 500 GB vardera får vi en array på 1,5 terabyte.
Inspelningshastighet RAID-6 lägre än för RAID-5 med cirka 10-15 %, vilket beror på ytterligare tid som spenderas på att beräkna och skriva kontrollsummor.

RAID-10- även ibland kallad RAID 0+1 eller RAID 1+0. Det är en symbios av RAID-0 och RAID-1. Arrayen är byggd av minst fyra diskar: på den första kanalen RAID-0, på den andra RAID-0 för att öka läs-/skrivhastigheten, och sinsemellan är de i en RAID-1-spegel för att öka feltoleransen. På det här sättet, RAID-10 kombinerar plusen med de två första alternativen - snabb och feltålig.

RAID-50- på samma sätt är RAID-10 en symbios av RAID-0 och RAID-5 - i själva verket byggs RAID-5, bara dess beståndsdelar är inte oberoende hårddiskar, och RAID-0-matriser. På det här sättet, RAID-50 ger mycket bra läs/skrivhastighet och innehåller stabiliteten och tillförlitligheten hos RAID-5.

RAID-60- Samma idé: i själva verket har vi en RAID-6 sammansatt från flera RAID-0-arrayer.

Det finns också andra kombinerade arrayer RAID 5+1 och RAID 6+1- Dom ser ut som RAID-50 och RAID-60 med den enda skillnaden att de grundläggande elementen i arrayen inte är RAID-0-band, utan RAID-1-speglar.

Hur förstår du kombinerade RAID-arrayer: RAID-10, RAID-50, RAID-60 och alternativ RAID X+1är direkta ättlingar till basarraytyperna RAID-0, RAID-1, RAID-5 och RAID-6 och tjänar endast till att öka antingen läs-/skrivhastigheten eller öka feltoleransen, samtidigt som de bär funktionaliteten hos grundläggande överordnade typer RAID-arrayer.

Om vi ​​vänder oss till praktiken och prata om tillämpningen av vissa RAID-arrayer i verkligheten är logiken ganska enkel:

RAID-0 i sin rena form använder vi inte alls;

RAID-1 vi använder det där läs/skrivhastighet inte är särskilt viktig, men feltolerans är viktig - till exempel på RAID-1 det är bra att sätta operativsystem. I det här fallet kommer ingen utom operativsystemet åt diskarna, hastigheten på själva hårddiskarna är tillräckligt för arbete, feltolerans säkerställs;

RAID-5 vi sätter det där hastighet och feltolerans behövs, men det finns inte tillräckligt med pengar för att köpa fler hårddiskar eller så finns det ett behov av att återställa arrays i händelse av skada utan att stoppa arbetet - reservdelar reservdelar kommer att hjälpa oss här. Allmänt bruk RAID-5- datalagring;

RAID-6 det används där det bara är läskigt eller där det finns ett verkligt hot om dödsfall för flera diskar i arrayen samtidigt. I praktiken är det ganska sällsynt, främst bland paranoider;

RAID-10- används där du behöver arbeta snabbt och tillförlitligt. Även den huvudsakliga användningsriktningen RAID-10är filservrar och databasservrar.

Återigen, om vi förenklar det ytterligare, kommer vi till slutsatsen att där det inte finns något stort och omfattande arbete med filer, är det tillräckligt RAID-1- operativsystem, AD, TS, mail, proxy, etc. På samma plats där seriöst arbete med filer krävs: RAID-5 eller RAID-10.

Den idealiska lösningen för en databasserver är en maskin med sex fysiska diskar, varav två är speglade RAID-1 och operativsystemet är installerat på det, och de återstående fyra kombineras till RAID-10 för snabb och pålitlig datahantering.

Om du, efter att ha läst allt ovan, bestämmer dig för att installera på dina servrar RAID-arrayer, men vet inte hur man gör det och var man ska börja - kontakta oss! - vi hjälper dig att välja nödvändig utrustning, samt utföra installationsarbete vid implementeringen RAID-arrayer.

Problemet med att öka tillförlitligheten för informationslagring och samtidigt öka lagringssystemets prestanda har upptagit sinnena hos utvecklare av kringutrustning för datorer under lång tid. När det gäller att öka tillförlitligheten för lagring är allt klart: information är en vara, och ofta mycket värdefull. För att skydda mot dataförlust har många metoder uppfunnits, varav den mest kända och pålitliga är säkerhetskopiering information.

Frågan om prestanda diskundersystem väldigt komplicerat. Tillväxten av datorkraft hos moderna processorer har lett till att det finns en tydlig obalans mellan hårddiskarnas kapacitet och processorernas behov. Samtidigt kan varken dyra SCSI-diskar, än mindre IDE-diskar, rädda dig. Men om kapaciteten hos en disk inte räcker till, då kanske delvis att lösa det här problemet Kommer flera diskar tillåta? Förekomsten av två eller flera hårddiskar på en dator eller på en server förändrar naturligtvis inte saker och ting i sig - du måste få dessa enheter att arbeta tillsammans (parallellt) med varandra så att detta gör att du kan öka prestandan på diskundersystemet på skriv-/läsoperationer. Dessutom, är det möjligt att, genom att använda flera hårddiskar, uppnå en ökning inte bara i prestanda, utan också i tillförlitligheten av datalagring, så att felet på en av enheterna inte leder till förlust av information? Det var detta tillvägagångssätt som föreslogs redan 1987 av de amerikanska forskarna Patterson, Gibson och Katz från University of California, Berkeley. I deras artikel "A Case for Redundant Arrays of Inexpensive Discs, RAID" beskrev de hur du kan kombinera flera billiga hårddiskar till en enda logisk enhet på ett sådant sätt att resultatet blir ökad systemkapacitet och hastighet, och fel på enskilda diskar ledde inte till fel i hela systemet.

15 år har gått sedan artikeln publicerades, men tekniken för att bygga RAID-arrayer har inte förlorat sin relevans idag. Det enda som har förändrats sedan dess är avkodningen av akronymen RAID. Faktum är att RAID-arrayer från början inte byggdes på billiga diskar alls, så ordet Inexpensive (billigt) ändrades till Independent (oberoende), vilket var mer sant.

Dessutom är det nu som RAID-tekniken har blivit utbredd. Så om RAID-arrayer för några år sedan användes i dyra servrar i företagsskala som använder SCSI-diskar, har de idag blivit en slags de facto-standard även för servrar. nybörjarnivå. Dessutom expanderar också marknaden för IDE RAID-kontroller gradvis, det vill säga att uppgiften att bygga RAID-arrayer på arbetsstationer med hjälp av billiga IDE-enheter blir allt viktigare. Till exempel har vissa moderkortstillverkare (Abit, Gigabyte) redan börjat integrera IDE RAID-kontroller på själva moderkorten.

Så, RAID är en redundant array av oberoende diskar (Redundant Arrays of Independent Discs), som har anförtrotts uppgiften att tillhandahålla feltolerans och förbättra prestanda. Feltolerans uppnås genom redundans. Det vill säga att en del av diskutrymmeskapaciteten allokeras för tjänsteändamål och blir oåtkomlig för användaren.

Ökningen av prestandan hos diskundersystemet tillhandahålls av den samtidiga driften av flera diskar, och i denna mening, ju fler diskar i arrayen (upp till en viss gräns), desto bättre.

Enheter i en array kan delas med antingen parallell eller oberoende åtkomst.

Med parallell åtkomst är diskutrymmet uppdelat i block (ränder) för datainspelning. På liknande sätt är information som ska skrivas till disk uppdelad i samma block. Vid skrivning skrivs enskilda block till olika diskar (fig. 1), och flera block skrivs till olika diskar samtidigt, vilket leder till en ökning av prestanda i skrivoperationer. Nödvändig information läses också i separata block samtidigt från flera diskar (fig. 2), vilket också bidrar till prestandaökning i proportion till antalet diskar i arrayen.

Det bör noteras att parallellaccessmodellen implementeras endast under villkoret att storleken på dataskrivbegäran är större än storleken på själva blocket. Annars är det helt enkelt omöjligt att implementera parallell inspelning av flera block. Föreställ dig en situation där storleken på ett enda block är 8 KB och storleken på en dataskrivbegäran är 64 KB. I det här fallet skärs källinformationen i åtta block om 8 KB vardera. Om det finns en array med fyra diskar kan fyra block, eller 32 KB, skrivas samtidigt åt gången. Uppenbarligen, i det övervägda exemplet, kommer skriv- och läshastigheterna att vara fyra gånger högre än när man använder en enda disk. Denna situation är dock idealisk, eftersom begäransstorleken inte alltid är en multipel av blockstorleken och antalet diskar i arrayen.

Om storleken på data som skrivs är mindre än blockstorleken, implementeras en fundamentalt annorlunda åtkomstmodell - oberoende åtkomst. Dessutom kan denna modell också implementeras när storleken på data som ska skrivas är större än storleken på ett block. Med oberoende åtkomst skrivs all data för en viss begäran till en separat disk, det vill säga situationen är identisk med att arbeta med en enda disk. Fördelen med parallellaccessmodellen är att om flera skriv-(läs-) förfrågningar anländer samtidigt, kommer de alla att exekveras oberoende, på separata diskar (fig. 3). Denna situation är typisk för till exempel servrar.

Beroende på de olika typerna av åtkomst finns det olika typer RAID-arrayer, som vanligtvis kallas RAID-nivåer. Utöver typen av åtkomst skiljer sig RAID-nivåerna i sättet på vilket redundant information placeras och bildas. Redundant information kan antingen placeras på en dedikerad disk eller blandas mellan alla diskar. Det finns flera sätt att generera denna information. Den enklaste av dessa är full duplicering (100 procent redundans) eller spegling. Dessutom används felkorrigeringskoder samt paritetsberäkning.

RAID-nivåer

För närvarande finns det flera standardiserade RAID-nivåer: från RAID 0 till RAID 5. Dessutom används kombinationer av dessa nivåer, såväl som proprietära nivåer (till exempel RAID 6, RAID 7). De vanligaste är nivåerna 0, 1, 3 och 5.

RAID 0

RAID-nivå 0 är strängt taget inte en redundant array och ger därför inte tillförlitlighet för datalagring. Ändå används denna nivå i stor utsträckning i fall där det är nödvändigt att säkerställa hög prestanda för diskundersystemet. Denna nivå är särskilt populär på arbetsstationer. När man skapar en RAID-array på nivå 0 delas information in i block som skrivs till separata diskar (fig. 4), det vill säga ett system med parallell åtkomst skapas (om, naturligtvis, blockstorleken tillåter det). Med möjligheten till samtidiga I/O från flera enheter, ger RAID 0 de snabbaste dataöverföringshastigheterna och den mest effektiva användningen av diskutrymme, eftersom inget utrymme krävs för att lagra kontrollsummorna. Implementeringen av denna nivå är mycket enkel. RAID 0 används främst i områden där snabb överföring av stora mängder data krävs.

RAID 1 (speglad disk)

RAID nivå 1 är en 100 procent redundant diskarray. Det vill säga, data är helt enkelt helt duplicerade (spegelvända), på grund av vilket en mycket hög nivå av tillförlitlighet (liksom kostnad) uppnås. Observera att implementering av lager 1 inte kräver föregående partitionering av diskar och data i block. I det enklaste fallet innehåller två diskar samma information och är en logisk disk (Fig. 5). När en disk misslyckas, utför en annan sina funktioner (vilket är helt transparent för användaren). Dessutom fördubblar denna nivå hastigheten för att läsa information, eftersom denna operation kan utföras samtidigt från två diskar. Detta informationslagringssystem används huvudsakligen i fall där kostnaden för datasäkerhet är mycket högre än kostnaden för att implementera ett lagringssystem.

RAID 2

RAID nivå 2 är ett dataredundansschema som använder Hamming-kod (se nedan) för felkorrigering. Data som skrivs bildas inte på basis av en blockstruktur, som i RAID 0, utan på basis av ord, och ordstorleken är lika med antalet diskar för att skriva data i arrayen. Om till exempel arrayen har fyra diskar för att skriva data, är ordstorleken fyra diskar. Varje enskild bit av ett ord skrivs till en separat array-skiva. Till exempel, om arrayen har fyra skivor för att skriva data, kommer en sekvens av fyra bitar, det vill säga ett ord, att skrivas till arrayen av skivor på ett sådant sätt att den första biten kommer att finnas på den första skivan, andra biten på den andra och så vidare.

Dessutom beräknas en felkorrigeringskod (ECC) för varje ord, som skrivs till dedikerade skivor för lagring av styrinformation (fig. 6). Deras antal är lika med antalet bitar i kontrollordet, och varje bit i kontrollordet skrivs till en separat skiva. Antalet bitar i styrordet och följaktligen det erforderliga antalet skivor för att lagra styrinformation beräknas baserat på följande formel: där K är ordbredden för dataordet.

Naturligtvis avrundas L, när den beräknas enligt den angivna formeln, uppåt till närmaste heltal. Men för att inte bråka med formler kan du använda en annan mnemonisk regel: kontrollordets bitbredd bestäms av antalet bitar som behövs för den binära representationen av ordstorleken. Om till exempel ordlängden är fyra (i binär notation 100), så att skriva in detta nummer i binär form, krävs tre bitar, vilket betyder att storleken på kontrollordet är tre. Därför, om det finns fyra diskar för datalagring, kommer det att krävas ytterligare tre diskar för lagring av kontrolldata. På liknande sätt, om det finns sju skivor för data (i binär notation 111), kommer tre skivor att behövas för att lagra kontrollorden. Om åtta diskar är allokerade för data (i binär notation 1000), så behövs fyra diskar för kontrollinformation.

Hamming-koden som genererar kontrollordet är baserad på användningen av den bitvisa XOR-operationen (även känd som disparitet). Kom ihåg att den logiska operationen XOR ger en om operanderna inte matchar (0 och 1) och noll om de matchar (0 och 0 eller 1 och 1).

Själva kontrollordet, erhållet av Hamming-algoritmen, är inverteringen av resultatet av den bitvisa XOR-operationen av antalet informationsbitar i ordet vars värden är lika med 1. Som illustration, betrakta det ursprungliga ordet 1101. I första (001), tredje (011) och fjärde (100) Siffrorna i detta ord är en. Därför är det nödvändigt att utföra en bitvis XOR-operation för dessa bitnummer:

Själva kontrollordet (Hamming-koden) erhålls genom bitvis invertering av resultatet, det vill säga det är lika med 001.

När data läses beräknas Hamming-koden igen och jämförs med originalkoden. Den bitvisa XOR-operationen används för att jämföra två koder. Om jämförelseresultatet i alla siffror är lika med noll, är läsningen korrekt, annars är dess värde numret på den felaktigt mottagna siffran i huvudkoden. Låt till exempel det ursprungliga ordet vara lika med 1100000. Eftersom enheterna är i sjätte (110) och sjunde (111) positionerna är kontrollordet:

Om ordet 1100100 är fixerat under läsning, är kontrollordet för det 101. Jämför vi det ursprungliga kontrollordet med det mottagna (bitvis XOR-operation) har vi:

det vill säga ett fel vid läsning i tredje positionen.

Följaktligen är det lätt att korrigera den när du vet vilken bit som är felaktig.

RAID 2 är en av få nivåer som tillåter inte bara att korrigera enstaka fel i farten, utan också detektera dubbla. Samtidigt är det den mest redundanta av alla nivåer med korrigeringskoder. Detta lagringsschema används sällan eftersom det inte hanterar stora mängder förfrågningar, är svårt att organisera och har små fördelar jämfört med RAID 3.

RAID 3

RAID nivå 3 är en feltolerant parallell I/O-matris med ytterligare en enhet som skriver paritetsinformation (Figur 7). Vid skrivning delas dataströmmen in i block på bytenivå (även om det är möjligt på bitnivå) och skrivs samtidigt till alla diskar i arrayen, förutom den styrinformation som allokerats för lagring. För att beräkna kontrollinformationen (även kallad kontrollsumman) används en XOR-operation på datablocken som skrivs. Om någon disk misslyckas kan data på den återställas från kontrolldata och data som finns kvar på friska diskar.

Betrakta block med fyra bitar som en illustration. Anta att det finns fyra diskar för att lagra data och en disk för att skriva kontrollsummor. Om det finns en sekvens av bitar 1101 0011 1100 1011, uppdelad i block med fyra bitar, måste du utföra operationen för att beräkna kontrollsumman:

Sålunda är kontrollsumman som skrivs till disk 5 1001.

Om en av diskarna, såsom den tredje, misslyckas, kommer block 1100 att vara oläsbart. Men dess värde kan enkelt återställas från kontrollsumman och värdena för de återstående blocken med samma XOR-operation:

Block 3=Block 1 Block 2 Block 4

Kontrollera summan.

I vårt exempel får vi:

Block 3=1101001110111001= 1100.

RAID nivå 3 har mycket mindre redundans än RAID 2. Genom att partitionera data i block har RAID 3 hög prestanda. Vid läsning av information nås disken inte med kontrollsummor (i avsaknad av ett fel), vilket händer varje gång en skrivoperation utförs. Eftersom nästan varje disk i arrayen nås med varje I/O-operation är det inte möjligt att behandla flera förfrågningar samtidigt. Den här nivån lämplig för applikationer med stora filer och låg åtkomstfrekvens. Dessutom inkluderar fördelarna med RAID 3 en liten minskning av prestanda vid fel och snabb återställning av information.

RAID 4

RAID nivå 4 är en feltolerant array av oberoende diskar med en enda kontrollsummadisk (Figur 8). RAID 4 liknar på många sätt RAID 3, men skiljer sig från den senare främst genom en betydligt större blockstorlek på den data som skrivs (större än storleken på den data som skrivs). Detta är den största skillnaden mellan RAID 3 och RAID 4. Efter att en grupp av block har skrivits beräknas en kontrollsumma (precis som i fallet med RAID 3), som skrivs till en dedikerad disk. På grund av den större blockstorleken än RAID 3 kan flera läsningar utföras samtidigt (oberoende åtkomstschema).

RAID 4 förbättrar prestandan för små filöverföringar (genom att parallellisera läsoperationen). Men eftersom skrivningen måste beräkna kontrollsumman på den tilldelade disken, är simultan exekvering av operationer här omöjlig (det finns en asymmetri av in- och utgångsoperationer). Det övervägda lagret ger ingen hastighetsfördel vid överföring av stora datamängder. Detta lagringsschema utformades för applikationer där data initialt delas upp i små block, så det finns inget behov av att bryta upp dem ytterligare. RAID 4 är bra lösning för filservrar, vars information till övervägande del läses och sällan skrivs. Detta lagringsschema har en låg kostnad, men dess implementering är ganska komplex, liksom dataåterställning i händelse av fel.

RAID 5

RAID nivå 5 är en feltolerant array av oberoende diskar med distribuerad kontrollsummalagring (Figur 9). Datablock och kontrollsummor, som beräknas på exakt samma sätt som i RAID 3, skrivs cykliskt till alla diskar i matrisen, det vill säga det finns ingen dedikerad disk för att lagra kontrollsummainformation.

I fallet med RAID 5 är alla diskar i arrayen lika stora, men den totala kapaciteten för diskundersystemet som är tillgängligt för skrivning minskas med exakt en disk. Till exempel, om fem diskar är 10 GB, är den faktiska storleken på arrayen 40 GB, eftersom 10 GB tilldelas för paritetsinformation.

RAID 5, liksom RAID 4, har en oberoende åtkomstarkitektur, det vill säga, till skillnad från RAID 3, ger den stor storlek logiska block för att lagra information. Därför, som i fallet med RAID 4, ger en sådan array den största fördelen när man behandlar flera förfrågningar samtidigt.

Den största skillnaden mellan RAID 5 och RAID 4 är hur kontrollsummorna placeras.

Förekomsten av en separat (fysisk) disk som lagrar information om kontrollsummor, här, liksom i de tre föregående nivåerna, leder till att läsoperationer som inte kräver åtkomst till denna disk utförs med hög hastighet. Varje skrivoperation ändrar dock informationen på kontrolldisken, så RAID 2, RAID 3 och RAID 4 tillåter inte parallella skrivoperationer. RAID 5 övervinner denna brist, eftersom kontrollsummorna skrivs till alla diskar i arrayen, vilket gör att flera läsningar eller skrivningar kan utföras samtidigt.

Praktiskt genomförande

För den praktiska implementeringen av RAID-arrayer behövs två komponenter: själva arrayen av hårddiskar och RAID-styrenheten. Styrenheten utför funktionerna att kommunicera med servern (arbetsstationen), generera redundant information vid skrivning och kontroll vid läsning, distribuera information över diskar i enlighet med operationsalgoritmen.

Strukturellt sett är kontrollerna både externa och interna. Det finns även RAID-kontroller integrerade på moderkortet. Dessutom skiljer sig kontrollerna åt i det diskgränssnitt som stöds. Således är SCSI RAID-kontroller designade för användning i servrar, medan IDE RAID-kontroller är lämpliga för både nybörjarservrar och arbetsstationer.

En utmärkande egenskap hos RAID-kontroller är antalet kanaler som stöds anslutning av stel diskar. Även om flera SCSI-enheter kan anslutas till samma styrkanal, kommer den totala genomströmningen av RAID-matrisen att begränsas av enkanalsgenomströmningen, vilket motsvarar bandbredd SCSI-gränssnitt. Således kan användningen av flera kanaler avsevärt förbättra prestandan för diskundersystemet.

När du använder IDE RAID-kontroller blir flerkanalsproblemet ännu mer akut, eftersom två hårddiskar som är anslutna till samma kanal (fler enheter stöds inte av själva gränssnittet) inte kan ge parallell drift - IDE-gränssnittet tillåter dig att bara komma åt en köra åt gången. Därför måste IDE RAID-kontroller vara minst tvåkanaliga. Det finns också fyra- och till och med åtta-kanals kontroller.

En annan skillnad mellan IDE RAID och SCSI RAID-kontroller är antalet nivåer de stöder. SCSI RAID-kontroller stöder alla större nivåer och vanligtvis flera kombinerade och proprietära nivåer. Uppsättningen nivåer som stöds av IDE RAID-kontroller är mycket mer blygsam. Vanligtvis är dessa noll och första nivåer. Dessutom finns det kontroller som stöder den femte nivån och en kombination av den första och noll: 0 + 1. Detta tillvägagångssätt är ganska naturligt, eftersom IDE RAID-kontroller är designade främst för arbetsstationer, så huvudfokus ligger på att förbättra datasäkerheten (nivå 1) eller prestanda med parallell I/O (nivå 0). I det här fallet behövs inte schemat med oberoende diskar, eftersom flödet av skriv-/läsförfrågningar på arbetsstationer är mycket lägre än till exempel på servrar.

Huvudfunktionen hos en RAID-array är inte att öka kapaciteten hos diskundersystemet (som framgår av dess design, kan samma kapacitet erhållas för mindre pengar), utan att säkerställa tillförlitligheten för datalagring och öka prestanda. För servrar finns det dessutom krav på oavbruten drift, även vid fel på någon av enheterna. Kontinuitet i drift säkerställs genom hot-swapping, det vill säga att ta bort en misslyckad SCSI-enhet och installera en ny utan att stänga av strömmen. Eftersom diskundersystemet fortsätter att fungera (förutom på nivå 0) med en defekt enhet, ger hot-swapping återställning som är transparent för användarna. Emellertid är överföringshastigheten och åtkomsthastigheten med en ledig disk märkbart reducerad på grund av att styrenheten måste återställa data från redundant information. Det finns sant att det finns ett undantag från denna regel - RAID-system på nivåerna 2, 3, 4 börjar fungera snabbare när en enhet med redundant information misslyckas! Detta är naturligt, eftersom nivån "i farten" i detta fall ändras till noll, vilket har utmärkta hastighetsegenskaper.

Hittills har den här artikeln handlat om hårdvarulösningar. Men det finns också programvara som erbjuds av till exempel Microsoft för Windows 2000 Server. Men i det här fallet kompenseras vissa initiala besparingar helt av den extra belastningen CPU, som utöver sitt huvudsakliga arbete tvingas distribuera data över diskar och beräkna kontrollsummor. En sådan lösning kan endast anses acceptabel i fallet med ett betydande överskott av datorkraft och låg serverbelastning.


Sergey Pakhomov

ComputerPress 3 "2002

RAID-array. Vad är det här? Varför då? Och hur skapar man?

Under de långa decennierna av utvecklingen av datorindustrin har informationslagringsmedier för datorer gått igenom en allvarlig evolutionär utvecklingsväg. Hålband och hålkort, magnetband och trummor, magnetiska, optiska och magneto-optiska skivor, halvledarenheter - detta är bara en kort lista över redan testade tekniker. För närvarande görs försök i världens laboratorier att skapa holografiska och kvantlagringsenheter som gör det möjligt att öka inspelningstätheten och tillförlitligheten för dess lagring många gånger om.

Under tiden har hårddiskar länge varit det vanligaste sättet att lagra information i en persondator. Annars kan de kallas hårddiskar (hårddiskar), hårddiskar, hårddiskar, men kärnan i namnbytet förändras inte - det här är enheter med ett paket med magnetiska diskar i ett enda fall.

Den första hårddisken, kallad IBM 350, monterades den 10 januari 1955 i det amerikanska företaget IBMs laboratorium. Med storleken på ett bra skåp och vikten av ett ton innehöll den här hårddisken fem megabyte information. Ur modern synvinkel kan en sådan volym inte ens kallas löjlig, men under massanvändningen av hålkort och magnetband med sekventiell åtkomst var detta ett kolossalt tekniskt genombrott.


Avlastning av den första IBM 350-hårddisken från ett flygplan

Mindre än sex decennier har gått sedan den dagen, men nu kommer du inte att överraska någon med en hårddisk som väger mindre än tvåhundra gram, tio centimeter lång och med en informationsvolym på ett par terabyte. Samtidigt är tekniken för inspelning, lagring och läsning av data inte annorlunda än den som används i IBM 350 – samma magnetiska plattor och läs/skrivhuvuden som glider över dem.


Utvecklingen av hårddiskar mot bakgrunden av en tumlinjal (foto från " Wikipedia " )

Tyvärr är det särdragen hos denna teknik som är orsaken till två huvudproblem som är förknippade med användningen av hårddiskar. Den första är också låg hastighet skriva, läsa och överföra information från disken till processorn. I en modern dator är det hårddisken som är den långsammaste enheten, som ofta avgör prestandan för hela systemet som helhet.

Det andra problemet är den otillräckliga säkerheten för den information som lagras på hårddisken. Om hårddisken går sönder kan du oåterkalleligt förlora all data som lagrats på den. Och det är bra om förlusterna är begränsade till förlusten av ett familjefotoalbum (även om detta faktiskt inte är tillräckligt bra). Förstörelsen av viktig finansiell och marknadsföringsinformation kan vara orsaken till företagets kollaps.

Dels hjälper det till att skydda den lagrade informationen genom att regelbundet säkerhetskopiera (säkerhetskopiera) all eller endast viktig data på hårddisken. Men även i det här fallet, om den går sönder, kommer den del av data som har uppdaterats sedan den senaste säkerhetskopieringen att gå förlorad.

Lyckligtvis finns det metoder som hjälper till att övervinna ovanstående nackdelar med traditionella hårddiskar. En av dessa metoder är skapandet av RAID - arrayer av flera hårddiskar.

Vad är RAID

På Internet och även i modern datorlitteratur kan man ofta hitta termen "RAID array", som egentligen är en tautologi, eftersom förkortningen RAID (redundant array of independent disks) redan står för "redundant array of independent disks".

Namnet avslöjar helt den fysiska innebörden av sådana arrayer - det är en uppsättning av två eller flera hårddiskar. Det gemensamma arbetet för dessa skivor styrs av en speciell styrenhet. Som ett resultat av styrenhetens funktion uppfattas sådana arrayer av operativsystemet som en hårddisk, och användaren kanske inte tänker på nyanserna av att styra driften av varje hårddisk separat.

Det finns flera grundläggande typer av RAID, som var och en har olika effekt på arrayens övergripande tillförlitlighet och hastighet jämfört med enskilda enheter. De betecknas med ett villkorligt tal från 0 till 6. En liknande beteckning med detaljerad beskrivning Arkitekturen och principen för drift av arrayer föreslogs av specialister från University of California i Berkeley. Förutom de sju huvudtyperna av RAID är olika kombinationer av dem också möjliga. Låt oss överväga dem ytterligare.

Det enklaste typen en rad hårddiskar, vars huvudsakliga syfte är att öka prestandan hos datorns diskdelsystem. Detta uppnås genom att dela upp strömmarna av skriven (läst) information i flera delströmmar, som samtidigt skrivs (läs) till flera hårddiskar. Som ett resultat ökar den totala hastigheten för informationsutbyte, till exempel för två-diskarrayer, med 30-50% jämfört med en hårddisk av samma typ.

Den totala volymen av RAID 0 är lika med summan av volymerna av hårddiskar som ingår i den. Informationen är uppdelad i datablock med fast längd, oavsett längden på de inspelade filerna.

Den största fördelen med RAID 0 är en betydande ökning av hastigheten på informationsutbytet mellan disksystem utan att förlora den användbara volymen av hårddiskar. Nackdelen är en minskning av lagringssystemets totala tillförlitlighet. Om någon av RAID 0-diskarna misslyckas, förloras all information som registrerats i arrayen oåterkalleligt.

I likhet med den som diskuterades ovan är den här arraytypen också den enklaste att organisera. Den är byggd på grundval av två hårddiskar, som var och en är en exakt (spegel) reflektion av den andra. Information skrivs parallellt till båda diskarna i arrayen. Data läses samtidigt från båda diskarna i sekventiella block (parallellisering av förfrågningar), på grund av vilket en liten ökning av läshastigheten uppnås jämfört med en enskild hårddisk.

Den totala volymen av RAID 1 är lika med volymen på den mindre hårddisken i arrayen.

Fördelar med RAID 1: hög tillförlitlighet för informationslagring (data är intakt så länge som minst en av diskarna som ingår i arrayen är intakt) och en viss ökning av läshastigheten. Nackdel - om du köper två hårddiskar får du den användbara volymen av endast en. Trots förlusten av hälften av den användbara volymen är "spegel"-arrayer ganska populära på grund av sin höga tillförlitlighet och relativt låga kostnad - ett par diskar är fortfarande billigare än fyra eller åtta.

När man bygger dessa arrayer används en informationsåterställningsalgoritm som använder Hamming-koder (en amerikansk ingenjör som utvecklade denna algoritm 1950 för att korrigera fel i driften av elektromekaniska datorer). För att säkerställa driften av denna RAID-styrenhet skapas två grupper av diskar - en för att lagra data, den andra gruppen för att lagra felkorrigeringskoder.

Denna typ av RAID används inte i stor utsträckning i hemsystem på grund av den överdrivna redundansen av antalet hårddiskar - till exempel i en uppsättning av sju hårddiskar kommer endast fyra att allokeras för data. Med en ökning av antalet diskar minskar redundansen, vilket återspeglas i tabellen nedan.

Den största fördelen med RAID 2 är möjligheten att korrigera uppkommande fel "i farten" utan att minska hastigheten på datautbytet mellan diskarrayen och den centrala processorn.

RAID 3 och RAID 4

Dessa två typer av diskarrayer är mycket lika i deras konstruktionsschema. Båda använder flera hårddiskar för att lagra information, varav en enbart används för placering av kontrollsummor. Tre hårddiskar räcker för att skapa RAID 3 och RAID 4. Till skillnad från RAID 2 är "on-the-fly" dataåterställning omöjlig - informationen återställs efter att en trasig hårddisk har bytts ut under en tid.

Skillnaden mellan RAID 3 och RAID 4 är nivån på datapartitionering. I RAID 3 delas information upp i separata byte, vilket leder till en allvarlig nedgång vid skrivning/läsning av ett stort antal små filer. I RAID 4 är data uppdelad i separata block, vars storlek inte överstiger storleken på en sektor på disken. Som ett resultat ökar bearbetningshastigheten för små filer, vilket är avgörande för persondatorer. Av denna anledning har RAID 4 blivit mer utbrett.

En betydande nackdel med de arrayer som övervägs är den ökade belastningen på hårddisken avsedd för lagring av kontrollsummor, vilket avsevärt minskar dess resurser.

Diskarrayer av denna typ är faktiskt en utveckling av RAID 3 / RAID 4-schemat. En utmärkande egenskap är att en separat disk inte används för att lagra kontrollsummor - de är jämnt fördelade över alla hårddiskar array. Resultatet av distributionen blev möjligheten att parallellskriva till flera diskar samtidigt, vilket ökar datautbyteshastigheten något jämfört med RAID 3 eller RAID 4. Denna ökning är dock inte så betydande, eftersom ytterligare systemresurser spenderas på att beräkna kontrollsummor med XOR-operationen. Samtidigt ökar läshastigheten avsevärt, eftersom en enkel parallellisering av processen är möjlig.

Det minsta antalet hårddiskar för att bygga RAID 5 är tre.

Arrayer byggda enligt RAID 5-schemat har en mycket betydande nackdel. Om någon disk misslyckas efter att den har bytts ut tar det flera timmar att återställa informationen helt. Under denna tid fungerar arrayens oskadade hårddiskar i ett ultraintensivt läge, vilket avsevärt ökar sannolikheten för ett andra diskfel och fullständig förlust av information. Även om det är sällsynt händer detta. Dessutom, under RAID 5-avstämning, är arrayen nästan helt upptagen av denna process och nuvarande skriv-/läsoperationer utförs med långa förseningar. Om för majoriteten vanliga användare det är inte kritiskt, då kan sådana förseningar i företagssektorn leda till vissa ekonomiska förluster.

Till stor del löses ovanstående problem genom att bygga arrayer enligt RAID 6-schemat. I dessa strukturer tilldelas lagringen av kontrollsummor, som också är cykliskt och jämnt fördelade på olika diskar, en mängd minne som är lika med volymen av två hårddiskar. Istället för en beräknas två kontrollsummor, vilket garanterar dataintegritet i händelse av samtidiga fel på två hårddiskar i arrayen samtidigt.

Fördelarna med RAID 6 är en hög grad av informationssäkerhet och mindre prestandaförlust än i RAID 5 under dataåterställning vid byte av en skadad disk.

Nackdelen med RAID 6 är en minskning av den totala dataväxlingshastigheten med cirka 10 % på grund av en ökning av mängden nödvändiga kontrollsummaberäkningar, samt en ökning av mängden information som skrivs/läses.

Kombinerade RAID-typer

Förutom de huvudtyper som diskuterats ovan används olika kombinationer av dem i stor utsträckning, vilket kompenserar för vissa brister hos enkel RAID. I synnerhet är användningen av RAID 10- och RAID 0+1-scheman utbredd. I det första fallet kombineras ett par spegelmatriser till RAID 0, i det andra fallet kombineras två RAID 0-matriser till en spegel. I båda fallen läggs den ökade prestandan för RAID 0 till säkerheten för RAID 1-information.

Ofta för att höja skyddsnivån viktig information RAID 51 eller RAID 61 konstruktionsscheman används - spegling av redan högt skyddade arrayer säkerställer exceptionell datasäkerhet vid eventuella fel. Det är dock opraktiskt att implementera sådana arrayer hemma på grund av överdriven redundans.

Bygga en rad diskar - från teori till praktik

En specialiserad RAID-kontroller är ansvarig för att bygga och hantera driften av alla RAID. Till stor lättnad för den genomsnittlige användaren personlig dator, i de flesta moderna moderkort är dessa kontroller redan implementerade på nivån för kretsuppsättningens sydbrygga. Så för att bygga en rad hårddiskar räcker det att ta hand om att köpa det erforderliga antalet av dem och bestämma önskad typ av RAID i lämpligt avsnitt. BIOS-inställningar. Efter det, i systemet, istället för flera hårddiskar, ser du bara en, som kan delas in i sektioner och logiska enheter. Observera att om du fortfarande använder Windows XP måste du installera en extra drivrutin.

Extern RAID-kontroller med fyra SATA-portar

Observera att integrerade kontroller vanligtvis kan skapa RAID 0, RAID 1 och kombinationer därav. För att skapa mer komplexa arrayer måste du fortfarande köpa en separat kontroller.

Och slutligen ett råd till - att skapa en RAID, köp hårddiskar av samma storlek, samma tillverkare, samma modell och helst från samma batch. Sedan kommer de att vara utrustade med samma uppsättningar av logik och driften av arrayen av dessa hårddiskar kommer att vara den mest stabila.