Hoppa till innehåll

  • Logga in via Facebook Logga in via Twitter Logga in via Windows Live Log In with LinkedIn Log In with Google      Sign In   
  • Registrera dig nu!

- - - - -

Nybörjarfråga om Raidcontroller.


Det är inte alltid så att man skall undvika RAID5, och givetvis är kostnad alltid en fråga när man väljer vilken RAID-nivå man skall köra på.

De frågor man skall ställa sig är:
  • Villen typ av last kommer belasta denna RAID? (random/sequential)
  • Hur mycket last
  • Vilken läs/skriv ratio kommer det vara mot volymen?
  • Hur viktig är informationen på volymen (nästan alltid VIKTIG! :))
  • Hur möter jag ovanstående krav på mest kostnadseffektivt sätt?
Om budgeten inte räcker till att lösa kraven så måste kraven revideras och ändras.

Det är inte heller sant att RAID10 alltid är bättre, vare sig på att skydda data eller när det kommer till prestanda.

Jag gör ett exempel på RAID10, RAID5 och RAID6 baserat på 10st hårddiskar för att förklara. Jag jämför också med att INTE köra RAID för att belysa vilken "overhead" och kostnad de olika typer av RAID har.
RAID10 (5+5)

Volym

50% kost av volymen eftersom varje datablock kommer att speglas på två diskar.


Skrivning

50% kost av skrivningsprestandan eftersom varje skrivning måste skickas till två diskar.


Läsning

50% kost av läsningar eftersom enbart hälften av diskarna kan vara med att leverera data när vi vill komma åt det igen.


RAID5 (9+1)



Volym

10% Kost eftersom volymen av en disk kommer gå åt för paritetsdata för att skydda os mot en potentiell trasig disk.


Skrivning

75% kost eftersom varje skrivning mot en RAID5 volym kommer att generera fyra stycken IO i bakplanet. Två IO för att läsa den gamla pariteten och det gamla datablocket samt två skrivningar för att skriva den nya pariteten och det nya datablocket.


Läsning

10% kost eftersom varje stripe i exempel RAID5 har 9st data chunks och 1 paritets chunk. Enbart data chunk:arna levererar prestanda vid läsning.


RAID6 (8+2)



Volym

20% kost eftersom volymen av två diskar går åt för paritetsdata för att skydda oss mot två trasiga diskar.


Skrivning

ca 83% kost  eftersom varje skrivning mot en RAID6 volym kommer att generera sex stycken IO i bakplanet. tre IO för att läsa den gamla pariteten och det gamla datablocket samt tre skrivningar för att skriva den nya pariteten och det nya datablocket.



Läsning

20% kost eftersom varje stripe i exempel RAID6 har 8st data chunks och 2 paritets chunks. Enbart data chunk:arna levererar prestanda vid läsning.



Så har man en last som är majoriteten läsningar så är både RAID6 och RAID5 ett bättre alternativ för prestandaoptimering än vad RAID10 är.

Har man dessutom en majoritet av sekventiella skrivningar (i kombination med en någorlunda kompetent RAID-kontroller) så är RAID6 och RAID5 ett bättre alternativ än RAID10. De flesta bra RAID-kontrollers kan identifiera en sekventiell dataström och spara ett helt stripe-set i cache innan den skriver HELA stripe-settet (inklusive pariteten) mot disk. Det innebär att i exempelet ovan så är kostnaden för skrivningarna 10% för RAID5 samt 20% för RAID6 jämfört med RAID10 som hade 50%

Det finns dock andra saker som man måste ta hänsyn till när man väljer vilken RAID-nivå man skall ha.


Man skall aktivt välja bort RAID5 om man vill bygga ett RAID-set med många diskar eller om man har väldigt stora diskar.
  • Har du många diskar i ett RAID5 så ökar risken att två diskar går sönder i samma raid-set och du kan inte återskapa din data. Eller att en disk går sönder när du kör rebuild på en trasig disk.
  • Du skall också välja bort RAID5 om du kör stora diskar (över 600-900GB i storlek) eftersom du ökar sannorlikheten att du råkar ut för en "unrecoverable read error". Det innebär att RAID-kontrollern läser en bit fel utan att upptäcka detta, och skulle detta ske när du gör en rebuild så riskerar du förlora all data.
Slutligen, RAID6 är mer säkert än RAID10 eftersom RAID6 tillåter att vilka två diskar som helst går sönder i ditt RAID-set.
RAID10 tillåter att fler diskar går sönder så länge det inte är två diskar i samma spegelpar.


Så, det finns ingen perfekt RAID.
Alla typer av RAID (ja, inklusive RAID4) har typer av last och tillämpningar som gör dem till perfekta för just den tillämpningen.



Just my 2 cents


25 Comments


Markus Lassfolk
Apr 20 2012 10:48
Hej,
Teoretiskt sett skulle det gå bra, men jag tror inte det är någon bra lösning.

Om du har 6 diskar och gör en Raid 1 av 2 diskar.  Då har du 4 diskar kvar.
En Raid6 använder 2 diskar för paritet, så du "tappar" 2 diskar där.

Till slut nyttjar du alltså bara utrymmet på 3 av dina 6 diskar.
Det finns en bra artikel om Raid 6 här: RAID 6 -- Do you really want it?

Så baserat på den artikeln borde det nog räcka med en Raid 5, så får du lite mer diskplats.

Alternativt, kanske skapa  2st Raid 0 och köra dem i en Raid 1, dvs en så kallad Raid10.
Då får du samma feltollerans men bättre presstanda än med en Raid5 eller Raid6.
Dock lika mycket förlust av disk som i din lösning (3 av 6 diskar).

Vad är det för sorts last som kommer köras på servern. Är det mycket Läs och/eller Skrivningar till diskarna?
Tanken är att den ska vara en Hyper-V host, vet inte än om den ska vara hyper-v server eller en 2008r2 med hyper-v rollen installerad.

Min tanke var att köra OS på en raid 1 och sen ha en disk till för VHD'erna.

Fast det kanske funkar lika bra att bara ta och raid 5, installera 2008r2 alt hyper-v på den och låta "allt ligga på samma"?

Som sagt, jag är lite av en nybörjare på det här.

Markus Lassfolk
Apr 20 2012 13:41
Virtuella maskiner är ju ganska diskintensiva, både när det gäller att skriva och läsa.
En Raid5 är ju lite långsammare på att skriva än en Raid10 men du tappar å andra sidan inte lika mycket disk.

Vad tror du om att helt enkelt köra OS på bara en disk. Skippa mirroring där. givetvis beroende på Uptime och SLA'er ni kan tänkas ha,
Om Host OS'et rasar, så går det ju förhållandevis snabbt att installera ett nytt OS på en ny disk och komma åt de virtuella maskinerna igen.
Då kan du ha 1st OS disk och så kör du Raid5 på de resterande diskarna?
Jo jag har märkt att dom är det, den jag kör våra hyper-v på nu har lite problem med det.
Hur står skillnad är det på hastighet på raid10 gentemot en raid5? För det är inte så mycket plats som behövs, och med 4x600gb diskar så blir det ju iaf 1.2tb och det "borde" klara mitt företags behov kommande 3-4 år iaf.

Vi är rätt litet företag och har ingen policy för uptime och SLA, men om man räknar in gnällspiksfaktorn när något går sönder hade jag ju föredragit lite redundans.

Fast du har en poäng, det tar ju inte många minuter att installera upp hyper-v server på en ny disk och sen addera in de virtuella igen, hmm, nu är jag ännu mer kluven i hur jag ska göra, hehe =)

Jocke Bryttmar
Apr 20 2012 14:06
Om det funkar med det diskutrymme du får med raid10 så skulle jag nog välja det, och installera både OS och virtuella maskiner på den volymen.

Markus Lassfolk
Apr 20 2012 14:12
Jag har tyvärr inga direkta siffror att visa ang hastigheten med det ena eller det andra.  :(
Men kör med  Raid1 för OS + Raid5 för VM's så har du redundans och som du säger, gott om disk.
Här finns ett litet diagram som visar skillnaden på RAID10 och RAID5: http://weblogs.sqlte...erformance.aspx
RAID5 ska köras med ett jämnt antal diskar för bästa prestanda, så i ditt fall antingen en stor RAID10 eller en RAID1 för OS och en 4 diskars RAID5 för VM:s.

Visa inläggdodgy på 20 April 2012 - 13:58 sade:

Jo jag har märkt att dom är det, den jag kör våra hyper-v på nu har lite problem med det.
Hur står skillnad är det på hastighet på raid10 gentemot en raid5? För det är inte så mycket plats som behövs, och med 4x600gb diskar så blir det ju iaf 1.2tb och det "borde" klara mitt företags behov kommande 3-4 år iaf.

Jag tycker det låter som en bra plan, RAID 1 på två diskar för OS och en RAID 10 med 4 diskar för dina VMs. Du får visserligen 600 GB mer utrymme med en RAID 5, men prestandan blir som tidigare nämnts betydligt sämre.
Om utrymmet räcker till, välj Raid 10. Inte primärt för att du får bättre skjuts i burken med en sådan konfig, utan för att det stora problemet med Raid 5 är att allt blir oerhört segt vid en diskkrasch/rebuild... Och det scenariot vill man inte ha, iaf. inte när det ligger virtuella maskiner och snurrar på diskarean Postad bild

JohanLysen
Apr 20 2012 15:47
Jag är dålig på Hyper-V men...
Hur fel är det att använda alla 6 diskarna i RAID10 för att få loss all prestanda som finns tillgänglig och låta både OS och gäster ligga där?
Utan att veta bättre hade jag kört så får att få ut max av prylarna.
Känns det bättre att karva ut två LUN ur den arrayen så gör det (ett för OS, ett för gäster).
Om inte så kanske du vill skapa en OS partition och en Gäst partition på diskytan, även om det är finlir..

Nu får jag väl skit men...
Om du väljer "gratis/freeware" ESXi och kör det på en USB-sticka/SD-kort så får du loss alla sex diskarna till gästerna, även om du inte har USB/SD och installerar ESXi på diskarna du ska köra gästerna på så är det ingen stor grej.
Även jag föreslår RAID10 istället för RAID5 - det är väldigt sällan "rätt" med RAID5 när man pratar virituella miljöer då man ser till prestanda/pris-per-IOPS.
Gratis ESXi har en begränsning i att du max kan nyttja 32GB RAM till gästerna i övrigt så det kanske stoppar dina planer?

/Johan

Markus Lassfolk
Apr 20 2012 16:01
Tycker Johan har en väldigt bra lösning där. :Applause:

Göran fantomen Johansson
Apr 20 2012 16:05

Visa inläggJohanLysen på 20 April 2012 - 15:47 sade:

Hur fel är det att använda alla 6 diskarna i RAID10 för att få loss all prestanda som finns tillgänglig och låta både OS och gäster ligga där?
Det hade jag också valt.

Jocke Bryttmar
Apr 20 2012 16:05

Visa inläggJohanLysen på 20 April 2012 - 15:47 sade:

Jag är dålig på Hyper-V men...
Hur fel är det att använda alla 6 diskarna i RAID10 för att få loss all prestanda som finns tillgänglig och låta både OS och gäster ligga där?
Utan att veta bättre hade jag kört så får att få ut max av prylarna.
Känns det bättre att karva ut två LUN ur den arrayen så gör det (ett för OS, ett för gäster).
Om inte så kanske du vill skapa en OS partition och en Gäst partition på diskytan, även om det är finlir..

Nu får jag väl skit men...
Om du väljer "gratis/freeware" ESXi och kör det på en USB-sticka/SD-kort så får du loss alla sex diskarna till gästerna, även om du inte har USB/SD och installerar ESXi på diskarna du ska köra gästerna på så är det ingen stor grej.
Även jag föreslår RAID10 istället för RAID5 - det är väldigt sällan "rätt" med RAID5 när man pratar virituella miljöer då man ser till prestanda/pris-per-IOPS.
Gratis ESXi har en begränsning i att du max kan nyttja 32GB RAM till gästerna i övrigt så det kanske stoppar dina planer?

/Johan

Ja detta var mitt förslag också. Jag ser ingen anledning att lägga OS'et på en egen volym i det här scenariot. En stor RAID10 för allt. Undvik RAID5.

Silverminken
Apr 21 2012 00:21

Visa inläggMarkus Lassfolk på 20 April 2012 - 10:48 sade:


Alternativt, kanske skapa  2st Raid 0 och köra dem i en Raid 1, dvs en så kallad Raid10.


Du fick nog lite fel på 1 och 0 här. Det du beskriver är en såkallad Raid 01 som man INTE vill köra.


En raid 10 på 4 diskar börjar ju med att speglar diskarna i två par (två raid 1), sedan kör man en stripe (raid 0) på dessa speglingar.



Att göra tvärtom, så är riktigt dåligt, speciellt när antalet diskar ökar.

Anta att vi har många diskar, 20 stycken,
Om vi gör två stripe set om 10 diskar vardera, som vi sedan speglar, så händer följande när EN disk går sönder, då förlorar man sin spegling, detta då den ena stripen som helt saknar redundans är trasig, vilket gör att man nu är helt utan redundans! Om en till disk går sönder, så är risken att den sitter i den andra speglingen som fortfarande är hel, så är då risken 10/19 att det är en disk i den seglingen, dvs över 50% risk! (2/3 risk vid en raid 01 med 4 diskar)


Om vi nu gör tvärtom, vi skapar 10 speglingar, som vi sedan gör en stripe av, då om en disk går sönder, så går bara den aktuella speglingen sönder, vi har nu 19 diskar kvar, varav 18 har kvar sin redundans, om en disk till går sönder, så är det ju bara en 1/19 dels chans att den disken tillhör vår redan trasiga spegling... helt klart bättre odds. (1/3 risk vid en raid 10 med 4 diskar)


Finns det ett bättre svenskt namn för stripe?

John Hertell
Apr 21 2012 06:13

Visa inläggJohanLysen på 20 April 2012 - 15:47 sade:

Gratis ESXi har en begränsning i att du max kan nyttja 32GB RAM till gästerna i övrigt så det kanske stoppar dina planer?

Man kan fortfarande plocka hem 4.1 utan problem som ju stödjer 256GB RAM. om minnet är ett problem. Så min rekommendation är med: in med VmWare ESXi och använd all diskyta till VMs.
i RAID-10 då. Supporterar burken mer än 32GB Ram.kör på vmware 4.1 annars 5.0. (fattar inte hur vmware tänker där. dom vill tydligen förlora marknadsandelar.. :))

Markus Lassfolk
Apr 21 2012 07:13

Visa inläggSilverminken på 21 April 2012 - 00:21 sade:

Du fick nog lite fel på 1 och 0 här. Det du beskriver är en såkallad Raid 01 som man INTE vill köra.

En raid 10 på 4 diskar börjar ju med att speglar diskarna i två par (två raid 1), sedan kör man en stripe (raid 0) på dessa speglingar.

Var själv lite osäker på om det rätta namnet var  Raid 0+1, Raid 1+0 eller Raid 10  så jag slog upp det här;  http://sv.wikipedia..../wiki/Raidoch ser nu när jag dubbelkollar ser jag att du så klart har alldeles rätt, det var 1+0 jag tänkte på initialt, men jag beskrev en 0+1 Raid.

För att försöka hålla hedern i behåll så ger jag mig på en väldigt halvhjärtad räddning att

Citat

För den vanligaste konfigurationen, fyra diskar sammansatta i par, är dock 1+0 och 0+1 likvärdiga.
Enligt samma länk ovan  :Whistle:

Men du har ju så klart alldeles rätt i att i en större installation skulle det inte vara en bra lösning, då är en Raid 0+1 inte ett alternativ utan din korrekta beskrivning av Raid 10 är det som jag också förespråkar. Framförallt här om man ska köra det över alla 6 diskarna. :)

Googlade föresten lite mer och stötte på den här arikeln, som förvisso är 5 år gammal, men ändå visar på väldigt olika performance resultat mellan Raid5 och Raid10 jämfört med den som Ernefors visade.
http://www.zdnet.com...ance-report/484

Visa inläggSilverminken på 21 April 2012 - 00:21 sade:


Finns det ett bättre svenskt namn för stripe?

Strajp :He He:
Tack för alla råd!

Tror jag följer den rekommendation de flesta verkar ha med att köra en stor raid10 och har allt på den. :D
Jag trodde alltid man skulle undvika raid5 till VMs (kör dock detta själv) men det är kanske en kostnadsfråga.

Göran fantomen Johansson
Apr 21 2012 12:32

Visa inläggMicke_80 på 21 April 2012 - 11:07 sade:

Jag trodde alltid man skulle undvika raid5 till VMs (kör dock detta själv) men det är kanske en kostnadsfråga.
Japp. Hade man inte behövt ta hänsyn till några pengar någonstans så hade man alltid valt RAID 10, 100 gånger av 100...

Jonas Forsberg
May 24 2012 16:34

Visa inläggMicke_80 på 21 April 2012 - 11:07 sade:

Jag trodde alltid man skulle undvika raid5 till VMs (kör dock detta själv) men det är kanske en kostnadsfråga.

Det är inte alltid så att man skall undvika RAID5, och givetvis är kostnad alltid en fråga när man väljer vilken RAID-nivå man skall köra på.

De frågor man skall ställa sig är:
  • Villen typ av last kommer belasta denna RAID? (random/sequential)
  • Hur mycket last
  • Vilken läs/skriv ratio kommer det vara mot volymen?
  • Hur viktig är informationen på volymen (nästan alltid VIKTIG! :))
  • Hur möter jag ovanstående krav på mest kostnadseffektivt sätt?
Om budgeten inte räcker till att lösa kraven så måste kraven revideras och ändras.

Det är inte heller sant att RAID10 alltid är bättre, vare sig på att skydda data eller när det kommer till prestanda.

Jag gör ett exempel på RAID10, RAID5 och RAID6 baserat på 10st hårddiskar för att förklara. Jag jämför också med att INTE köra RAID för att belysa vilken "overhead" och kostnad de olika typer av RAID har.

RAID10 (5+5)

Volym

50% kost av volymen eftersom varje datablock kommer att speglas på två diskar.


Skrivning

50% kost av skrivningsprestandan eftersom varje skrivning måste skickas till två diskar.


Läsning

50% kost av läsningar eftersom enbart hälften av diskarna kan vara med att leverera data när vi vill komma åt det igen.


RAID5 (9+1)

Volym

10% Kost eftersom volymen av en disk kommer gå åt för paritetsdata för att skydda os mot en potentiell trasig disk.


Skrivning

75% kost eftersom varje skrivning mot en RAID5 volym kommer att generera fyra stycken IO i bakplanet. Två IO för att läsa den gamla pariteten och det gamla datablocket samt två skrivningar för att skriva den nya pariteten och det nya datablocket.


Läsning

10% kost eftersom varje stripe i exempel RAID5 har 9st data chunks och 1 paritets chunk. Enbart data chunk:arna levererar prestanda vid läsning.


RAID6 (8+2)

Volym

20% kost eftersom volymen av två diskar går åt för paritetsdata för att skydda oss mot två trasiga diskar.


Skrivning

ca 83% kost  eftersom varje skrivning mot en RAID6 volym kommer att generera sex stycken IO i bakplanet. tre IO för att läsa den gamla pariteten och det gamla datablocket samt tre skrivningar för att skriva den nya pariteten och det nya datablocket.



Läsning

20% kost eftersom varje stripe i exempel RAID6 har 8st data chunks och 2 paritets chunks. Enbart data chunk:arna levererar prestanda vid läsning.



Så har man en last som är majoriteten läsningar så är både RAID6 och RAID5 ett bättre alternativ för prestandaoptimering än vad RAID10 är.

Har man dessutom en majoritet av sekventiella skrivningar (i kombination med en någorlunda kompetent RAID-kontroller) så är RAID6 och RAID5 ett bättre alternativ än RAID10. De flesta bra RAID-kontrollers kan identifiera en sekventiell dataström och spara ett helt stripe-set i cache innan den skriver HELA stripe-settet (inklusive pariteten) mot disk. Det innebär att i exempelet ovan så är kostnaden för skrivningarna 10% för RAID5 samt 20% för RAID6 jämfört med RAID10 som hade 50%

Det finns dock andra saker som man måste ta hänsyn till när man väljer vilken RAID-nivå man skall ha.


Man skall aktivt välja bort RAID5 om man vill bygga ett RAID-set med många diskar eller om man har väldigt stora diskar.
  • Har du många diskar i ett RAID5 så ökar risken att två diskar går sönder i samma raid-set och du kan inte återskapa din data. Eller att en disk går sönder när du kör rebuild på en trasig disk.
  • Du skall också välja bort RAID5 om du kör stora diskar (över 600-900GB i storlek) eftersom du ökar sannorlikheten att du råkar ut för en "unrecoverable read error". Det innebär att RAID-kontrollern läser en bit fel utan att upptäcka detta, och skulle detta ske när du gör en rebuild så riskerar du förlora all data.
Slutligen, RAID6 är mer säkert än RAID10 eftersom RAID6 tillåter att vilka två diskar som helst går sönder i ditt RAID-set.
RAID10 tillåter att fler diskar går sönder så länge det inte är två diskar i samma spegelpar.


Så, det finns ingen perfekt RAID.
Alla typer av RAID (ja, inklusive RAID4) har typer av last och tillämpningar som gör dem till perfekta för just den tillämpningen.



Just my 2 cents

This post has been promoted to an article

Markus Lassfolk
May 24 2012 16:55
Hmm vad trist. Jag tyckte det var ett bra inlägg av Jonas, så jag gjorde om det till en Artikel.
men då försvann det första inlägget i tråden med frågan...
Wikipedia är kanske inte den bästa referensen...

Körde själv HP RAID 5 + Hot Spare på servrarna, och Synologys egen på Rackstation NAS:en, men håller på att migrera till redundanta hostar med virtuella servrar och ett SAN. Har dock haft tur och har inte behövt byta ut så många diskar, och alltid klarat rebuild i tid.

ALLA hårddiskar är förbrukningsvara (även SSD (som dessutom enligt statistiken är svårare att rädda data från)) och går sönder förr eller senare, men min erfarenhet är att kvalité lönar sig (och att konsekvent hålla sig borta från diskserier med hög failurerate (klassiskt exempel: IBM/Hitachi Deskstar/Travelstar och vissa senare Seagate)).

John Hertell
Jul 13 2013 23:31
som mina 5st 500GB seagatediskar jag köpte till min hemmaserver för 3 år sedan.. nu har ALLA haverrerat.  iofs alla bytta på garanti  men ändå.
(och alla jag fått tillbaka har grön etikett som "denna enheten är lagad" )
När det handlar om diskar är det inte så mycket en fråga om de skall gå sönder utan mer en tidsfråga om hur länge det kan tänkas dröja.
http://devopsreactio...-that-more-than