Grundlagen: Speicherkonten in Azure per PowerShell erstellen

Wie schon häufig in diesem Blog geschrieben, lässt sich so ziemlich alles in Azure per PowerShell automatisieren. So auch natürlich auch Speicherkonten (engl. Storage Accounts). Im Artikel “Grundlagen: Azure & PowerShell: VMs erstellen” habe den kompletten Ablauf zur Erstellung einer VM gezeigt und dabei ist es auch notwendig gewesen, ein Speicherkonto per Skript zu erstellen. In diesem Artikel möchte ich auf einige weitere Eigenschaften von Speicherkonten bei der Erstellung eingehen.

Beginnen wir damit, uns einen Überblick über unsere vorhandenen Speicherkonten zu verschaffen. Mit dem PowerShell-Befehl Get-AzureStorageAccount können wir alle Speicherkonten im aktuellen Abonnement abrufen.

Mit dem Befehl New-AzureStorageAccount können neue Speicherkonten angelegt werden. Dazu ist mindestens die Angabe eines Namens für das neue Speicherkonto und eine Angabe der Region notwendig. Der Name des Speicherkontos muss global eindeutig sein, da der Name des Speicherkontos über DNS-Namen aufgelöst wird und diese bekanntlich im Internet eindeutig sein müssen. Daher muss der Name auch den gleichen Richtlinien entsprechen, wie dies für DNS-Namen der Fall ist. Wie eine Liste der Regionen zu erhalten ist, habe ich in dem Blog-Beitrag “Tipp: Azure-Regionen per PowerShell auflisten” beschrieben.

Die einfachste Art ein Speicherkonto in Azure zu erstellen, zeigt das folgende Beispiel. Im Anschluss fragen wir mit dem Befehl Get-AzureStorageAccount die Eigenschaften des neu erstellten Speicherkontos ab.

Wenn man nur die Namen von allen Speicherkonten in meinem Abonnement haben möchte, bietet es sich an ich an, den Befehl Select-Object zu benutzen, wie das folgende Beispiel demonstriert.

Regionen und Redundanz

Die Eigenschaften vom Speicherkonto "pkstoragesample1" zeigen einige interessante Details.

Das Speicherkonto liegt in der Region (Location) "West Europe" , welche mit der Eigenschaft GeoPrimaryLocation identisch ist. GeoSecondaryLocation steht auf "North Europe" , obwohl wir dies nicht definiert haben. Woran liegt das? Das hängt mit der Eigenschaft AccountType zusammen, die standmäßig auf "Standard_GRS" steht. Da wir bei der Erstellung des Speicherkontos keine näheren Angaben zum Kontotyp gemacht haben, wurde dieser Standardwert verwendet. Was bedeutet er? Für Speicherkonten gibt es unterschiedliche Redundanzeinstellungen.

Es existieren derzeit vier unterschiedliche Redundanzeinstellungen, die in der folgenden Tabelle aufgelistet sind. Eine Beschreibung der Redundanzoptionen sind hier zu finden.

In Kürze zusammengefasst kann man sagen, dass in der einfachsten Einstellung LRS immer drei synchrone Kopien in einem Rechenzentrum der Daten im Speicherkonto vorhanden sind. Bei der Standardeinstellung GRS werden die Daten im Speicherkonto asynchron in ein fest definiertes sekundäres Rechenzentrum repliziert. Das sekundäre Rechenzentrum ist für jeden Rechenzentrum fest definiert. Hier finden Sie eine Liste der jeweiligen Partnerregionen.

Bezeichnung

Abkürzung

Kopien

PowerShell

Lokal redundanter Speicher

LRS

3

Standard_LRS

Zonenredundanter Speicher

ZRS

3

Standard_ZRS

Geografisch redundanter Speicher

GRS

6

Standard_GRS

Geografisch redundanter Speicher mit Lesezugriff

RA-GRS

6

Standard_RAGRS

Einige PowerShell-Befehle wie New-AzureQuickVM und New-AzureVM benötigen ein "aktuelles Speicherkonto". Dieses ist mit dem Befehl Set-AzureSubscription zu setzen. Um zum Beispiel unser eben erstelltes Speicherkonto zum aktuellen Speicherkonto zu ernennen, ist der folgende Befehl ausreichend.

 Set-AzureSubscription -SubscriptionName "Azure MSDN - pkirchner" -CurrentStorageAccountName pkstoragesample1

Weitere Informationen

PowerShell: Azure-Automatisierung für Einsteiger (Microsoft Virtual Academy)

Grundlagen: Azure & PowerShell: VMs erstellen (MSDN Blogs)

Tipp: Azure-Regionen per PowerShell auflisten (MSDN Blogs)

Skripte

Für den Fall, dass die Skripte auf GitHub Gist nicht aufrufbar sind, sind diese hier noch einmal unformatiert aufgeführt.

New-AzureStorageAccount

 New-AzureStorageAccount -Location "West Europe" -StorageAccountName pkstoragesample1 

<# Output

OperationDescription OperationId OperationStatus 
-------------------- ----------- --------------- 
New-AzureStorageAccount 1a0b1f83-3539-5a44-8dc2-81ddbd303b59 Succeeded 
#>

Get-AzureStorageAccount -StorageAccountName pkstoragesample1 
<# Output
StorageAccountDescription : 
AffinityGroup : 
Location : West Europe
GeoReplicationEnabled : True
GeoPrimaryLocation : West Europe
GeoSecondaryLocation : North Europe
Label : pkstoragesample1
StorageAccountStatus : Created
StatusOfPrimary : Available
StatusOfSecondary : Available
Endpoints : {https://pkstoragesample1.blob.core.windows.net/, https://pkstoragesample1.queue.core.windows.net/, 
https://pkstoragesample1.table.core.windows.net/, https://pkstoragesample1.file.core.windows.net/}
AccountType : Standard_GRS
StorageAccountName : pkstoragesample1
OperationDescription : Get-AzureStorageAccount
OperationId : 69e4e110-7f99-5181-9ad9-8a11ad194cf5
OperationStatus : Succeeded
WARNUNG: GeoReplicationEnabled property will be deprecated in a future release of Azure PowerShell. The value will be merged into the AccountType property.
#>

Get-AzureStorageAccount

 Get-AzureStorageAccount | Select-Object -Property StorageAccountName 
<# Output
StorageAccountName 
------------------ 
pkstoragesample1 
pktest1 
#>

English Summary

This article describes how to create a new storage account in Azure via PowerShell. The differences of the account types for local redundant and geo redundant storage accounts are explained.