Varför raid 5 är bättre än 0. RAID-nivåer - kort teoretisk information

Varför raid 5 är bättre än 0. RAID-nivåer - kort teoretisk information
Varför raid 5 är bättre än 0. RAID-nivåer - kort teoretisk information

Entusiaster har en oskriven regel: hårddisken Western Digital WD1500 Raptorär den idealiska skrivbordsmodellen om du behöver maximal prestanda. Men inte alla användare kan följa denna väg, eftersom att spendera $ 240 på en hårddisk med en kapacitet på endast 150 GB inte är en särskilt attraktiv lösning. Finns Raptor kvar det bästa valet? Priset har inte förändrats på många månader, och idag för pengarna kan du enkelt köpa ett par 400-GB-enheter. Är det dags att jämföra prestandan hos moderna RAID-arrayer med Raptor?

Entusiaster är bekanta med Raptor-hårddisken eftersom det är den enda 3,5" stationära hårddisken som snurrar med 10 000 rpm. De flesta hårddiskar i denna sektor av marknaden snurrar med 7 200 rpm. för servrar roterar snabbare. WD Raptor hårddiskar 36 och 74 GB presenterades för tre år sedan. Gick in på marknaden för ungefär ett år sedan Western Digital Raptor-X, vilket ger högre prestanda, modeller finns även med ett genomskinligt lock som gör att du kan titta inuti hårddisken.

Hårddiskar Western digital Raptor överträffade alla andra 3,5" Serial ATA-hårddiskar för stationära PC-datorer efter lanseringen, även om de ursprungligen var placerade för billiga servrar.

En spindelhastighet på 10 000 rpm erbjuder två betydande fördelar. För det första är dataöverföringshastigheten märkbart ökad. Ja, den maximala sekventiella läshastigheten är inte särskilt imponerande, men den lägsta hastigheten överstiger vida alla hårddiskar vid 7200 rpm. Dessutom har en 10 000 rpm hårddisk mindre spinlag, vilket innebär att enheten tar mindre tid att ta emot data efter att läs-/skrivhuvudena har placerats.

Den största nackdelen med WD Raptor är priset - cirka $240 för en 150GB-modell. Bland andra nackdelar noterar vi en högre (men inte kritisk) ljudnivå och högre värmealstring. Entusiaster kommer dock lätt att komma över sådana brister om denna hårddisk ger högre prestanda till lagringsundersystemet.

Om du beräknar kostnaden för att lagra en gigabyte data, kommer Raptor inte längre att vara så attraktiv. För $240 kan du få ett par 400 GB hårddiskar, och till och med $300 för en 750 GB Seagate Barracuda 7200.10 är inte långt borta. Om du tittar på det billiga segmentet kan du få ett par 160 GB 7200 RPM hårddiskar för $50 styck, vilket kommer att ge samma kapacitet som Raptor, men mer än halva priset. Därför frågar sig idag även entusiaster ofta: är det värt att ta en WD Raptor, är det inte bättre att välja en RAID 0-konfiguration på två 7200 rpm hårddiskar?

RAID 0 minskar inte åtkomsttiden, men den fördubblar nästan sekventiell läshastighet genom att strippa data över två hårddiskar. Nackdelen kan anses vara en ökad risk för dataförlust, för om en hårddisk går sönder kommer hela arrayen att gå förlorad (även om det idag finns alternativ Återställning av RAID-information). Många integrerade kontroller på avancerade moderkort stöder RAID-lägen som är enkla att ställa in och installera.

Snabb eller smart hårddisk?

Prestanda Kapacitet Datalagringssäkerhet Pris
En hårddisk (7200 rpm) Bra Tillräckligt till utmärkt Tillräckligt * Låg till hög, $50 till $300
150 GB WD Raptor (10 000 rpm) Excellent Tillräcklig Tillräckligt * Hög: $240+
2x 160 GB (7200 rpm) Mycket bra till utmärkt Bra till utmärkt Otillräcklig * Låg till hög: Från $50 per hårddisk
2x 150 GB WD Raptor (10 000 rpm) Excellent Bra Otillräcklig * Hög till mycket hög: från $240 per enhet

* Man bör komma ihåg att alla hårddiskar kommer att misslyckas förr eller senare. Tekniken är baserad på mekaniska komponenter och deras livslängd är begränsad. Tillverkare anger Mean Time Between Failures (MTBF) för hårddiskar. Om du sätter upp en RAID 0-array på två 7200 rpm-hårddiskar fördubblas risken för dataförlust, för om en hårddisk går sönder kommer du att förlora hela RAID 0-arrayen. Säkerhetskopiera därför regelbundet viktig data och skapa en bild av operativsystemet.

Idag kan du köpa 40-80 GB hårddiskar för nästan en slant, och om du inte har speciella krav kapacitetsmässigt så kommer denna volym att räcka även idag. Vi rekommenderar dock att du köper hårddiskar för $50-$70 eftersom du enkelt kan få 120GB till 200GB modeller. Onlinebutiker har redan börjat dyka upp modeller på 250 och 320 GB till ett pris av mindre än $100. För pengarna du spenderar på en 10 000 RPM WD Raptor kan du enkelt få 800 GB till 1 TB lagringsutrymme på 7 200 RPM hårddiskar.

Om du inte behöver så hög kapacitet kan du nöja dig med instegsdiskar på 7200 rpm. Två Western Digital WD1600AAJS-enheter kostar $55 styck, och du kan enkelt få 320 GB lagringsutrymme i en RAID 0-array. Spendera hälften av pengarna och få dubbelt så mycket stor kapacitet. Hur motiverade är dessa besparingar? Låt oss ta reda på det.

7 200 eller 10 000 rpm? RAID 0 eller Raptor?

Vi bestämde oss för att testa olika hårddiskkonfigurationer. Våra tester inkluderar en enda WD Raptor WD1500ADFD, en enda WD4000KD, en Raptor i en RAID 0-array och en WD4000 i en RAID 0-array. Vi bestämde oss för att använda 400 GB 7200 RPM WD-hårddiskar, eftersom två av dessa hårddiskar är ungefär priset motsvarar en Raptor. Låt oss se hur bra en "budget" RAID presterar jämfört med en enda Raptor.

WD4000KD är utrustad med 16 MB cache och har ett seriellt ATA/150-gränssnitt. Den största skillnaden jämfört med 10 000 RPM WD Raptor är prestanda och kapacitet. Raptor kostar betydligt lägre per gigabyte, vilket är minst sex gånger högre än 400 GB WD4000KD. Tester kommer att visa hur stora prestandaskillnaderna är. Vid tidpunkten för publiceringen var priset på WD4000KD Caviar $130.

Raptor är den obestridda prestandamästaren på datormarknaden, men det är också den dyraste hårddisken. WD1500 Raptor använder ett Serial ATA/150-gränssnitt, vilket fortfarande är tillräckligt. Om man tittar på benchmarkresultaten kan ingen annan hårddisk slå Raptor, ens med SATA-gränssnitt 300 MB/s. I allmänhet bör hastigheten på SATA-gränssnittet inte påverka köpbeslutet. Vid tidpunkten för publiceringen var priset på WD1500ADFD Raptor $240.

Denna konfiguration bör ta på WD1500 Raptor. Kommer två WD4000KD-hårddiskar i en RAID 0-array att slå Raptor?

Det här scenariot är det dyraste i våra tester, eftersom det kräver två WD Raptor-hårddiskar, men det är ändå väldigt intressant. Två 10 000 RPM Raptor-hårddiskar i en RAID 0-array borde bokstavligen slita isär alla.

RAID 0

Prestanda

I teorin är RAID 0 en idealisk lösning för att öka prestanda eftersom den seriella dataöverföringshastigheten skalas nästan linjärt med antalet hårddiskar i arrayen. Filer distribueras block för block över alla hårddiskar, det vill säga att RAID-styrenheten skriver data nästan samtidigt till flera hårddiskar. Dataöverföringshastigheten för RAID 0 förbättras märkbart i nästan alla scenarier, även om åtkomsttiden inte minskar. I verkliga tester ökar till och med åtkomsttiden i RAID 0-arrayer, om än väldigt lite, med ungefär en halv millisekund.

Om du bygger en RAID-konfiguration på flera hårddiskar kan enhetskontrollern bli en flaskhals. En typisk PCI-buss låter dig överföra maximalt 133 MB/s, vilket lätt absorberas av två moderna hårddiskar. De seriella ATA-kontroller som ingår i styrkretsen ger i allmänhet högre bandbredd, så de begränsar inte prestandan hos RAID-arrayer.

Vi har upp till 350 MB/s på fyra 10 000 rpm WD Raptor-hårddiskar på Intel ICH7 och ICH8 southbridge chipset. Ett utmärkt resultat, som ligger mycket nära den totala genomströmningen av fyra individuella hårddiskar. Samtidigt visade styrkretsen nVidia nForce 680 max 110 MB/s, tyvärr. Det verkar som att inte alla integrerade RAID-kontroller är kapabla att tillhandahålla högpresterande RAID-arrayer, även om det är tekniskt möjligt.

Jämförelse av RAID-lägen

Det bör noteras att RAID 0 inte riktigt expanderar på idén med RAID-arrayer, som står för Redundant Arrays of Independent/Inexpensive Drives (redundant array of inexpensive/independent drives). Redundans innebär att data lagras på minst två ställen så att den överlever även om en hårddisk går sönder. Detta är vad som händer till exempel i fallet med en RAID 1-array, där all data speglas på en andra hårddisk. Om en av hårddiskarna "dör", kommer du bara att veta om det från meddelandena från RAID-kontrollern. En RAID 5-array är mycket mer komplex och designad för den professionella sektorn. Det fungerar som en RAID 0-array som sprider data över alla hårddiskar, men redundansinformation läggs till data. Därför är nettokapaciteten för en RAID 5-array lika med den totala kapaciteten för alla hårddiskar utom en. Redundansinformation skrivs inte till en hårddisk (som i fallet med RAID 3), utan distribueras över alla enheter för att inte skapa en "flaskhals" vid läsning eller skrivning av redundansinformation till en hårddisk. En RAID 5-array kräver, helt förståeligt, minst tre hårddiskar.

Risker och biverkningar

Den största faran för en RAID 0-array är att en hårddisk misslyckas, eftersom hela arrayen går förlorad. Det är därför ju fler diskar i en RAID 0-array, desto högre är risken att förlora information. Om tre hårddiskar används, ökar sannolikheten för informationsförlust i jämförelse med en enhet tre gånger. Det är därför RAID 0 inte kan övervägas bra alternativ för användare som behöver ett pålitligt system och som inte har råd med en enda minuts stillestånd.

Även om du köper en kraftfull och dyr separat RAID-kontroller kommer du fortfarande att vara beroende av hårdvaran. Två olika kontroller kan stödja RAID 5, men den specifika implementeringen kan vara väldigt olika.



Intel Matrix RAID: Flera RAID-arrayer kan skapas på samma uppsättning hårddiskar.

Om RAID-styrenheten är smart nog kan den tillåta att två eller flera RAID-arrayer installeras på en uppsättning hårddiskar. Även om varje RAID-kontroller kan stödja flera RAID-arrayer, kräver detta oftast olika uppsättningar av hårddiskar. Därför visade sig Intel ICH7-R och ICH8-R sydbryggor vara mycket intressanta: de stöder Intel Matrix RAID-funktionen.

En typisk implementering är två RAID-arrayer på två hårddiskar. Den första tredjedelen av kapaciteten på två hårddiskar kan allokeras till en snabb RAID 0-array för operativsystemet, och resten till en RAID 1-array för lagring av viktig data. Om en av hårddiskarna misslyckas kommer operativsystemet att gå förlorat, men viktig data som speglas till den andra hårddisken kommer att bevaras tack vare RAID 1. Förresten, efter installation av Windows kan du skapa en bild av operativsystemet systemet och lagra det i en pålitlig RAID 1-array. Om hårddisken går sönder kan operativsystemet snabbt återställas.

Tänk på att många RAID-arrayer kräver en RAID-drivrutin (som Intel Matrix Storage Manager) för att installeras, vilket kan orsaka problem under systemstart och återställning. Alla startskivor som du använder för återställning behöver RAID-drivrutiner. Så spara förardisketten för det tillfället.

Testa konfiguration

Konfiguration för lågnivåtester

Processorer 2x Intel Xeon (Nocona-kärna), 3,6 GHz, FSB800, 1 MB L2-cache
Plattform Asus NCL-DS (Socket 604), Intel E7520 chipset, BIOS 1005
Minne Corsair CM72DD512AR-400 (DDR2-400 ECC, reg.), 2x 512MB, CL3-3-3-10 latens
Systemets hårddisk Western Digital Caviar WD1200JB, 120 GB, 7200 rpm, 8 MB cache, UltraATA/100
Drive Controllers Intel 82801EB UltraATA/100-kontroller (ICH5)
Silicon Image Sil3124, PCI-X
Netto Integrerad Broadcom BCM5721 Gigabit Ethernet Controller
grafikkort Inbyggd ATi RageXL, 8 MB
Tester och inställningar
Prestandatester c "t h2benchw 3.6
PCMark05 V1.01
I/O-tester IOMeter 2003.05.10
Filserver benchmark
webbserver-benchmark
databas-benchmark
Workstation Benchmark
Systemmjukvara
OS Microsoft Windows Server 2003 Enterprise Edition Service Pack 1
Plattformsförare Intel Chipset Installation Utility 7.0.0.1025
Grafik drivrutin Windows-standard grafikdrivrutin

Konfiguration för SYSmark2004 SE

Systemhårdvara
CPU Intel Core 2 Extreme X6800 (Conroe 65 nm, 2,93 GHz, 4 MB L2-cache)
Moderkort Gigabyte GA-965P-DQ6 2.0, chipset: Intel 965P, BIOS: F9
Allmän hårdvara
Minne 2x 1024MB DDR2-1111 (CL 4.0-4-4-12), Corsair CM2X1024-8888C4D XMS6403v1.1
grafikkort HIS X1900XTX IceQ3, GPU: ATi Radeon X1900 XTX (650MHz), Minne: 512MB GDDR3 (1550MHz)
Hårddisk I 150 GB, 10 000 rpm, 8 MB cache, SATA/150, Western Digital WD1500ADFD
Hårddisk II 400 GB, 7200 rpm, 16 MB cache, SATA/300, Western Digital WD4000KD
DVD-ROM Gigabyte GO-D1600C (16x)
programvara
ATi drivrutiner Catalyst Suite 7.1
Intel chipset drivrutiner Programvaruinstallationsverktyg 8.1.1.1010
Intel RAID-drivrutiner Matrix Storage Manager 6.2.1.1002
DirectX 9.0c (4.09.0000.0904)
OS Windows XP, Build 2600 SP2
Tester och inställningar
SYSmark Version 2004 andra upplagan, officiell körning

Nåväl, låt oss gå vidare till kampen mellan de nuvarande 150 GB WD Raptor-hårddiskarna och 400 GB WD4000KD-hårddiskar i en RAID 0-array. Resultatet var fantastiskt. Medan WD Raptor förblir utan tvekan den snabbaste Serial ATA stationära hårddisken, kommer RAID 0 överst i de flesta tester utanför åtkomsttid och I/O-prestanda. Kostnaden för att lagra en gigabyte data på Raptor är den mest tvivelaktiga, eftersom du kan köpa tre gånger kapaciteten på en 7200 rpm hårddisk för halva priset. Det vill säga till priset av en gigabyte förlorar Raptor sex gånger idag. Men om du är orolig för datasäkerhet, tänk efter två gånger innan du väljer en RAID 0-array på två billiga 7200 rpm hårddiskar över en WD Raptor.

Under de kommande månaderna kommer priset på 500 GB hårddiskar att sjunka under 100 $. Men kraven på den tillgängliga volymen för att lagra video kommer att öka. högupplöst, musik och foton. Äntligen fortsätter hårddisktätheten att öka, så modeller med högre prestanda 7200rpm kommer snart. I framtiden kommer Raptors attraktionskraft att minska.

Vi tycker att Western Digital bör ändra sin prispolicy modellutbud Raptor eftersom prestandavinsten kommer på bekostnad av stora kompromisser i hårddiskkapacitet. Och jag måste säga, sådana kompromisser kommer inte att tyckas vara motiverade för alla. Vi skulle vilja se en uppdaterad 300 GB Raptor-hårddisk, som även skulle kunna vara en hybridhårddisk med inbyggt flashminne för Windows Vista.

När man skapar en filserver eller en produktiv arbetsstation måste man ofta möta problemet med att välja konfigurationen av diskundersystemet. Moderna moderkort, även på budgetnivå, erbjuder möjligheten RAID skapande arrayer på alla populära nivåer, glöm inte mjukvaruimplementeringen av RAID. Vilket av alternativen kommer att vara mer pålitligt och mer produktivt? Vi bestämde oss för att göra våra egna tester.

Testbänk

Som regel, i små och medelstora företag, rollen av filservrar, servrar på avdelningsnivå, etc. en vanlig PC används, sammansatt av vanliga, budget, komponenter. Syftet med våra tester var att studera prestandan för diskundersystemet som satts ihop med hjälp av chipsets RAID-kontroller och jämföra det med programvaruimplementationer av RAID-arrayer (OS-verktyg). Anledningen till testet var bristen på allmänt tillgängliga objektiva tester av budget RAID, samt Ett stort antal"myter och legender" i ämnet. Vi valde inte specifikt järn utan utnyttjade det som fanns till hands. Och till hands fanns flera vanliga datorer för nästa implementering, varav en användes som testbänk.

PC-konfiguration:

  • Moderkort: ASUS M4N68T-M SocketAM3
  • Processor: CPU AMD ATHLON II X2 245 (ADX245O) 2,9GHz/ 2Mb/ 4000MHz Socket AM3
  • RAM: 2 x Kingston ValueRAM DDR-III DIMM 1 Gb
  • Hårddiskar: HDD 320 Gb SATA-II 300 Western Digital Caviar Blue 7200rpm 16Mb
  • Operativsystem: Windows Server 2008 SP2 (32-bitars)
  • Filsystem: NTFS

Diskundersystemet konfigurerades enligt följande: ett operativsystem installerades på en disk, en RAID-array sattes ihop av två eller tre andra.

Testmetodik

Vi valde Intel NAS Performance Toolkit som en testmjukvara, det här paketet är en uppsättning tester som låter dig utvärdera prestandan för diskundersystemet på de huvudsakliga typiska uppgifterna. Varje test kördes fem gånger, slutresultatet representerar genomsnittet. Vi tog framförandet av en singel hårddisk.

Vi har testat RAID0, RAID1 och RAID5-arrayer, med RAID5 testat både i normalt läge och i nödläge med en enhet borttagen. Varför testade vi bara denna array i nödläge? Svaret är enkelt: det finns inget sådant läge för RAID0, om någon av diskarna misslyckas förstörs arrayen och den enda kvarvarande RAID1-disken kommer inte att skilja sig från en enda disk.

Både hårdvaru- och mjukvaruimplementationer testades, initialt mätte vi också den genomsnittliga CPU-belastningen, eftersom det finns en uppfattning om att mjukvaru-RAID belastar processorn hårt. Vi vägrade dock att ta med denna mätning i testresultaten, processorbelastningen visade sig vara ungefär lika stor och uppgick till ca 37-40% för en enstaka disk, RAID0, RAID1 och 40-45% för RAID5.

Filoperationer

De klassiska operationerna för alla enheter är läs- och skrivoperationer. I Intel NASPT utvärderas dessa parametrar i fyra tester: kopiering av en 247 MB-fil till och från enheten och 44 mappar som innehåller 2833 filer med en total volym på 1,2 GB.

Läs/skriv filer

Om vi ​​uppmärksammar referensskivans resultat kommer vi att se att skrivhastigheten är nästan dubbelt (89%) högre än läshastigheten. Detta beror på filsystemets egenheter och detta faktum bör också beaktas. RAID0 (striped array), oavsett implementeringsmetod, visade 70 % högre prestanda än en enda disk, medan hastighetsparametrarna för RAID1 (spegel) är helt identiska med den.

RAID5 förtjänar en separat diskussion, skrivhastigheten till den är oacceptabelt låg, nedgången är upp till 70%, medan läshastigheten inte är sämre än den snabba RAID0. Kanske beror detta på bristen på datorresurser och ofullkomligheten i algoritmerna, för under inspelningen spenderas ytterligare resurser för att beräkna kontrollsumman. Om en av diskarna misslyckas, sjunker skrivhastigheten, nedgången i hårdvarulösningen är mindre uttalad (15 %) än i mjukvarulösningen (40 %). I det här fallet sjunker läshastigheten avsevärt och motsvarar hastigheten på en enda skiva.

Läs/skriv mappar

Alla som har försökt kopiera en spridning av små filer vet att det är bättre att förpacka dem i ett arkiv, detta kommer att gå mycket snabbare. Våra tester bekräftar bara denna tumregel, att läsa många små filer och mappar är nästan 60 % långsammare, att läsa en stor fil, skrivhastigheten är också något (10 %) lägre.

RAID0 ger en mycket mindre fördel vid skrivoperationer (30-40%), och på läsoperationer kan skillnaden försummas. RAID1, som förväntat, ger oss inga överraskningar, utan att gå en mot en med en enda disk.

RAID5 på små filer visar mycket mer bästa resultat, men fortsätter ändå att ge efter för en enda skiva med i genomsnitt 35 %. Läshastigheten skiljer sig inte från andra konfigurationer, vi tenderar att tro att i det här fallet är hårddiskens slumpmässiga åtkomsttid den begränsande faktorn. Men när vi tog bort en disk från arrayen fick vi ett mycket oväntat resultat, vilket tvingade oss att dubbelkolla det flera gånger, inklusive på en annan modell av hårddiskar (500 Gb Seagate/Maxtor Barracuda 7200.12/DiamondMax 23<3500418AS>7200rpm 16Mb). Faktum är att skrivhastigheten för hårdvaruarrayen har sjunkit kraftigt (nästan tre gånger), och skrivhastigheten för programvaran RAID5, tvärtom, har ökat, kanske beror detta på algoritmen för mjukvaruimplementeringen av arrayen . Och ändå föredrar vi att lämna detta "fenomen" utan kommentarer.

Arbeta med applikationer

Följande tester återspeglar prestandan hos diskundersystemet när du arbetar med olika applikationer, främst kontorsapplikationer. Det första testet (Content Creation) speglar användningen av disken för att lagra och arbeta med data, användaren skapar, öppnar, sparar dokument utan att visa mycket aktivitet. Det mest kraftfulla testet är Office Productivity, det simulerar aktivt arbete med dokument, sökning efter information på Internet (webbläsarens cache återställs till enheten), totalt 616 filer i 45 kataloger med en volym på 572 MB. Det sista testet - att arbeta med ett fotoalbum (främst visning), är mer typiskt för hemmabruk, inkluderar 1,2 GB foton (169 filer, 11 kataloger).

Arbeta med dokument

När man arbetar med enstaka filer överträffar RAID0 förutsägbart RAID1 och en enda hårddisk med nästan två gånger (Content Creation test), men förlorar alla sina fördelar under aktivt arbete, i Office Productivity-testet visar RAID0, RAID1 och en enda enhet samma resultat .

RAID5 är en uppenbar outsider i dessa tester, prestandan för arrayen på enstaka filer är extremt låg och hårdvaruimplementeringen visar ett mycket bättre (men fortfarande extremt lågt) resultat. Med aktiv kontorsarbete resultaten är mycket bättre, men fortfarande lägre än för en enda enhet och enklare arrayer.

Jobbar med foton

I det här läget visade alla arrayer ungefär samma resultat, jämförbart med prestandan för en enda disk. Även om RAID5 visade ett något lägre resultat, även om fördröjningen i det här fallet är osannolik att märkas av "blotta ögat".

Multimedia

Och slutligen, multimediatester, som vi delade upp i två delar: uppspelning och inspelning. I det första fallet spelas HD-video från enheten i en, två eller fyra strömmar samtidigt. I den andra, inspelning och samtidig inspelning - uppspelning av två filer utförs. Detta test är inte bara tillämpligt på video, eftersom det kännetecknar de allmänna processerna för linjär skrivning/läsning från en diskarray.

Uppspelning

RAID0

Den här typen av diskarray leder tryggt när du arbetar med stora filer och multimedia. I de flesta fall låter det dig uppnå en betydande fördel (cirka 70%) jämfört med en enda disk, men den har en betydande nackdel - extremt låg feltolerans. När en disk går sönder förstörs hela arrayen. När man arbetar med kontorsapplikationer och foton har det inga speciella fördelar.

Var kan RAID0 användas? Först och främst på arbetsstationer som på grund av sina uppgifter måste arbeta med stora filer, till exempel videoredigering. Om feltolerans krävs kan du använda RAID10 eller RAID0 + 1, som representerar en randig array av två speglar eller en spegel av randiga arrayer, dessa RAID-nivåer kombinerar hastighetsparametrarna för RAID0 och tillförlitligheten hos RAID1, nackdelarna inkluderar betydande overhead - endast halva kapaciteten på de inkommande diskarna används för lagring i en array.

RAID1

"Spegeln" har inga hastighetsfördelar jämfört med en enda skiva, huvuduppgiften för denna array är att tillhandahålla feltolerans. Rekommenderas för användning vid arbete med office-filer och små filer, dvs. på de uppgifter där skillnaden mellan snabbare arrayer inte är så stor. Inte illa för att arbeta med 1C:Enterprise 7.7 i filläge, som, till sin natur att arbeta med en disk, är något mellan Office Productivity och Dir copy från / till NAS. För mer produktiva uppgifter rekommenderas det inte, här bör du vara uppmärksam på RAID10 och RAID0 + 1.

RAID5

Vi skulle inte rekommendera att använda den här typen av array i low-end system; i skrivoperationer förlorar RAID5 avsevärt även till en enda hårddisk. Det enda området där användningen kommer att vara motiverad är skapandet av mediaservrar för lagring av multimediadata, vars huvudläge är läsning. Här kommer sådana parametrar som hög läshastighet (på RAID0-nivå) och lägre overhead för feltolerans (1/3 av arraykapaciteten) i förgrunden, vilket ger en bra vinst när man skapar lagringar av en betydande mängd. Man bör dock komma ihåg att ett försök att skriva till arrayen leder till en kraftig minskning av prestanda, så uppladdning av ny data till sådana mediaservrar bör göras under de timmar med minsta arbetsbelastning.

Hårdvara eller mjukvara?

Testresultaten avslöjade inga märkbara fördelar eller nackdelar för båda implementeringsalternativen, förutom RAID5, vars hårdvaruversion visade bättre resultat i vissa fall. Därför är det nödvändigt att gå vidare från andra funktioner. såsom kompatibilitet och portabilitet.

Hårdvaru-RAID implementeras av chipsets södra brygga (eller av en separat styrenhet) och kräver stöd från operativsystemet eller laddar drivrutiner vid installationsstadiet. Samma faktum gör det ofta omöjligt att använda ett antal disk- och systemverktyg som använder sina egna startskivor, om deras starthanterare inte stöder en RAID-kontroller, kommer programvaran helt enkelt inte att se din array.

Den andra nackdelen är bindningen till en specifik tillverkare, om du bestämmer dig för att byta plattform eller välja ett moderkort med en annan styrkrets måste du kopiera dina data till externa media (vilket i sig kan vara problematiskt) och sätta ihop arrayen igen. Det största problemet är att om moderkortet misslyckas oväntat måste du leta efter en liknande modell för att få tillgång till dina data.

Software RAID stöds på OC-nivå, därför saknar den i stort sett dessa brister, arrayen är lätt att montera och överföra enkelt mellan hårdvaruplattformar, i händelse av ett hårdvarufel kan data enkelt nås på en annan PC som har en kompatibel version av Windows (lägre upplagor stöder inte dynamiska diskar).

Av nackdelarna bör det noteras att det är omöjligt att installera Windows på RAID0- och RAID5-volymer, av den anledningen att installation av Windows på en dynamisk volym endast är möjlig när denna volym har konverterats från en grundläggande start- eller systemvolym. Du kan läsa mer om dynamiska volymer.

Det finns många artiklar på Internet som beskriver RAID. Till exempel, den här beskriver allt i detalj. Men som vanligt finns det inte tillräckligt med tid att läsa allt, så du behöver något kort för att förstå - är det nödvändigt eller inte, och vad är bättre att använda i förhållande till att arbeta med ett DBMS (InterBase, Firebird eller något annat - det är verkligen spelar ingen roll). Framför dina ögon - bara ett sådant material.

I den första approximationen är RAID kombinationen av diskar i en array. SATA, SAS, SCSI, SSD - det spelar ingen roll. Dessutom stöder nästan alla vanliga moderkort nu möjligheten att organisera SATA RAID. Låt oss gå igenom listan över vad RAID är och varför de är det. (Jag vill genast notera att du behöver kombinera identiska diskar i RAID. Kombinera diskar från olika tillverkare, från samma men olika typer, eller olika storlekar - detta är bortskämd för en person som sitter vid en hemdator).

RAID 0 (Stripe)

Grovt sett är detta en sekventiell kombination av två (eller flera) fysiska diskar till en "fysisk" disk. Det är bara lämpligt för att organisera enorma diskutrymmen, till exempel för dem som arbetar med videoredigering. Det är ingen mening att behålla databaser på sådana diskar - faktiskt, även om din databas har en storlek på 50 gigabyte, varför köpte du två diskar på 40 gigabyte vardera, och inte 1 x 80 gigabyte? Det värsta av allt, i RAID 0, leder alla fel på en av diskarna till att en sådan RAID inte fungerar helt, eftersom data skrivs omväxlande till båda diskarna, och följaktligen har RAID 0 inte möjlighet att återställa i händelse av fel .

Naturligtvis ger RAID 0 en prestandaökning på grund av läs/skriv-striping.

RAID 0 används ofta för att lagra temporära filer.

RAID 1 (spegel)

Diskspegling. Om Shadow i IB/FB är mjukvaruspegling (se Operations Guide.pdf), så är RAID 1 hårdvaruspegling och inget annat. Spara dig själv från att använda mjukvaruspegling med hjälp av operativsystemet eller programvara från tredje part. Det är nödvändigt eller "järn" RAID 1, eller skugga.

I händelse av ett fel, kontrollera noga vilken enhet som har fel. Det vanligaste fallet med dataförlust på RAID 1 är felaktiga åtgärder under återställning (fel enhet anges som "hel").

När det gäller prestanda - genom att skriva är förstärkningen 0, genom att läsa är det möjligt upp till 1,5 gånger, eftersom läsning kan göras "parallellt" (i sin tur från olika diskar). För databaser är accelerationen liten, medan med parallell åtkomst till olika (!) Delar (filer) av disken blir accelerationen absolut korrekt.

RAID 1+0

Med RAID 1+0 menar de varianten av RAID 10, när två RAID 1:or kombineras till RAID 0. Varianten när två RAID 0:or kombineras till RAID 1 kallas RAID 0+1, och "outside" är samma RAID 10 .

RAID 2-3-4

Dessa RAIDs är sällsynta då de använder Hamming-koder eller byteblockering + kontrollsummor etc. men den allmänna sammanfattningen är att dessa RAIDs bara ger tillförlitlighet, med 0 prestandavinster, och ibland även hennes försämring.

RAID 5

Det kräver minst 3 diskar. Paritetsdata fördelas över alla enheter i arrayen

Det brukar sägas att "RAID5 använder oberoende diskåtkomst så att förfrågningar till olika diskar kan exekveras parallellt". Man bör komma ihåg att vi naturligtvis talar om parallella I/O-förfrågningar. Om sådana förfrågningar skickas sekventiellt (i SuperServer) kommer du naturligtvis inte att få effekten av åtkomstparallellisering på RAID 5. Naturligtvis kommer RAID5 att ge en prestandahöjning om arrayen kommer att fungera med operativsystemet och andra applikationer (till exempel kommer den att innehålla virtuellt minne, TEMP, etc.).

I allmänhet var RAID 5 den vanligaste diskarrayen för att arbeta med DBMS. Nu kan en sådan array också organiseras på SATA-diskar, och det kommer att visa sig vara mycket billigare än på SCSI. Du kan se priser och kontroller i artiklarna
Dessutom bör du vara uppmärksam på volymen av köpta diskar - till exempel i en av de nämnda artiklarna är RAID5 sammansatt från 4 diskar med en volym på 34 gigabyte, medan volymen på "disken" är 103 gigabyte.

Testar fem SATA RAID-kontroller - http://www.thg.ru/storage/20051102/index.html.

Adaptec SATA RAID 21610SA i RAID 5 - http://www.ixbt.com/storage/adaptec21610raid5.shtml.

Varför RAID 5 är dåligt - https://geektimes.ru/post/78311/

Uppmärksamhet! När man köper diskar för RAID5 tar de vanligtvis minst 3 diskar (snarare på grund av priset). Om en av diskarna plötsligt går sönder efter ett tag, kan en situation uppstå när det inte går att köpa en disk som liknar de som används (de tillverkas inte längre, är tillfälligt slut i lager etc.). Därför verkar en mer intressant idé vara att köpa 4 diskar, organisera en RAID5 på tre och ansluta den 4:e disken som en säkerhetskopia (för säkerhetskopior, andra filer och andra behov).

Storleken på en RAID5-diskarray beräknas med formeln (n-1)*hddsize, där n är antalet diskar i matrisen och hddsize är storleken på en disk. Till exempel, för en array med 4 diskar på 80 gigabyte, blir den totala volymen 240 gigabyte.

Gäller "olämplighet" RAID5 för databaser. Åtminstone kan det ses ur synvinkeln att för att få bra RAID5-prestanda måste du använda en specialiserad kontroller, och inte vad som finns på moderkortet som standard.

Artikel RAID-5 måste dö. Och mer om dataförlust på RAID5.

Notera. Från och med den 5 september 2005 är kostnaden för en Hitachi 80Gb SATA-enhet $60.

RAID 10, 50

Dessutom finns det redan kombinationer av de listade alternativen. Till exempel är RAID 10 RAID 0 + RAID 1. RAID 50 är RAID 5 + RAID 0.

Intressant nog är kombinationen av RAID 0 + 1 när det gäller tillförlitlighet sämre än RAID5. I databasreparationstjänsten finns det ett fall av ett diskfel i ett RAID0 (3 diskar) + RAID1 (3 fler sådana diskar) system. Samtidigt kunde RAID1 inte "höja" reservdisken. Basen skadades så att den inte kunde repareras.

RAID 0+1 kräver 4 diskar och RAID 5 kräver 3. Tänk på det.

RAID 6

Till skillnad från RAID 5, som använder paritet för att skydda data från enstaka fel, använder RAID 6 samma paritet för att skydda mot dubbla fel. Följaktligen är processorn mer kraftfull än i RAID 5, och inte 3, men minst 5 diskar krävs (tre datadiskar och 2 paritetsdiskar). Dessutom har antalet diskar i raid6 inte samma flexibilitet som i raid 5, och måste vara lika med ett primtal (5, 7, 11, 13, etc.)

Låt oss säga att två diskar misslyckas samtidigt, även om detta fall är mycket sällsynt.

Jag såg inte data om RAID 6-prestanda (såg inte ut), men det kan mycket väl vara så att på grund av överdriven kontroll kan prestanda vara på RAID 5-nivå.

Återuppbygga tid

För alla RAID-arrayer som förblir friska när en enhet misslyckas, finns det något som återuppbyggnadstid. Naturligtvis, när du ersätter en död disk med en ny, måste styrenheten organisera funktionen för den nya disken i arrayen, och detta kommer att ta lite tid.

Under "anslutningen" av en ny disk, till exempel för RAID 5, kan styrenheten tillåta arbete med arrayen. Men hastigheten på arrayen i det här fallet kommer att vara mycket låg, åtminstone eftersom även med en "linjär" fyllning av en ny skiva med information, kommer skrivning till den att "distrahera" styrenheten och skivhuvudena för synkroniseringsoperationer med resten av diskarna i arrayen.

Återställningstiden för arrayen som fungerar i normalt läge beror direkt på diskvolymen. Till exempel, en Sun StorEdge 3510 FC Array med en 2 terabyte array i exklusivt läge gör en ombyggnad inom 4,5 timmar (till ett hårdvarupris på cirka 40 000 USD). Därför, när du organiserar en array och planerar för failover, bör du först och främst tänka på återuppbyggnadstid. Om din databas och säkerhetskopior inte tar upp mer än 50 gigabyte, och tillväxten per år är 1-2 gigabyte, är det knappast meningsfullt att bygga en array med 500 gigabyte diskar. 250 gigabyte kommer att räcka, och även för raid5 kommer det att vara minst 500 gigabyte utrymme för att rymma inte bara databasen, utan även filmer. Men återuppbyggnadstiden för 250 GB diskar kommer att vara ungefär 2 gånger kortare än för 500 GB diskar.

Sammanfattning

Det visar sig att det mest meningsfulla är att använda antingen RAID 1 eller RAID 5. Det vanligaste misstaget som nästan alla gör är dock användningen av RAID "för allt". Det vill säga, de installerar RAID, staplar allt på det, och ... de får i bästa fall tillförlitlighet, men ingen prestandaförbättring.

Skrivcache är ofta inte heller aktiverat, vilket gör att skrivningen till raiden går långsammare än till en vanlig diskett. Faktum är att för de flesta kontroller är detta alternativ inaktiverat som standard, eftersom. man tror att för att aktivera det är det önskvärt att ha åtminstone ett batteri på raid-kontrollern, såväl som närvaron av en UPS.

Text
Den gamla artikeln hddspeed.htmLINK (och doc_calford_1.htmLINK) visar hur du kan få en betydande prestandaökning genom att använda flera fysiska diskar, även för en IDE. Följaktligen, om du organiserar en RAID, lägg en bas på den och gör resten (temp, OS, virtuell maskin) på andra hårddiskar. Trots allt är RAID i sig en "disk", även om den är mer pålitlig och snabbare.
förklarats föråldrad. Allt ovanstående har rätt att existera på RAID 5. Men innan en sådan placering måste du ta reda på hur du kan säkerhetskopiera/återställa operativsystemet, och hur lång tid det kommer att ta, hur lång tid det tar att återställa en " död" disk, finns det (kommer det att finnas) till hands finns en disk för att ersätta den "döda" och så vidare, det vill säga, det kommer att vara nödvändigt att i förväg veta svaren på de mest elementära frågorna i händelse av ett system fel.

Jag råder dig fortfarande att behålla operativsystemet på en separat SATA-enhet, eller om du föredrar det, på två SATA-enheter anslutna i RAID 1. I alla fall, när du placerar operativsystemet på RAID, bör du planera dina åtgärder om moderkortet plötsligt slutar fungera.kort - ibland är det inte möjligt att överföra diskarna i en raid-array till ett annat moderkort (chipset, raid-kontroller) på grund av inkompatibilitet med standardraidparametrarna.

Basplacering, skugga och backup

Trots alla fördelar med RAID rekommenderas det kategoriskt inte att till exempel göra en säkerhetskopia till samma logiska enhet. Detta har inte bara en dålig effekt på prestandan, utan det kan också leda till problem med brist på ledigt utrymme (på stora databaser) - trots allt, beroende på data kan säkerhetskopian vara likvärdig med storleken på databasen, och ännu mer. Att göra en säkerhetskopia till samma fysiska disk är fortfarande okej, även om det bästa alternativet är att säkerhetskopiera till en separat hårddisk.

Förklaringen är väldigt enkel. Säkerhetskopiering är att läsa data från en databasfil och skriva till en säkerhetskopia. Om allt detta fysiskt händer på samma disk (även RAID 0 eller RAID 1), blir prestandan sämre än om man läser från en disk och skriver till en annan. Ännu mer nytta av sådan separation är när säkerhetskopiering görs medan användare arbetar med databasen.

Detsamma gäller för skugga - det är ingen idé att sätta skugga, till exempel på RAID 1, på samma plats som basen, även på olika logiska enheter. I närvaro av skugga skriver servern datasidor både till databasfilen och till skuggfilen. Det vill säga, istället för en skrivoperation utförs två. Genom att separera bas och skugga mellan olika fysiska enheter, kommer skrivprestandan att bestämmas av den långsammaste enheten.

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 av information.

Frågan om att öka prestandan för diskundersystemet är mycket komplicerad. Tillväxten av datorkraft moderna processorer ledde 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 på ingångsnivå. 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.

Samarbete diskar i en array kan organiseras 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. Den nödvändiga informationen 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.

I enlighet med olika typeråtkomst finns det olika typer av RAID-arrayer, som vanligtvis kännetecknas av 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. Denna nivå är dock bred tillämpning 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 samtidig I/O från flera enheter ger RAID 0 maximala dataöverföringshastigheter och maximal effektivitet användning av diskutrymme, eftersom inget utrymme krävs för att lagra kontrollsummor. 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 ordstorleken är fyra (i binär notation, 100), så krävs tre bitar för att skriva detta tal i binär form, vilket betyder att kontrollordsstorleken ä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). Minnas det logisk operation 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 datalagringsschema används sällan eftersom det inte klarar det bra stort antal m förfrågningar, är svår att organisera och har mindre 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. Denna nivå är 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 en bra lösning för filservrar som oftast är lästa och sällan skrivna. 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å kontrollskiva, så RAID 2, RAID 3 och RAID 4 tillåter inte parallellskrivning. 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 för anslutning av hårddiskar. Även om flera SCSI-enheter kan anslutas till samma styrkanal, kommer den totala bandbredden för RAID-arrayen att begränsas av bandbredden för en kanal, vilket motsvarar bandbredden för SCSI-gränssnittet. 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 anslutna till en kanal (fler enheter stöds inte av själva gränssnittet) inte kan ge parallell drift - IDE-gränssnittet låter dig komma åt visst ögonblick tid till endast en disk. 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 neutraliseras vissa initiala besparingar helt av den extra belastningen på den centrala processorn, 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

Alla moderna moderkort är utrustade med en integrerad RAID-kontroller, och toppmodellerna har till och med flera integrerade RAID-kontroller. Hur mycket integrerade RAID-kontroller som efterfrågas av hemanvändare är en separat fråga. Ett modernt moderkort ger i alla fall användaren möjligheten att skapa en RAID-array från flera diskar. Men inte alla hemanvändare vet hur man skapar en RAID-array, vilken arraynivå man ska välja, och har generellt sett en dålig uppfattning om för- och nackdelarna med att använda RAID-arrayer.
I den här artikeln ger vi en snabbguide för att skapa RAID-arrayer på hemdatorer och specifikt exempel Låt oss visa hur du självständigt kan testa prestandan hos en RAID-array.

skapelsehistoria

Termen "RAID-array" dök upp första gången 1987, när de amerikanska forskarna Patterson, Gibson och Katz från University of California, Berkeley, i sin artikel "A Case for Redundant Arrays of Inexpensive Discs, RAID") beskrev hur du på detta sätt kan kombinera flera billiga hårddiskar till en enda logisk enhet så att resultatet blir ökad systemkapacitet och hastighet, och fel på enskilda enheter leder inte till fel på hela systemet.

Mer än 20 år har gått sedan publiceringen av denna artikel, 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.

Funktionsprincip

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, och flera block skrivs till olika diskar samtidigt, vilket leder till en ökad prestanda i skrivoperationer. Den nödvändiga informationen läses också i separata block samtidigt från flera diskar, 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 praktiskt taget omöjligt att skriva flera block parallellt. 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 kommer skrivhastigheten och läshastigheten i det här exemplet att vara fyra gånger högre än när du använder en enda skiva. Detta gäller endast för en ideal situation, dock är begäransstorleken inte alltid en multipel av blockstorleken och antalet diskar i arrayen.

Om storleken på den inspelade datan är mindre än blockstorleken, implementeras en fundamentalt annorlunda modell - oberoende åtkomst. Dessutom kan denna modell också användas 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 den oberoende åtkomstmodellen är att om flera skriv-(läs)förfrågningar anländer samtidigt, kommer de alla att exekveras på separata diskar oberoende av varandra. 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 distribueras över alla diskar. Det finns många 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 RAID-nivåer som kan anses vara standardiserade, de är RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5 och RAID 6.

Olika kombinationer av RAID-nivåer används också, vilket gör att du kan kombinera deras fördelar. Detta är vanligtvis en kombination av något slags feltolerant lager och en nollnivå som används för att förbättra prestandan (RAID 1+0, RAID 0+1, RAID 50).

Observera att alla moderna RAID-kontroller stöder funktionen JBOD (Just a Bench Of Disks), som inte är avsedd för att skapa arrayer - den ger möjlighet att ansluta enskilda diskar till RAID-kontrollern.

Det bör noteras att de RAID-kontroller som är integrerade på moderkort för hemdatorer inte stöder alla RAID-nivåer. RAID-kontroller med dubbla portar stöder bara nivåerna 0 och 1, medan RAID-kontroller med ett stort antal portar (till exempel 6-ports RAID-kontrollern integrerad i den södra bryggan av ICH9R/ICH10R-kretsuppsättningen) också stöder nivåerna 10 och 5.

Dessutom, om vi pratar om moderkort baserade på Intel-kretsuppsättningar, implementerar de också Intel Matrix RAID-funktionen, som gör att du kan skapa RAID-matriser på flera nivåer på flera hårddiskar samtidigt, och allokera en del av diskutrymmet för varje av dem.

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å aktivt i fall där det är nödvändigt att säkerställa hög prestanda för diskundersystemet. När man skapar en RAID-nivå 0-array delas information in i block (ibland kallas dessa block ränder), som skrivs till separata diskar, 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 kontrollsummor. 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 två-diskarray med 100 procent redundans. 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å enheter samma information och är en logisk enhet. När en disk misslyckas, utför en annan sina funktioner (vilket är helt transparent för användaren). Arrayåterställning pågår enkel kopiering. Dessutom fördubblar denna nivå hastigheten för att läsa information, eftersom denna operation kan utföras samtidigt från två diskar. Ett sådant system för att lagra information används främst i de fall då priset för datasäkerhet är mycket högre än kostnaden för att implementera ett lagringssystem.

RAID 5

RAID 5 är en feltolerant diskarray med distribuerad kontrollsummalagring. Vid skrivning delas dataströmmen in i block (ränder) på bytenivå och skrivs samtidigt till alla diskar i arrayen i en cyklisk ordning.

Antag att arrayen innehåller n skivor och randstorleken d. För varje del av n–1 ränder checksumma beräknas sid.

Rand d1 inspelad på den första skivan, stripe d2- på tvåan och så vidare upp till randen d n–1, som skrivs till ( n–1):e skivan. Nästa på n diskens skrivkontrollsumma p n, och processen upprepas cykliskt från den första skivan på vilken remsan skrivs d n.

Inspelningsprocess (n–1) ränder och deras kontrollsumma produceras samtidigt för alla n diskar.

För att beräkna kontrollsumman används en bitvis XOR-operation på datablocken som skrivs. Ja, om det finns n hårddiskar, d- datablock (stripe), sedan beräknas kontrollsumman med följande formel:

pn = d 1 d2 ... d 1–1 .

I händelse av ett fel på någon disk kan data på den återställas från kontrolldata och från data som finns kvar på friska diskar.

Som en illustration, betrakta block med fyra bitar. Anta att det bara finns fem diskar för att lagra data och skriva kontrollsummor. Om det finns en sekvens av bitar 1101 0011 1100 1011, uppdelad i block om fyra bitar, måste följande bitvisa operation utföras för att beräkna kontrollsumman:

1101 0011 1100 1011 = 1001.

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

Om en av diskarna, till exempel den fjärde, misslyckas, då blocket d4= 1100 kommer att vara oläsliga. Men dess värde kan enkelt återställas från kontrollsumman och från värdena för de återstående blocken med samma XOR-operation:

d4 = dl d2d4p 5.

I vårt exempel får vi:

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

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 100 GB, är den faktiska storleken på arrayen 400 GB eftersom 100 GB tilldelas för paritetsinformation.

RAID 5 kan byggas på tre eller fler hårddiskar. När antalet hårddiskar i en array ökar minskar redundansen.

RAID 5 har en oberoende åtkomstarkitektur som gör att flera läsningar eller skrivningar kan utföras samtidigt.

RAID 10

RAID 10 är en kombination av nivåerna 0 och 1. Minimikravet för denna nivå är fyra enheter. I en RAID 10-array med fyra enheter kombineras de i par till nivå 0-arrayer, och båda dessa arrayer kombineras som logiska enheter till en nivå 1-array. Ett annat tillvägagångssätt är också möjligt: ​​initialt kombineras diskarna till spegelnivåer 1-matriser och sedan logiska enheter baserade på dessa matriser - till en nivå 0-matris.

Intel Matrix RAID

De övervägda RAID-arrayerna på nivåerna 5 och 1 används sällan hemma, vilket främst beror på den höga kostnaden för sådana lösningar. Oftast för hemdatorer är det en nivå 0-array på två diskar som används. Som vi redan har noterat ger RAID nivå 0 inte lagringssäkerhet, och därför står slutanvändare inför ett val: skapa en snabb, men inte tillförlitlig RAID nivå 0-array, eller, fördubbla kostnaden för diskutrymme, - RAID- a nivå 1-array som ger tillförlitlighet för datalagring, men som inte ger någon betydande prestandavinst.

För att lösa detta svåra problem har Intel utvecklat Intel Matrix Storage Technology, som kombinerar fördelarna med Tier 0 och Tier 1-arrayer på bara två fysiska enheter. Och för att understryka att vi i det här fallet inte bara talar om en RAID-array, utan om en array som kombinerar både fysiska och logiska diskar, används ordet "matris" i teknikens namn istället för ordet "array". ”.

Så, vad är en två-disk RAID-matris baserad på Intel Matrix Storage Technology? Grundtanken är att om ett system har flera hårddiskar och ett moderkort med ett Intel-chipset som stöder Intel Matrix Storage Technology så är det möjligt att dela upp diskutrymmet i flera delar som var och en kommer att fungera som en separat RAID-array.

Tänk på ett enkelt exempel på en RAID-array med två 120 GB diskar. Vilken som helst av diskarna kan delas upp i två logiska diskar, till exempel 40 och 80 GB vardera. Därefter kan två logiska enheter av samma storlek (till exempel 40 GB vardera) kombineras till en RAID nivå 1-matris och de återstående logiska enheterna till en RAID-nivå 0-matris.

I princip, med två fysiska diskar, är det också möjligt att skapa bara en eller två nivå 0 RAID-matriser, men det är omöjligt att bara få nivå 1-matriser. Det vill säga om systemet bara har två diskar, då Intel-teknik Matrix Storage låter dig skapa följande typer av RAID-matriser:

  • en nivå 0-matris;
  • två matriser av nivå 0;
  • nivå 0 matris och nivå 1 matris.

Om tre hårddiskar är installerade i systemet kan följande typer av RAID-matriser skapas:

  • en nivå 0-matris;
  • en nivå 5-matris;
  • två matriser av nivå 0;
  • två nivå 5-matriser;
  • nivå 0 matris och nivå 5 matris.

Om fyra hårddiskar är installerade i systemet är det dessutom möjligt att skapa en RAID-matris på nivå 10, såväl som kombinationer av nivå 10 och nivå 0 eller 5.

Från teori till praktik

Om vi ​​pratar om hemdatorer så är de mest populära och populära RAID-arrayer på nivåerna 0 och 1. Användningen av RAID-arrayer med tre eller fler diskar i hemdatorer är snarare ett undantag från regeln. Detta beror på det faktum att å ena sidan kostnaderna för RAID-arrayer ökar i proportion till antalet inblandade diskar, och å andra sidan, för hemdatorer, är diskarrayens kapacitet av största vikt och inte dess prestanda och tillförlitlighet.

Därför kommer vi i det följande att överväga RAID-arrayer på nivåerna 0 och 1 baserat på endast två diskar. Syftet med vår studie kommer att vara att jämföra prestanda och funktionalitet hos RAID 0- och 1-arrayer baserat på flera integrerade RAID-kontroller, samt att studera beroendet av hastighetsegenskaperna hos en RAID-array på bandstorleken.

Faktum är att även om läs- och skrivhastigheten teoretiskt sett bör fördubblas när man använder en RAID 0-matris, så är ökningen av hastighetsegenskaperna i praktiken mycket mindre blygsam och skiljer sig för olika RAID-kontroller. Detsamma gäller för en RAID nivå 1-array: trots att läshastigheten i teorin borde fördubblas, är allt i praktiken inte så smidigt.

För våra jämförande tester av RAID-kontroller använde vi ett Gigabyte GA-EX58A-UD7 moderkort. Detta kort är baserat på Intel X58 Express-kretsuppsättningen med ICH10R southbridge, som har en integrerad sexports SATA II RAID-kontroller som stöder RAID-nivåerna 0, 1, 10 och 5 med Intel Matrix RAID-funktionen. Dessutom är GIGABYTE SATA2 RAID-styrenheten integrerad på Gigabyte GA-EX58A-UD7-kortet, baserat på vilket två SATA II-portar är implementerade med möjligheten att organisera RAID-arrayer på nivåerna 0, 1 och JBOD.

GA-EX58A-UD7-kortet integrerar också Marvell 9128 SATA III-kontrollern, baserad på vilken två SATA III-portar är implementerade med förmågan att organisera RAID-arrayer på nivåerna 0, 1 och JBOD.

Således har Gigabyte GA-EX58A-UD7-kortet tre separata RAID-kontroller, på basis av vilka du kan skapa RAID-arrayer på nivåerna 0 och 1 och jämföra dem med varandra. Kom ihåg att SATA III-standarden är bakåtkompatibel med SATA II-standarden, så baserat på Marvell 9128-kontrollern som stöder SATA III-enheter kan du också skapa RAID-arrayer med SATA II-enheter.

Testbänken hade följande konfiguration:

  • processor - Intel Core i7-965 Extreme Edition;
  • moderkort - Gigabyte GA-EX58A-UD7;
  • BIOS-version - F2a;
  • hårddiskar - två Western Digital WD1002FBYS-enheter, en Western Digital WD3200AAKS-enhet;
  • integrerade RAID-kontroller:
  • ICH10R,
  • GIGABYTE SATA2,
  • Marvell 9128;
  • minne - DDR3-1066;
  • minnesstorlek - 3 GB (tre moduler på 1024 MB vardera);
  • minnesdriftläge - DDR3-1333, trekanalsdriftläge;
  • grafikkort - Gigabyte GeForce GTS295;
  • strömförsörjning - Tagan 1300W.

Testning utfördes under operativsystemet Microsoft Windows 7 Ultimate (32-bitars). Operativsystemet installerades på en Western Digital WD3200AAKS-disk, som var ansluten till SATA II-kontrollporten integrerad i ICH10R-södra bron. RAID-arrayen monterades på två WD1002FBYS-diskar med SATA II-gränssnitt.

För att mäta hastighetsegenskaperna för de skapade RAID-arrayerna använde vi verktyget IOmeter, som är en industristandard för att mäta prestanda hos disksystem.

Verktyget IOmeter

Eftersom vi tänkte ut den här artikeln som en slags användarguide för att skapa och testa RAID-arrayer, skulle det vara logiskt att börja med en beskrivning av verktyget IOmeter (Input / Output meter), som, som vi redan har noterat, är ett slags industristandard för mätning av prestanda hos disksystem. Det här verktyget är gratis och kan laddas ner från http://www.iometer.org.

Verktyget IOmeter är ett syntetiskt test och låter dig arbeta med hårddiskar som inte är partitionerade i logiska partitioner, så att du kan testa enheter oavsett filstruktur och minska inflytandet från operativsystemet till noll.

Vid testning är det möjligt att skapa en specifik åtkomstmodell, eller "mönster", som låter dig specificera exekveringen hårddisk specifika operationer. I fallet med att skapa en specifik åtkomstmodell är det tillåtet att ändra följande parametrar:

  • storleken på begäran om dataöverföring;
  • slumpmässig/sekventiell fördelning (i %);
  • distribution av läs-/skrivoperationer (i %);
  • antalet individuella I/O-operationer som körs parallellt.

Verktyget IOmeter kräver ingen installation på en dator och består av två delar: IOmeter själv och Dynamo.

IOmeter är en kontrolldel av programmet med ett grafiskt användargränssnitt som låter dig göra alla nödvändiga inställningar. Dynamo är en lastgenerator som inte har något gränssnitt. Varje gång du kör IOmeter.exe startas även laddningsgeneratorn Dynamo.exe automatiskt.

För att börja arbeta med programmet IOmeter, kör bara filen IOmeter.exe. Detta öppnar huvudfönstret för IOmeter-programmet (fig. 1).

Ris. 1. Huvudfönstret för IOmeter-programmet

Det bör noteras att IOmeter-verktyget låter dig testa inte bara lokala disksystem (DAS), utan även nätverksenheter (NAS). Den kan till exempel användas för att testa prestanda för serverns diskdelsystem (filserver) med hjälp av flera nätverksklienter. Därför hänvisar några av flikarna och verktygen i IOmeter-verktygsfönstret specifikt till programmets nätverksinställningar. Det är tydligt att när vi testar diskar och RAID-arrayer kommer vi inte att behöva dessa funktioner i programmet, och därför kommer vi inte att förklara syftet med alla flikar och verktyg.

Så när du startar IOmeter-programmet kommer trädstrukturen för alla belastningsgeneratorer som körs (Dynamo-instanser) att visas på vänster sida av huvudfönstret (i Topology-fönstret). Varje körande Dynamo load generator-instans kallas en manager. Dessutom är IOmeter-programmet flertrådigt och varje enskild tråd i en Dynamo load generator-instans kallas en Worker. Antalet arbetande arbetare motsvarar alltid antalet logiska processorkärnor.

I vårt exempel finns det bara en dator med en fyrkärnig processor som stöder Hyper-Threading-teknik, så bara en manager (en instans av Dynamo) och åtta (efter antalet logiska processorkärnor) arbetare startas.

För att testa diskar i det här fönstret behöver du faktiskt inte ändra eller lägga till något.

Om du markerar datornamnet i trädstrukturen för att köra instanser av Dynamo med musen, sedan i fönstret Mål flik diskmål alla diskar, diskarrayer och andra enheter (inklusive nätverksenheter) installerade i datorn kommer att visas. Det är dessa enheter som IOmeter-programmet kan arbeta med. Media kan vara märkta med gult eller blå färg. Gult indikerar logiska mediapartitioner och blått indikerar fysiska enheter utan logiska partitioner skapade på dem. Den logiska partitionen kan vara överstruken eller inte. Faktum är att för att programmet ska fungera med en logisk partition måste det först förberedas genom att skapa en speciell fil på den, lika stor som kapaciteten för hela den logiska partitionen. Om den logiska partitionen är överstruken betyder det att partitionen ännu inte har förberetts för testning (den kommer att förberedas automatiskt i det första teststeget), men om partitionen inte är överstruken betyder det att en fil har redan skapats på den logiska partitionen, helt redo för testning .

Observera att, trots den stödda förmågan att arbeta med logiska partitioner, är det optimalt att testa diskar som inte är partitionerade i logiska partitioner. Du kan radera en logisk partition på en disk väldigt enkelt - genom snap-in Diskhantering . Klicka bara för att komma åt den. Högerklicka mus på ikonen dator på skrivbordet och i menyn som öppnas, välj objektet Hantera. I det öppnade fönstret datorhantering på vänster sida, välj Lagring, och i det - Diskhantering. Efter det, på höger sida av fönstret datorhantering alla anslutna enheter kommer att visas. Genom att högerklicka på önskad disk och välja objektet från menyn som öppnas Ta bort volym..., kan du ta bort en logisk partition på en fysisk disk. Kom ihåg att när du tar bort en logisk partition från en disk raderas all information på den utan möjlighet till återställning.

I allmänhet, med hjälp av verktyget IOmeter, kan du bara testa tomma diskar eller diskarrayer. Det vill säga, du kan inte testa disken eller diskarrayen som operativsystemet är installerat på.

Så, tillbaka till beskrivningen av IOmeter-verktyget. I fönstret Mål flik diskmål du måste välja den disk (eller diskarray) som ska testas. Därefter måste du öppna fliken Åtkomstspecifikationer(Fig. 2), på vilken det kommer att vara möjligt att bestämma testscenariot.

Ris. 2. Öppna fliken Specifikationer i IOmeter-verktyget

I fönstret Globala åtkomstspecifikationer det finns en lista över fördefinierade testskript som kan tilldelas nedladdningshanteraren. Vi kommer dock inte att behöva dessa skript, så alla kan väljas och raderas (det finns en knapp för detta). Radera). Efter det klickar du på knappen Ny för att skapa ett nytt testskript. I det öppnade fönstret Redigera åtkomstspecifikation du kan definiera en disk- eller RAID-startscenario.

Antag att vi vill ta reda på beroendet av hastigheten för sekventiell (linjär) läsning och skrivning på storleken på blocket för begäran om dataöverföring. För att göra detta måste vi generera en sekvens av laddningsskript i sekventiellt läsläge vid olika blockstorlekar, och sedan en sekvens av laddningsskript i sekventiellt skrivläge i olika blockstorlekar. Vanligtvis väljs blockstorlekar som en serie, varvid varje medlem är två gånger den föregående, och den första medlemmen i denna serie är 512 byte. Det vill säga blockstorlekarna är som följer: 512 byte, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 KB, 1 MB. Det är ingen mening att göra blockstorleken större än 1 MB för sekventiella operationer, eftersom med så stora datablockstorlekar ändras inte hastigheten för sekventiella operationer.

Så låt oss skapa ett sekventiellt läsladdningsskript för ett block på 512 byte.

I fält namn fönster Redigera åtkomstspecifikation ange namnet på nedladdningsskriptet. Till exempel Sequential_Read_512. Längre in i fältet Storlek på överföringsbegäran ställ in datablockstorleken till 512 byte. Skjutreglage Procent slumpmässig/sekventiell distribution(procentandel mellan sekventiella och selektiva operationer) vi flyttar hela vägen till vänster så att alla våra operationer bara är sekventiella. Tja, reglaget , som anger procentandelen mellan läs- och skrivoperationer, skiftar vi hela vägen till höger så att alla våra operationer är skrivskyddade. Andra alternativ i fönstret Redigera åtkomstspecifikation behöver inte ändras (fig. 3).

Ris. 3. Fönstret Redigera åtkomstspecifikation för att skapa ett sekventiellt läsladdningsskript
med en datablockstorlek på 512 byte

Klicka på knappen Ok, och det första skriptet vi skapade kommer att visas i fönstret Globala åtkomstspecifikationer flik Åtkomstspecifikationer IOmeter-verktyg.

På samma sätt måste du skapa skript för resten av datablocken, men för att göra ditt arbete enklare är det lättare att inte skapa ett skript varje gång genom att klicka på knappen Ny, och efter att ha valt det senast skapade skriptet, tryck på knappen Redigera Kopiera(redigera kopia). Efter det öppnas fönstret igen. Redigera åtkomstspecifikation med inställningarna för vårt senast genererade skript. I den kommer det att räcka att bara ändra namnet och storleken på blocket. Efter att ha gjort en liknande procedur för alla andra blockstorlekar kan du börja generera skript för sekventiell inspelning, vilket görs på exakt samma sätt, förutom att skjutreglaget Procent läs/skrivfördelning, som anger det procentuella förhållandet mellan läs- och skrivoperationer, måste flyttas hela vägen till vänster.

På samma sätt kan du skapa manus för selektivt skrivande och läsning.

När alla skript är klara måste de tilldelas starthanteraren, det vill säga ange vilka skript det kommer att fungera med Dynamo.

För att göra detta kontrollerar vi igen det i fönstret topologi datornamnet är markerat (det vill säga lasthanteraren på den lokala datorn), och inte en separat Worker. Detta säkerställer att belastningsscenarier tilldelas alla arbetare på en gång. Nästa i fönstret Globala åtkomstspecifikationer välj alla laddningsscenarier vi skapat och tryck på knappen Lägg till. Alla valda laddningsscenarier kommer att läggas till i fönstret (Fig. 4).

Ris. 4. Tilldela de skapade lastscenarierna till lasthanteraren

Efter det måste du gå till fliken Testuppsättning(Fig. 5), där du kan ställa in exekveringstiden för varje skript vi skapade. För detta, gruppen körtid ställ in exekveringstiden för laddningsscenariot. Det kommer att räcka för att ställa in tiden lika med 3 minuter.

Ris. 5. Ställa in exekveringstiden för laddningsscenariot

Dessutom i fält Testbeskrivning du måste ange namnet på hela testet. I princip har den här fliken en hel del andra inställningar, men för våra uppgifter behövs de inte.

När alla nödvändiga inställningar har gjorts rekommenderas det att spara det skapade testet genom att klicka på knappen med bilden av en diskett i verktygsfältet. Testet sparas med tillägget *.icf. Därefter kan du använda det skapade laddningsskriptet genom att inte köra filen IOmeter.exe, utan den sparade filen med tillägget *.icf.

Nu kan du gå direkt till testning genom att klicka på knappen med flaggans bild. Du kommer att uppmanas att namnge testresultatfilen och välja dess plats. Testresultaten sparas i en CSV-fil, som sedan är enkel att exportera till Excel och genom att sätta ett filter på den första kolumnen, välj önskad data med testresultaten.

Under testning kan mellanliggande resultat observeras på fliken resultatvisning, och du kan bestämma vilket belastningsscenario de tillhör på fliken Åtkomstspecifikationer. I fönstret Tilldelad åtkomstspecifikation körande skript visas i grönt, färdiga skript i rött och skript som ännu inte körts i blått.

Så vi har täckt de grundläggande teknikerna för att arbeta med verktyget IOmeter, som kommer att krävas för att testa enskilda diskar eller RAID-arrayer. Observera att vi inte har pratat om alla funktioner i IOmeter-verktyget, men en beskrivning av alla dess funktioner ligger utanför ramen för denna artikel.

Skapa en RAID-array baserad på GIGABYTE SATA2-kontrollern

Så vi börjar skapa en RAID-array med två diskar med hjälp av GIGABYTE SATA2 RAID-kontrollern integrerad på kortet. Givetvis producerar inte Gigabyte själva chips, och därför döljs ett ommärkt chip från ett annat företag under GIGABYTE SATA2-chippet. Som du kan se från INF-filen för drivrutinen är detta en JMicron JMB36x-seriekontroller.

Åtkomst till kontrollinställningsmenyn är möjlig vid uppstartsstadiet, för vilket du måste trycka på tangentkombinationen Ctrl + G när motsvarande inskription visas på skärmen. Naturligtvis innan BIOS-inställningar du måste ställa in de två SATA-portarna som är associerade med GIGABYTE SATA2-kontrollern som RAID (annars kommer du inte att kunna komma åt RAID-konfiguratormenyn).

Inställningsmenyn för GIGABYTE SATA2 RAID Controller är ganska enkel. Som vi redan har noterat är styrenheten dubbla portar och låter dig skapa RAID-arrayer på nivå 0 eller 1. Genom kontrollenhetens inställningsmeny kan du ta bort eller skapa en RAID-array. När du skapar en RAID-array är det möjligt att ange dess namn, välja arraynivå (0 eller 1), ställa in stripe-storleken för RAID 0 (128, 84, 32, 16, 8 eller 4K) och även bestämma storleken av arrayen.

När en array väl har skapats är inga ändringar i den möjliga. Det vill säga, du kan inte senare ändra för den skapade arrayen, till exempel dess nivå eller randstorlek. För att göra detta måste du först ta bort arrayen (med dataförlust) och sedan skapa den igen. Egentligen är detta inte unikt för GIGABYTE SATA2-kontrollern. Omöjligheten att ändra parametrarna för de skapade RAID-arrayerna är en funktion hos alla kontroller, vilket följer av själva principen om att implementera en RAID-array.

När en GIGABYTE SATA2-kontrollerbaserad array har skapats kan aktuell information om den ses med hjälp av verktyget GIGABYTE RAID Configurer, som installeras automatiskt med drivrutinen.

Skapa en RAID-array baserad på Marvell 9128-kontrollern

Konfigurering av Marvell 9128 RAID-kontrollern är endast möjlig genom BIOS-inställningarna på Gigabyte GA-EX58A-UD7-kortet. Generellt sett måste det sägas att menyn i Marvell 9128-kontrollerkonfiguratorn är något rå och kan vilseleda oerfarna användare. Men vi kommer att prata om dessa mindre brister lite senare, men för närvarande kommer vi att överväga de viktigaste. funktionalitet Marvell 9128 kontroller.

Så även om den här kontrollern stöder SATA III-enheter, är den också helt kompatibel med SATA II-enheter.

Med Marvell 9128-kontrollern kan du skapa en RAID-array med nivåerna 0 och 1 baserat på två diskar. För en nivå 0-matris kan du ange en randstorlek på 32 eller 64 KB, och du kan även ange namnet på matrisen. Dessutom finns det ett sådant alternativ som Gigabyte Rounding, som behöver en förklaring. Trots namnet, i överensstämmelse med tillverkarens namn, har Gigabyte Rounding-funktionen ingenting med det att göra. Dessutom har det ingenting att göra med en RAID-nivå 0-array, även om den kan definieras i styrenhetens inställningar specifikt för en array på denna nivå. Egentligen är detta den första av dessa brister i Marvell 9128-kontrollerkonfiguratorn som vi nämnde. Funktionen Gigabyte Rounding är endast definierad för RAID nivå 1. Den låter dig använda två enheter (till exempel olika tillverkare eller olika modeller) med lite olika kapacitet för att skapa en RAID nivå 1-array. Funktionen Gigabyte Rounding ställer bara in skillnaden i storlekarna på två diskar som används för att skapa en RAID nivå 1-array. I Marvell 9128-kontrollern låter Gigabyte Rounding-funktionen dig ställa in skillnaden i diskstorlekar till 1 eller 10 GB.

En annan nackdel med Marvell 9128-kontrollerkonfiguratorn är att när man skapar en RAID-nivå 1-array, har användaren möjlighet att välja bandstorlek (32 eller 64 KB). Konceptet med en stripe definieras dock inte alls för en RAID nivå 1-array.

Skapa en RAID-array baserad på styrenheten integrerad i ICH10R

Den RAID-styrenhet som är integrerad i ICH10R-södra bryggan är den vanligaste. Som redan nämnts har denna RAID-kontroller 6-portar och stöder inte bara skapandet av RAID 0- och RAID 1-arrayer, utan även RAID 5 och RAID 10.

Åtkomst till kontrollinställningsmenyn är möjlig vid uppstartsstadiet, för vilket du måste trycka på tangentkombinationen Ctrl + I när motsvarande inskription visas på skärmen. Naturligtvis måste du först definiera driftläget för denna styrenhet som RAID i BIOS-inställningarna (annars kommer åtkomst till menyn för RAID-arraykonfiguratorn att vara omöjlig).

Inställningsmenyn för RAID-kontrollern är ganska enkel. Genom kontrollinställningsmenyn kan du ta bort eller skapa en RAID-array. När du skapar en RAID-array kan du ange dess namn, välja arraynivå (0, 1, 5 eller 10), ställa in randstorleken för RAID 0 (128, 84, 32, 16, 8 eller 4K) och definiera storleken på arrayen.

Jämförelse av RAID-prestanda

För att testa RAID-arrayer med hjälp av verktyget IOmeter skapade vi scenarier för sekventiell läsning, sekventiell skrivning, selektiv läsning och selektiv skrivbelastning. Storleken på datablock i varje laddningsscenario var följande sekvens: 512 byte, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 KB, 1 MB.

På var och en av RAID-kontrollerna skapades en RAID 0-array med alla tillåtna stripe-storlekar och en RAID 1-array. Dessutom, för att kunna utvärdera prestandavinsten som erhålls genom att använda en RAID-array, testade vi även en enstaka disk på var och en av RAID-kontrollerna.

Så låt oss vända oss till resultaten av våra tester.

GIGABYTE SATA2-kontroller

Låt oss först och främst titta på resultaten av att testa RAID-arrayer baserade på GIGABYTE SATA2-kontrollern (Figur 6-13). I allmänhet visade sig kontrollern vara bokstavligen mystisk, och dess prestanda var helt enkelt en besvikelse.

Ris. 6. Hastighetskonsekvent
och selektiva diskoperationer
Western Digital WD1002FBYS

Ris. 7. Hastighetskonsekvent

med en randstorlek på 128 KB
(GIGABYTE SATA2-kontroller)

Ris. 12. Sekventiell hastighet
och selektiva operationer för RAID 0
med en randstorlek på 4 KB
(GIGABYTE SATA2-kontroller)

Ris. 13.Hastighetssekventiell
och selektiva operationer
för RAID 1 (GIGABYTE SATA2-kontroller)

Om man tittar på prestandan för en enda enhet (ingen RAID), är den maximala sekventiella läshastigheten 102 MB/s och den maximala sekventiella skrivhastigheten är 107 MB/s.

När du skapar en RAID 0-array med en randstorlek på 128 KB ökar den maximala sekventiella läs- och skrivhastigheten till 125 MB/s, det vill säga en ökning med cirka 22%.

Med en randstorlek på 64, 32 eller 16 KB är den maximala sekventiella läshastigheten 130 MB/s och den maximala sekventiella skrivhastigheten är 141 MB/s. Det vill säga, med de angivna randstorlekarna ökar den maximala sekventiella läshastigheten med 27 % och den maximala sekventiella skrivhastigheten - med 31 %.

Egentligen är detta inte tillräckligt för en nivå 0-array, och jag skulle vilja att den maximala hastigheten för sekventiella operationer skulle vara högre.

Med en bandstorlek på 8 KB förblir den maximala hastigheten för sekventiella operationer (läs och skriv) ungefär densamma som med en bandstorlek på 64, 32 eller 16 KB, men det finns uppenbara problem med selektiv läsning. När datablockstorleken ökar upp till 128 KB, ökar den selektiva läshastigheten (som den borde vara) i proportion till datablockstorleken. Men med en datablockstorlek på mer än 128 KB sjunker den selektiva läshastigheten till nästan noll (till cirka 0,1 MB/s).

Med en randstorlek på 4 KB sjunker inte bara hastigheten för selektiv läsning med en blockstorlek på mer än 128 KB, utan också hastigheten för sekventiell läsning med en blockstorlek på mer än 16 KB.

Att använda en RAID 1-array på en GIGABYTE SATA2-kontroller gör liten skillnad (jämfört med en enda enhet) i sekventiell läshastighet, men den maximala sekventiella skrivhastigheten sjunker till 75 MB/s. Kom ihåg att för en RAID 1-array bör läshastigheten öka och skrivhastigheten bör inte minska jämfört med läs- och skrivhastigheten för en enskild disk.

Baserat på testresultaten för GIGABYTE SATA2-kontrollern kan endast en slutsats dras. Använda sig av given kontrollant att skapa RAID 0- och RAID 1-arrayer är bara meningsfullt om alla andra RAID-kontroller (Marvell 9128, ICH10R) redan är aktiverade. Även om det är ganska svårt att föreställa sig en sådan situation.

Styrenhet Marvell 9128

Marvell 9128-kontrollern visade mycket snabbare prestanda jämfört med GIGABYTE SATA2-kontrollern (Figur 14-17). Egentligen uppträder skillnaderna även när kontrollern arbetar med en disk. Medan GIGABYTE SATA2-styrenheten har en maximal sekventiell läshastighet på 102 MB/s och uppnås med en datablockstorlek på 128 KB, för Marvell 9128-styrenheten är den maximala sekventiella läshastigheten 107 MB/s och uppnås med ett datablock storlek 16 KB.

När du skapar en RAID 0-array med en stripestorlek på 64 och 32 KB, ökar den maximala sekventiella läshastigheten till 211 MB/s och sekventiell skrivning - upp till 185 MB/s. Det vill säga, med de angivna randstorlekarna ökar den maximala sekventiella läshastigheten med 97 % och den maximala sekventiella skrivhastigheten - med 73 %.

Det finns ingen signifikant skillnad i hastighet mellan RAID 0-matriser med en stripestorlek på 32 och 64 KB, men att använda en stripe på 32 KB är mer att föredra, eftersom i detta fall hastigheten för sekventiella operationer med en blockstorlek på mindre än 128 KB blir något högre.

När du skapar en RAID 1-array på Marvell 9128-kontrollern är den maximala sekventiella drifthastigheten nästan oförändrad jämfört med en enda enhet. Så om den maximala sekventiella operationshastigheten för en enskild disk är 107 MB/s, är den för RAID 1 105 MB/s. Observera också att för RAID 1 är den selektiva läshastigheten något försämrad.

I allmänhet bör det noteras att Marvell 9128-kontrollern har bra hastighetsegenskaper och kan användas både för att skapa RAID-arrayer och för att ansluta enstaka diskar till den.

Styrenhet ICH10R

RAID-styrenheten inbyggd i ICH10R visade sig vara den högsta prestanda vi någonsin har testat (Figur 18-25). När den används med en enda enhet (utan att skapa en RAID-array), är dess prestanda faktiskt densamma som för Marvell 9128. Den maximala sekventiella läs- och skrivhastigheten är 107 MB och uppnås med en datablockstorlek på 16 KB.

Ris. 18. Sekventiell hastighet
och selektiva operationer
för Western Digital WD1002FBYS-enhet (ICH10R-kontroller)

Om vi ​​pratar om RAID 0-arrayen på ICH10R-kontrollern, beror den maximala sekventiella läs- och skrivhastigheten inte på storleken på remsan och är 212 MB / s. Endast storleken på datablocket beror på randstorleken, vid vilken det maximala värdet för den sekventiella läs- och skrivhastigheten uppnås. Som testresultaten visar, för RAID 0 baserad på ICH10R-kontrollern, är det optimalt att använda en 64 KB stripe. I detta fall uppnås den maximala sekventiella läs- och skrivhastigheten med en datablockstorlek på endast 16 KB.

Så sammanfattningsvis betonar vi än en gång att den RAID-kontroller som är inbyggd i ICH10R avsevärt överträffar alla andra integrerade RAID-kontroller när det gäller prestanda. Och med tanke på att den också har mer funktionalitet är det optimalt att använda just den här kontrollern och helt enkelt glömma bort alla de andras existens (såvida inte SATA III-enheter används i systemet förstås).