Sinnvolle Größen von virtuellen Maschinen in Verbindung mit Azure


Wenn man mit virtuellen Maschinen in Azure arbeitet, gibt es mittlerweile eine Unzahl von Maschinen zur Auswahl. Für Westeuropa gibt es aktuell 63 verschiedene Konstellationen.

(Get-AzureRmVMSize -Location westeurope).length

Wenn man einen Überblick über die Welt haben möchte, dann kann man dies mittels diesem Aufruf bekommen:

Get-AzureRmLocation| % {$_.DisplayName; (Get-AzureRmVMSize -Location $_.location).length}

East Asia
39
Southeast Asia
49
Central US
49
East US
53
East US 2
49
West US
53
North Central US
35
South Central US
53
North Europe
53
West Europe
63
Japan West
29
Japan East
43
Brazil South
21

Wie sieht nun so ein VMSize-Eintrag aus? Holen wir uns also den ersten Eintrag:

(Get-AzureRmVMSize -Location westeurope)[0]

MaxDataDiskCount     : 1
MemoryInMB           : 768
Name                 : Standard_A0
NumberOfCores        : 1
OSDiskSizeInMB       : 1047552
ResourceDiskSizeInMB : 20480

In diesem Artikel interessiert uns nur MemoryInMB und NumberOfCores.

Bei diesen Informationen stellt sich immer auch gleich die Frage nach dem Preis. Leider sind die Azure Billing APIs mit der RateCard-Info immer noch im Preview Status (https://msdn.microsoft.com/en-us/library/azure/mt218998.aspx). Auch gibt es noch keine Powershell-Cmdlets, so dass ich hier auf die normale HTML-Seite mit den Preisen verweise: https://azure.microsoft.com/de-de/pricing/details/virtual-machines/.

Bleiben wir bei West Europe, es gibt also 63 verschiedene VM-Größen. Aber welche Größen machen wirklich Sinn?

Grenzen wir den Zweck der VM ein, da wäre zunächst die Frage zu klären, ob man ein 32-Bit oder 64-Bit Betriebssystem darauf installieren möchte. Rein technisch kann man zwar 32-Bit Betriebssysteme auf VMs mit 12GB Arbeitsspeicher installieren, aber was macht dies für einen Sinn wenn man nur 4GB maximal nutzen kann?

Man kann mittels

Get-AzureRmVMSize -Location westeurope |where { $_.memoryinmb -le 4096  }

nun die in Frage kommenden VMs ermitteln. Zum Zeitpunkt dieses Artikels lieferte die Abfrage 10 Kandidaten: Standard_A0, Standard_A1, Standard_A2, Basic_A0, Basic_A1, Basic_A2, Standard_D1, Standard_D1_v2, Standard_DS1 und Standard_DS1_v2.

Worin unterscheiden sich nun Standard und Basic? Basic sind für Testserver gedacht, schnell hochfahren was ausprobieren und wegwerfen. Wer eine VM braucht die sinnvolle Tätigkeiten erfüllen soll, sollte Standard wählen.

Die Angaben über A,B,D,G usw. geben dann die Kategorie an, welche die VM im Sinne der Performance und Rechnerpower kategorisiert.

In diesem Zusammenhang muss man wissen, dass erst bei der Kategorie D und G SSDs als Festplatten zum Einsatz kommen. Allerdings ist bei SSDs zusätzlich noch wichtig, das diese nur temporär sind, wer dauerhaft den Inhalt der SSDs benötigt, der muss die DS*-Varianten verwenden.

Kommen wir nochmal zurück zum Arbeitsspeicher. Wer z. B. eine VM zum Ausprobieren möchte, wo ein 64-Bit Betriebssystem zum Einsatz kommen kann, der braucht mindestens 2GB an Arbeitsspeicher.

Dieser Aufruf listet alle in Frage kommenden Größen auf:

Get-AzureRmVMSize -Location westeurope |where { $_.memoryinmb -ge 2048  }

Momentan sind es 59 Stück.

Ein weiterer Faktor bei einer VM sind auch die Anzahl der Kerne. Eine schöne Auflistung, was die einzelnen Größen hergeben erhält man z. B. so:

Get-AzureRmVMSize -Location westeurope|sort numberofcores| Format-Table -GroupBy Numberofcores -Property Name,MemoryInMB, OSDiskSizeInMB, ResourceDiskSizeInMB, MaxDataDiskCount

Man erhält dadurch

   NumberOfCores: 1

Name            MemoryInMB OSDiskSizeInMB ResourceDiskSizeInMB MaxDataDiskCount
—-            ———- ————– ——————– —————-
Standard_D1           3584        1047552                51200                2
Basic_A1              1792        1047552                40960                2
Standard_D1_v2        3584        1047552                51200                2
Standard_DS1_v2       3584        1047552                 7168                2
Standard_DS1          3584        1047552                 7168                2
Basic_A0               768        1047552                20480                1
Standard_A1           1792        1047552                71680                2
Standard_A0            768        1047552                20480                1

   NumberOfCores: 2

Name             MemoryInMB OSDiskSizeInMB ResourceDiskSizeInMB MaxDataDiskCount
—-             ———- ————– ——————– —————-
Standard_G1           28672        1047552               393216                4
Standard_D2_v2         7168        1047552               102400                4
Standard_GS1          28672        1047552                57344                4
Standard_A2            3584        1047552               138240                4
Standard_D11_v2       14336        1047552               102400                4
Standard_DS11         14336        1047552                28672                4
Standard_DS2_v2        7168        1047552                14336                4
Standard_DS11_v2      14336        1047552                28672                4
Standard_DS2           7168        1047552                14336                4
Standard_D11          14336        1047552               102400                4
Standard_D2            7168        1047552               102400                4
Standard_A5           14336        1047552               138240                4
Basic_A2               3584        1047552                61440                4

Weiß man also wie viel Arbeitsspeicher und wie viel Kerne eine VM haben soll, dann kann man hiermit ermitteln was in Frage kommt:

Get-AzureRmVMSize -Location westeurope |where { ($_.memoryinmb -ge 2048 -and $_.memoryinmb -le 4096) -and ($_.numberofcores -le 2) }

MaxDataDiskCount     : 4
MemoryInMB           : 3584
Name                 : Standard_A2
NumberOfCores        : 2
OSDiskSizeInMB       : 1047552
ResourceDiskSizeInMB : 138240

MaxDataDiskCount     : 4
MemoryInMB           : 3584
Name                 : Basic_A2
NumberOfCores        : 2
OSDiskSizeInMB       : 1047552
ResourceDiskSizeInMB : 61440

MaxDataDiskCount     : 2
MemoryInMB           : 3584
Name                 : Standard_D1
NumberOfCores        : 1
OSDiskSizeInMB       : 1047552
ResourceDiskSizeInMB : 51200

MaxDataDiskCount     : 2
MemoryInMB           : 3584
Name                 : Standard_D1_v2
NumberOfCores        : 1
OSDiskSizeInMB       : 1047552
ResourceDiskSizeInMB : 51200

MaxDataDiskCount     : 2
MemoryInMB           : 3584
Name                 : Standard_DS1
NumberOfCores        : 1
OSDiskSizeInMB       : 1047552
ResourceDiskSizeInMB : 7168

MaxDataDiskCount     : 2
MemoryInMB           : 3584
Name                 : Standard_DS1_v2
NumberOfCores        : 1
OSDiskSizeInMB       : 1047552
ResourceDiskSizeInMB : 7168

Obige Liste stellt eine einfache Auswahl an Konfigurationen dar die für einfache Tests mit 64-Bit Betriebssystemen sinnvoll sind. Natürlich kann man mit Cores und Speicher und Performance immer nach oben gehen aber dies ist immer auch eine Frage der Kosten.

Neben den Kosten ist ein weiterer Aspekt der sinnvollen VM Größen im Zusammenhang mit Hyper-V. Wer in Zukunft im Hyper-V virtuelle Maschinen einrichtet, der sollte sich vielleicht auch mit den verfügbaren Größen der Azure VMs auseinandersetzen. Denn wenn später ein Umzug einer VM von Hyper-V nach Azure ansteht, ist es sinnvoll die Grundausrichtung der Hyper-VM bereits an möglichen Azure-VMs vorzunehmen, dann fällt einem der Umzug leichter. Hier hat bereits jemand diesen Gedanken: https://github.com/adbertram/Random-PowerShell-Work/blob/master/Azure/ConvertTo-AzureSize.ps1.

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s


%d Bloggern gefällt das: