Windows Azure – Create & Attach DataDisk an VM via PowerShell

Hallo @all,

heute folgt das nächste Skript. Ich habe einen SQL Server 2012 im Einsatz und ich möchte automatisch Festplattenplatz vergrößern. Daher erstelle ich eine neue DataDisk und hänge diese an die virtuelle Maschine. Das Schöne ist, die VM muss nicht heruntergefahren werden.

Eine virtuelle Machine kann in Azure IaaS je nach VM Size eine Anzahl an LUNs verwenden. Bei VMSize: Medium sind es 4 LUNs. Die LUN-Größe kann zw. 1 GB bis 1 TB betragen.

  • LUN 0 Data Disk
  • LUN 1 Data Disk
  • LUN 2 Data Disk
  • LUN 3 Data Disk

Für die folgenden Schritt verwende ich die Windows Azure PowerShell CmdLets.

Was ist jetzt der IST-Zustand?
     $vm = Get-azureVM -Name "phsql01" -ServiceName "phdc01"
     Get-AzureDataDisk -VM $vm

image 
Die VM hat LUN 0 und LUN 1 im Einsatz

Ich möchte nun automatisiert 2 Data Disks erstellen und an die VM anhängen. Hierfür habe ich ein Skript erstellt das die Disk automatisiert erstellt und änhängt:

 # add Data Disk to VM
#=======================
 $serviceName = $args[0]
 $serviceName = "phdc01"
 $vmName = $args[1]
 $vmName  = "phsql01"
 
# import Azure cmdlets
import-module Azure
 
$vm = Get-AzureVM -Name $vmName -ServiceName $serviceName
 
# get Disk Location from VM
$MediaLocation = Get-AzureDataDisk -VM $vm -Lun 0 | Select MediaLink
$MediaLocation = $MediaLocation.MediaLink.OriginalString
$MediaLocation = $MediaLocation.substring(0,$MediaLocation.LastIndexOf("/")+1) 

foreach ($i in 2..3) 
{
    $filename = $MediaLocation + $serviceName +"-"+ 
$vmName +"-"+ "DataDiskAtLun" + "-"+ $i +".vhd"
    $diskLabel = "DiskAtLun"+$i

    Get-AzureVM -ServiceName $serviceName -Name $vmName | 
        Add-AzureDataDisk -CreateNew -DiskSizeInGB 10 -DiskLabel $diskLabel -LUN $i 
-MediaLocation $filename | Update-AzureVM
}

Wichtig ist hierbei, nachdem man die AzureVM ändert muss danach immer ein Update-AzureVM ausgeführt werden um den Deploymentprozess zu starten. Solange Update-AzureVM nicht ausgeführt wird bleibt die VM im alten Zustand.

 

image

image

Check mittels PowerShell:
    $vm = Get-azureVM -Name "phsql01" -ServiceName "phdc01"
    Get-AzureDataDisk -VM $vm

image
Die beiden Disk sind da Smile

Zu guter letzt noch ein Blick in den Disk Manager von der VM: 2 neue Festplatten mit je 10 GB stehen zur Verfügung.

image

Liebe Grüße

Patrick