0
(Noch nicht bewertet)
18. Mai 2016

9 Schritte zur erfolgreichen Blob Migration zwischen Azure Rechenzentren in die Microsoft Cloud Deutschland

Die Microsoft Cloud Deutschland nimmt Gestalt an. Fast täglich kommen neue Funktionen zur Private Preview hinzu, so dass immer weitere Testszenarien möglich werden. Interessant ist dabei auch die Migration von Deployments aus Azure Rechenzentren in die Microsoft Cloud Deutschland.


Was ist die Microsoft Cloud Deutschland?

Die Microsoft Cloud Deutschland ist ein Abbild von Microsoft Azure, betrieben in Rechenzentren auf Deutschem Hoheitsgebiet. T-Systems betreibt die beiden Rechenzentren in Magdeburg und Frankfurt/Main als Datentreuhänder. Hierdurch soll sichergestellt werden, dass Bedenken Deutscher Unternehmen hinsichtlich Datenschutz und Datensicherheit, zwei Themen, die in Deutschland nicht erst seit dem EuGH-Urteil bezüglich Safe Harbor sehr emotional diskutiert werden, zerstreut werden, wenn es darum geht, die eigene IT schlanker, agiler, flexibler, skalierbarer, oder, mit einem Wort: moderner zu machen. Technisch gesehen handelt es sich bei der Microsoft Cloud Deutschland um eine eigene Azure-Umgebung, ähnlich Azure in China oder Azure für die US-Regierung. Um sicherstellen zu können, dass über die georedundante Bereitstellung von Diensten in der Microsoft Cloud Deutschland keine Daten in anderen Azure-Rechenzentren, wie Amsterdam oder Dublin vorgehalten werden, wird es vermutlich keine entsprechenden Schnittstellen geben. Georedundanz ist somit in der Microsoft Cloud Deutschland bis auf Weiteres nur zwischen den Rechenzentren Magdeburg und Frankfurt/Main möglich.

Migrationsszenarien – möglich oder nicht?

Wenn wir also davon ausgehen, dass eine georedundante Bereitstellung von Diensten über die Grenzen der beiden Umgebungen Microsoft Cloud Deutschland und Microsoft Azure hinweg nicht möglich sein wird, leuchtet ein, dass es grundsätzlich auch keine Migrationspfade zwischen den beiden Clouds geben wird. Zumindest nicht im klassischen Sinn. Für die Vielzahl an Diensten und Ressourcen, die heute bereits in der Azure Cloud betrieben werden, wird somit kein Weg um einen Neuaufbau herum führen. Für Azure Compute, also die Bereitstellung virtueller Maschinen, gibt es
aber eine Möglichkeit, sich dennoch einigen Aufwand zu sparen.

Azure Blob Storage

In Azure werden Inhalte als Binary Large OBjects (BLOBs) in Storage Accounts und darin in Containern gespeichert, ähnlich, wie Dateien, die sich in Ordnern befinden. Solche Blobs lassen sich mit Hilfe der PowerShell oder eines Storage Explorers zwischen unterschiedlichen Storage Accounts kopieren.
Wenn man sich nun überlegt, dass eine VM aus einem oder mehrerer dieser Blobs (in diesem Fall: VHDs) sowie einer Konfiguration, die als XML-Datei exportiert werden kann, besteht, ist man der Lösung des Problems schon sehr nahe. Oben hatte ich kurz beschrieben, dass die Microsoft Cloud Deutschland aus technischer Sicht eine eigene Azure-Umgebung ist. In einer Azure-Umgebung werden Endpunkte und Suffixe definiert, über die der Zugang zu den Ressourcen ermöglicht wird. Storage Accounts können beispielsweise über http-Endpunkte, deren Suffixe in der jeweiligen Azure
Environment-Config definiert sind, angesprochen werden.

9 Schritte zum Erfolg

Um nun also zum Ziel zu gelangen, müssen Sie wie folgt vorgehen:

1. Definieren Sie eine neue Azure Umgebung mit Hilfe des PowerShell-cmdlets add-azureEnvironment. Nach erfolgter Konfiguration erhalten Sie mit Hilfe des PowerShell-cmdlets get-azureEnvironment folgende Ausgabe:

Da die Microsoft Cloud Deutschland aktuell noch den Status Private Preview hat und weiterführende Informationen zur Konfiguration der Azure Umgebung noch vertraulich sind, kann ich die detaillierte Konfiguration derzeit noch nicht beschreiben. Sobald die Informationen veröffentlicht werden, werde ich die entsprechende Passage anpassen.

2. Fügen Sie eine zweite Azure-Subscription mit Verweis auf die neue Azure-Umgebung zu Ihrer PowerShell-Session hinzu. Hierzu nutzen Sie das cmdlet set-azureSubscription mit dem Parameter –Environment. In meinem Beispiel nutze ich die zertifikatsbasierte Authentifizierung.

 $cert = Get-PfxCertificate –FilePath <Pfad_zur_Zertifikatsdatei>
Set-AzureSubscription -SubscriptionName <FreiWählbarerName> -SubscriptionId <ID_IhrerSubscription> -Certificate $cert -Environment AzureGermany 

Über das cmdlet get-azureSubscription erhalten Sie nun folgende Informationen:

Bei der Subscription Azure Pass handelt es sich um eine Subscription in der Azure Cloud, DoLabsGermany ist der Name, den ich für die Subscription in der Deutschen Cloud vergeben habe.
3. Exportieren Sie Ihre Quell-VM mithilfe des cmdlets Export-AzureVM. Dadurch wird eine XML-Datei erzeugt, die die Konfiguration der zu exportierenden VM beinhaltet.

 Export-AzureVM -Path <Zielpfad_der_XML-Datei> -Name <Name_der_VM> -ServiceName <Name_des_Service> 

4. Definieren Sie Ihre Quell-Subscription und den Storage Container, dessen Inhalte kopiert werden sollen.
5. Definieren Sie Ihre Ziel-Subscription und den passenden Zielcontainer.
6. Kopieren Sie die Blobs aus dem Quellcontainer in den Zielcontainer.

Hierin befinden sich alle VHD-Dateien zu der VM, die Sie migrieren möchten. Für die Schritte 4-6 habe ich ein PowerShell-Script benutzt, das es mir erlaubt, Ziel- und Quellumgebung zu definieren und die jeweiligen Container auszuwählen.
7. Aktivieren Sie die kopierte VHD in Azure Service Manager (ASM) mithilfe des cmdlets Add-AzureDisk in der Ziel-Umgebung.

 Add-AzureDisk -DiskName <DiskName> -MediaLocation <MediaLink> -Label <Anzeigename> -OS <OperatingSystem> 

Der Parameter -MediaLocation gibt hierbei den Speicherpfad zu der VHD innerhalb des Storage Accounts an.
8. Importieren Sie die Konfiguration der VM in die Zielumgebung und ändern Sie den Namen der OS Disk so ab, dass die Konfiguration auf die VHD, die Sie in Schritt 7 aktiviert haben, verweist.

 $vmConfig = Import-AzureVM -Path <Pfad_der_XML-Datei>
$vmConfig.OSVirtualHardDisk.DiskName = <DiskName_aus_Schritt7> 

9. Erzeugen Sie eine neue VM basierend auf der VM-Config aus Schritt 8 in Ihrer Ziel-Subscription.

 New-AzureVM -VMs $vmConfig -ServiceName <ServiceName> [...]  

Fazit

Migrationspfade im klassischen Sinn, wie eine V2V-Migration oder das Umziehen fertig konfigurierter Dienste von Azure in die Microsoft Cloud Deutschland wird es meiner Meinung nach auch zukünftig nicht geben. Das Verständnis über den architektonischen Aufbau der Rechenzentren vorausgesetzt gibt es aber dennoch Workarounds, wie den hier skizzierten, um nicht vollständig neu anfangen zu müssen. Das hier skizzierte Szenario kann übrigens auch innerhalb der Azure-Cloud für Kopiervorgänge zwischen unterschiedlichen Azure-Rechenzentren, beispielsweise von Nordeuropa nach West-US, genutzt werden. Im Grunde werden hierbei Storage-Accounts über die jeweiligen Endpunkte angesprochen und ein Kopiervorgang zwischen diesen initiiert.
Bei weiteren Fragen rund um das Thema Microsoft Azure stehen meine Kollegen und ich Ihnen gerne zur Verfügung.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.