Azure VM und der knappe Platz auf C:; Hinzufügen Data Drive

Erstellt man aus der Gallery von Windows Azure eine neue VM und benützt das Image mit Windows 2008 R2 SP1 und der Evaluation Edition des SQL Server 2012 bekommt man ein Image mit einer 30 GB großen C: Partition. Die Partition hat jedoch nur ~ 6,5 GB freien Speicherplatz. Das ist für viele Anwendungsfälle zu wenig! Der Post soll eine einfache Möglichkeit zeigen, wie man zusätzlichen Speicherplatz einer VM zur Verfügung stellen kann.

VM_FreeSpaceC

Möchte man z. B. Visual Studio auf dieser neu erzeugten VM installieren stößt man bereits an Grenzen, da für das Setup mehr Speicherplatz auf C: benötigt wird als zur Verfügung steht.

Auch das Erstellen und Arbeiten mit größeren Datenbanken incl. evtl. notwendiger Backups ist nur schwer möglich.

Zwar findet sich in der VM ein ausreichend dimensioniertes D: Drive (~ 65 GB in der Small Instance), dieses sollte jedoch nicht verwendet werden da es sich um nicht persistenten Speicher handelt. D. h. bei einer evtl. Migration der VM auf andere physische Hardware (z. B. wegen Hardware Problemen) gehen alle Informationen auf dem D: Drive verloren.

Beim C: Drive handelt es sich um ein persistentes Drive welches über die Azure Storage Dienste zur Verfügung gestellt wird. Hier ist kein Datenverlust bei Migration der VM auf andere physikalische Hardware zu befürchten.

Zum jetzigen Zeitpunkt gibt es keine Möglichkeit über das Azure Management Portal bzw. über Power Shell Kommandos das C: Drive zu vergrößern. Drew McDaniel hat in einem Blog Post einen möglichen Weg dargestellt. Unter Verwendung von VMs und VMResizer kann die Boot Partition vergrößert werden kann. Dies erscheint auf den ersten Blick jedoch sehr aufwendig. VM_SQLInstallMedia

Betrachtet man den Inhalt des C: Drive finden sich im Folder “SQLServer_11.0_Full” die Installationsdateien für den SQL Server. Diese nehmen immerhin ~ 5,6 GB an Platz ein. Doch wohin damit? Einfach löschen erscheint nicht praktikabel, da sie bei der weiteren Konfiguration des SQL Servers evtl. noch benötigt werden.

Eine mögliche Alternative stellt das Hinzufügen eines zusätzlichen Data Drive dar. Sucht man im Management Portal nach einer entsprechenden Möglichkeit findet sich in der Auswahl “Virtual Machines” der Reiter “DISKS” mit der Möglichkeit “Create DISK”. Hier können VHD welche on-premise erzeugt worden sind und in den Azure Storage geladen worden sind mit der VM verbunden werden.

VM_CreateDisk

Voraussetzung ist jedoch, dass eine VHD bereits in den Storage geladen worden ist. Für den Fall, dass man nur zusätzlichen leeren persistenten Speicherplatz benötigt um (z. B. um die Installationsmedien des SQL Server zu verschieben oder Datenbanken nicht auf C: anzulegen) gibt es jedoch noch eine einfachere Möglichkeit.

Die hierzu notwendige Funktionalität findet sich jedoch nicht im DISKS Tab. Nach Wechsel in das Dashboard der gewünschten VM kann die Funktion “Attach Empty Disk” ausgewählt werden.

image

Diese ermöglicht es der aktuellen VM eine leere VHD, welche als Disk verwendet werden kann, hinzuzufügen.

imageNach Auswahl der gewünschten Größe und Storage Location muss die neu erzeugte VHD innerhalb der VM im Server Manager / Disk Management formatiert und eingebunden werden.

Danach kann das Installationsmedium des SQL Server auf das neu hinzugefügte Drive verschoben werden. Neue Datenbankdateien können ebenfalls auf dem hinzugefügten Drive abgelegt werden.

Das Drive ist persistent, d. h. nach einem evtl. Reboot bzw. dem Verschieben der VM auf neue physikalische Hardware stehen die Informationen weiterhin zur Verfügung.

ADFS 2.0, WIF, Windows Azure Access Control Service (ACS)

Im Rahmen der .NET Online Usergroup habe ich den Talk „Du kommst hier nicht rein – Authentifizierung und Autorisierung im Zeichen der Cloud“ gehalten. Für alle die sich über die Schlagworte ADFS 2.0, WIF, Federation, Windows Azure Access Control Service (ACS) informieren möchten findet sich anbei das Recording des Talks.

[vimeo http://www.vimeo.com/45512201 w=500&h=281]

Leider sind beim Recording die Animationen in der Powerpoint Präsentation verloren gegangen. Gerade bei der Darstellung der Kommunikationswege sind diese aus meiner Sicht für das Verständnis hilfreich. Die Präsentation incl. der Animationen findet sich hier (ppsx).

Änderung Default Port SQL Server innerhalb einer Azure VM

Die Anlage einer neuen virtuellen Maschine mit installiertem SQL Server ist dank der vorkonfigurierten Templates innerhalb von Windows Azure eine Angelegenheit von wenigen Minuten. Man erhält mit wenigen Mausklicks einen voll funktionsfähigen Server incl. Datenbank welche mit Default Werten provisioniert ist.

image

Sicherheitsrichtlinien von Firmen schreiben jedoch häufig vor, dass öffentlich erreichbare Dienste nicht auf den Default Ports zur Verfügung stehen dürfen. D. h. für den SQL Server, dass dieser nicht unter TCP 1433 in der VM zur Verfügung stehen darf.

Dies kann durch Konfiguration des SQL Servers innerhalb der VM erreicht werden. Der Weg über die Konfiguration der öffentlichen Endpunkte stellt eine vergleichsweise einfache Alternative zur Verfügung. Bei der Definition der öffentlichen Endpunkte der VM wird der Public Port auf einen frei definierten Wert gesetzt (1577 im Screenshot), wobei der Private Port auf 1433 belassen wird.

image

Bei der Konfiguration der on-premise Clients wie z. B. “Visual Studio” oder “SQL Server Management Studio” muss bei der Konfiguration der Verbindung die geänderte Port Nummer berücksichtig werden. Einfach bei “DataSource” welche die URL der VM enthält mittels „,” (Komma) getrennt die Portnummer hinterlegen.

image

Alternativ kann auch im “Sql Server Configuration Manager” ein Alias für die SQL Server Datenbank innerhalb der VM angelegt werden. Dies hat den Vorteil, dass an einer zentralen Stelle die geänderte Portnummer hinterlegt werden muss und nicht an diversen Stellen diese gepflegt werden muss.

image