Azure IaaS: Introduzione al Premium Storage

Microsoft Azure

Autore: Nicola Ferrini

 

In Azure è possibile creare due tipi di Storage Account: Standard Storage e Premium Storage. La differenza tra i due tipi consiste nel fatto che lo Standard Storage è basato su dischi HDD, mentre il Premium Storage è basato su dischi SSD.

 

Il Premium Storage è stato studiato appositamente per le macchine virtuali e garantisce poca latenza (meno di 1 ms per le operazioni di lettura) e almeno 5000 IOPS (input/output operations per second) per singolo disco!!! Per questo motivo è indicato per macchine virtuali che fanno girare SQL Server, Dynamics AX, Dynamics CRM, Exchange Server, MySQL, e SAP Business Suite. È possibile collegare più dischi alla stessa macchina virtuale ed avere fino a 32 TB di spazio e fino a 64.000 IOPS per VM.

 

La differenza rispetto allo Standard Storage è davvero notevole. Considerate che, come riportato nell’articolo  Introduzione ai Piani della Macchine Virtuali su Azure, ogni macchina virtuale della serie A, della serie D e della serie G può fare al massimo 500 IOPS per ogni disco. Ogni Standard Storage Account è inoltre limitato a 20000 IOPS totali e ciò significa che non è conveniente mettere più di 40 VHD in ogni singolo Storage Account (si possono avere 100 Storage Accounts per ogni Sottoscrizione).

 

Maggiori informazioni sui limiti delle sottoscrizioni sono disponibili nell’articolo Sottoscrizione di Azure e limiti dei servizi, quote e vincoli

 

Il Premium Storage è attualmente disponibile solo nelle seguenti regioni: West US, East US 2, West Europe, East China, Southeast Asia, West Japan and Australia East. È disponibile solo come locally redundant (LRS) e mantiene 3 copie dei dati nella stessa Regione. La Capacità totale dei dischi per singolo account è limitata a 35 TB.

 

Creazione del Premium Storage

Per creare un Premium Storage è necessario utilizzare il Microsoft Azure Preview Portal e scegliere di creare un nuovo Storage Account. Cliccando sul link View All vi apparirà l’offerta di piani di Storage disponibili in Azure.

 

2015_07_21_PremiumStorage_01
Figura 1 – Piani di Storage Disponibili in Azure

 

Come potete vedere dall’immagine, il Premium Storage supporta solo i Page Blob, che vengono utilizzati per salvare i dischi delle macchine virtuali. Non supporta invece Azure Block Blobs, Azure Files, Azure Tables, oppure Azure Queues come lo Standard Storage. In alternativa per creare un Premium Storage account è possibile usare il comando PowerShell.

New-AzureStorageAccount -StorageAccountName "nicferrpremium" -Location "West US" -Type Premium_LRS

Macchine Virtuali della Serie DS

Un vincolo del Premium Storage è però quello di poterlo utilizzare solo per le macchine della serie DS. Le macchine DS possono usare sia dischi provenienti da Standard Storage che da Premium Storage, ma non è possibile usare dischi salvati nel Premium Storage per macchine non della serie DS. Inoltre dovete assicurarvi che nella macchina virtuale sia disponibile larghezza di banda sufficiente per gestire il traffico dei dischi. Vi riporto una tabella con le informazioni per ogni tipo di macchina.

 

Dimensioni macchina virtualeCore CPUMax. IOPSMax. Larghezza di banda del disco
STANDARD_DS113.20032 MB al secondo
STANDARD_DS226.40064 MB al secondo
STANDARD_DS3412.800128 MB al secondo
STANDARD_DS4825.600256 MB al secondo
STANDARD_DS1126.40064 MB al secondo
STANDARD_DS12412.800128 MB al secondo
STANDARD_DS13825.600256 MB al secondo
STANDARD_DS141650.000512 MB al secondo

 

Per creare una macchina virtuale della serie DS potete usare il Microsoft Azure Preview Portal e scegliere di creare una nuova VM. Cliccando sul link View All vi apparirà l’offerta delle macchine virtuali disponibili in Azure e sarà possibile scegliere tra le 13 dimensioni disponibili:

 

2015_07_21_PremiumStorage_02
Figura 2 – Scelta del tipo di macchina virtuale Standard DS

 

Le caratteristiche delle macchine della serie DS sono le stesse delle macchine della serie D: numero di processori, quantità di RAM e prezzo. L’unica differenza consiste nell’utilizzo di dischi SSD. In alternativa è possibile usare uno script PowerShell:

 

  • Utilizziamo l’ultima versione di Windows Server 2012 R2 Datacenter usando il comando
$image = (Get-AzureVMImage | Where-Object {$_.label -like “Windows Server 2012 R2 Datacenter*”} | Sort-Object –Descending PublishedDate)[0].ImageName
  • Creiamo la configurazione della macchina virtuale
$vm = New-AzureVMConfig -Name "NIC-DS1" -InstanceSize "Standard_DS1" -Image $image

Per i valori da dare alla proprietà –InstanceSize vi rimando all’articolo  Introduzione ai Piani della Macchine Virtuali su Azure

 

  • Creiamo l’account di accesso dell’amministratore di default
$cred=Get-Credential -Message "Inserisci username e password dell’ amministratore locale"

$vm | Add-AzureProvisioningConfig -Windows -AdminUsername $cred.GetNetworkCredential().Username -Password $cred.GetNetworkCredential().Password
  •  Creiamo la macchina virtuale in un Cloud Service esistente (se si tratta della prima macchina potete creare un cloud service manualmente dal portale o col comando New-AzureService -ServiceName “NIC-DS” -Location “West US”)
New-AzureVM -ServiceName "NIC-DS" –VMs $vm

Prestazioni del Premium Storage

Quando create un disco in un Premium Storage, gli IOPS disponibili dipendono dalle dimensioni del disco fisico SSD. Attualmente ci sono 3 tipo di dischi. Vi riporto le caratteristiche nella seguente tabella.

 

Premium Storage Disk TypeP10P20P30
Disk size128 GiB512 GiB1024 GiB (1 TB)
IOPS per disk50023005000
Throughput per disk100 MB per second150 MB per second200 MB per second

 

Azure associa le dimensioni del disco (arrotondate per eccesso) all’opzione relativa al disco di Premium Storage più vicina, come specificato nella tabella. Ad esempio, un disco da 100 GB viene classificato come opzione P10 e può eseguire fino a 500 unità di I/O al secondo a una velocità effettiva massima di 100 MB al secondo. Analogamente, un disco da 400 GB viene classificato come opzione P20 e può eseguire fino a 2300 unità di I/O al secondo a una velocità effettiva massima di 150 MB al secondo.

 

È possibile aumentare facilmente le dimensioni dei dischi esistenti oppure convertire il disco P20 in un disco P30 perché si necessita di una capacità maggiore o di IOPS e velocità effettiva più elevati. Per eseguire questa azione, è necessario che il disco sia disconnesso dalla macchina virtuale o che la macchina virtuale venga arrestata ed usare la cmdlet Update-AzureDisk con la proprietà -ResizedSizeInGB

 

  • Recuperiamo le informazioni sui dischi collegati alla VM con il comando
Get-AzureVM -Name NIC-DS1 -ServiceName NIC-DS | Get-AzureDataDisk

 

2015_07_21_PremiumStorage_03
Figura 3 – Risultato cmdlet

 

  • Spegniamo la macchina virtuale
Get-AzureVM -Name NIC-DS1 -ServiceName NIC-DS | Stop-AzureVM -Force
  •  Aggiorniamo il disco e lo portiamo alla dimensione di 600 GB così diventerà di tipo P30
  • Update-AzureDisk -Label "Disk 1" -DiskName "NIC-DS-NIC-DS1-1-201507211119090964" -ResizedSizeInGB 600
  •  Riaccendiamo la macchina virtuale
Get-AzureVM -Name NIC-DS1 -ServiceName NIC-DS | Start-AzureVM

Creazione di una Macchina della Serie DS all’interno di un Premium Storage utilizzando PowerShell

Abbiamo già visto che è possibile, dopo aver creato lo Storage Premium, creare una macchina della serie DS utilizzando il Microsoft Azure Preview Portal. Vi scrivo sotto un piccolo script che fa le stesse operazioni utilizzando PowerShell:

 

  • Creazione del Premium Storage Account
New-AzureStorageAccount -StorageAccountName "nicferrpremium" -Location "West US" -Type Premium_LRS
  •  Creazione della VM di tipo Standard DS1
$image = (Get-AzureVMImage | Where-Object {$_.label -like “Windows Server 2012 R2 Datacenter*”} | Sort-Object –Descending PublishedDate)[0].ImageName 

$vmname="NIC-DS1"
$vmsize="Standard_DS1"
$OSDiskPath = "https://nicferrpremium.blob.core.windows.net/vhds/" + $vmName + "_OS.vhd"


$vm1=New-AzureVMConfig -Name $vmname -InstanceSize $vmsize -ImageName $image

$cred=Get-Credential -Message "Inserisci username e password dell' amministratore locale"

$vm1 | Add-AzureProvisioningConfig -Windows -AdminUsername $cred.GetNetworkCredential().Username -Password $cred.GetNetworkCredential().Password

New-AzureVM –ServiceName "NIC-DS" -VMs $vm1
  •  Aggiunta di un disco da 128GB nello Storage Premium per la macchina esistente NIC-DS1
$vm = Get-AzureVM -ServiceName NIC-DS -Name NIC-DS1

$LunNo = 1

$path = "http://nicferrpremium.blob.core.windows.net/vhds/" + "myDataDisk_" + $LunNo + "NIC-DS1.vhd"

$label = "Disk " + $LunNo

Add-AzureDataDisk -CreateNew -MediaLocation $path -DiskSizeInGB 128 -DiskLabel $label -LUN $LunNo -HostCaching ReadOnly -VM $vm | Update-AzureVm

Conclusioni

La possibilità di utilizzare storage SSD con così bassa latenza e un numero così elevato di IOPS aumenta enormemente le performace di tutte quelle macchine virtuali e applicazioni che operano con workload intensivi o addirittura estremi.

 

Maggiori informazioni sono disponibili nell’articolo Archiviazione Premium: archiviazione ad alte prestazioni per carichi di lavoro delle macchine virtuali di Azure.

 

Per avere un’idea dei costi potete anche visitare il link http://azure.microsoft.com/it-it/pricing/details/storage/