Raid 10 minsta antal diskar. Varför RAID5 är ett måste ha


RAID-matriser utformades för att öka tillförlitligheten för datalagring, öka hastigheten på arbetet med och för att ge möjlighet att kombinera flera diskar till en stor. Olika typer av RAID löser olika uppgifter, här kommer vi att titta på några av de vanligaste RAID-konfigurationerna av samma storlek.



   RAID 0

  • RAID 0   (Stripe). Läget där maximal prestanda uppnås. Data distribueras jämnt över skivorna i matrisen, kombinerade till en, som kan delas upp i flera. Distribuerade läs- och skrivoperationer kan öka hastigheten på arbetet, eftersom flera samtidigt läser / skriver sin del av data. Hela volymen är tillgänglig för användaren, men detta minskar tillförlitligheten för datalagring, eftersom om en av enheterna misslyckas förstörs matrisen och det är nästan omöjligt att återställa data. Räckvidd - applikationer som kräver höga utbyten med skivan, till exempel videoinspelning, videoredigering. Rekommenderas för användning med mycket tillförlitliga enheter.

       RAID 1
  • RAID 1   (Mirror). Flera skivor (vanligtvis 2) som arbetar synkront på en post, det vill säga helt duplicera varandra. Prestandaförbättringar sker endast vid läsning. Det mest pålitliga sättet att skydda information från fel på en av enheterna. På grund av den höga kostnaden används den vanligtvis vid lagring av mycket viktig information. Den höga kostnaden beror på att bara hälften av den totala kapaciteten är tillgänglig för användaren.

       RAID 10
  • RAID 10kallas också ibland RAID 1 + 0   - en kombination av de två första alternativen. (RAID0-matris från RAID1-matriser). Det har alla hastighetsfördelarna med RAID0 och pålitlighetsfördelen med RAID1, samtidigt som nackdelen med den höga kostnaden för diskarrayen bibehålls, eftersom den effektiva kapaciteten för matrisen är lika med hälften av kapaciteten på skivorna som används i den. För att skapa en sådan grupp krävs minst fyra skivor. (Dessutom bör antalet vara jämnt).
  • RAID 0 + 1   - RAID1-array från RAID0-matriser. Faktum är att det inte används på grund av bristen på fördelar jämfört med RAID10 och mindre feltolerans.

       RAID 1E
  • RAID 1E   - Ett RAID10-liknande alternativ för att distribuera data över diskar, vilket tillåter användning av ett udda nummer (minsta antal är 3)
  • RAID 2, 3, 4 - Olika alternativ för distribuerad datalagring med diskar tilldelade för paritetskoder och olika blockstorlekar. För närvarande används de praktiskt taget inte på grund av låg prestanda och behovet av att tilldela mycket hårddiskkapacitet för lagring av ECC- och / eller paritetskoder.


       RAID 5
  • RAID 5   - en grupp som också använder distribuerad datalagring som liknar RAID 0 (och kombinerad till en stor logisk) + distribuerad lagring av paritetskoder för att återställa data från fel. I förhållande till tidigare konfigurationer ökas Stripe-blockets storlek ytterligare. Både samtidig läsning och skrivning är möjliga. Fördelen med detta alternativ är att den tillgängliga kapaciteten i matrisen för användaren minskar med kapaciteten för endast en enhet, även om tillförlitligheten för datalagring är lägre än för RAID 1. I själva verket är det en kompromiss mellan RAID0 och RAID1, vilket ger en ganska hög hastighet med god tillförlitlighet för datalagring . Om en enhet misslyckas från matrisen kan data återställas utan förlust i automatiskt läge. Det minsta antalet diskar för en sådan grupp är 3.
       RAID5-implementeringarna av "programvaran" inbyggda i moderkortets södra broar har inte hög skrivhastighet, så de passar inte för alla applikationer.


       RAID 5EE
  • RAID 5EE   - en grupp som liknar RAID5, men förutom distribuerad lagring av paritetskoder används också fördelningen av reservområden - det är faktiskt involverat, vilket kan läggas till RAID5-arrayen som reserv (sådana matriser kallas 5+ eller 5 + reserv). I en RAID 5-array är reservdisken inaktiv tills en av de huvudsakliga misslyckas, medan den i en RAID 5EE-grupp används denna disk tillsammans med andra hårddiskar hela tiden, vilket positivt påverkar matrisens prestanda. Till exempel kan en RAID5EE-grupp med 5 hårddiskar utföra 25% fler I / O-operationer per sekund än en RAID5-grupp med 4 primära och en säkerhetskopierad hårddisk. Det minsta antalet diskar för en sådan grupp är 4.


       RAID 6
  • RAID 6   - en analog RAID5 med hög redundansnivå - information går inte förlorad om några två enheter misslyckas, den totala kapaciteten för matrisen minskar med kapaciteten för två enheter. Det minsta antalet diskar som krävs för att skapa en matris med denna nivå är 4. Arbetets hastighet i allmänhet är ungefär samma som RAID5. Rekommenderas för applikationer där maximal tillförlitlighet är viktig.


       RAID 50
  • RAID 50 - att kombinera två (eller fler, men det används sällan) RAID5-matriser i remsor, dvs. en kombination av RAID5 och RAID0, som delvis korrigerar den största nackdelen med RAID5 - den låga datahastighetshastigheten på grund av parallell användning av flera sådana arrayer. Arrayens totala kapacitet minskar med kapaciteten för två, men till skillnad från RAID6, utan dataförlust, lider en sådan matris bara en enhetsfel, och det minsta krävda antalet diskar för att skapa en RAID50-array är 6. Tillsammans med RAID10 är detta den mest rekommenderade RAID-nivån för användning i Applikationer där hög prestanda krävs kombinerat med rimlig tillförlitlighet.


       RAID 60
  • RAID 60   - sammanfoga två RAID6-matriser i rand. Skrivhastigheten är ungefär fördubblad relativt skrivhastigheten i RAID6. Det minsta antalet diskar för att skapa en sådan matris är 8. Information går inte förlorad om två diskar från varje RAID 6-array misslyckas.
  • Matris RAID   - en teknik implementerad av Intel i sina södra broar, med början med ICH6R, som gör det möjligt att organisera flera RAID0- och RAID1-arrayer på endast två diskar, samtidigt som man skapar partitioner med både ökad hastighet och ökad tillförlitlighet för datalagring.
  • JBOD   (Från engelska "Just a Bunch Of Disks") - en sekventiell kombination av flera fysiska till en logisk en som inte påverkar prestanda (tillförlitligheten faller på samma sätt som RAID0) och kan ha olika storlekar. För närvarande tillämpas praktiskt taget inte.
  • RAID-teknik som utvecklats under 1980-talet var tänkt att kombinera flera skivor i en diskarray för att öka kapaciteten, öka datapålitligheten och tillgängligheten. Låt oss kort granska de viktigaste RAID-nivåerna.

    RAID0: Striping

    beskrivning : Data distribueras jämnt över alla diskar i matrisen. En matris innehåller två eller flera skivor

    produktivitet : Samtidigt kan en databit skrivas och läsas.

    godsaker : Läs / skriv prestanda

    cons : Ingen reservation. Alla diskfel leder till förstörelse av matrisen och som en följd av förlust av all data

    användningen av : Applikationer som kräver snabb utbyte av data, tillfällig fillagring, icke-kritisk data

    RAID1: Spegling

    beskrivning : Skriva / läsa data sker samtidigt på två eller flera skivor i matrisen

    produktivitet : Läsoperationerna är snabbare eftersom data läses från alla skivor i matrisen samtidigt. Skrivoperationer är långsammare eftersom inspelning utförs två eller flera gånger (beroende på antalet diskar i matrisen)

    godsaker : Fel på något antal array-skivor utom den sista leder inte till dataförlust

    cons : Kostnad. Proportionerligt med antalet diskar i matrisen

    användningen av : Systempartitioner, avsnitt med viktig information, applikationer som använder transaktioner

    RAID3: Striping med en dedicerad paritetsdisk (virtuella diskblock)

    beskrivning : Data roteras över matrisskivor på bytenivå. En ytterligare disk behövs för att lagra paritetsinformation. Minst tre skivor i en matris

    produktivitet : Lågt på skrivoperationer

    godsaker : Data förblir fullt tillgängliga när en enda enhet misslyckas

    cons : Prestanda

    användningen av : Sällan förändring, läs ofta data

    RAID4: Randig med en dedicerad paritetsdisk

    beskrivning : Data växlar på blocknivå. En ytterligare disk behövs för att lagra paritetsinformation. Minst tre skivor i en matris

    produktivitet : Lågt på skrivoperationer

    godsaker : Detta är bättre än RAID3. Data förblir fullt tillgängliga när en enda enhet misslyckas. Du kan lägga till valfritt antal skivor i matrisen

    cons : Flaskhalsen för en sådan matris är den tilldelade paritetsskivan. Data anses inte registreras förrän ett kontrollsumman skrivs till paritetsdisken.

    användningen av : Passar inte för högpresterande system med aktiv skrivning / läsning

    RAID5: Striped Parity

    beskrivning : Till skillnad från RAID4 växlar data och paritet mellan alla diskar i matrisen. Det är mycket bra att ha en extra ledig disk (het reservdiskett) om en av matrisskivorna misslyckas. Då plockar styrenheten upp den lediga disken och matrisen kommer att byggas om. Minst tre skivor i en matris

    produktivitet : Bättre än RAID4 för problem med fast paritet disk har lösts

    godsaker : Uppnådd läs / skriv / backup-saldo

    cons : Prestandadräkning under uppbyggnad av array. Om skrivcachen inte används (raidkontrollen är inte utrustad med ett batteri och är inte konfigurerad), kommer neddragningen att vara särskilt känslig

    användningen av : Webbservrar, filservrar där intensiv dataläsning används

    RAID6: Dual Parity

    beskrivning : Det ser ut som RAID5 med skillnaden att det finns två paritetsskivor i matrisen, vilket ökar systemets tillförlitlighet. Minst fyra enheter i en matris

    produktivitet : 10% -15% sämre än RAID5 på grund av den mer sofistikerade kontrollsumberäkningsalgoritmen. Mer läs / skrivoperationer

    godsaker : Förbättrad datasäkerhet. Systemet kommer att förbli i drift med två misslyckade skivor

    cons : Kostnad. Prestandadräkning under uppbyggnad av array

    användningen av : Redundanta datalager med förbättrad tillförlitlighet

    RAID10

    beskrivning : RAID0 är byggd från grupper av RAID1-matriser

    produktivitet : Betraktas som den snabbaste och mest pålitliga matrisen

    godsaker : Förbättrad datasäkerhet. Arrayen kommer att vara livskraftig medan den sista enheten fungerar i varje RAID1-gruppgrupp

    cons : Kostnad, en av de dyraste

    användningen av : Webbservrar med aktiv dataläsning, applikationer som använder transaktioner

    Alla moderna moderkort är utrustade med en integrerad RAID-kontroller, och toppmodellerna har till och med flera integrerade RAID-kontroller. Hur integrerade RAID-kontroller är efterfrågade av hemanvändare är en separat fråga. I vilket fall som helst ger det moderna moderkortet användaren möjlighet att skapa en RAID-grupp med flera diskar. Men inte alla hemanvändare vet hur man skapar en RAID-array, vilken nivå av matris att välja, och faktiskt för- och nackdelar med att använda RAID-arrayer är dåligt förstått.
      I den här artikeln kommer vi att ge korta rekommendationer om hur du skapar RAID-matriser på hemdatorer och demonstrerar med hjälp av ett specifikt exempel hur du självständigt kan testa prestanda för en RAID-array.

      Skapelseshistoria

    Begreppet "RAID" dök upp först 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 Således är det möjligt att kombinera flera billiga hårddiskar i en logisk enhet så att systemets kapacitet och prestanda ökar, och felet i enskilda diskar inte leder till fel i hela systemet.

    Mer än 20 år har gått sedan denna artikel släpptes, men tekniken för att bygga RAID-matriser har inte tappat sin relevans idag. Det enda som har förändrats sedan dess är avkodningen av förkortningen RAID. Faktum är att RAID-matriser ursprungligen inte byggdes på billiga diskar alls, så ordet Inexpensive (billigt) ändrades till Independent (oberoende), vilket var mer sant.

      Funktionsprincip

    Så RAID är en redundant matris med oberoende skivor (Redundant Arrays of Independent Discs), som ansvarar för att säkerställa feltolerans och förbättra prestanda. Feltolerans uppnås genom redundans. Det vill säga, en del av diskutrymmet är reserverat för officiella ändamål och blir oåtkomligt för användaren.

    Förbättring av prestandan för skivundersystemet säkerställs genom att samtidigt fungera flera skivor, och i detta avseende, desto fler diskar i matrisen (upp till en viss gräns).

    Samarbete mellan diskar i en matris kan organiseras med antingen parallell eller oberoende åtkomst. Med parallell åtkomst delas diskutrymmet i block (remsor) för inspelning av data. På liknande sätt är informationen som ska skrivas till disken uppdelad i samma block. Vid inspelning inspelas enskilda block på olika skivor, och flera block spelas in på olika skivor 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 produktivitetstillväxten i proportion till antalet diskar i matrisen.

    Det bör noteras att modellen med parallell åtkomst implementeras endast under förutsättning att storleken på begäran om att skriva data är större än storleken på själva blocket. Annars är det praktiskt taget omöjligt att spela in flera block parallellt. Föreställ dig en situation när storleken på ett enskilt block är 8 Kbyte och storleken på begäran om att skriva data är 64 Kbytes. I detta fall skärs den ursprungliga informationen upp i åtta block om 8 kB vardera. Om du har en matris med fyra skivor kan du samtidigt skriva fyra block, eller 32 KB, åt gången. I detta exempel är uppenbarligen skrivhastigheten och läshastigheten fyra gånger högre än när du använder en enda disk. Detta gäller bara för en idealisk situation, men förfrågningsstorleken är långt ifrån alltid en multipel av blockstorleken och antalet skivor i matrisen.

    Om storleken på den inspelade datan är mindre än blockstorleken implementeras en grundläggande annan modell - oberoende åtkomst. Dessutom kan denna modell också användas när storleken på den inspelade informationen är större än storleken på ett block. Med oberoende åtkomst skrivs all data från en enda begäran till en separat disk, det vill säga situationen är identisk med att arbeta med en disk. Fördelen med modellen med oberoende åtkomst är att när flera förfrågningar för skrivning (läsning) tas emot samtidigt kommer de alla att köras på separata diskar oberoende av varandra. En liknande situation är till exempel typisk för servrar.

    I enlighet med olika typer av åtkomst finns det olika typer av RAID-matriser, som vanligtvis kännetecknas av RAID-nivåer. Förutom typen av åtkomst skiljer sig RAID-nivåer i hur de placerar och genererar överflödig information. Överdriven information kan antingen lokaliseras på en dedicerad enhet eller distribueras mellan alla enheter. Det finns många sätt att generera denna information. Den enklaste av dem är full duplicering (100% redundans) eller spegling. Dessutom används felkorrigeringskoder såväl som paritetsberäkning.

      RAID-nivåer

    Det finns för närvarande flera RAID-nivåer som kan betraktas som standardiserade - dessa ä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 det möjligt att kombinera deras fördelar. Vanligtvis är detta en kombination av någon feltolerant nivå och en nollnivå som används för att öka prestanda (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 att skapa matriser - det ger möjlighet att ansluta enskilda diskar till RAID-kontrollen.

    Det bör noteras att RAID-styrenheter integrerade i moderkort för hemdatorer inte stöder alla RAID-nivåer. RAID-kontroller med dubbla portar stöder endast nivåer 0 och 1, och RAID-styrenheter med ett stort antal portar (till exempel en 6-porters RAID-kontroller integrerad i södra bron i ICH9R / ICH10R-chipset) är också nivåer 10 och 5.

    Dessutom, om vi talar om moderkort baserade på Intel-chipset, har de också Intel Matrix RAID, som låter dig skapa flera nivåer av RAID-matriser på flera hårddiskar samtidigt, vilket tilldelar en del av diskutrymmet för var och en av dem.

      RAID 0

    RAID-nivå 0 är strikt talat inte en redundant matris och ger därför inte tillförlitlig datalagring. Ändå används denna nivå aktivt i fall där det är nödvändigt att säkerställa höga prestanda för skivundersystemet. När du skapar en nivå 0 RAID-array delas information i block (ibland kallas dessa block stripe), som är skrivna för att separera skivor, det vill säga ett system med parallell åtkomst skapas (om det naturligtvis tillåter blockstorleken). Tack vare möjligheten för samtidig ingångsutmatning från flera diskar ger RAID 0 maximal dataöverföringshastighet och maximal effektivitet vid användning av hårddiskutrymme, eftersom det inte finns något behov av lagringsutrymme för kontrollsumma. Implementeringen av denna nivå är mycket enkel. I grund och botten används RAID 0 i områden där snabb överföring av stora datamängder krävs.

      RAID 1 (speglad disk)

    RAID nivå 1 är en matris med två enheter med 100 procent redundans. Det vill säga, uppgifterna i det här fallet helt enkelt dupliceras (speglas), på grund av vilken en mycket hög pålitlighet (såväl som kostnad) uppnås. Observera att för implementering av nivå 1 är det inte nödvändigt att först dela skivor och data i block. I det enklaste fallet innehåller två diskar samma information och är en logisk disk. Om en enhet misslyckas utförs dess funktion av en annan (som är helt transparent för användaren). Arrayåterställning görs genom enkel kopiering. Dessutom fördubblar denna nivå hastigheten för läsinformation, eftersom denna operation kan utföras samtidigt från två skivor. Ett sådant lagringsschema används främst i fall där priset för datasäkerhet är mycket högre än kostnaden för att implementera ett lagringssystem.

      RAID 5

    RAID 5 är ett feltolerant diskarray med distribuerad kontrollsumlagring. Vid inspelning delas dataströmmen upp i block (remsor) på bytenivån och skrivs samtidigt till alla skivor i matrisen i en cyklisk ordning.

    Anta att matrisen innehåller n   enheter och remsstorlek d. För varje portion av n - 1   remscheck beräknas p.

    Ctrayp d 1   inspelad på den första skivan, stripe d 2   - på den andra och så vidare tills stripen d n - 1som är skriven till ( n–1) th-skiva. Vidare ndisk checkum skrivs p noch processen upprepas cykliskt från den första disken på vilken bandet spelas in d n.

    Inspelningsprocess (n - 1)   ränder och deras kontrollsumma utförs samtidigt på alla n   enheter.

    För att beräkna kontrollsumman tillämpas den bitvisa exklusiva XOR-operationen (XOR) på de skriftliga datablocken. Så om det finns n   hårddiskar d   - datablock (stripe), sedan beräknas kontrollsumman enligt följande formel:

    p n \u003d d 1 d 2 ... d 1–1.

    I händelse av fel på någon enhet kan data på den återställas från styrdata och från de data som finns kvar på friska diskar.

    Som en illustration kan du tänka på block med fyra bitar. Anta att det bara finns fem diskar för lagring av data och inspelningssumma. Om det finns en sekvens av bitarna 1101 0011 1100 1011, uppdelade i block med fyra bitar, måste du utföra följande bitvis operation för att beräkna kontrollsummen:

    1101 0011 1100 1011 = 1001.

    Således är kontrollsumman skrivet till den femte skivan 1001.

    Om en av skivorna, till exempel den fjärde, misslyckas, kommer enheten d 4   \u003d 1100 kommer inte att vara tillgängligt vid läsning. Dock kan dess värde enkelt återställas genom kontrollsumman och med värdena på de återstående blocken med samma "exklusiva OR" -operation:

    d 4 \u003d d 1 d 2d 4s 5.

    I vårt exempel får vi:

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

    När det gäller RAID 5 är alla skivor i matrisen av samma storlek, men den totala kapaciteten för disksubsystemet som kan skrivas blir mindre än exakt en disk. Om till exempel fem skivor är 100 GB stora, är den faktiska storleken på matrisen 400 GB, eftersom 100 GB tilldelas styrinformationen.

    RAID 5 kan byggas på tre eller flera hårddiskar. När antalet hårddiskar i en matris ökar minskar dess redundans.

    RAID 5 har en oberoende åtkomstarkitektur, som ger möjlighet att samtidigt utföra flera läs- eller skrivoperationer.

      RAID 10

    RAID nivå 10 är en kombination av nivåer 0 och 1. Minst fyra skivor krävs för denna nivå. I en RAID 10-grupp med fyra skivor är de parade i nivå 0-matriser och båda dessa arrayer kombineras som nivå 1-arrayer som logiska skivor. Ett annat tillvägagångssätt är också möjligt: \u200b\u200bfrån början kombineras skivor till nivå 1-speglade matriser och sedan logiska skivor baserade på dessa arrayer. - i en rad nivå 0.

      Intel Matrix RAID

    De betraktade RAID-matriserna i nivå 5 och 1 används sällan hemma, vilket främst är förknippat med de höga kostnaderna för sådana lösningar. Oftast används en matris med nivå 0 på två diskar för hemdatorer. Som vi redan har noterat ger RAID-nivå 0 inte datalagringssäkerhet, och därför står slutanvändare inför valet: att skapa en snabb, men inte tillförlitlig RAID-datalagring på nivå 0 eller, öka kostnaden för diskutrymme med hälften, - RAID- en matris av nivå 1, som ger tillförlitlig datalagring, men inte tillåter att få en betydande prestationsförstärkning.

    För att lösa detta svåra problem har Intel utvecklat Intel Matrix Storage-teknik, som kombinerar fördelarna med matriser i nivå 0 och 1 på bara två fysiska diskar. Och för att betona att detta inte bara är en RAID-grupp, utan en matris som kombinerar både fysiska och logiska skivor, används ordet "matrix" i namnet på tekniken istället för ordet "array".

    Så vad är en RAID-matris av två skivor med Intel Matrix Storage-teknik? Huvudtanken är att om det finns flera hårddiskar och ett moderkort i systemet med en Intel-chipset som stöder Intel Matrix Storage-teknik, är det möjligt att dela hårddiskutrymmet i flera delar, som var och en kommer att fungera som en separat RAID-array.

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

    I princip kan du med två fysiska skivor skapa bara en eller två RAID-matriser på nivå 0, men det är omöjligt att få endast matriser på nivå 1. Det vill säga, om systemet bara har två skivor kan Intel Matrix Storage-teknik skapa följande typer av RAID-matriser:

    • en matris på nivå 0;
    • två matriser på 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 matris på nivå 0;
    • en nivå 5-matris;
    • två matriser på nivå 0;
    • två nivå 5-matriser;
    • matris på nivå 0 och matris på nivå 5.

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

      Från teori till praktik

    Om du pratade om hemmadatorer, är de mest populära och populära RAID-matriser på nivå 0 och 1. Att använda RAID-matriser på tre eller flera skivor i hemdatorer är snarare ett undantag från regeln. Detta beror på det faktum att kostnaderna för RAID-arrayer å ena sidan ökar i proportion till antalet diskar som är involverade i det, och å andra sidan för hushållsdatorer, är kapaciteten för disksystemet av primär betydelse och inte dess prestanda och tillförlitlighet.

    Därför kommer vi i framtiden att överväga RAID-matriser på nivå 0 och 1 baserat på endast två skivor. Syftet med vår studie kommer att inkludera en jämförelse av prestanda och funktionalitet för RAID-matriser i nivåer 0 och 1, skapade på grundval av flera integrerade RAID-kontroller, liksom en studie av beroendet av hastighetsegenskaperna för RAID-arrayen på storleken på bandet.

    Faktum är att även om man teoretiskt använder en nivå 0 RAID-matris, bör läs- och skrivhastigheten fördubblas, i praktiken är ökningen i hastighetsegenskaper mycket mindre blygsam och det skiljer sig åt olika RAID-kontroller. På samma sätt för en RAID-nivå 1-grupp: trots att teoretiskt sett bör läshastigheten fördubblas, i praktiken är inte allt så smidigt.

    För vår jämförande test av RAID-kontroller använde vi moderkortet Gigabyte GA-EX58A-UD7. Detta kort är baserat på Intel X58 Express-chipset med ICH10R södra bron, som har en integrerad RAID-styrenhet för sex SATA II-portar, som stöder organisationen av RAID 0, 1, 10 och 5 RAID-arrayer med Intel Matrix RAID-funktion. Dessutom integrerar Gigabyte GA-EX58A-UD7-kortet GIGABYTE SATA2 RAID-styrenhet, på grundval av vilken två SATA II-portar implementeras med förmågan att organisera RAID-matriser på nivåer 0, 1 och JBOD.

    GA-EX58A-UD7-kortet integrerar också Marvell 9128 SATA III-styrenhet, baserat på vilka två SATA III-portar är implementerade med förmågan att organisera RAID-matriser på nivåer 0, 1 och JBOD.

    Således har Gigabyte GA-EX58A-UD7-kortet tre separata RAID-kontroller, på grundval av vilken du kan skapa RAID-matriser på nivå 0 och 1 och jämföra dem med varandra. Kom ihåg att SATA III-standarden är bakåtkompatibel med SATA II-standarden, därför, baserat på Marvell 9128-styrenheten 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;
    • minneskapacitet - 3 GB (tre moduler på 1024 MB vardera);
    • minnesoperationsläge - DDR3-1333, tre-kanals driftsläge;
    • grafikkort - Gigabyte GeForce GTS295;
    • strömförsörjning - Tagan 1300W.

    Testningen genomfördes under kontroll av operativsystemet Microsoft Windows 7 Ultimate (32-bitars). Operativsystemet installerades på Western Digital WD3200AAKS-enheten, som var ansluten till porten på SATA II-styrenheten integrerad i ICH10R södra bron. RAID-arrayen byggdes på två WD1002FBYS-enheter med ett SATA II-gränssnitt.

    För att mäta hastighetsegenskaperna för de skapade RAID-matriserna använde vi IOmeter-verktyget, som är industristandarden för att mäta prestandan för skivsystem.

      IOmeter Utility

    Eftersom vi tänkte denna artikel som en slags användarhandbok för att skapa och testa RAID-matriser, skulle det vara logiskt att börja med en beskrivning av IOmeter-verktyget (Input / Output-mätare), som, som vi redan har noterat, är en slags industristandard för att mäta hårddisksystemets prestanda. Det här verktyget är gratis och kan laddas ner från http://www.iometer.org.

    IOmeter-verktyget är ett syntetiskt test och gör det möjligt att arbeta med hårddiskar som inte är uppdelade i logiska partitioner, så att du kan testa diskar oavsett filstruktur och minska påverkan av operativsystemet till noll.

    Under testning är det möjligt att skapa en specifik åtkomstmodell, eller "mönster", som låter dig ange de specifika operationerna på en hårddisk. Om du skapar en specifik åtkomstmodell är det tillåtet att ändra följande parametrar:

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

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

    IOmeter är den styrande delen av programmet med ett användarvänligt grafiskt gränssnitt som gör att du kan göra alla nödvändiga inställningar. Dynamo är en lastgenerator som inte har ett gränssnitt. Varje gång IOmeter.exe-filen startas startar Dynamo.exe lastgenerator automatiskt.

    För att börja arbeta med IOmeter-programmet kör du bara filen IOmeter.exe. I detta fall öppnar IOmeter-programmets huvudfönster (Fig. 1).

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

    Det bör noteras att IOmeter-verktyget tillåter testning inte bara lokala disksystem (DAS), utan också nätverksenheter (NAS). Till exempel kan det användas för att testa prestandan hos serverdiskundersystemet (filserver) med hjälp av flera nätverksklienter. Därför hänvisar en del av bokmärkena och verktygen i verktygsfönstret IOmeter specifikt till nätverksinställningarna för programmet. Det är uppenbart att när vi testar diskar och RAID-matriser behöver vi inte dessa funktioner i programmet, och därför kommer vi inte att förklara syftet med alla flikar och verktyg.

    Så när IOmeter startar, kommer trädstrukturen för alla lastergeneratorer (Dynamo-instanser) att visas i den vänstra delen av huvudfönstret (i Topologifönstret). Varje löpande instans av en Dynamo lastgenerator kallas en manager. Dessutom är IOmeter-programmet flergängat och varje enskild körtråd i Dynamo-belastningsgeneratorns instans kallas Arbetare. Antalet körande arbetare motsvarar alltid antalet logiska processorkärnor.

    I vårt exempel använder vi bara en dator med en fyrkärnig processor som stöder Hyper-Threading-teknik, så endast en chef (en instans av Dynamo) och åtta (med antalet logiska processorkärnor).

    För testning av diskar i det här fönstret finns det faktiskt inget behov av att ändra eller lägga till något.

    Om du väljer datornamnet med musen i trädstrukturen för att köra Dynamo-instanser, sedan i fönstret Target   på fliken Diskmål Alla diskar, diskmatriser och andra enheter (inklusive nätverksenheter) installerade i datorn visas. Det här är enheterna som IOmeter kan arbeta med. Media kan markeras med gult eller blått. Det gula indikerar de logiska partitionerna i media, och det blå indikerar de fysiska enheterna utan de logiska partitionerna som skapats på dem. En logisk partition kan kanske inte korsas ut. Faktum är att för ett program att arbeta med en logisk partition måste du först förbereda den genom att skapa en speciell fil på den som är lika stor som kapaciteten för hela den logiska partitionen. Om det logiska avsnittet är korsat, betyder det att avsnittet ännu inte är förberett för testning (det kommer att beredas automatiskt vid första teststeget), men om avsnittet inte är korsat, betyder det att en fil är redo att testas på det logiska avsnittet .

    Observera att trots den förmåga att arbeta med logiska partitioner är det optimalt att testa skivor som inte är uppdelade i logiska partitioner. Att ta bort en logisk enhetspartition är mycket enkelt - genom snap-in Diskhantering. För att komma åt det, högerklicka bara på ikonen dator   på skrivbordet och i menyn som öppnas, välj Hantera. I fönstret som öppnas Datahantering   på vänster sida måste du välja förvaring, och i det - Diskhantering. Efter det på höger sida av fönstret Datahantering   Alla mappade enheter visas. Högerklicka på önskad enhet och välj i menyn som visas Radera volym..., kan du ta bort en logisk partition på en fysisk disk. Kom ihåg att när en logisk partition tas bort från en disk, raderas all information på den utan möjlighet att återställa.

    I allmänhet kan du med hjälp av IOmeter-verktyget bara testa tomma skivor eller diskmatriser. Det vill säga att du inte kan testa disken eller disksatsen som operativsystemet är installerat på.

    Så tillbaka till beskrivningen av IOmeter-verktyget. I fönstret Target   på fliken Diskmål   Du måste välja den enhet (eller diskmatris) som ska testas. Öppna sedan fliken Åtkomstspecifikationer(Fig. 2), på vilken det kommer att vara möjligt att bestämma testscenariot.

    Fig. 2. Åtkomstspecifikationsfliken i IOmeter Utility

    I fönstret Globala åtkomstspecifikationer   Det finns en lista med fördefinierade testskript som kan tilldelas nedladdningshanteraren. Men vi behöver inte dessa scenarier, så alla kan väljas och raderas (det finns en knapp för det här Radera). Klicka sedan på knappen nyför att skapa ett nytt testskript. I fönstret som öppnas Redigera åtkomstspecifikation   Du kan definiera ett skiv- eller RAID-belastningsscenario.

    Anta att vi vill ta reda på beroendet av den sekventiella (linjära) läs- och skrivhastigheten på storleken på dataöverföringsbegäran. För att göra detta måste vi skapa en sekvens av startskript i sekventiellt läsläge vid olika blockstorlekar och sedan en sekvens av startskript i sekventiellt skrivläge vid olika blockstorlekar. Typiskt väljs blockstorlekarna i form av en serie, varvid varje medlem är dubbelt så stor som den föregående, och den första medlemmen i denna serie är 512 byte. Det vill säga blockstorlekarna utgör följande serie: 512 byte, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 KB, 1 MB. Det är inte meningsfullt att göra en blockstorlek större än 1 MB för sekventiella operationer, eftersom med så stora datablockstorlekar ändras inte hastigheten på sekventiella operationer.

    Så vi skapar ett startskript i sekventiellt läsläge för ett block på 512 byte i storlek.

    I fältet namn   fönster Redigera åtkomstspecifikation   ange namnet på nedladdningsskriptet. Till exempel Sequential_Read_512. Längre fram i fältet Storleken för överföringsbegäran   Ställ in datablockstorleken på 512 byte. reglaget Procent slumpmässig / sekventiell distribution   (procentuellt förhållande mellan sekventiella och selektiva operationer) flyttar vi oss åt vänster så att alla våra operationer endast är sekventiella. Tja, reglaget , som ställer in procentuellt förhållande mellan läs- och skrivoperationer, växlar vi till höger till stopp, så att alla våra operationer bara läser. Andra parametrar i fönstret Redigera åtkomstspecifikation   inget behov av att ändra (Fig. 3).

    Fig. 3. Redigera åtkomstspecifikationsfönstret för att skapa ett sekventiellt läs-skript
      med en datablockstorlek på 512 byte

    Klicka på knappen OK, och det första skriptet vi skapade visas i fönstret Globala åtkomstspecifikationer   på fliken Åtkomstspecifikationer   IOmeter Utilities.

    På samma sätt måste du skapa skript för resten av datablocken, men för att underlätta ditt arbete är det lättare att inte skapa ett skript varje gång igen genom att trycka på knappen nyoch, när du har valt det senast skapade skriptet, tryck på knappen Redigera kopia   (redigera kopia). Därefter öppnas fönstret igen Redigera åtkomstspecifikation med inställningarna för vårt senast skapade skript. Det räcker med att bara ändra namn och storlek på blocket. Efter att ha gjort samma procedur för alla andra blockstorlekar kan vi börja generera skript för sekvensiell inspelning, vilket görs på exakt samma sätt, förutom att skjutreglaget Procent läs / skriv distribution, som ställer in procentuellt förhållande mellan läs- och skrivoperationer, måste du flytta det hela till vänster.

    På samma sätt kan du skapa skript för selektiv skrivning och läsning.

    När alla skript är klara måste de tilldelas nedladdningshanteraren, det vill säga ange vilka skript som fungerar med Dynamo.

    För att göra detta, kontrollera det igen i fönstret Topologi   Datornamnet (det vill säga lasthanteraren på den lokala datorn) markeras och inte en separat arbetare. Detta säkerställer att belastningsscenarier tilldelas alla arbetare samtidigt. Längre fram i fönstret Globala åtkomstspecifikationer   välj alla belastningsscenarier som vi skapade och tryck på knappen lägga till. Alla markerade belastningsscenarier läggs till i fönstret. (fig. 4).

    Fig. 4. Tilldela de skapade lastscenarierna till lasthanteraren

    Gå sedan till fliken Testinställning   (Fig. 5), där du kan ställa in körningstiden för varje skript vi skapade. För detta i gruppen Körtid   ställa in körningstiden för belastningsskriptet. Det räcker för att ställa in en tid lika med 3 minuter.

    Fig. 5. Ställa in körningstiden för lastskriptet

    Också i fältet Testbeskrivning   Du måste ange namnet på hela testet. I princip har den här fliken massor av andra inställningar, men de behövs inte för våra uppgifter.

    När alla nödvändiga inställningar har gjorts rekommenderas det att spara det skapade testet genom att klicka på knappen med bilden på en diskett i verktygsfältet. Testet sparas med tillägget * .icf. Därefter kommer det att vara möjligt att använda det skapade lastskriptet genom att inte köra IOmeter.exe-filen utan den sparade filen med * .icf-förlängningen.

    Nu kan du fortsätta direkt till testen genom att klicka på knappen med bilden av en flagga. Du blir ombedd att ange filens namn med testresultaten och välja dess plats. Testresultaten sparas i en CSV-fil som sedan enkelt exporteras till Excel och efter att ha ställt in filtret i den första kolumnen väljer du nödvändig data med testresultaten.

    Under test kan mellanresultat observeras på fliken Resultatvisning, och du kan bestämma vilket belastningsscenario de tillhör på fliken Åtkomstspecifikationer. I fönstret Specificerad tilldelad åtkomst   ett körbart skript visas i grönt, färdiga skript visas i rött och skript som ännu inte har körts visas i blått.

    Så vi undersökte de grundläggande metoderna för att arbeta med IOmeter-verktyget, som kommer att krävas för att testa enskilda skivor eller RAID-matriser. Observera att vi inte talade om alla funktioner i IOmeter-verktyget, men en beskrivning av alla dess funktioner ligger utanför denna artikel.

      Skapa en RAID-grupp baserad på GIGABYTE SATA2-kontrollenheten

    Så vi börjar skapa en RAID-grupp baserad på två skivor med den integrerade GIGABYTE SATA2 RAID-styrenheten på kortet. Naturligtvis producerar Gigabyte-företaget inte själva chips, och därför, under GIGABYTE SATA2-chipet, döljs ett ommärkt chip från ett annat företag. Som du kan se från drivrutinen .inf-filen, pratar vi om JMicron JMB36x-serien.

    Åtkomst till regulatorns inställningsmeny är möjlig i systemstartsteget, för vilket du behöver trycka på tangentkombinationen Ctrl + G när motsvarande text visas på skärmen. Naturligtvis måste du först i BIOS-inställningarna bestämma driftsläget för två SATA-portar relaterade till GIGABYTE SATA2-styrenheten som RAID (annars kommer åtkomst till RAID-arraykonfiguratorns meny att vara omöjlig).

    Inställningsmenyn för GIGABYTE SATA2 RAID-kontrollenheten är ganska enkel. Som vi redan har påpekat är kontrollenheten en tvåportig och gör att du kan skapa RAID-arrayer på nivå 0 eller 1. Du kan radera eller skapa en RAID-array via kontrollinställningsmenyn. När du skapar en RAID-array kan du ange dess namn, välja matrisnivå (0 eller 1), ställa in remsstorleken för RAID 0 (128, 84, 32, 16, 8 eller 4K) samt bestämma storleken på matrisen.

    Om matrisen skapas är det inte längre möjligt att ändra den. Det vill säga att du inte kan ändra efter det skapade arrayet, till exempel dess nivå eller randstorlek. För att göra detta måste du först ta bort matrisen (med dataförlust) och sedan återskapa den. Egentligen är detta inte unikt för GIGABYTE SATA2-styrenheten. Omöjligt att ändra parametrarna för skapade RAID-arrayer är en funktion för alla kontroller, vilket följer av själva principen för RAID-implementering.

    När arrayet baserat på GIGABYTE SATA2-kontrollen skapats kan aktuell information om det visas med hjälp av verktyget GIGABYTE RAID Configurer, som installeras automatiskt med drivrutinen.

      Skapa en RAID-array baserad på Marvell 9128 Controller

    Konfigurering av Marvell 9128 RAID-kontrollenheten är endast möjlig genom BIOS-inställningarna på Gigabyte GA-EX58A-UD7-kortet. I allmänhet måste jag säga att menyn för Marvell 9128-kontrollkonfiguratorn är något fuktig och kan vara vilseledande för oerfarna användare. Vi kommer dock att prata om dessa mindre brister lite senare, men för tillfället kommer vi att överväga huvudfunktionen hos Marvell 9128-kontrollen.

    Så trots att denna styrenhet stöder att arbeta med SATA III-enheter är den också helt kompatibel med SATA II-enheter.

    Med Marvell 9128-kontrollen kan du skapa en RAID-grupp med nivåer 0 och 1 på grundval av två diskar. För en grupp med nivå 0 kan du ställa in remsstorleken till 32 eller 64 kbyte, samt ange namnet på matrisen. Dessutom finns det ett sådant alternativ som Gigabyte Rounding, som behöver förtydligas. Trots namnet, konsonant med tillverkarens namn, har Gigabyte Rounding-funktionen ingenting att göra med den. Dessutom är den inte på något sätt ansluten till en RAID-grupp av nivå 0, även om den i kontrollinställningarna kan definieras specifikt för en grupp av denna nivå. Egentligen är detta den första av de brister i Marvell 9128-kontrollkonfiguratorn som vi nämnde. Gigabyte Rounding-funktionen definieras endast för en RAID-grupp i nivå 1. Den låter dig använda två skivor (till exempel olika tillverkare eller olika modeller) för att skapa en nivå 1 RAID-grupp, vars kapacitet är något annorlunda. Gigabyte Rounding-funktionen ställer bara in skillnaden i storleken på de två skivorna som används för att skapa en nivå 1 RAID-grupp. I Marvell 9128-kontrollen låter Gigabyte Rounding-funktionen dig ställa in skillnaden i storleken på skivorna 1 eller 10 GB.

    En annan nackdel med Marvell 9128-kontrollkonfiguratorn är att användaren har möjlighet att välja stripstorlek (32 eller 64 KB) när han skapar en RAID-grupp på nivå 1. Emellertid definieras inte begreppet band generellt för en RAID 1-grupp.

      Skapa en RAID-grupp baserad på en styrenhet integrerad i ICH10R

    RAID-regulatorn integrerad i ICH10R södra bron är den vanligaste. Som redan nämnts är denna RAID-controller 6-portar och stöder inte bara skapandet av RAID 0- och RAID 1-matriser, utan också RAID 5 och RAID 10.

    Åtkomst till regulatorns inställningsmeny är möjlig i systemstartsteget, för vilket du behöver trycka på tangentkombinationen Ctrl + I när motsvarande text visas på skärmen. Naturligtvis bör du i BIOS-inställningarna bestämma driftsläget för denna styrenhet som RAID (annars kommer åtkomst till RAID-konfiguratörsmenyn att vara omöjlig).

    RAID-regulatorns inställningsmeny är ganska enkel. Med hjälp av inställningsmenyn för kontrollenheten kan du radera eller skapa en RAID-grupp. När du skapar en RAID-grupp kan du ange dess namn, välja matrisnivå (0, 1, 5 eller 10), ställa in remsstorleken för RAID 0 (128, 84, 32, 16, 8 eller 4K), samt bestämma storleken på matrisen.

      RAID-prestationsjämförelse

    För att testa RAID-matriser med hjälp av IOmeter-verktyget skapade vi lastskript för sekventiell läsning, sekventiell skrivning, selektiv läsning och selektiv skrivning. Storleken på datablock i varje belastningsscenario var följande: 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 acceptabla remsstorlekar och en RAID 1. Array, för att kunna utvärdera prestandaförstärkningen som uppnåtts genom att använda RAID-arrayen testade vi också en enda disk på varje RAID-kontroller.

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

    GIGABYTE SATA2-styrenhet

    Låt oss först undersöka resultaten av att testa RAID-matriser baserade på GIGABYTE SATA2-styrenheten (Fig. 6-13). Generellt sett var regulatorn bokstavligen mystisk, och dess prestanda helt enkelt besviken.

    Fig. 6. Hastighet i följd
       och selektiva operationer för en disk
       Western Digital WD1002FBYS

    Fig. 7. Hastighet i följd

       med en stripstorlek 128 KB
       (GIGABYTE SATA2-styrenhet)

    Fig. 12. Hastighet i följd
       och selektiva operationer för RAID 0
       med en stripstorlek på 4 KB
       (GIGABYTE SATA2-styrenhet)

    Fig. 13. Hastighet i följd
       och selektiv operation
       för RAID 1 (GIGABYTE SATA2-styrenhet)

    Om du tittar på hastighetsegenskaperna för en enda enhet (utan RAID-array) ä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-grupp med en stripstorlek 128 KB ökar den maximala sekventiella läs- och skrivhastigheten till 125 MB / s, det vill säga den ökar med cirka 22%.

    Med en stripstorlek 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 remsstorlekarna ökar den maximala sekventiella läshastigheten med 27% och den maximala sekvensiella skrivhastigheten - med 31%.

    I själva verket räcker detta inte för en rad nivå 0, och jag skulle vilja att den maximala hastigheten för sekventiella operationer ska vara högre.

    Med en stripstorlek på 8 Kbyte förblir den maximala hastigheten för sekventiella operationer (läsning och skrivning) ungefär densamma som med en stripstorlek på 64, 32 eller 16 Kbytes, men selektiv läsning uppenbarer uppenbara problem. När datablockstorleken ökar upp till 128 kbyte ökar hastigheten för selektiv avläsning (som den ska vara) i proportion till storleken på datablocket. Men när datablockstorleken är mer än 128 kbyte, sjunker hastigheten för den selektiva avläsningen till nästan noll (ungefär 0,1 MB / s).

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

    Att använda en RAID 1-array på en GIGABYTE SATA2-styrenhet ändrar praktiskt taget inte (i jämförelse med en enda disk) sekventiell läshastighet, men den maximala sekventiella skrivhastigheten minskar till 75 MB / s. Kom ihåg att för en RAID 1-matris bör läshastigheten öka, och skrivhastigheten bör inte minska jämfört med läs- och skrivhastigheterna på en enda disk.

    Baserat på resultaten från testning av GIGABYTE SATA2-kontrollen kan endast en slutsats dras. Det är meningsfullt att använda denna styrenhet för att skapa RAID 0 och RAID 1-matriser endast när alla andra RAID-kontroller (Marvell 9128, ICH10R) redan används. Även om det är ganska svårt att föreställa sig en liknande situation.

    Marvell 9128 Controller

    Marvell 9128-regulatorn visade mycket högre hastighetsegenskaper jämfört med GIGABYTE SATA2-regulatorn (fig. 14-17). Faktiskt manifesteras skillnaderna även när styrenheten arbetar med en disk. Om för GIGABYTE SATA2-styrenheten är den maximala sekventiella läshastigheten 102 MB / s och uppnås vid ett datablockstorlek 128 KB, för Marvell 9128-styrenheten är den maximala sekventiella läshastigheten 107 MB / s och uppnås vid en datablockstorlek på 16 KB.

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

    Det finns ingen signifikant skillnad i prestanda för RAID 0-arrayen med 32 och 64 Kbyte-stripstorlekar, men att använda 32 Kbyte-strip är mer föredraget, eftersom i detta fall hastigheten för sekventiella operationer med en blockstorlek mindre än 128 Kbyte kommer att vara något högre.

    När du skapar en RAID 1-array på en Marvell 9128-styrenhet förblir den maximala sekvenshastigheten praktiskt taget oförändrad jämfört med en enda enhet. Så för en enda disk är den maximala hastigheten för sekventiella operationer 107 MB / s, då för RAID 1 är den 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-styrenheten har goda hastighetsegenskaper och den kan användas både för att skapa RAID-matriser och för att ansluta enstaka skivor till den.

    Styrenhet ICH10R

    RAID-regulatorn inbyggd i ICH10R visade sig vara den mest högpresterande av allt vi testade (Fig. 18-25). När du arbetar med en enda skiva (utan att skapa en RAID-array) är dess prestanda praktiskt taget samma som för Marvell 9128-styrenheten. Den maximala sekventiella läs- och skrivhastigheten är 107 MB och uppnås med en datablockstorlek på 16 KB.

    Fig. 18. Hastighet i följd
       och selektiv operation
       för Western Digital WD1002FBYS-enhet (ICH10R-styrenhet)

    Om vi \u200b\u200bpratar om RAID 0-arrayen på ICH10R-styrenheten, beror inte den maximala sekventiella läs- och skrivhastigheten på bandets storlek och är 212 MB / s. Endast storleken på datablocket med vilket maximivärdet för hastigheten för sekventiell läsning och skrivning uppnås beror på bandets storlek. Som testresultaten visar är det för RAID 0 baserat på ICH10R-kontrollen optimalt att använda 64 KB-stripe. I detta fall uppnås det maximala värdet för den sekventiella läs- och skrivhastigheten med en datablockstorlek på endast 16 KB.

    Så för att sammanfatta understryker vi än en gång att RAID-kontrollen som är integrerad i ICH10R överträffar betydligt bättre än alla andra integrerade RAID-kontroller. Och med tanke på att den också har mer funktionalitet är det optimalt att använda den här kontrollen och bara glömma bort existensen av alla andra (såvida SATA III-enheter naturligtvis inte används i systemet).

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

    Forumbesökare ställer oss frågan: "Vad är den mest pålitliga RAID-nivån?" Alla vet att den vanligaste är RAID5-nivån, men det är inte alls utan allvarliga brister som inte är uppenbara för icke-specialister.

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

    I min artikel kommer jag att försöka karaktärisera de mest populära RAID-nivåerna och sedan kommer jag att ge rekommendationer om användningen av dessa nivåer. För att illustrera artikeln byggde jag ett diagram där jag placerade dessa nivåer i ett tredimensionellt utrymme av tillförlitlighet, produktivitet och kostnadseffektivitet.

    JBOD   (Just a Bunch of Disks) är en enkel sträckning av hårddiskar som inte formellt är en RAID-nivå. En JBOD-volym kan vara en matris med en disk eller en kombination av flera diskar. RAID-regulatorn behöver inte utföra några beräkningar för att arbeta med en sådan volym. I vårt diagram fungerar JBOD som en "vanlig" eller utgångspunkt - dess tillförlitlighet, prestanda och kostnadsvärden överensstämmer med de för en enda hårddisk.

    RAID 0("Striping") har inte redundans, men distribuerar informationen omedelbart till alla skivor i matrisen i form av små block ("strips"). På grund av detta ökar produktiviteten avsevärt, men tillförlitligheten lider. Som för JBOD får vi för våra pengar 100% av diskkapaciteten.

    Jag förklarar varför tillförlitligheten för datalagring på någon sammansatt volym minskar - eftersom i händelse av att någon av dess hårddiskar misslyckas går all information fullständigt och oåterkalleligt bort. Enligt sannolikhetsteorin, matematiskt, är pålitligheten för en RAID0-volym lika med produkten av tillförlitligheten för dess beståndsdelar, vilka var och en är mindre än enhet, så den sammanlagda tillförlitligheten är verkligen lägre än tillförlitligheten på någon disk.

    Bra nivå - RAID 1 ("Spegling", "spegel"). Den har skydd mot att hälften av den tillgängliga maskinvaran misslyckas (i allmänhet en av de två hårddiskarna), ger en acceptabel skrivhastighet och en ökning i läshastighet på grund av parallellisering av förfrågningar. Nackdelen är att du måste betala kostnaden för två hårddiskar och få användbar volym på en hårddisk.

    Ursprungligen antas det att en hårddisk är en pålitlig sak. Följaktligen är sannolikheten för misslyckande av två skivor samtidigt lika (enligt formeln) till sannolikhetsprodukten, d.v.s. lägre med storleksordrar! Tyvärr är det verkliga livet inte en teori! Två hårddiskar tas från samma batch och fungerar under samma förhållanden, och om en av frekvensomriktarna misslyckas ökar belastningen på den återstående, därför är det i praktiken om en av enheterna misslyckas, vidta åtgärder för att återställa redundansen igen. För att göra detta, med alla RAID-nivåer (utom noll), rekommenderas det att använda varma reservdrivare HotSpare. Fördelen med detta tillvägagångssätt är att upprätthålla konstant tillförlitlighet. Nackdelen är ännu större kostnader (dvs kostnaden för 3 hårddiskar för lagring av volymen på en disk).

    Spegel på många enheter är en nivå RAID 10. När du använder denna nivå är spegelpar av skivor anordnade i en kedja, så volymen för den resulterande volymen kan överstiga kapaciteten på en hårddisk. Fördelar och nackdelar är desamma som RAID1. Som i andra fall rekommenderas det att inkludera HotSpare-enheter i matrisen till en reserv för fem arbetare.

    RAID 5Faktum är att de mest populära av nivåerna - främst på grund av dess effektivitet. Offrar för redundans skull kapaciteten för bara en disk från matrisen, får vi skydd mot fel på någon av hårddiskarna i volymen. Ytterligare resurser spenderas på att skriva information om RAID5, eftersom ytterligare beräkningar krävs, men det finns en vinst vid läsning (jämfört med en separat hårddisk), eftersom dataströmmar från flera lagringsenheter är parallella.

    Nackdelarna med RAID5 uppstår när en av skivorna misslyckas - hela volymen går i kritiskt läge, alla skriv- och läsoperationer åtföljs av ytterligare manipulationer, prestandan sjunker kraftigt och skivorna börjar värmas upp. Om du inte snabbt vidtar åtgärder kan du tappa hela volymen. Därför (se ovan) måste du använda en Hot Spare-enhet med en RAID5-volym.

    Förutom de grundläggande nivåerna RAID0 - RAID5 som beskrivs i standarden finns det kombinerade nivåer av RAID10, RAID30, RAID50, RAID15, som olika tillverkare tolkar var och en på sitt sätt.

    Kärnan i sådana kombinationer är kort som följer. RAID10 är en kombination av enhet och noll (se ovan). RAID50 är en kombination av "0" nivå 5-volymer. RAID15 - "spegeln" på "femmorna". Och så vidare.

    Därför ärver kombinerade nivåer fördelarna (och nackdelarna) med sina "föräldrar". Så utseendet på en "noll" i nivån RAID 50   det lägger inte till pålitlighet alls, men det har en positiv effekt på prestandan. nivå RAID 15förmodligen mycket pålitlig, men det är inte den snabbaste och dessutom extremt oekonomisk (volymens användbara kapacitet är mindre än hälften av storleken på den ursprungliga diskarrayen).

    RAID 6   skiljer sig från RAID 5 på det sättet i varje datarad (på engelska) rand) har inte en utan två   blockera kontrollsumma. Kontrollsumman är ”flerdimensionell”, dvs. oberoende av varandra, så till och med misslyckandet av två skivor i matrisen gör att du kan spara originaldata. Beräkningen av kontrollsumma med Reed-Solomon-metoden kräver mer intensiva beräkningar än RAID5, så den sjätte nivån användes praktiskt taget aldrig tidigare. Nu stöds det av många produkter, eftersom de började installera specialiserade mikrokretsar som utför alla nödvändiga matematiska operationer.

    Enligt en del studier ger återställningen av integriteten efter ett enda skivfel på en RAID5-volym sammansatt av SATA-skivor med stor kapacitet (400 och 500 gigabyte) i 5% av fallen dataförlust. Med andra ord, i ett fall av tjugo under regenereringen av RAID5-arrayen till Hot Spare-reservdisken kan den andra disken misslyckas ... Därför rekommendationerna från de bästa RAID-ledningarna: 1) alltid   göra säkerhetskopior; 2) användning RAID6!

    Nyligen har nya nivåer av RAID1E, RAID5E, RAID5EE dykt upp. Bokstaven "E" i namnet betyder förbättrad.

    RAID level-1 Enhanced (RAID level-1E) kombinerar spegling och datastripning. Denna blandning av nivåerna 0 och 1 är strukturerad enligt följande. Uppgifterna i raden distribueras exakt samma som i RAID 0. Dataserien har ingen redundans. Nästa rad med datablock kopierar den föregående med en förskjutning av ett block. Således, som i standard RAID 1-läget, har varje datablock en spegelkopia på en av skivorna, därför är den användbara volymen för matrisen lika med hälften av den totala mängden hårddiskar som ingår i matrisen. RAID 1E kräver kombinationen av tre eller flera enheter.

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

    Låt oss gå vidare till nivån RAID level-5 Enhanced (RAID level-5E). Detta är samma sak som RAID5, bara med en säkerhetskopiapparat inbyggd i matrisen reservdrivning. Denna inbäddning utförs på följande sätt: på alla skivor i matrisen lämnas 1 / N av utrymmet fritt, vilket används som en het reservdel när en av skivorna misslyckas. På grund av detta demonstrerar RAID5E, tillsammans med tillförlitlighet, bättre prestanda, eftersom läsning / skrivning utförs parallellt med ett stort antal enheter samtidigt och reservdrivning inte är inaktiv, som i RAID5. Uppenbarligen kan inte säkerhetskopieringsdisken som ingår i den volymen delas med andra volymer (dedikerad kontra delad). RAID 5E-volym är byggd på minst fyra fysiska diskar. Den användbara volymen för den logiska volymen beräknas med formeln N-2.

    RAID level-5E Enhanced (RAID level-5EE)   liknande RAID level-5E, men den har en mer effektiv distribution av reservdrivning och som ett resultat en snabbare återhämtningstid. Liksom RAID5E-nivå distribuerar denna RAID-nivå datablock och kontrollsumma i en serie. Men det distribuerar också gratis reservdrivblock och lämnar inte bara en del av diskutrymmet för dessa ändamål. Detta minskar den tid som krävs för att rekonstruera en RAID5EE-volym. Säkerhetskopieringsskivan i volymen kan inte delas med andra volymer - som i föregående fall. RAID 5EE-volym är byggd på minst fyra fysiska diskar. Den användbara volymen för den logiska volymen beräknas med formeln N-2.

    Konstigt nog, inget omnämnande av nivå RAID 6E Jag hittade det inte på Internet - hittills har ingen av tillverkarna föreslagit eller till och med meddelat en sådan nivå. Men nivån på RAID6E (eller RAID6EE?) Kan erbjudas enligt samma princip som den föregående. skiva HotSpare nödvändigtvis   måste åtfölja alla RAID-volymer, inklusive RAID 6. Naturligtvis förlorar vi inte information om en eller två skivor misslyckas, men det är oerhört viktigt att starta regenereringen av arrayintegritet så snart som möjligt för att få systemet ur "kritiskt" läge så snart som möjligt. Eftersom behovet av en Hot Spare-disk är osäker för oss, skulle det vara logiskt att gå längre och "smudge" den enligt hur den gjordes i RAID 5EE för att få fördelarna med att använda fler skivor (bättre läs / skrivhastighet och snabbare återställande av integritet).

    RAID-nivåer i "siffror".

    I tabellen samlade jag några viktiga parametrar för nästan alla RAID-nivåer, så att du kan jämföra dem med varandra och tydligt förstå deras väsen.

    nivå
    ~~~~~~~

    överskott
    exakt
    nosta
    ~~~~~~~

    användningen
    diskkapacitet
    ~~~~~~~

    till-
    ditel-
    nosta
    läsning

    ~~~~~~~

    till-
    ditel-
    nosta
    inspelning

    ~~~~~~~

    den integrerade
    ny enhet
    reserv

    ~~~~~~~

    Min. antal skivor
    ~~~~~~~

    Max. antal skivor

    ~~~~~~~

    exc

    exc

    exc

    exc

    Alla “spegel” -nivåer är RAID 1, 1 + 0, 10, 1E, 1E0.

    Låt oss försöka igen förstå grundligt, vad är skillnaden mellan dessa nivåer?

    RAID 1.
    Detta är en klassisk spegel. Två (och bara två!) Hårddiskar fungerar som en, eftersom de är en komplett kopia av varandra. Fel på någon av dessa två enheter resulterar inte i att dina data förloras, eftersom kontrollenheten fortsätter att arbeta med den återstående enheten. RAID1 i antal: dubbel redundans, dubbel tillförlitlighet, dubbel kostnad. Skrivprestanda motsvarar prestandan på en enda hårddisk. Läsprestanda är bättre eftersom regulatorn kan distribuera läsoperationer mellan två enheter.

    RAID 10
    Kärnan i denna nivå är att matrisskivorna är parade i “speglar” (RAID 1), och sedan kombineras alla dessa spegelpar i sin tur till en enda randig matris (RAID 0). Det är därför det ibland kallas RAID 1 + 0. Den viktiga punkten är att du i RAID 10 bara kan kombinera ett jämnt antal diskar (minst 4, max 16). Fördelar: tillförlitlighet ärvs från "spegeln", och prestanda för både läsning och skrivning är från "noll".

    RAID 1E.
    Bokstaven "E" i namnet betyder "Förbättrad", d.v.s. "Bättre". Principen för denna förbättring är som följer: data i block "randas" på alla skivor i matrisen och "växlas sedan" igen med en skift av en disk. RAID 1E kan kombinera från tre till 16 enheter. Pålitlighet motsvarar "tiotals" -indikatorerna, och prestandan på grund av den större "rotationen" blir lite bättre.

    RAID 1E0.
    Denna nivå implementeras enligt följande: vi skapar en "noll" matris med RAID1E-matriser. Därför bör det totala antalet diskar vara ett multipel av tre: minst tre och högst sextio! I det här fallet kommer vi osannolikt inte att få en fördel med hastigheten och implementeringens komplexitet kan påverka tillförlitligheten negativt. Den största fördelen är förmågan att kombinera ett mycket stort (upp till 60) antal skivor i en grupp.

    Likheten med alla RAID 1X-nivåer ligger i deras redundansindikatorer: exakt 50% av den totala kapaciteten för matrisskivorna avlivas för tillförlitlighetens skull.

    Hälsningar till alla, kära läsare av bloggsidan! Tidigare har jag redan publicerat en artikel om, jag rekommenderar starkt att du läser. Där talade jag bara kort om vad en raid är en matris av den tionde nivån, eller "1 + 0" - som det också kallas. Den här artikeln kommer att vara en detaljerad berättelse om alla fördelar och nackdelar med denna typ av raid-array, liksom dess jämförelse med den femte raid.

    Som ni vet har Raid 10 integrerat alla de goda sakerna från Raid 0 och Raid 1: ökad åtkomsthastighet respektive ökad datasäkerhet. Raid 10 är en typ av "remsa" av speglar som består av par hårddiskar kombinerade till en första nivå raid. Med andra ord är skivorna i en kapslad matris parade i en "spegel" -raid på den första nivån, och dessa kapslade arrayer förvandlas i sin tur till en allmän nollnivåuppsättning med datainsamling.

    Beskrivningen av funktionerna i raid 10-arrayen är som följer:

    • om någon disk från det medföljande raid 1-arrayerna misslyckas, kommer dataförlust inte att inträffa. Det vill säga, om det bara finns fyra skivor "inuti" den tionde attacken, vilket är det minsta beloppet, är ett smärtfritt fel på så många som två skivor samtidigt möjligt;
    • nästa funktion (snarare en nackdel) är omöjligt att byta ut skadade enheter, såvida naturligtvis inte matrisen är utrustad med het reservdelsteknologi;
    • om du fokuserar på uttalanden från enhetstillverkare och många tester, visar det sig att det är raid "1 + 0" som ger den bästa genomströmningen jämfört med andra typer förutom raid zero, naturligtvis.

    Antal skivor

    Svara på frågan - hur många diskar som krävs för raid 10, jag kommer att säga att ett jämnt antal av dem är nödvändigt för en sådan grupp. Dessutom är det minsta tillåtna antalet hårddiskar 4, och det maximala är 16. Det finns också en uppfattning om att raid "1 + 0" (aka 10) och "0 + 1" är något annorlunda. Detta är sant, men skillnaden ligger bara i sekvensen för att gå med i matriser.

    Den sista siffran anger typen av array på den högsta nivån. Till exempel, raid "0 + 1" betecknar ett visst spegelsystem av band, inuti vilka två noll raid (totalt: 4 hårddiskar) kombineras till en raid 1 - detta är ett exempel, det kan finnas fler "noll" raid av matriser här. Dessutom, visuellt från utsidan, är dessa två underarter av raid 10 inte annorlunda. Och rent teoretiskt sett har de en lika stor del av feltolerans.

    I praktiken använder de flesta tillverkare nu Raid 1 + 0 istället för Raid 0 + 1, vilket förklarar detta genom att det första alternativet är större motstånd mot fel och fel.

    Så många diskar kan gå sönder och dataförlust kommer inte att ske.

    Jag upprepar, den största nackdelen med raid 10 är behovet av att inkludera en "het reservdel" i diskmatrisen. Beräkningen är ungefär följande: det bör finnas en säkerhetskopia för 5 fungerande enheter. Nu några ord om diskens kapacitet. Det speciella med Raid 1-kapaciteten är att bara hälften av hårddiskutrymmet av deras totala volym alltid är tillgängligt för dig. I RAID kommer 10 av fyra diskar med en total kapacitet på 4 Terabyte att finnas tillgängliga för totalt 2 TB. I allmänhet är det lätt att beräkna den tillgängliga volymen med formeln: F * G / 2, F betyder - antalet skivor i matrisen och G - deras kapacitet.

    Jämförelse av raid 10 vs raid 5

    Om vi \u200b\u200btalar om att välja mellan det "tionde" raidet och andra, kommer tanken på raid 5. vanligtvis att tänka på. Raid 5 liknar det första i dess syfte, med den enda skillnaden är att det kräver minst 3 enheter. Dessutom kommer en av dem inte att vara tillgänglig som plats för att spela in data, endast serviceinformation lagras på den.

    Den femte attacken kan överleva förlusten (nedbrytningen) av endast en hård, att bryta den andra innebär förlusten av all data. Men den femte nivån raid är ett bra och billigt sätt att förlänga livslängden på enheter och minska sannolikheten för att de misslyckas. För att vår jämförelse ska vara effektiv och visuell, kommer jag att försöka sortera fördelarna och nackdelarna med den femte raiden under det tionde:

    1. Kapaciteten för raid 5-arrayen är lika med den totala skivkapaciteten minus storleken på en skiva. I raid 10 är det bara hälften av enheterna som finns tillgängliga.
    2. Under läs / skrivoperationer kan interaktion med dataströmmar genomföras samtidigt från flera skivor. Därför ökar hastigheten för att skriva eller läsa jämfört med en konventionell hårddisk. Men utan en bra raidkontroller kommer hastigheten inte att vara mycket hög.
    3. Raid 5-prestanda i slumpmässiga läs- / skrivoperationer för block är 10–25% lägre jämfört med den tionde. Om en av skivorna misslyckas i den femte attacken går hela matrisen i kritiskt läge - alla skriv- och läsoperationer åtföljs av ytterligare manipulationer, medan prestandan minskar kraftigt.

    Så vad har vi i slutändan: raid 10 har bättre feltolerans och hastighet jämfört med raid 5. Men inte alla har råd att montera en sådan mängd diskar. Raid 5 är en slags mellanliggande lösning mellan nollgruppen och spegeln (raid 1). Vi kommer att prata om hur man gör raid 10 av fyra skivor lite senare, även om jag redan har berört det här ämnet i förbigående i artikeln, länken till vilken anges ovan. Naturligtvis är det bättre för detta ändamål att använda hårdvarunivån - du behöver en speciell styrenhet, men bra utrustning är dyr.

    Den så kallade "falska raid" (inbyggd i moderkortet) är inte tillförlitlig och snabb, jag rekommenderar inte att du använder den. Det är bättre att organisera allt på programnivå. Nåväl, ett detaljerat exempel på att skapa en matris på fyra diskar med en raidkontroll. Välj först lämpligt verktyg genom BIOS.

    Välj sedan ”drivrutininitialisering” i verktygsmenyn.

    Välj alla våra enheter.

    Återigen återgår vi till verktygets huvudmeny och väljer objektet "skapa array".

    Och i det sista steget - ange typ av matris, dess storlek och andra parametrar.





    

          2020 gtavrl.ru.