SQL Server Virtualisierung: Best Practices

Das Thema Virtualisierung ist heute nichts Unbekanntes mehr. Gerade im Bereich von SQL Server ist sie immer mehr gefragt und teilweise strikte Voraussetzung. Mehr als 60% der mittelständischen und großen Unternehmen weltweit arbeiten mit Virtuellen Maschinen auf SQL Server Basis. Die restlichen 40% tun sich dabei noch schwer. Zum Einen könnte dies an fehlender technischer Infrastruktur liegen – zum Anderen ist es eher die fehlende Akzeptanz, neue und ungewohnte Techniken zu implementieren.

Mit der richtigen Planung und einem Leitfaden stellen wir Ihnen nachfolgend einige Best Practices und Lösungen zur Überwachung der Datenbankperformance in virtuellen SQL Server Umgebungen vor.

Vor- & Nachteile der Virtualisierung

Serverkonsolidierung ist ein springender Punkt und großer Vorteil der SQL Server Virtualisierung. Der Profit, den Unternehmen daraus schlagen können ist, dass der Server Overhead reduziert und damit Kosten für Strom, Platz, Kühlung, Netzwerk, Kabel und Hardware-Garantie eingespart werden können. Des Weitern bietet die Virtualisierung eine Disaster-Recovery Lösung und den fortwährenden Support von Legacy-Anwendungen.

Als Nachteil könnte man die anfallenden Kosten der Lizenzierung sehen. Außerdem ist es wichtig, den Überblick über die Serveradministration zu behalten, da diese in virtueller Umgebung etwas komplexer gestaltet ist. Trotz Virtualisierung kann es auch zu Leistungseinbrüchen kommen. Hier ist es wichtig, sich die gemeinsam genutzte virtuelle Umgebung anzuschauen und nicht nur die Datenbank. Eventuell wurden hier Änderungen vorgenommen, die die Datenbankleistung beeinträchtigen.

Identifizierung des Virtualisierungsbedarfs

Server Verwendung: Kategorisieren und profilieren Sie die Auslastung, um zu eruieren, wie die virtuelle Umgebung inkl. der benötigten Ressourcen aussehen sollte.

Workload & Performance: Erkundigen Sie sich, ob Ihre vorhandene Hardware zum Hosten virtueller Maschinen in der Lage ist und sie den Workload mit erwarteter Leistung unterstützen kann. Das ist hilfreich, um die Systemgröße festzulegen, Metriken zu erfassen und zu verstehen, wie Systeme verwendet werden. Anhand dessen können Leistungserwartungen und Spitzenwerte an Workload festgemacht werden.

Service Level Agreements (SLA): Stellen Sie sicher, dass Ihre virtuelle SQL Server Umgebung anhand der Vorgaben Ihrer SLAs ausgerichtet ist. Sorgen Sie dafür, dass ihr Team ist der Lage ist, sich ordnungsgemäß an der Unterstützung der Systeme zu beteiligen. Kostspielige Ausfallzeiten können Sie auf ein Minimum reduziert werden.

Endbenutzer: Sorgen Sie dafür, dass Ihre Administratoren und User ausreichend geschult sind und ordnungsgemäß mit allen enthaltenen Funktionen und Prozessen umgehen können.

Verfügbarkeit & Wiederherstellung: Um die Hochverfügbarkeit zu garantieren, sollten Prozesse entsprechend der SLAs ordnungsgemäß implementiert sein.

Lizenzierungsmöglichkeiten

Die Lizenzierung von virtuellen Umgebungen ist – insbesondere bei Microsoft – etwas komplex. Gerade im Hinblick auf die Kosten der jeweiligen Lizenzen ist es sinnvoll, sich mit den jeweiligen Optionen auseinanderzusetzen. Zusätzlich empfehlen wir dabei, einen Software Assurance Vertrag von Mircosoft abzuschließen, der Ihnen die notwendige Flexibilität in der Arbeit mit virtualisierten Systemen liefert. Ziehen Sie zudem eventuell eine Host-Core Lizenzierung in Betracht, wenn Serverkonsolidierung bei Ihnen eine große Rolle spielt. Führen Sie regelmäßige Audits und entsprechendes Monitoring auf Ihren Servern durch, um die Betriebszeiten und Performance unter die Lupe zu nehmen. Aufbauend auf dessen Ergebnisse können Anpassungen und Änderungen vorgenommen werden.

  • SQL Server Editionen (Standard / Enterprise)
  • Standalone vs. Cluster
  • Einzelinstanz vs. Host
  • Passive vs. Aktive Server

Best Practices zur Peformanceoptimierung

  • Verwenden Sie aktuelle Hardware von vertrauenswürdigen Anbietern und versuchen Sie veraltete Hardware und Systeme zu vermeiden.
  • Nutzen Sie die richtigen Geräte- & Netzwerktreiber für das virtuelle System
  • Verwenden Sie beim Ausführen von SQL Server nie zu viel Arbeitsspeicher. Eine kurzweilige und schmale Überbelegung der CPU ist jedoch in Ordnung, sofern diese fortwährend überwacht wird.
  • Vermeiden Sie Pass-Trough-Datenträger auf Gast VMs, insbesondere SQL-Server-Clustering
  • Verwenden Sie keine dynamischen virtuellen Festplatten
  • Nutzen Sie bestenfalls dedizierte Speicherplatten
  • Wählen Sie für Festplattenlaufwerke VHD/VMDK mit fester Größe
  • Fahren Sie die VM herunter, wenn Sie bei SSD Laufwerken die Größe erweitern möchten.
  • Überwachen Sie folgende Vorgänge innerhalb Ihrer VM:
    • Hyper-V-Prozessoren
    • Virtueller Stammprozessor des Hyper-V
    • Virtueller Hyper-V-Prozessor
    • VMware CPU Auslastung

Monitoring und Überwachung der virtuellen Umgebung

Erfahrene Datenbankadministratoren wissen um die Wichtigkeit des Leistungserhalts von SQL Datenbankservern und dessen Plattform, auf der diese ausgeführt werden. Entspricht die Performance nicht der Ansprüche, müssen Fehler erkundschaftet und Leistungen optimiert werden. Dafür empfehlen wir Monitoringtools, die über mögliche Optimierungsmaßnahmen einen Überblick verschaffen.

Hinweis: Im vorangegangenen Artikel berichten wir über weitere Best Practices und eventuelle Störfaktoren, wie “Noisy Neighbours” oder das “Core-Socket-Verhältnis”, die die Performance von VMware und SQL Server deutlich beeinträchtigen können.