Linnéuniversitetet Projektrapport Grundläggande Operativsystem 1DV415 Prestandamätning av RAID-lösningar Rasmus Kroon, Victor Hedlund, Erik Johansson 9 januari 2014
Sammanfattning Vi har utfört ett experiment som innefattar skriv och läshastighet på två olika RAID-lösningar: RAID 1 och RAID 5. Vi har genomfört testerna med hjälp av Windows integrerade mjukvaruraid. Bänkningarna har genomförts på virtuella maskiner med Windows Server 2012 R2 som operativsystem. Dessa tester utfördes med tre av varandra oberoende free-to-use mjukvaror för att få ett mer pålitligt resultat. Tanken med experimentet var att få fram ett kvantitativt resultat som kunde jämföras med varandra och en snabbare version av de två RAID-lösningarna kunde koras. Förvånande nog kom de tre olika mjukvarorna fram till tre olika resultat. Anledningen till detta är att mjukvarorna hade olika förutsättningar. De hade bland annat olika blockstorlekar som användes som exempeldata för testet. På grund av detta så har alla resultat från samtliga mjukvaror presenterats. Ett snitt på dessa har räknats ut men det bör ses mer som en riktlinje i prestanda mer än ett exakt resultat då de olika mjukvarulösningarna använde sig av varierande testmetoder. Oavsett mjukvarutest, så kom det tydligt fram att RAID 1 är den överlägset snabbaste lösningen i både läsning men framför allt skrivning.
1 Introduktion Idag blir datorkomponenterna snabbare och snabbare men en vanlig flaskhals är skrivningen och läsningen till de sekundära diskarna. Det finns en mängd olika RAID-lösningar som skall snabba på skrivningen och läsningen men vilken av de två Windows-integrerade, redundanta lösningarna är snabbast? Då optimering av datorkraft inte bara är en nödvändighet längre utan också något som många ser som en sport är det här experimentet relevant för vilken RAID-lösning man bör välja. Detta har testats flertalet gånger av både företag och privatpersoner men bara ett fåtal gånger på virtuella maskiner. De båda lösningarna har flera för och nackdelar vad det gäller feltolerans, pålitlighet och slitage på hårdvara men vi kommer inte ta hänsyn till detta i den här artikeln. Studien kommer visa vilken lösning du ska använda om du sitter på en Windows server-maskin och du behöver den effektivaste och snabbaste RAIDlösningen man kan tillgå integrerat i Windows, det vill säga enbart prestanda. Om man kollar på hur marknaden för virtuella maskiner ser ut idag så är det mer regel än undantag att företag använder sig av VMware och liknande program för att virtuallisera operativsystem på sina servermaskiner. Med detta i åtanke så är det ett högst relevant test. För att testresultaten ska bli så rättvisa och exakta som möjligt fastslog vi ett antal parametrar som testen måste utföras utifrån. Cold Cache, det vill säga att maskinen startas om mellan varje test för att minimera cache filer som kan påverka resultatet. Alla processer och program som har möjlighet avslutas kommer att stängas. Tre test med varje program utförs med tre olika blockstorlekar. Lagringsenheterna skall vara nya och formaterade med det snabbaste filsystemet som erbjuds. Till vår hjälp har vi använt oss av Traeger och Zadok [1] och deras forskningsrapport av tidigare utförda prestandatester av olika lagringslösningar. Även om dessa parametrar är korrekt genomförda så, precis som Traeger och Zadok beskriver, är inte testet representativt för datorsystem i verkliga livet. Dock är detta tillvägagångsätt mest rättvist för att alla tester ska få så lika förutsättningar som möjligt. Med andra ord har samtliga bänkningar gjorts med så lika utgångspunkter som vi kan ge dem. Huvudsyftet med testet är med andra ord att jämföra läs- och skrivhastigheter mellan mjukvaruraidlösningarna RAID 1 och RAID 5 på virtuella maskiner. De båda virtuella maskinerna har även samma förutsättningar vad gäller hårdvara; 1 GB minne, fyra processorkärnor över två processorer och 60 GB:s hårddiskpartitioner. 2
För att förstå resultatet lite bättre så har vi läst på och skaffat oss förkunskaper hur våra två RAID-system fungerar, vad som kan påverka mätningarna och vad som är det troliga resultatet. RAID 1 fungerar som en spegling av en annan disk. RAID 1 innebär att man slår ihop två diskar till en, eftersom den andra disken du använder nara kommer bli en kopia av den första. Alltså: All data som skrivs lagras i två kopior på två olika fysiska diskar [2]. På pappret är den här lösningen den snabbaste eftersom operativsystemet kan läsa från båda diskarna samtidigt, i alla fall på nyare versioner av RAID 1, därför borde den här lösningen vara det bättre alternativet i vårt experiment. RAID 1 har däremot många nackdelar om vi skulle ta fler parametrar i beräkningen. Exempelvis så sliter RAID 1 mer på diskarna om du har mycket data du behöver skriva eftersom det måste skrivas på två diskar samtidigt. I ett icke RAID-system skulle du kunna skriva först på den ena och sen på den andra för att minimera slitaget. Du bör därför ha tänkt ut vad du behöver använda din lagringslösning till. Båda versionerna är designade och fungerar bäst när du bara behöver läsa från diskarna. På så sätt är experimentet intressant i den aspekten eftersom de båda på vissa plan är konkurrenter till varandra. En aspekt som talar mot RAID 1 om vi skulle utföra att större test är din förlust av hårdvara. Hälften av din lagringskapacitet försvinner när du använder RAID 1.[3] RAID 1s ideala användnings område är för kritiskt data som alltid ska vara till hands. Eftersom du alltid har tillgång till hela ditt bibliotek även om en utav diskarna går ner och du behöver inte vänta på att processorn ska bygga upp en ny disk innan du kan komma åt din data. Ett annat användningsområde är för små servrar där man bara har två hårddiskar [4] då många andra RAID-system har krav på fler än två diskar. RAID 5 är lite mer komplext än RAID 1 då RAID 5 använder paritet för att få en tillförlitlig, redundant disklagring. Till den här lösningen behöver du minst tre diskar. Vid maximal belastning så förlorar man en tredjedel av din totala lagringskapacitet (på tre diskar). Paritet fungerar som en checksumma där den data, alltså ettorna och nollorna, som är lagrad över diskarna utgör ett kontrollsumma. Reglerna är som följer: 1 + 1 = 0, 1 + 0 = 1, 0 + 1 = 1, 0 + 0 = 0. [5] Pariteten (kontrollsumman) lagras över de, i det här fallet, tre diskarna i block. På det här viset kan en utav diskarna gå sönder eller falla bort och datan som var sparad på disken kan automatiskt byggas upp igen av systemet. Checksumman byggs upp igen med hjälp av att läsa av datan på de två andra diskarna igen, datan byggs upp igen genom att läsa checksummorna från det återstående diskarna. Arbetet att läsa ut paritet sköts av processorn vilket försämrar prestandan över hela systemet. Det är dock så att idag när processorerna är datorns snabbaste del kan den räkna ut pariteten utan att användaren märker några dalar i prestandan på maskinen. Där det däremot märks är när du skall bygga upp en förlorad disk, detta tar lång tid och är väldigt processorkrävande när det gäller mjukvaru-raid. Det blir lite snabbare beräkningshastighet när man använder hårdvaru-raid. Detta beror till största delen på RAIDprocessorn som hjälper till i beräkningen och på så vis snabbar upp förloppet. Vid mjukvaru-raid används modekortet eller ett add-on kort och måste förlita 3
sig på mjukvaran för att hantera arrayen, detta gör att om systemet redan är högt belastat så förlorar man läs och skrivhastighet.[6] Vi kommer att installera två virtuella maskiner med Windows Server 2012 R2 via VMware Workstation. Detta är ett krav då Windows konsumentversioner så som Windows 7 och 8.1 inte innehåller stödet för RAID 5 i standardutgåvorna. På dessa maskiner kommer tre, respektive två, stycken 60GB stora SCSIhårddiskar monteras, dessa sparar sina data på var sin fil på en nätverksdisk på datorn där VMware Workstation är installerat. Detta bör tas med i reflektionen över resultatet då datan behöver gå fler steg än vad som vanligtvis sker med en RAID-lösning på en fysisk dator. De virtuella diskarna formateras med NTFSfilsystemet (New Technology File System) som är Windows standardfilsystem och ersätter det gamla FAT32. Tre av diskarna utgör en RAID 5-lösningen och de två återstående diskarna speglas för att utgöra en RAID 1-lösning. Vi kommer mäta varje lösning med tre fristående från varandra bänknings-program för att få en pålitligt resultat. Programmen vi kommer använda är Parkdale, Crystaldiskmark och ATTO [7] [8] [9]. Dessa program har en varierande blockstorlek vilket gör att flera resultat kommer att redovisas. 2 Experiment Experimentet vi har valt att utföra är en prestandamätning på de två olika redundanta RAID-lösningarna som Windows Server erbjuder. Vi har valt att använda Windows Server som tidigare nämnt av den anledningen att Windows inte erbjuder RAID 5 i sina standardutgåvor av konsumentmjukvaran. Vilket operativsystem som väljs kan påverka resultatet av skriv- och läshastighet i MB/s när det gäller mjukvaru-raid. Det är därför inte lämpligt att jämföra resultatet från andra RAID-tester på andra operativsystem med vårt resultat. Den kan också skilja på olika mekaniska diskar som kan ha olika skrivhastighet så återigen, fokusera inte på antal MB/s i det här experimentet. Vad som däremot kan jämföras och fokuseras på är den procentuella skillnaden som med största sannolikhet är den samma oavsett operativsystem eller disktyp. Vi har också valt att köra ett fullständigt grafiskt gränssnitt på maskinerna för att komma så nära en medelväg mellan ett operativsystem riktat till privata konsumenter och ett serversystem riktat till företagskunder. Vi kunde ha valt att köra en Server Core version men problemet var att inga av de gratisversioner på mjukvara som vi valde att använda oss av stödjer Server Core. Med hjälp av de tre olika mjukvarorna beskrivna i introduktionen skall ett snitt på läs och skrivhastigheten utläsas. Detta med hjälp av att mjukvarorna skriver ett block på ett förutbestämd storlek till disken som skapats med hjälp av RAID 1 och RAID 5. När hastigheten av skrivningen är utläst så läser mjukvaran sedan av blocket från disken och dokumenterar också den hastigheten. Av den här 4
jämförelsen kan vi dra slutsatser gällande vilket av de två lösningarna som är snabbast på ett virtuellt system. Flera olika blockstorlekar kommer testas med varje mjukvara för att få ett så tillförlitligt resultat som möjligt. Det kommer med andra ord göras flertalet mätningar på varje RAID-version. Resultatet av varje mjukvarutest analyseras och ett snitt från slutresultatet tas fram. När alla mjukvaror har fått fram ett snitt så läggs dessa ihop och ytterligare ett snitt tas fram utifrån detta. Den datan är det som kommer anses vara det slutgiltiga resultatet för varje kategori. Med hjälp av datan kan vi på ett tillförlitligt sätt jämföra RAID 1 och RAID 5. Resultatet av de bänkningar som vi genomförde bekräftade vår teori om att RAID 1 skulle vara den prestandamässigt bästa lösningen. Följande tabeller och diagram visar resultatet: Figur 1: Textversionen av resultatet av våra mätningar och tester. Nedan följer resultaten presenterade som diagram. 5
Figur 2: Resultatet av mätningarna i ATTO-benchmark. I detta diagram visas ett snittmedelvärde av de tre tester som gjordes. Skrivoch läshastigheterna redovisas i MB/s. Som figuren visar var RAID 1 snabbare än RAID 5 både vad gäller läs- och skrivhastighet. Mest överlägset var RAID 1 vad gäller skrivhastigheten. RAID 1 kom upp i en hastighet på 53MB/s vilket ska jämföras med RAID 5 som bara lyckades prestera 23 MB/s, vilket är mindre än hälften så snabbt som RAID 1. Vad gäller läshastigheten skiljde 11 MB/s mellan de två lagringslösningarna och även här vägde det över till fördel för RAID 1. 6
Figur 3: Resultatet av mätningarna i Crystal disk mark. I detta diagram visas ett snittmedelvärde av de tre tester som gjordes. Skriv- och läshastigheterna redovisas i MB/s. Likt i ATTO-benchmark visade sig RAID 1 vara den snabbare lagringslösningen. I detta test presterade RAID 5 12 MB/s sämre på läshastigheten än i föregående test (ATTO) och slutade på 63 MB/s vilket är 19MB/s långsammare än RAID 1-lösningen. RAID 1 fick dock avsevärt sämre resultat i Crystaldiskmark vad gäller skrivhastigheten där den kom upp i 43 MB/s; detta är dock avsevärt bättre än RAID 5:ans skrivhastighet på 24 MB/s. 7
Figur 4: Resultatet av mätningarna i Parkdale benchmark. I detta diagram visas ett snittmedelvärde av de tre tester som gjordes. Skriv- och läshastigheterna redovisas i MB/s. De två olika RAID-lösningarna presterade som sämst i det tredje programmet som var Parkdale, men fortsatt var ändå RAID 1 den snabbare lagringslösningen. RAID 1 redovisade en genomsnittlig skrivhastighet på 77 MB/s vilket ska jämföras med RAID 5 som kom upp i snitt 55 MB/s. Och skrivhastigheten visade inte på några abnormaliteter vad gäller testvärden. RAID 5 kom här upp i en hastighet på 24 MB/s, vilket är samma värde som i Crystaldiskmark, men kom inte i närheten av RAID 1:s resultat på 41 MB/s. 8
Resultatet visar att på virtuella maskiner så är RAID 1 i särklass det snabbaste alternativet. Både på att läsa och skriva. Det är också det mest ekonomiska alternativet på ett fysiskt system om ett stort lagringsutrymme inte är av högsta prioritet eftersom du endast behöver två fysiska diskar för RAID 1 medan du behöver minst tre fysiska diskar för att upprätta ett RAID 5-system. Att RAID 1 skulle vara den snabbare versionen hade vi som tidigare nämnt inte tvivlat på men inga undersökningar vi läst har pekat på en sådan stor skillnad. Som kan ses i resultatet så är skrivningen nästan dubbelt så snabb vilket är av största betydelse för exempelvis en filserver. Sammanfattningsvis så kan ett speglat system skriva och läsa mycket snabbare än ett RAID 5-system. 3 Slutsatser Experimentet gick i stora drag som vi hade tänkt oss där det visade sig att RAID 1 var den snabbare lösningen. Vad som däremot var förvånande var hur mycket snabbare den var. Det kan ha med den virtuella maskinen att göra. Kanske hade testet sett annorlunda ut på en fysisk maskin. Vi var under laborationens gång medvetna om hur svårt det är att rättvist testa olika lagringslösningar och med flera olika benchmarks försöka få en rättvis bild. De mjukvaror vi använde hade förutbestämda blockstorlekar vilket gjorde att de inte alltid stämde överens med varandra. Detta påverkade resultatet med +/- 1mb/s vilket skulle kunnat öka ännu mer om fler programvaror används. Likt [1] konstaterar även [10] att de flesta vetenskapliga studier som gjorts på lagringslösningar och dess prestanda har gjorts med olika sorters mjukvarulösningar vilket de ser som ett stort problem och något som forskare måste ta till sig. We need to reach agreement on what dimensions to measure, how to measure them, and how to report the results of those measurments. Until we do so, our papers are destined to provide incomparable answers to subtle and complex questions [10]. Samtidigt var inte huvudsyftet med vårt experiment att frambringa den exakta prestandan för RAID 1 och RAID 5 utan att avgöra vilken av de två lösningarna som erbjuder bäst prestanda. Så trots att datan varierade - som det framgår av figur 2,3 och 4 - mellan de olika testerna gav de oss ändå ett och samma huvudsakliga resultat. Oavsett mjukvara pekade all data på att RAID 1 var snabbare än RAID 5 i alla aspekter. I framtiden skulle fler versioner av RAID kunna undersökas och ännu större möda skulle kunna läggas på att förfina testerna, och mer grundligt undersöka mjukvarulösningarnas olika testmetoder för att på så sätt kunna optimera experimentet. 9
Litteraturförteckning [1] E. Z. Avishay Traeger, A nine year study of file system and storage benchmarking, 2008. [Online]. Available: http://www.fsl.cs.sunysb.edu/ docs/fsbench [2] TechNet, Using dynamic disks, 2014. [Online]. Available: http: //technet.microsoft.com/sv-se/library/cc783487%28v=ws.10%29.aspx [3] V. Lovekar, Raid-5 vs raid-1, 2011. [Online]. Available: http: //www.buzzle.com/articles/raid-5-vs-raid-1.html [4] L. Leurs, Raid, 2013. [Online]. Available: http://www.prepressure.com/ library/technology/raid [5] Z. Team, Raid recovery guide, 2014. [Online]. Available: http: //www.raid-recovery-guide.com/raid5-parity.aspx [6] Dator8, Hårdvaru raid server vs mjukvaru-raid server, 2010. [Online]. Available: http://dator8.info/1/2011/09/ hardvara-raid-server-vs-mjukvaru-raid-server.html [7] Crystaldisk, Crystal disk mark, 2014. [Online]. Available: http: //crystalmark.info [8] ATTO-benchmark, Atto-benchmark, 2014. [Online]. Available: http: //attotech.com [9] Parkdale, Parkdale, 2014. [Online]. Available: http://thesz.diecru.eu [10] E. Z. M. S. Vasily Tarasov, Saumitra Bhanage, Benchmarking file system benchmarking: It *is* rocket science, 2008. [Online]. Available: http://dl.acm.org 10