LUNs in vSphere- und Hyper-V-Umgebung online erweitern
5. Dezember 2012Es ist leider keine Seltenheit, dass die für die Verwaltung des SQL Server zuständigen Administratoren diesen Server offline nehmen, wenn sie die LUN für das System erweitern – entweder in einer virtualisierte Umgebung oder aber auf einem physischen System. Doch das muss nicht sein – es handelt sich dabei um eine absolut unnötige Ausfallzeit.
Um die Ausfallzeiten – seien es geplante oder auch ungeplante – möglichst gering zu halten, treffen Unternehmen meist recht teure Vorkehrungen: Cluster werden aufgesetzt, Hardware wird doppelt verfügbar gehalten. Doch es sind auch Techniken nötig, um die bestmögliche Effizienz aus den vorhandenen Ressourcen zu ziehen.
Dabei sind es oftmals auch die unnötigen Stillstandzeiten, denen man Aufmerksamkeit spendieren sollte. Dazu gehört auch das Erweitern von LUNs, wenn der Speicherplatz auf einer bestehenden LUN nicht mehr ausreicht. Um zu verdeutlichen, wie sich hier Stilstandzeiten für einen SQL Server vermeiden lassen, wird im Folgenden eine sinnvolle Vorgehensweise gezeigt
In der hier gezeigten Umgebung kommt ein Storage-System VNX 5500 von EMC zum Einsatz. Als Virtualisierungs-Plattform dient vSphere 5.0 und zwei Windows Server 2008 Release 2 sind die Gastbetriebssysteme in den beiden virtuellen Maschinen (VMs), die zusammen einen Active/Passive SQL Server 2008 Cluster bilden.
Doch der hier gezeigte Ansatz funktioniert auch mit anderen Speichersystemen und der Virtualisierungs-Plattform Hyper-V, wobei bei den Gastbetriebssystemen auch Windows Server 2003 zum Einsatz kommen kann. Auch wenn man die hier gezeigte Vorgehensweise auf einer physischen Hardware – also ohne Virtualisierungs-Schicht – einsetzt, lässt sich dieses Konzept verwenden.
Änderungen beim Storage Array
Auf dem Speichersystem wird ganz einfach mit den vorliegenden Tools des Systems die LUN erweitert. Diese Änderung wird zunächst dem betreffenden Host, also dem Gastbetriebssystem oder dem physischen Server (wenn keine virtualisierte Umgebung im Einsatz ist), noch nicht mitgeteilt.
Im Bild 1 ist ein Dialog zu sehen, wie er bei der EMC Management Software üblich ist. Dabei wird die LUN mit der ID 125 von 100 GByte auf 101 GByte erweitert. Je nach dem eingesetzten Storage Array kann das ähnlich aussehen oder aber auch anders implementiert sein – das ist die „herstellerabhängige Note“.
Ist die LUN auf dem Speichersystem erweitert – das kann schon einige Sekunden dauern, je nachdem wie schnell das Storage Array arbeitet und um wie viel zusätzlichen Speicherbereich es bei der LUN geht – kann der Administrator dann auch die LUN auf dem betreffenden Server(n) erweitern.
Arbeiten auf dem Windows Server
Nachdem der Administrator auf dem Windows Server (also dem Gastbetriebssystem in der virtuellen Umgebung) angemeldet ist, kann er dem Server mitteilen, dass sich die Größe der LUN geändert hat. Am einfachsten geht das mit Hilfe des Kommandozeilen-Tools diskpart.exe. Doch auch über die grafische Benutzerschnittstelle lässt sich diese Aufgaben meistern (mit dem Computer-Snap-in in die Microsoft Management Console, MMC).
Bei Diskpart sollte sich der Administrator zuerst im Einsatz befindlichen Datenträger auflisten. Das lässt sich mit dem Kommando „List Disk“ machen. Darauf werden alle Festplatten angezeigt, die sich auf diesem System im Einsatz befinden – mit ihren aktuellen Größen. Mit dem Befehl „Rescan“ wird ein SCSI-Rescan ausgeführt, der nach Änderungen sucht. Führt der Administrator dann wieder den Befehl „List Disk“ aus, werden die Änderungen angezeigt. Hier im Beispiel (siehe Bild 2) betreffen die Änderungen die Größe bei der Disk 4.
Im nächsten Schritt sind nun die Dateisysteme zu erweitern, damit Windows und der SQL Server den Zugriff auf den zusätzlich verfügbaren Speicherplatz bekommen. Dazu muss der Administrator die betreffende Disk selektieren (im Beispiel die Disk 4). Dazu ist der Diskpart-Befehl „sel disk“ zu verwenden (die Kurzform lautet: „sel dis“). Dann ist noch die Partition anzugeben, die man erweitern möchte. Dazu empfiehlt es sich erneut, zuerst alle Partitionen auf der Disk anzuzeigen. Das geht über „list partition“ (Kurzform „list part“).
Dann ist mit dem Befehl „select partition“ (Kurzform „sel part“) die gewünschte Partition anzugeben. Diesen Ablauf verdeutlicht Abbildung 3.
Dann geht es an das Erweitern der Partition um den zusätzlichen Speicherplatz. Dazu gibt es bei Diskpart den Extend-Befehl. Danach kann man sich die Änderungen mit „list part“ wieder anzeigen lassen (siehe Bild 4).
Bisher sind im Zuge aller Aktionen keine Änderungen am Windows-Cluster oder am SQL Server ausgeführt worden. Wenn man diese hier gezeigten Aktionen in einem Windows Cluster ausführt, wird der Cluster automatisch die anderen Maschinen im Verbund über die Änderungen an den Disks informieren. Dann wird ein Rescan des SCSI-Bus erfolgen, wenn es zu einem Failover im Cluster kommt. Daher ist es nicht nötig, Änderungen an den zweiten (oder an den anderen) System im Cluster zu machen.
Ab Windows Server 2008 könnte man einen SCSI-Rescan in der Computerverwaltung anstoßen. Dazu muss der Administrator die zu erweiternde Partition selektieren, einen rechten Mausklick darauf ausführen und dann aus dem Kontextmenü das „Erweitern“ (Extend) wählen.
Denny Cherry
Weitere Informationen zum Themenbereich Fehlerbehebung beim SQL Server bietet Denny Cherry auf seinem Blog Troubleshooting SQL Server Storage Problems.