• No results found

En prestanda- och funktionsanalys av Hypervisors för molnbaserade datacenter

N/A
N/A
Protected

Academic year: 2021

Share "En prestanda- och funktionsanalys av Hypervisors för molnbaserade datacenter"

Copied!
95
0
0

Loading.... (view fulltext now)

Full text

(1)

En prestanda- och funktionsanalys av Hypervisors för

molnbaserade datacenter

Examensarbete 15hp - Högskoleingenjörsexamen i datateknik, 180hp

Robin Bard

Simon Banasik

Malmö högskola - Teknik och samhälle Institutionen för datavetenskap

Examinator, Ivan Kruzela Handledare, John Niubo

Uppdragsgivare och extern handledare, Ross Tsagalidis, Försvarsmakten Malmö, Maj 2013

(2)

Sammanfattning

I dagens informationssamhälle pågår en växande trend av molnbaserade tjänster. Vid implementering av molnbaserade tjänster används metoden Virtualisering. Denna metod minskar behovet av antal fysiska datorsystem i ett datacenter. Vilket har en positiv miljöpåverkan eftersom energikonsumtionen minskar när hårdvaruresurser kan utnyttjas till sin fulla kapacitet. Molnbaserade tjänster skapar samhällsnytta då nya aktörer utan teknisk bakgrundskunskap snabbt kan komma igång med verksamhetsberoende tjänster. För tillämpning av Virtualisering används en så kallad Hypervisor vars uppgift är att distribuera molnbaserade tjänster. Efter utvärdering av vetenskapliga studier har vi funnit att det finns skillnader i prestanda och funktionalitet mellan olika Hypervisors. Därför väljer vi att göra en prestanda- samt funktionsanalys av Hypervisors som kommer från de största aktörerna på marknaden. Dessa är Microsoft Hyper-V Core Server 2012, Vmware ESXi 5.1.0 och Citrix XenServer 6.1.0 Free edition. Vår uppdragsgivare är försvarsmakten som bekräftade en stor efterfrågan av vår undersökning. Rapporten innefattar en teoretisk grund som beskriver tekniker bakom virtualisering och applicerbara användningsområden. Genomförandet består av två huvudsakliga metoder, en kvalitativ- respektive kvantitativ del. Grunden till den kvantitativa delen utgörs av ett standardsystem som fastställdes utifrån varje Hypervisors begränsningar. På detta standardsystem utfördes prestandatester i form av dataöverföringar med en serie automatiserade testverktyg. Syftet med testverktygen var att simulera datalaster som avsiktligt påverkade CPU och I/O för att avgöra vilka prestandaskillnader som förekommer mellan Hypervisors. Den kvalitativa undersökningen omfattade en utredning av funktionaliteter och begränsningar som varje Hypervisor tillämpar. Med tillämpning av empirisk analys av de kvantitativa mätresultaten kunde vi fastställa orsaken bakom varje Hypervisors prestanda. Resultaten visade att det fanns en korrelation mellan hur väl en Hypervisor presterat och vilken typ av dataöverföring som den utsätts för. Den Hypervisor som uppvisade goda prestandaresultat i samtliga dataöverföringar är ESXi. Resultaten av den kvalitativa undersökningen visade att den Hypervisor som offererade mest funktionalitet och minst begränsningar är Hyper-V. Slutsatsen blev att ett mindre datacenter som inte planerar en expansion bör lämpligtvis välja ESXi. Ett större datacenter som både har behov av funktioner som gynnar molnbaserade tjänster och mer hårdvaruresurser bör välja Hyper-V vid implementation av molntjänster.

(3)

Abstract

A growing trend of cloud-based services can be witnessed in todays information society. To implement cloud-based services a method called virtualization is used. This method reduces the need of physical computer systems in a datacenter and facilitates a sustainable environmental and economical development. Cloud-based services create societal benefits by allowing new operators to quickly launch business-dependent services. Virtualization is applied by a so-called Hypervisor whose task is to distribute cloud-based services. After evaluation of existing scientific studies, we have found that there exists a discernible difference in performance and functionality between different varieties of Hypervisors. We have chosen to perform a functional and performance analysis of Hypervisors from the manufacturers with the largest market share. These are Microsoft Hyper-V Core Server 2012, Vmware ESXi 5.1.0 and Citrix XenServer 6.1.0 Free edition. Our client, the Swedish armed forces, have expressed a great need of the research which we have conducted. The thesis consists of a theoretical base which describes techniques behind virtualization and its applicable fields. Implementation comprises of two main methods, a qualitative and a quantitative research. The basis of the quantitative investigation consists of a standard test system which has been defined by the limitations of each Hypervisor. The system was used for a series of performance tests, where data transfers were initiated and sampled by automated testing tools. The purpose of the testing tools was to simulate workloads which deliberately affected CPU and I/O to determine the performance differences between Hypervisors. The qualitative method comprised of an assessment of functionalities and limitations for each Hypervisor. By using empirical analysis of the quantitative measurements we were able to determine the cause of each Hypervisors performance. The results revealed that there was a correlation between Hypervisor performance and the specific data transfer it was exposed to. The Hypervisor which exhibited good performance results in all data transfers was ESXi. The findings in the qualitative research revealed that the Hypervisor which offered the most functionality and least amount of constraints was Hyper-V. The conclusion of the overall results uncovered that ESXi is most suitable for smaller datacenters which do not intend to expand their operations. However a larger datacenter which is in need of cloud service oriented functionalities and requires greater hardware resources should choose Hyper-V at implementation of cloud-based services.

(4)

Innehållsförteckning

1. Inledning ... 6

1.1 Bakgrund och syfte ... 6

1.2 Frågeställning ... 7 1.3 Avgränsningar ... 7 1.4 Kravspecifikation för arbetsprocess ... 8 1.5 Metod ... 8 2. Definitioner ... 10 3. Teoretisk grund ... 12 3.1 RAID ... 12 3.2 Virtualisering ... 13 3.3 Hypervisor ... 13 3.3.1 Typ-1 ... 13 3.3.2 Typ-2 ... 14 3.3.3 Hypervisor-arkitektur ... 15 3.3.4 Xen ... 16 3.4 Tekniker för Virtualisering ... 17 3.4.1 Binary Translation ... 18 3.4.2 Para-Virtualisering ... 19 3.4.3 Hardware-assisted Virtualization ... 20

3.4.4 Hardware-assisted Virtualization med Para-Virtualisering ... 20

3.5 Molntjänster ... 20

4. System Under Test ... 23

4.1 Hårdvara ... 23

4.2 Mjukvara ... 24

5. Kvalitativa funktioner och hårdvarukrav ... 25

5.1 Funktionaliteter ... 25

5.2 Hårdvarukrav ... 27

5.2.1 Microsoft Hyper-V Core Server 2012 ... 27

5.2.2 VMware ESXi 5.1.0 ... 27

5.2.3 Citrix XenServer 6.1.0 Free Edition ... 28

(5)

6.1 Testdata ... 29 6.1.1 Mandelbrot serien ... 29 6.1.2 Pseudo-data ... 30 6.1.3 Textsträng ... 31 6.2 Testverktyg ... 31 6.2.1 Testverktyg 1: FTP ... 32 6.2.2 Testverktyg 2: HTTP ... 33 6.2.3 Testverktyg 3: SQL ... 34

6.3 Exportering av statistik från Hypervisor ... 35

6.3.1 Export av mätattribut CPU och I/O från ESXi ... 35

6.3.2 Export av mätattribut CPU och I/O från XenServer ... 36

6.3.3 Export av mätattribut CPU och I/O från Hyper-V ... 37

7. Resultat ... 39

7.1 Kvalitativa resultat av funktionaliteter och begränsningar ... 39

7.2 Kvantitativa mätresultat ... 40

7.2.1 Sammanställning av mätresultat från testverktyg ... 40

7.2.2 Sammanställning av mätresultat från Hypervisor (CPU och Disk I/O) ... 50

8. Diskussion ... 59

8.1 Kvalitativa funktionaliteter och begränsningar ... 59

8.2 Användbarhet... 61

8.3 Hårdvarukrav ... 61

8.4 Kvantitativa prestandaskillnader ... 62

8.5 Ekonomisk hållbarhet och samhällsnytta ... 64

8.6 Miljöpåverkan ... 65

8.7 Slutsats ... 65

9. Vidare forskning ... 67

10. Referenser... 68

(6)

6/95

1. Inledning

1.1 Bakgrund och syfte

I dagens informationssamhälle pågår en växande trend av Software as a Service (on-demand tjänster). Software as a Service är ett lager i den servicemodell som ingår i begreppet molnbaserade tjänster. Orsaken bakom den växande trenden är att företag vill hitta effektiva lösningar och få tillgång till nya tjänster på kort tid.

Cisco har gjort en prognos som visar en utveckling att företag vill flytta sin affärskritiska data till molnbaserade datacenter (Cisco 2012). Cisco hävdar även att på grund av den ökade trenden flyttas en stor mängd av den datatrafik som tidigare befann sig innanför företags nätverk, ut till externa leverantörer (Cisco 2012), vilket också bekräftar att efterfrågan av molnbaserade tjänster ökar.

Vid konstruktion av infrastruktur för molnbaserade tjänster används metoden Virtualisering. Denna metod minskar behovet av antal fysiska datorsystem i ett datacenter. Detta ger en positiv miljopåverkan eftersom energikonsumtionen minskar när hårdvaruresurser kan utnyttjas till sin fulla kapacitet. Vilket i sin tur bidrar till företags ekonomiska och miljömässiga medvetenhet. För tillämpning av Virtualisering används en så kallad Hypervisor vars uppgift är att distribuera tjänster via Virtuella Maskiner (VM).

Efter utvärdering av vetenskapliga studier har vi funnit att det finns skillnader i prestanda och funktionalitet mellan olika Hypervisors. Som tidigare nämnt så ökar företags intresse att flytta sin affärskritiska data till molnbaserade datacenter, därför väljer vi att göra en prestanda- samt funktionsanalys av Hypervisors som kommer från de största aktörerna på marknaden.

Vår uppdragsgivare är Försvarsmakten, som efter granskning av vår förstudie, bekräftade intresset för vår undersökning.

(7)

7/95 1.2 Frågeställning

Vårt examensarbete kommer med hjälp av laborationer och studier att redogöra för

vilken Hypervisor typ-1 som är lämplig gällande prestanda och funktionalitet vid implementation av molntjänster i ett större respektive mindre datacenter.

För att kunna besvara denna huvudfrågeställning bryter vi ner den i en kvalitativ och en kvantitativ underfråga,

Vilka skillnader i funktionalitet finns i Hypervisor typ-1 ?

Hur väl presterar en Hypervisor typ-1 med hänsyn till Disk I/O och CPU vid olika typer av dataöverföringar ?

1.3 Avgränsningar

Vi har valt ut tre Hypervisors som kommer från de största aktörerna på marknaden. Dessa är Microsoft Hyper-V Core Server 2012, Citrix XenServer 6.1.0 Free version och VMware ESXi 5.1.0 (techtarget.com 2011), som alla är “bare-metal” versioner.

Arbetet är avgränsat till en kvalitativ jämförelse av funktioner samt hårdvarukrav som varje Hypervisor tillämpar. Kvantitativ mätning kommer att begränsas till en Virtuell Maskin per Hypervisor, vilket avgränsar prestandatestet med avseende på den maximala kapacitet som en Hypervisor totalt kan leverera. Antalet vCPU som allokerats till varje VM är begränsat till 1, då Citrix XenServer Free version har ett begränsat stöd för multipla vCPU. Denna begränsning har tillämpats för att samtliga Hypervisors ska testas under lika villkor. Strävan efter lika villkor ledde även till att mätning av utnyttjat internminne (RAM) uteblev, då det konstaterades att ESXi var den enda Hypervisor som kunde mäta aktivt utnyttjat internminne.

(8)

8/95 1.4 Kravspecifikation för arbetsprocess

Följande kravspecifikation för arbetsprocessen har fastställts i förstudien.

Krav-nr. Kravspecifikation

K1 Skapa testdata för simulering av datalast på Hypervisor typ-1.

K2 Skapa testverktyg för att utföra kvantitativ mätning på Hypervisor typ-1.

K3 Installation av hårdvaru-RAID, samt hårddiskar på en fysisk server.

K4 Installation av mjukvara, Hypervisor typ-1, Virtuell Maskin, operativsystem.

K5 Konfiguration av Hypervisor typ-1, Virtuell Maskin, operativsystem.

K6 Installation av testverktyg och servertjänst (FTP,HTTP och SQL) på Virtuell Maskin.

K7 Utföra kvantitativa mätningar på Hypervisor typ-1.

K8 Identifiera funktioner och krav som Hypervisor typ-1 tillämpar.

K9 Sammanställa resultat och utföra kvalitativ analys av Hypervisor-funktioner.

K10 Sammanställa resultat och utföra kvantitativ analys av Hypervisor-prestanda.

Tabell 1.1: Kravspecifikation från förstudie.

1.5 Metod

Examensarbetet omfattar en kvalitativ och en kvantitativ metoddel. Där den kvalitativa metoddelen är en studie av vetenskapliga artiklar på en Hypervisors funktioner, krav och begränsningar. I avsnittet resultat redovisas skillnader i funktionalitet och begränsningar mellan Hypervisors. Resultatet ligger till grund för en djupare analys i avsnittet diskussion där en Hypervisors lämplighetsgrad vid implementation av molnbaserade tjänster fastställs.

I den kvantitativa metoddelen samlas mätbar data in genom simulering av dataöverföringar. Detta görs med testverktyg som är specifikt skapade för varje typ av dataöverföring. Datan omvandlas därpå till de enheter som är relevanta för det vetenskapliga området i datakommunikation. Därefter tillämpas statistiska metoder för att framställa tabeller och grafer. Mätningarna sammanställs sedan i avsnittet resultat

(9)

9/95

som ligger till grund för en empirisk analys i diskussion som redovisar orsaken till en viss Hypervisors prestanda och därmed dess lämplighetsgrad i olika typer av dataöverföringar.

Figur 1.2 visar sambandet mellan frågeställningar, metoder och vilka moment som genomförs i arbetet.

(10)

10/95

2. Definitioner

Följande definitioner tydliggör akronymer och begrepp som förekommer i rapporten.

Bare-metal En benämning av Hypervisor som ofta förekommer i

offentliga publikationer, syftar till definitionen Hypervisor

Typ-1, en Hypervisor som kommunicerar direkt med

hårdvara utan mellanliggande operativsystem.

BBWC Battery Backup Write Cache, vilket är en modul som tillåter

aktivering av write cache på ett kontrollerkort.

CLI Command Line Interface är ett gränsnitt som tillåter en

användare att utföra kommando i textform.

CSV Comma Separated Values är en datafil med

kommaseparerade värden, vilket förenklar inläsningen av värden i statistiska sammanhang.

Kernel Den engelska och datavetenskapliga definitionen för ett operativsystems kärna.

On-demand Korrekt översatt "på begäran", syftar till mjukvarutjänster som direkt kan allokeras för kunder i servicemodellen Software as a Service.

Resource pool En samling resurser som kan delas av flera Hypervisors.

RPS Request Per Second, en enhet samt ett mått på antal

(11)

11/95

SUT System Under Test, ett definierat testsystem som tillämpas i

våra tester.

(12)

12/95

3. Teoretisk grund

I denna del av arbetet behandlas en teoretisk grund för en djupare förståelse om varje komponent, vilket är en förutsättning för att kunna förstå bakgrunden i vår kvantitativa och kvalitativa undersökning.

3.1 RAID

RAID, Redundant Array of Independent Disks är en lagringsteknologi som erbjuder olika nivåer av redundans- och prestandafördelar. Teknologin ligger som en hårdvarugrund och är standard i dagens datacenter som erbjuder bland annat molntjänster. Vi har valt att utnyttja denna teknik som bas i vårt SUT1 för att kunna dra nytta av de redundans- och prestandaegenskaper som en RAID-uppsättning erbjuder.

I vårt SUT har vi valt att använda RAID 1. Denna RAID-uppsättning är redundant då data speglas över minst två fysiska hårddiskar och skapar därmed en identisk kopia av all data på varje hårddisk. Om en hårddisk i denna RAID-uppsättning skulle sluta att fungera så byts den ut och därefter synkroniseras datan på nytt från den fungerade till den senast tillagda hårddisken. (Chen, Lee, Gibson, Katz & Patterson 1994, s.152)

RAID 1 erbjuder en prestandaökning i form av att läs och skrivhastighet blir kortare. Anledningen till denna prestandaökning är att vid läsprocesser så väljs alltid den disk som för tillfället har lägst seek time och rotational latency, detta gäller främst för mekaniska håddiskar. Seek time innebär tiden för den mekaniska läsarmen att röra sig till det spår där avläsning eller skrivning ska ske (Daintith & Wright 2008). Rotational

latency innebär den tid det tar för den magnetiska skivan att hinna spinna till korrekt

position, eller med andra ord till den position där data ska lagras eller läsas (Daintith & Wright 2008). Den totala skrivtiden blir därmed beroende av den hårddisk som tar längst tid på sig att skriva med avseende på seek time och rotational latency (Chen et al 1994, s.145-185).

1

(13)

13/95 3.2 Virtualisering

Virtualisering innebär att en virtuell efterliknelse skapas med de egenskaper som en fysisk dator innefattar. I en virtuell miljö delas de fysiska resurser som är tillgängliga vilket tillåter flera operationer att pågå samtidigt. Operationer som exekveras på virtuella maskiner är separerade från underliggande hårdvaruresurser på så sätt att de bara har tillgång till de resurser som allokerats för varje virtuell maskin. (Daintith & Wright 2008)

3.3 Hypervisor

Mjukvarulagret som ligger mellan gästoperativsystem och hårdvara kallas för en

Hypervisor och används för att tillämpa virtualisering. Hypervisorn tillåter parallell

hantering av flera virtuella maskiner. En Hypervisor består av ett mjukvarulager som hanterar den virtuella miljön där virtuella maskiner även kallade gästmaskiner eller

gäster opererar. En Hypervisor övervakar dessa virtuella maskiner och har ansvar för att

dynamiskt allokera den mängd resurser som gästen behöver. Det finns två kategorier av Hypervisor; Typ1 och Typ2. (Graziano, Charles David 2011, s.6-7)

3.3.1 Typ-1

Denna Hypervisor, även kallad Bare-metal opererar på en lägre nivå jämfört med Hypervisor typ-2, se figur 3.1, detta innebär att den exekveras direkt på hårdvara och är inte är beroende av ett mellanliggande operativsystem. Typ-1 ansvarar för allokering av alla tillgängliga resurser till sina gäster så som exempelvis disk, minne , CPU och periferienheter. En fördel med denna typ av Hypervisor är att den inte utgör någon större inverkan på hårdvaruresurser vilket är till nytta i exempelvis ett datacenter där kostnadseffektivitet spelar stor betydelse och resurserna huvudsakligen går till drift av virtuella maskiner. I vissa fall så kan drivrutinstödet vara begränsat vilket kan leda till att en Hypervisor inte kan installeras på all typ av hårdvara, detta är en följd av att de ska vara lättviktiga och inte hämma prestanda. En vanlig funktionalitet bland Typ-1 är att man beviljar särskild prioritet till en virtuell maskin, dess roll blir att ha tillgång till funktioner som tillåter den att hantera andra gäster. Denna gästhanterare kallas oftast för Domain-0 eller Dom0. Typ-1 är vanligast i datacentermiljö och alla Hypervisors som är med i vårt test är av denna typ. (Graziano, Charles David 2011, s.6-7)

(14)

14/95

Figur 3.1 illustrerar en Hypervisor Typ-1 och förbindelsen mellan Hypervisor, virtuella maskiner och hårdvara.

Figur 3.1: Hypervisor Typ-1.2 3.3.2 Typ-2

Denna typ av Hypervisor är beroende av en värd och dess operativsystem för att fungera. Hypervisorn ligger inte direkt över hårdvarulagret utan ett tredjepartsoperativsystem finns mellan hårdvara och Hypervisor, se figur 3.2. Med en Typ-2 kan eventuella drivrutinproblem undvikas och Hypervisorn kan därmed fungera på all typ av hårdvara.

Java Virtual Machine är ett exempel på mjukvara som har en liknande funktion som en Typ-2. JVM tillåter en virtuell maskin att utföra tolkningen av den Java bytekod som skapas vid kompilering av Java-programkod, fördelen med att använda JVM är de samma som för en Typ-2, det vill säga att det underliggande operativsystemet och hårdvara inte har någon betydelse. (Java.com, 2013)

Denna typ av Hypervisor kan även användas för att tillåta körning av ett operativsystem på ett annat befintligt operativsystem. En stor nackdel med Typ-2 är att de kräver väldigt mycket resurser i form av exempelvis CPU och lämpar sig inte i servermiljö som Typ-1 med avseende på kostnadseffektivitet och driftsäkerhet. (Graziano, Charles David 2011, s.6-7)

2

(15)

15/95

Figur 3.2: Hypervisor Typ-2.3

3.3.3 Hypervisor-arkitektur

En Hypervisor kan delas upp i Micro- och Monolith-kernel. Micro-Kernel innebär att basfunktioner som exempelvis hantering av fysiskt minne och processor-schedulering ligger innanför Hypervisorn och komponenter som enhetsdrivrutiner ligger utanför Hypervisorn. En Monolith-baserad Hypervisor innebär att komponenter som enhetsdrivrutiner implementeras i Hypervisorns mjukvara, se figur 3.3. Koden blir mindre för Micro-Kernel varianten av Hypervisor och lämnar ett mindre så kallat foot

print efter sig. Alla Hypervisors i vår undersökning är av typen Micro-kernel (Xen.org,

2013). (Hwang, Dongarra, Fox 2011)

3

(16)

16/95

Figur 3.3: Monolitisk och Micro-kernel.4 3.3.4 Xen

Xen är inte namnet på en specifik tillverkares Hypervisor utan en modell som vissa tillverkare valt att följa, denna modell av Hypervisor-mjukvara utvecklades av Cambridge University, se figur 3.4. I våra test så representeras Xen av Citrix XenServer, och även Microsoft Hyper-V som är skapad efter Xen modellen. (Xen.org, 2013)

En Xen Hypervisor separerar policys och mekanismer genom att tillåta en privilegierad gäst i form av en virtuell maskin med speciella behörigheter att hantera virtualiserings- policys i form av exempelvis tillträdeskontrol till hårdvaruresurser mellan virtuella maskiner. Sedan implementerar Hypervisor-lagret de policys som den privilegierade gästen ställt upp. (Le Cuong 2009, s.12)

Den privilegierade gästen som nämns i stycket ovan kallas för Domain-0 eller Dom0 och de andra gästerna som Hypervisorn hanterar kallas för Domain-U. Dom0 är designad för att ha direkt tillgång hårdvara och hantera hårdvaruenheter, därmed får den ansvar för att allokera och mappa hårdvaruresurser till de övriga icke-priviligierade

gästerna. (Hwang et al 2011)

4

(17)

17/95

Figur 3.4: Xen modell.5

3.4 Tekniker för Virtualisering

X86-operativsystem använder sig av en arkitekur som delar upp applikationer och operativsystems hårdvaruprivilegier i fyra nivåer. Dessa nivåer, ring-0, -1, -2, -3 och -4 illustreras i figur 3.5. När en applikation exekveras i Supervisor mode så har det tillgång till systemets fulla resurser, till exempel samtliga minnesadresser, Supervisor mode symboliseras i figuren av ring-0. Om en applikation exekveras i User mode så är det restrikterat, applikationen har exempelvis inte tillgång till alla minnesadresser. User mode symboliseras av ring-1-3 i figur 3.4.3.1. (Niubo 2012, s.11)

Figur 3.5: Hårdvaruprivelegier i Ringmodell.

Ett operativsystem behöver direkttillgång till de underliggande hårdvaruresurser och kunna utföra priviligerade instruktioner i ring-0, när man virtualiserar detta

5

(18)

18/95

operativsystem så uppstår en problematik i form av att virtualiseringslagret förväntas ligga i ring-0, för att kunna skapa och hantera virtuella maskiner. Ännu en svårighet som uppstår i samband med att virtualisering måste ske i den innersta ringnivån är att vissa känsliga instruktioner inte kan virtualiseras på grund av att de alltid måste utföras i Ring-0. En lösning för dessa problem är att exempelvis använda sig av Binary

Translation, Para-Virtualisering eller Hardware-Assisted Virtualization. (vmware.com,

2007)

3.4.1 Binary Translation

Full virtualisering innebär att operativsystemet inte vet om att det är virtualiserat. Detta betyder att operativsystem virtualiseras utan att dess kärna på något vis behöver modifieras, detta kan uppnås med hjälp av Binary Translation (Xen.org, 2013).

Binary translation innebär en process som översätter exekverbar kod från en maskin till en annan, se figur 3.6. Detta sker samtidigt som koden exekveras på destinationsmaskinen (Ung & Cifuentes 2000, s.1). Denna teknik fångar och virtualiserar exekveringen av vissa känsliga instruktioner, det vill säga instruktioner som måste utföras i Supervisor mode (Hwang et al 2011).

En Hypervisor tillåts att exekveras i ring-0 tack vare Binary Translation samtidigt som det virtualiserade operativsystemet exekveras i en user mode (ring-1-3). Det virtualiserade operativsystemet har dock högre privilegier än de applikationer som i sin tur exekveras på det virtualiserade operativsystemet. (vmware.com, 2007)

Binary translation kan innebära förluster i prestanda på grund av att det tar tid att

utföra, därför kan full virtualisering av I/O intensiva- applikationer anses en utmaning. För att effektivisera Binary translation används en kod-cache för att lagra ofta använda instruktioner, detta leder dock till att mer internminne används. (Hwang et al 2011)

(19)

19/95

Figur 3.6: Binary Translation6

3.4.2 Para-Virtualisering

För att en Hypervisor ska kunna använda sig av para-virtualisering så krävs det att operativsystemets kärna eller kernel modifieras.

Modifikationerna består av att ickevirtualiserbara instruktioner ersätts i ett operativsystem med så kallade Hypercalls som kommunicerar direkt med virtualiseringslagret. Hypervisorn ger tillgång till ett Hypercall gränssnitt för andra kritiska kerneloperationer som minneshantering, avbrottshantering och tidshantering. (vmware.com, 2007). Illustration i figur 3.7.

Eftersom para-virtualisering kräver modifikation av operativsystemet så innebär detta att operativsystem som till exempel Windows inte kan virtualiseras med denna metoden. Däremot finns det modifierade versioner av Linux som tillåter att virtualiseras med para-virtualisering. Para-virtualisering kräver mindre resurser men introducerar andra problem i form av kompabilitetsproblem. (Hwang et al 2011)

6

(20)

20/95

Figur 3.7: Para-Virtualisering7

3.4.3 Hardware-assisted Virtualization

Hardware Assisted Virtualization är en teknik för att uppnå full virtualisering och innebär att man tar hjälp av Intels Virtualization Technology VT-x eller AMD-V för att ge hårdvarustöd vid processornivå för virtualisering. Detta hårdvarustöd tillåter Hypervisorn att ligga under Ring0 och på så sätt fånga privilegierade och känsliga instruktioner. De två teknikerna tillåter därmed att ickevirtualiserbara instruktioner kan fångas och hanteras av en Hypervisor utan att Binary translation och para-virtualisering måste användas. (vmware.com, 2007)

3.4.4 Hardware-assisted Virtualization med Para-Virtualisering

I vissa typer av Hypervisors så utnyttjas en kombination av Hardware Assisted Virtualization med element från para-virtualisering. För att öka prestandan så kan fullt virtualiserade gäster använda speciella para-virtualiserade drivrutiner. Dessa drivrutiner är optimerade för full virtualisering och kringår disk och nätverks emulationer som utförs vid en full virtualisering och tillåter prestanda som är jämförbar eller i vissa fall bättre än vad para-virtualisering kan erbjuda. Samtidigt kan operativsystem vars kernel inte blivit modifierad ändå virtualiseras, exempelvis Windows. (Xen.org, 2013)

3.5 Molntjänster

Begreppet molntjänst är fortfarande i ett utvecklingsstadie och eftersom det finns delade meningar om vad en molntjänst definieras som, väljer vi att beskriva den senaste

7

(21)

21/95

definitionen som gjordes av NIST, National Institute of Standards and Technology 2011. Definitionen innebär att en molntjänst är en modell som via nätverk tillåter på användares begäran tillgång till en samlad “pool” av dator-resurser. Med dator-resurser menas exempelvis; nätverk, servrar, lagring, applikationer och andra tjänster. Dessa dator-resurser kan snabbt distribueras till en kund utan omfattande interaktion med leverantör (NIST, Mell & Grance 2011).

IaaS som relaterar till Virtualisering, definieras som Infrastructure as a Service och är en av de tre servicemodeller som tillhör begreppet molntjänster, se figur 3.8. De servicemodeller som associeras med molntjänster är följande:

● SaaS: Software as a Service. ● PaaS: Platform as a Service. ● IaaS: Infrastructure as a Service.

(NIST, Mell & Grance 2011)

Figur 3.8: Servicemodeller för molntjänster8

8

(22)

22/95

Den servicemodell som vårt SUT främst relateras till är IaaS samt en simulering av PaaS där vi implementerar FTP-, SQL- och HTTP-servertjänster på en VM. Våra testverktyg simulerar SaaS genom att kommunicera med dessa servertjänster.

En vanligt förekommande tjänst bland dagens IT företag är att hyra eller hyra ut datorresurser i form av virtualiserade tjänster. Denna företeelse har fått namnet Infrastructure as a Service.

Mer specifikt så kan IaaS innebära att datacenter tillhandahåller virtuella maskiner för uthyrning, detta innebär att kunder som betalar för IaaS tjänster undkommer utgifter som berör exempelvis drift och underhållskostnader. (Graziano, Charles David 2011, s.8).

IaaS brukar inte medföra långsiktiga åtagande mellan kund och leverantör vilket är ett attraktivt alternativ gentemot drift av en egen infrastruktur. Datorkraft hyrs ut enligt kundens specifika behov och de får själva stå för administration av uthyrda Virtuella Maskiner. (Bhardwaj et al 2010, s.68).

Kunden har inte tillgång till att hantera eller styra den underliggande moln-infrastruktur som ett datacenter använder, exempelvis en Hypervisor, kunden har endast möjlighet att administrera den Virtuella Maskin samt datalagring, distribuerade applikationer och i vissa fall begränsad kontroll över ett fåtal nätverkskomponenter som tillhör den virtuella maskinen. (NIST, Mell & Grance 2011).

IaaS nackdelar befinns främst i frågan om integritet och säkerhet. För att kunna bruka denna servicemodell är kravet att kundens data ligger distribuerad på en extern leverantör. Detta leder ofta in i en subjektiv diskussion om hur säkert det är att lagra data i molntjänster. (Graziano, Charles David 2011, s.8).

Avgränsningen som gjorts i vår frågeställning omfattar prestanda och behandlar således inte området säkerhet och integritet.

(23)

23/95

4. System Under Test

SUT, System Under Test definierar en fastställd standard i form av hårdvara och

mjukvara som appliceras på varje enskild installation av Hypervisor. 4.1 Hårdvara

Som tidigare nämt i avsnitt 3.3.1 har Hypervisor typ-1 ett begränsat stöd för hårdvara. En del i vårt arbete gick därför ut på att samla de hårdvarukrav som varje Hypervisor ställer, se avsnitt 5.1.

De hårdvarukomponenter som uppfyller kraven beskrivs i tabell 4.1.

Servermodell HP Proliant ML330 G6

Moderkort Intel 5500 Chipset

Processor E5506 (4 kärnor, 2.13 Ghz, 4MB L3, 80W)

Minne 6 GB PC3-10600R

Kontrollerkort Smart Array P410 256MB med BBWC

Lagringsenheter 2 x 160GB SATA

Nätverksadapter 1Gb NC326i Ethernet Adapter

Tabell 4.1: Hårdvarukomponenter i System Under Test (SUT).

För att utesluta broadcast paket och andra störningar över Ethernet, placeras en Gigabit Ethernet switch mellan den externa klient som initierar testverktyg och SUT, isolerad från högskolans nätverk. Observera att testverktygen exekveras på SUT, se figur 4.2.

(24)

24/95

Samtliga hårdvarukomponenter finansieras av Malmö högskola. 4.2 Mjukvara

En Hypervisor tilldelas konfiguration enligt tabell 4.3.

Lagringsutrymme9 160 GB

Minne 6 GB

CPU Kärnor 4

Antal VM 1

Samplerate för mätverktyg 20 sekunder

Tabell 4.3: Standardkonfiguration för Hypervisor.

En Virtuell Maskin tilldelas konfiguration enligt tabell 4.4.

Lagringsutrymme 60 GB

Minne 2048 MB

vCPU 1

Operativsystem Windows 7 64-bit Professional

Servertjänster10 Apache (HTTP), Filezilla (FTP) och mySQL (SQL)

Hypervisor drivrutiner11 Ja

Fast storlek på vHD Ja

Tabell 4.4: Standardkonfiguration för Virtuell Maskin.

9 Från logisk RAID enhet 10

Xampp 1.8.1 för Windows

(25)

25/95

5. Kvalitativa funktioner och hårdvarukrav

Denna del av arbetet berör den kvalitativa studie av egenskaper som berör prestanda och funktionalitet.

5.1 Funktionaliteter

Nedan kan man läsa korta beskrivningar om de egenskaper som kommer att jämföras i resultatavsnitt 7.1.

Logisk processor En logisk processor är ett begrepp som förekommer inom hyperthreading. Hyperthreading innebär att en fysisk

processor använder sig av multipla “trådar” för att kunna utföra flera operationer samtidigt, varje tråd får en egen så kallad logisk processor eller även kallad virtuell processor (Kim, 2004, s.10). Detta innebär att en fysisk processor med en fysisk kärna får en logisk processor med två virtuella kärnor. Processorn som används i vårt SUT är en Intel Xeon E5506 och har stöd för Hyperthreading. E5506 har fyra kärnor och fyra trådar vilket ger åtta logiska processorer.

RAM Den maximala/begränsade mängd internminne som en

Hypervisor tillåts utnyttja. Vårt SUT har 6 GB DDR3 RAM.

RAM per VM Den maximala/begränsande mängd fysiskt minne som en Virtuell Maskin tillåts använda.

vCPU per host vCPU står för virtuell cpu och betecknar hur många virtuella cpu enheter som en host maximalt stödjer.

vCPU per VM Betecknar hur många virtuella CPU enheter som varje enskild virtuell maskin stödjer.

(26)

26/95

VM per host Antal maximalt tillåtna Virtuella Maskiner per host.

Live Migration Detta är en funktionalitet som tillåter migrering av Virtuella Maskiner samtidigt som de är aktiva. Denna funktion tillåter virtuella maskiner att flyttas inom samma “resource pool” utan att användare behöver uppleva någon form av

driftstopp. (citrix.com, 2013)

Live Storage Denna funktionalitet tillåter migrering av Virtuella maskiner utanför den lokala resource poolen eller att migrera de hårddiskar som tillhör en VM från en förvaringsplats till en annan. (Xen.org, 2013)

Snapshot Denna funktionalitet tillåter att ta en “stillbild” av systemets momentantillstånd. Detta används för att kunna återgå till ett tidigare läge. (vmware.com, 2013)

VLAN support VLAN skapar en logisk gruppering av switchportar, vilket tillåter att multipla segment kan kommunicera över samma fysiska LAN port. (vmware.com, 2013)

(27)

27/95 5.2 Hårdvarukrav

Nedan följer tabeller med minimikrav för att kunna installera de Hypervisor som ingår i våra tester.

5.2.1 Microsoft Hyper-V Core Server 2012

Systemresurs Minimum

CPU 64-bit x86

CPU Kärnor 1

RAM 512MB

Gigabit Ethernet Nätverkskort 1

SCSI/SAS Kontrollerkort Nej

RAID Funktionalitet Nej

Local Storage Ja

Diskutrymme 8GB

HAV*, Intel VT, AMD-v Ja

* Hardware Assisted Virtualization (microsoft.com, 2013)

5.2.2 VMware ESXi 5.1.0

Systemresurs Minimum

CPU 64-bit x86

CPU Kärnor 2

RAM 2GB/8GB*

Gigabit Ethernet Nätverkskort 1

SCSI/SAS Kontrollerkort Ja

RAID Funktionalitet Nej

Local Storage Ja

Diskutrymme 1GB

HAV, Intel VT, AMD-v Ja

(28)

28/95 5.2.3 Citrix XenServer 6.1.0 Free Edition

Systemresurs Minimum

CPU 64-bit x86

CPU Kärnor 2*

RAM 2 GB

Gigabit Ethernet Nätverkskort 1

SCSI/SAS Kontrollerkort Ja

RAID Funktionalitet Nej

Local Storage Ja

Diskutrymme 16 GB

HAV, Intel VT, AMD-v Ja

(29)

29/95

6. Kvantitativa mätningar

Denna del av arbetet behandlar valet av testdata och konstruktion av testverktyg för kvantitativ mätning på varje Hypervisor.

6.1 Testdata

För att kunna utföra våra tester måste först typen av testdata fastställas. Det är av stor vikt att testdatan har relevans till vår prestandaanalys och påverkar komponenterna CPU och Disk I/O. För att kunna besvara vår frågeställning om hur väl en Hypervisor presterar med hänsyn till CPU och Disk I/O vid dataöverföringar, har vi genom noggrann granskning av vetenskapliga artiklar i vår förstudie hittat relevanta servertjänster att applicera vår testdata på. Dessa servertjänster använder protokollen HTTP, FTP och databasspråket SQL och simulerar det lager som i servicemodellen kallas för PaaS, Platform as a Service.

6.1.1 Mandelbrot serien

Vid mätning av dataöverföring via HTTP protokollet har vi beslutat att använda testdata som medvetet belastar CPU med komplexa matematiska beräkningar. Denna testdata utnyttjar mandelbrot serien som är uppkallad efter den franske matematikern Benoît B. Mandelbrot. Serien används för att iterativt transformera reella och imaginära tal för att bygga upp en fraktal. Noggrannheten på denna fraktal kan likställas med antal iterationer n, vilket också bestämmer den totala tid som förflutit för konstruktion av fraktalen.

Vår fraktal är skapad av Ken Lo som har en akademisk bakgrund i rymdfysik och är ett exempel på hur mandelbrot serien kan skapas med programmeringsspråket PHP (Lo, 2007). Efter laboration av mandelbrotfraktalen har vi beslutat att begränsa antalet iterationer n till 40, och fraktalens storlek till 80x80 pixlar, vilket ger ett tidsintervall som är tillräckligt för att mäta prestanda. Se källkod i bilaga 1.

(30)

30/95 6.1.2 Pseudo-data

Vid mätning av dataöverföring via FTP protokollet har vi beslutat att använda testdata som medvetet belastar Disk I/O med stor mängd data. Denna testdata är till skillnad från HTTP mätningen inte CPU-intensiv, då dess beräkningar överlåtes till processorn på kontrollerkortet i den fysiska servern (Hsieh, Stanton, Ali 2002, s.2).

För att skapa testdatan använder vi funktionen FSEEK som ingår i grundpaketet för programmeringsspråket PHP. Syntax enligt PHP.NET visas i figur 6.2.

int fseek ( resource $handle , int $offset [, int $whence = SEEK_SET ] )

handle

A file system pointer resource that is typically created using fopen().

offset

The offset.

To move to a position before the end-of-file, you need to pass a negative value in offset and set

whence to SEEK_END. whence

whence values are:

SEEK_SET - Set position equal to offset bytes.

SEEK_CUR - Set position to current location plus offset.

SEEK_END - Set position to end-of-file plus offset.

Figur 6.2: Syntax för fseek.

I denna mätning är filstorleken på testdata avgörande för att bestämma en Hypervisors kvantitativa prestanda. Efter laboration med filstorlek, beslutade vi att begränsa storleken till 500,000,000 bytes ≈ 476.84 megabytes vilket ger ett tidsintervall som är tillräckligt för att kvantitativt mäta prestanda. Inparametrar till funktionen FSEEK, samt filskrivning presenteras i figur 6.3.

(31)

31/95 $f = fopen('500.mb', 'wb');

fseek($f, 0.5 * 1000 * 1000 * 1000, SEEK_SET); fwrite($f, 'after 500 MB');

fclose($f);

Figur 6.3: Tillämpade kommandon i php för 500,000,000 bytes testdata. 6.1.3 Textsträng

Vid mätning av dataöverföring via SQL protokollet har vi beslutat att använda testdata som medvetet belastar både disk I/O och CPU men som även begränsas av den mängd RAM som är allokerat för en VM och hur effektivt en Hypervisor hanterar minnesresurser (Yao 2010). För att simulera ett verkligt scenario har vi valt testdata som består av en textsträng och en primärnyckel n med autoindex, se tabell 6.4.

ID Text

n thequickbrownfoxjumpsoverthelazydog

Tabell 6.4: Tesdata för SQL-INSERT.

Antalet rader som skrivs och läses till och från en databas är avgörande för att kvantitativt mäta prestanda. Efter laboration med antalet rader, har vi beslutat att använda 25000 rader, vilket ger ett tidsintervall som är tillräckligt för att mäta prestanda.

6.2 Testverktyg

I förstudien gjordes en utvärdering av vetenskapliga artiklar för att bedöma om det fanns testverktyg som kunde mäta dataöverföringar kvantitativt. Organisationen SPEC -

Standard Performance Evaluation Corporation, har tillverkat ett produktpaket som

kallas SPECvirt_sc2010 (spec.org, 2013). Detta produktpaket är sammanställt för att utföra en prestandaanalys av Hypervisors vid olika typer av dataöverföringar. Hårdvarukraven för detta produktpaket visade sig ligga långt över det SUT som vi har tillgång till. Det fanns heller inte några övriga verktyg som kvantitativt kunde mäta dataöverföringar och presentera dessa vetenskapligt med tabeller och grafritning. Genom att analysera testprocessen som SPECvirt_sc2010 använder kunde vi skapa egna

(32)

32/95

testverktyg som visar likartade resultat. Den faktor som med noggrannhet krävs för att vetenskapligt mäta dataöverföringar är tiden t.

PHP är det programmeringsspråk som vi valt att skapa våra testverktyg i. Med motivering att det finns ett utvecklat klassbibliotek för grafritning kallad jpgraph, och stöd för de protokoll som ingår i våra mätningar. Det finns även en funktion för att noggrant mäta tiden i mikrosekunder kallad microtime (PHP.NET, 2013). Eftersom vi valt att skapa våra egna testverktyg kan vi med fördel matematiskt fastställa rätt typ av enheter.

6.2.1 Testverktyg 1: FTP

Testverktyget utvecklas i syfte att vetenskapligt mäta kvantitativ prestanda på dataöverföringar via FTP protokollet. De komponenter som implementeras och anses vara relevanta för vår mätning är;

● Identifiering av Hypervisor ● Start-funktion ● Starttid ● FTP-funktion ● Räknare ● Sluttid ● Tabeller ● Grafritning

För att kunna hantera den stora mängd data som mäts upp vid en dataöverföring används datastrukturen array. Testverktyget tillämpar en inbyggd FTP-funktion i PHP för att sända och kontrollera mängden överförd data. Insamlingen sker genom iteration, som vid villkoret per sekund lagrar tidpunkten t och storleken på aktuell överförd data

kB. Samtidigt beräknas enheten kBps, genom att beräkna skillnaden av totalt överförd

data mellan två tidpunkter.

När testet når sitt slut beräknas den genomsnittliga hastigheten, samt den totala förflutna tiden. Därefter skapas tabeller och grafer. Se källkod i bilaga 5.

(33)

33/95 6.2.2 Testverktyg 2: HTTP

Testverktyget utvecklas i syfte att vetenskapligt mäta kvantitativ prestanda på dataöverföringar via HTTP protokollet. Testverktyget delas in i två delar. Den första delen består av en mjukvara som heter apache-bench, som är utvecklat av stiftelsen The Apache Software Foundation (apache.org, 2013). Apache-bench är framtaget för att

prestandatesta hur många gånger per sekund (RPS) ett webbscript kan läsas.

För att minimera felmarginaler i tiden t automatiseras hela testprocess del ett genom att och lagra start- och sluttiden med hjälp av ett batch-script, se bilaga 3. I apache-bench testet anger vi med parametern -n att 1000 förfrågningar skall skickas mot testdatan fractal.php.

För att simulera ett verkligt scenario har vi dessutom valt att skicka multipla förfrågningar uppdelat på 10 test som tabell 6.5 visar. Observera att i verkligheten kommer inte förfrågningarna från en och samma källa.

Test nr Multipla förfrågningar 1 10 2 20 3 30 4 40 5 50 6 60 7 70 8 80 9 90 10 100

Tabell 6.5: Apache-bench test-table.

Testprocess del 2 tillämpar PHP funktionalitet. De komponenter som implementeras i del två och anses vara relevanta för vår mätning är;

(34)

34/95 ● Identifiering av Hypervisor

● Start-funktion

● Funktion för att samla mätvärden genererade av apache-bench ● Räknare

● Tabeller

Eftersom apache-bench i testprocess del ett genererar 10 olika testfall, skapade vi funktioner som samlar in mätvärden Request per second RPS och den förflutna tiden t från varje enskilt testfall. Insamlingen sker genom iteration, och löper med villkoret

$count < 10, där 10 är det sista testfallet.

Genom att summera alla värden i array tid, får vi ut den totala tiden för alla testfall. Eftersom vi vet att det är 10 testfall kan vi även summera array RPS och dividera med 10, så får vi ut den genomsnittliga hastigheten RPS över alla test. Därefter skapas tabeller och grafer. Se källkod i bilaga 4.

6.2.3 Testverktyg 3: SQL

Testverktyget utvecklas i syfte att vetenskapligt mäta kvantitativ prestanda på dataöverföringar via SQL protokollet. De komponenter som implementeras och anses vara relevanta för vår mätning är;

● Identifiering av Hypervisor ● Start-funktion

● Starttid

● Skapa ny tabell i databas ● Insert-funktion ● Select-funktion ● Räknare ● Sluttid ● Tabeller ● Grafritning

(35)

35/95

Testverktyget skapar en ny tabell vid varje körning, detta för att säkerställa att tabellen inte redan innehåller rader. Vilket annars kan påverka prestanda negativt. Därefter skrivs testdatan in i databasen, och skapar 25000 rader. Vid detta tillfälle används en iteration som lagrar tiden t och antal skrivningar vid tidpunkten i två separata arrays. När 25000 rader är inmatade i tabellen skrivs den förflutna tiden ut för Insert. Därefter påbörjas en ny iteration som lagrar tiden t och antal utläsningar vid tidpunkten i två separata arrays. När 25000 rader är utlästa från tabellen skrivs den förflutna tiden ut för

SELECT.

När testet når sitt slut beräknas antal skrivningar per sekund och antal utläsningar per

sekund, samt den totala förflutna tiden. Därefter skapas tabeller och grafer. Se källkod i

bilaga 2.

6.3 Exportering av statistik från Hypervisor

För att kunna genomföra våra tester så krävdes undersökningar för att reda ut hur relevanta mätvärden skulle extraheras. Hypervisors i vår undersökning erbjöd olika bra möjligheter för mätningsutförandet. Kravet för mätningarna var att relevanta mätvärden i form I/O read, I/O write och CPU skulle kunna insamlas och sedan extraheras i ett hanterbart format. Ett annat viktigt värde som samlades in var tidsstämplar från varje Hypervisor så att I/O och CPU kunde jämföras med de resultat from producerades av testverktygen. En begränsning som påverkade hur vi valde att samla in mätvärden var att VMware's mjukvaruklient V-Sphere endast kunde hämta mätvärde från Hypervisorn med hastigheten var tjugonde sekund. Detta visade omöjligt att modifiera (vmware.com, 2013). Efter studier av vetenskapliga artiklar visade det sig att en kort samplerate på exempelvis 1 sekund, teoretiskt skulle kunna påverka prestanda negativt (technet.com, 2009). Vi ansåg på grund av risken och begränsningen att vårt SUT skulle använda en

samplerate på tjugo sekunder för mätning av CPU och I/O.

6.3.1 Export av mätattribut CPU och I/O från ESXi

Via mjukvaruklienten VMware V-Sphere kunde Hypervisor ESXi administreras och en stor mängd mätattribut och mätvärden kunde observeras. V-Sphere har ett inbyggt stöd för att extrahera mätvärden till en excelfil vilket gav lättmanipulerbar data som direkt kunde formateras till våra egna graf-verktyg.

(36)

36/95

De mätattribut som användes för ESXi visas i tabell 6.6.

Typ Mätattribut Enhet

I/O “Read rate”, “Write Rate” kBps

CPU CPU Usage %

Tabell 6.6: Mätattribut för ESXi.

6.3.2 Export av mätattribut CPU och I/O från XenServer

Citrix erbjuder en mjukvaruklient för att fjärrhantera Hypervisorn kallad XenCenter. Statistik över prestanda fanns tillgängligt men möjligheten att extrahera mätvärden till

CSV eller andra filformat saknades, vilket ledde till att andra alternativ utforskades.

Det första verktyget som undersöktes var SFlow som samlar in mätvärden och sedan skickar vidare dessa till en utomstående klient kallad collector. SFlow hade möjligheten att begränsa samplerate och gav en bättre upplösning på mätvärden än vad som kunde observeras i XenCenter tack vare dess breda konfigurationsmöjligheter. SFlow saknade exporteringsmöjligheter i form av export till excel- eller CSV. Verktyget är en tredje-parts applikation som kräver installation av mjukvara på både Hypervisor och en separat fristående maskin. Detta verktyg framkallar en osäkerhet då mätvärden överförs via TCP/IP och inte lagras lokalt, samt att Hypervisor prestanda kan påverkas negativt då

SFlow installeras på Dom-0 gästen (citrix.com, 2012).

DSTAT, som är ett väl utbrett verktyg för Linux distributioner var det andra verktyget

som undersöktes. DSTAT erbjuder extrahering av mätvärden via Linux kommandon. Men även denna är en tredje-parts applikation. Efter laboration med verktyget valdes även denna insamlingsmetod bort eftersom prestanda kunde påverkas negativt då

samplerate var låst till en sekund.

Efter kontakt med företaget Citrix blev vi hänvisade till en uppdatering för XenServer som kallas Performance Monitoring Enhancements Pack for XenServer 6.1 (Citrix.com,

(37)

37/95

2012). Denna uppdatering inkluderade ett nytt verktyg, RRD2CSV, som innehåller en utökning med fler mätattribut, inställning av samplerate samt export till CSV. Verktyget är utvecklat av Citrix och således ingen tredje-parts produkt. Dokumentationen till RRD2CSV beskriver alla tillgängliga mätattribut. De mätattribut som användes för XenServer visas i tabell 6.7.

Typ Mätattribut Enhet

I/O io_throughput_read_4e467cec, io_throughput_write_4e467cec

MBps

CPU cpu_avg %

Tabell 6.7: Mätattribut för XenServer.

För att starta insamlingen med en samplerate på 20 sekunder exekverades följande kommando i XenServer CLI:

RRD2CSV -n -s 20 io_throughput_read_4e467cec io_throughput_write_4e467cec cpu_avg > test.csv

6.3.3 Export av mätattribut CPU och I/O från Hyper-V

För att tillåta fjärrhantering av Hyper-V så installeras följande mjukvara på klientdatorn; Remote Server Administration Tools for Windows 7 with Service Pack 1

(SP1). I detta utgångsläge hade vi utan svårigheter kunnat fjärrhantera Hypervisorn

om den hade varit medlem i en Windows domän, där rättigheter styrs centralt. Men eftersom vi valt att installera Hyper-V i en isolerad miljö utan domän, kunde vi initialt inte fjärrhantera Hypervisorn. Utöver Remote Server Administration Tools krävdes dessutom HVRemote.wsf som är ett cscript för att lägga till behörighet och aktivera fjärrhantering på en Hyper-V Core Server. Eftersom Hyper-V Core Server är en Hypervisor av typen 1, saknas mätverktyget Performance Monitor som är ett standardiserat verktyg i Microsoft Windows för att mäta prestanda.

(38)

38/95

Istället används Hyper-V’s CLI och typeperf för att identifiera vilka mätattribut som går att använda. Dessa kan skrivas till en textfil för att vidare bestämma vilka som skall användas. Detta gjordes med hjälp av kommandot:

typeperf /q | find "Hyper-V" > countershyperv.txt

Relevanta mätattribut identifierades och textfilen redigerades för att endast innehålla insamling av CPU och I/O. För att konfigurera en mätning på Hyper-V används raden:

logman.exe create counter HyperVCounters -f bin -cf countershyperv.txt -max 200 -si 20

-si 20 gav en sampelrate på 20 sekunder.

För att starta mätningen skrevs följande rad:

logman start HyperVCounters

För att upphöra mätningen skrevs följande:

logman stop HyperVCounters

De mätattribut som användes för Hyper-V Core Server 2012 visas i tabell 6.8.

Typ Mätattribut Enhet

I/O PhysicalDisk(_total)Disk Read, PhysicalDisk(_total)Disk Write

Bps

CPU Hyper-V Hypervisor Logical Processor(_Total)\% Total Run Time

%

(39)

39/95

7. Resultat

Detta avsnitt behandlar kvalitativa och kvantitativa resultat av de studier och mätningar som genomförts i arbetet.

7.1 Kvalitativa resultat av funktionaliteter och begränsningar

I denna del av rapporten sammanställs de kvalitativa funktioner och begränsningar som varje Hypervisor tillämpar.

Tabell 7.1 redovisar ett sammanställt resultat av funktionaliteter och egenskaper som behandlas i avsnitt 5.1 respektive avsnitt 3. Diskussion kring resultatet kommer att utvecklas vidare i avsnitt 8.1.

Funktioner/ begränsningar

Microsoft Hyper-V Core

Server 2012 VMware ESXi 5.1

Citrix XenServer 6.1 Free edition Logiska processorer 320 160 160 RAM 4 TB 32 GB 1 TB vRAM 1 TB Obegränsad 128 GB vCPU/Host 2048 2048 900 vCPU/VM 64 8 16 VM/Host 1024 512 150

Required disk space 8 GB 1 GB 16 GB

Custom kernel Nej Ja Nej

Export av statistik Ja Ja Ja12

Stöd för tredje-parts

tillägg Ja Nej Ja

Live Migration Ja Nej Ja

Live Storage Ja Nej Nej

Snapshot Ja Ja Ja

VLAN Ja Ja Ja

Micro-kernel Ja Ja Ja

Binary translation Nej Ja Nej

HAV Ja Ja Ja

PV on HAV Ja Ja Ja

Tabell 7.1: Jämförelse av funktioner och begränsningar.

12

(40)

40/95 7.2 Kvantitativa mätresultat

Presentation av de kvantitativa mätresultaten och en kort beskrivning om varje testfall. 7.2.1 Sammanställning av mätresultat från testverktyg

Dessa mätresultat är en sammanställning av tidigare utförda mätresultat från testverktygen, se bilaga 6-8.

(41)

41/95

Figur 7.2 visar den jämförbara genomsnittliga dataöverföringshastigheten (kB/s) med testverktyg 1: FTP. Grön färg symboliserar en positiv ökning av dataöverföringshastighet i förhållande till föregående Hypervisor. Tabell 7.3 redovisar resultatet i tabellform. Fetstilt symboliserar den Hypervisor med högsta genomsnittliga dataöverföringshastighet.

Figur 7.2: Jämförbar genomsnittlig dataöverföringshastighet med testverktyg 1: FTP.

Hypervisor Genomsnittlig överföringshastighet (kB/s) Ökning (kB/s)

Hyper-V Core Server 2012 4354 287

VMware ESXi 5.1.0 4067 92

XenServer 6.1.0 Free Edition 3975 0

(42)

42/95

Figur 7.4 visar den totala tid som förflutit (s) vid dataöverföringen med testverktyg 1: FTP. Röd färg symboliserar en negativ ökning av tiden i förhållande till föregående Hypervisor. Tabell 7.5 redovisar resultatet i tabellform. Fetstilt symboliserar den Hypervisor med kortast tid vid dataöverföringen.

Figur 7.4: Den totala tid som förflutit (s) vid dataöverföringen med testverktyg 1: FTP.

Hypervisor Förfluten tid (s) Ökning (s)

Hyper-V Core Server 2012 112 0

VMware ESXi 5.1.0 120 8

XenServer 6.1.0 Free Edition 123 3

(43)

43/95

Figur 7.6 visar den jämförbara genomsnittliga dataöverföringen "förfrågningar per sekund" (RPS) med testverktyg 2: HTTP. Grön färg symboliserar en positiv ökning av RPS i förhållande till föregående Hypervisor. Tabell 7.7 redovisar resultatet i tabellform. Fetstilt symboliserar den Hypervisor med högsta RPS vid dataöverföringen.

Figur 7.6: Jämförbar genomsnittlig RPS med testverktyg 2: HTTP.

Hypervisor RPS Ökning

VMware ESXi 5.1.0 3.93 0.03

Hyper-V Core Server 2012 3.90 0.47

XenServer 6.1.0 Free Edition 3.43 0

(44)

44/95

Figur 7.8 visar den totala tid som förflutit (s) vid dataöverföringen "förfrågningar per sekund" (RPS) med testverktyg 2: HTTP. Röd färg symboliserar en negativ ökning av tiden i förhållande till föregående Hypervisor. Tabell 7.9 redovisar resultatet i tabellform. Fetstilt symboliserar den Hypervisor med kortast tid vid dataöverföringen.

Figur 7.8: Den totala tid som förflutit (s) vid dataöverföringen med testverktyg 2: HTTP.

Hypervisor Förfluten tid (s) Ökning (s)

VMware ESXi 5.1.0 2544 0

Hyper-V Core Server 2012 2566 22

XenServer 6.1.0 Free Edition 2919 353

(45)

45/95

Figur 7.10 visar den jämförbara genomsnittliga dataöverföringen vid "antal rader som läses från databasen per sekund" (SELECT/s) med testverktyg 3: SQL. Grön färg symboliserar en positiv ökning av antalet rader som läses från databasen per sekund i förhållande till föregående Hypervisor. Tabell 7.11 redovisar resultatet i tabellform. Fetstilt symboliserar den Hypervisor med högst antal rader vid utläsning från databasen per sekund vid dataöverföringen.

Figur 7.10: Jämförbar genomsnittlig SELECT/s med testverktyg 3: SQL.

Hypervisor SELECT/s Ökning (rader)

Hyper-V Core Server 2012 4680 168

VMware ESXi 5.1.0 4512 586

XenServer 6.1.0 Free Edition 3926 0

(46)

46/95

Figur 7.12 visar den totala tid som förflutit (s) vid dataöverföringen "antalet rader som läses från databasen per sekund" (SELECT/s) med testverktyg 3: SQL. Röd färg symboliserar en negativ ökning av tiden i förhållande till föregående Hypervisor. Tabell 7.13 redovisar resultatet i tabellform. Fetstilt symboliserar den Hypervisor med kortast tid vid dataöverföringen.

Figur 7.12: Den totala tid som förflutit (s) vid dataöverföringen SELECT/s med testverktyg 3: SQL.

Hypervisor Förfluten tid (s) Ökning (s)

VMware ESXi 5.1.0 5.01 0

Hyper-V Core Server 2012 5.15 0.14

XenServer 6.1.0 Free Edition 5.99 0.84

(47)

47/95

Figur 7.14 visar den jämförbara genomsnittliga dataöverföringen vid "antalet rader som skrivs till databasen per sekund" (INSERT/s) med testverktyg 3: SQL. Grön färg symboliserar en positiv ökning av antalet rader som skrivs till databasen per sekund i förhållande till föregående Hypervisor. Tabell 7.15 redovisar resultatet i tabellform. Fetstilt symboliserar den Hypervisor med högst antal rader vid skrivning till databasen per sekund vid dataöverföringen.

Figur 7.14: Jämförbar genomsnittlig INSERT/s med testverktyg 3: SQL.

Hypervisor INSERT/s Ökning (rader)

XenServer 6.1.0 Free Edition 37 5

VMware ESXi 5.1.0 32 6

Hyper-V Core Server 2012 26 0

(48)

48/95

Figur 7.16 visar den totala tid som förflutit (s) vid dataöverföringen "antalet rader som skrivs till databasen per sekund" (INSERT/s) med testverktyg 3: SQL. Röd färg symboliserar en negativ ökning av tiden i förhållande till föregående Hypervisor. Tabell 7.17 redovisar resultatet i tabellform. Fetstilt symboliserar den Hypervisor med kortast tid vid dataöverföringen.

Figur 7.16: Den totala tid som förflutit (s) vid dataöverföringen INSERT/s med testverktyg 3: SQL.

Hypervisor Förfluten tid (s) Ökning (s)

XenServer 6.1.0 Free Edition 678 0

VMware ESXi 5.1.0 787 109

Hyper-V Core Server 2012 972 185

(49)

49/95

Figur 7.18 visar den totala tid som förflutit (s) vid dataöverföringarna INSERT och SELECT med testverktyg 3: SQL. Röd färg symboliserar en negativ ökning av tiden i förhållande till föregående Hypervisor. Tabell 7.19 redovisar resultatet i tabellform. Fetstilt symboliserar den Hypervisor med kortast tid vid dataöverföringen.

Figur 7.18: Den totala tid som förlutit (s) vid dataöverföringarna INSERT och SELECT med testverktyg 3: SQL.

Hypervisor Förfluten tid (s) Ökning (s)

XenServer 6.1.0 Free Edition 684 0

VMware ESXi 5.1.0 792 108

Hyper-V Core Server 2012 977 185

Tabell 7.19: Den totala tid som förlutit (s) vid dataöverföringarna INSERT och SELECT med testverktyg 3: SQL.

(50)

50/95

7.2.2 Sammanställning av mätresultat från Hypervisor (CPU och Disk I/O) Dessa mätresultat är sammanställda från mätningar som är utförda lokalt på varje Hypervisor, och exekverades parallellt vid körning av testverktyg. Den förflutna tiden stämmer överrens med överföringarna från testverktygen i avsnitt 7.2.1. Denna sammanställning används i syfte att påvisa en Hypervisors prestandaresultat.

Figur 7.20 visar CPU-utnyttjande i procent över tiden på en Hypervisor vid dataöverföringen med testverktyg 1: FTP. Blå färg symboliserar Hyper-V Core Server 2012, röd färg symboliserar VMware ESXi 5.1.0 och grön färg symboliserar XenServer 6.1.0. 25% motsvarar 100% utnyttjande av 1 vCPU.

(51)

51/95

Figur 7.21 visar I/O läs-utnyttjande i kBps över tiden på en Hypervisor vid dataöverföringen med testverktyg 1: FTP. Blå färg symboliserar Hyper-V Core Server 2012, röd färg symboliserar VMware ESXi 5.1.0 och grön färg symboliserar XenServer 6.1.0. Mätvärdena hämtas från kontrollerkortets mätattribut.

(52)

52/95

Figur 7.22 visar I/O skriv-utnyttjande i kBps över tiden på en Hypervisor vid dataöverföringen med testverktyg 1: FTP. Blå färg symboliserar Hyper-V Core Server 2012, röd färg symboliserar VMware ESXi 5.1.0 och grön färg symboliserar XenServer 6.1.0. Mätvärdena hämtas från kontrollerkortets mätattribut.

(53)

53/95

Figur 7.23 visar CPU-utnyttjande i procent över tiden på en Hypervisor vid dataöverföringen med testverktyg 2: HTTP. Blå färg symboliserar Hyper-V Core Server 2012, röd färg symboliserar VMware ESXi 5.1.0 och grön färg symboliserar XenServer 6.1.0. 25% motsvarar 100% utnyttjande av 1 vCPU.

(54)

54/95

Figur 7.24 visar I/O läs-utnyttjande i kBps över tiden på en Hypervisor vid dataöverföringen med testverktyg 2: HTTP. Blå färg symboliserar Hyper-V Core Server 2012, röd färg symboliserar VMware ESXi 5.1.0 och grön färg symboliserar XenServer 6.1.0. Mätvärdena hämtas från kontrollerkortets mätattribut.

(55)

55/95

Figur 7.25 visar I/O skriv-utnyttjande i kBps över tiden på en Hypervisor vid dataöverföringen med testverktyg 2: HTTP. Blå färg symboliserar Hyper-V Core Server 2012, röd färg symboliserar VMware ESXi 5.1.0 och grön färg symboliserar XenServer 6.1.0. Mätvärdena hämtas från kontrollerkortets mätattribut.

(56)

56/95

Figur 7.26 visar CPU-utnyttjande i procent över tiden på en Hypervisor vid dataöverföringen med testverktyg 3: SQL. Blå färg symboliserar Hyper-V Core Server 2012, röd färg symboliserar VMware ESXi 5.1.0 och grön färg symboliserar XenServer 6.1.0. 25% motsvarar 100% utnyttjande av 1 vCPU.

Figur 7.26: CPU-utnyttjande i procent över tiden vid dataöverföringen med testverktyg 3: SQL. .

(57)

57/95

Figur 7.27 visar I/O läs-utnyttjande i kBps över tiden på en Hypervisor vid dataöverföringen med testverktyg 3: SQL. Blå färg symboliserar Hyper-V Core Server 2012, röd färg symboliserar VMware ESXi 5.1.0 och grön färg symboliserar XenServer 6.1.0. Mätvärdena hämtas från kontrollerkortets mätattribut.

(58)

58/95

Figur 7.28 visar I/O skriv-utnyttjande i kBps över tiden på en Hypervisor vid dataöverföringen med testverktyg 3: SQL. Blå färg symboliserar Hyper-V Core Server 2012, röd färg symboliserar VMware ESXi 5.1.0 och grön färg symboliserar XenServer 6.1.0. Mätvärdena hämtas från kontrollerkortets mätattribut.

Figure

Figur  1.2  visar  sambandet  mellan  frågeställningar,  metoder  och  vilka  moment  som  genomförs i arbetet
Figur 3.1 illustrerar en Hypervisor Typ-1 och förbindelsen mellan Hypervisor, virtuella  maskiner och hårdvara
Figur 3.3: Monolitisk och Micro-kernel. 4
Figur 3.6: Binary Translation 6
+7

References

Related documents

(d) If any change under this clause causes an increase or decrease in the Contractor's cost of, or the time required for, the performance of any part of the work under this contract,

Från de svar som pedagogerna på förskolan Skogen ger, växer det fram liknande beskrivningar kring hur de ser på deras pedagogiska förhållningssätt som sedan lägger en grund för

Av den bevarade prenumerationssedeln till Fröjas Tempel (Afzelius, s. Handlingen utspelar sig en höstnatt 1764 på krogen Rosenlund vid Dantobommen, där båtsmän

ståelse för psykoanalysen, är han också särskilt sysselsatt med striden mellan ande och natur i människans väsen, dessa krafter, som med hans egna ord alltid

Jag har sökt på ord som på ett explicit sätt kan tänkas handla om frågor som rör genus, kön eller feminism och som kan kopplas till animata referenter: kille, tjej, manlig,

Men då ganska många verkar uppfatta ordet som bara en synonym till det äldre mödoms- hinna, och åtminstone en informant ger ett svar som indikerar att hen har en förståelse som

Once more, Kalmar became the hub in a great union, this time uniting the Kingdom of Sweden and the Polish-Lithuanian Rzeczpospolita, Unfortunately, this brave experience

THE ADMINISTRATIVE BOARD OF KALMAR COUNTY'S ROLE AND EXPERIENCES CONCERNING CONTAMINATED SITES Jens Johannisson Administrative Board of Kalmar County, Sweden.. THE ROLE OF