Konfigurieren von Speicher für SQL Server auf Azure-VMs

Gilt für: SQL Server auf Azure-VMs

In diesem Artikel erfahren Sie, wie Sie den Speicher für Ihre SQL Server-Instanz auf Azure Virtual Machines (VMs), die über den Azure Marketplace bereitgestellt werden, mit Premium SSD konfigurieren.

SQL Server-VMs, die über Marketplace-Images bereitgestellt werden, folgen automatisch den standardmäßigen bewährten Methoden für die Speicherung, die während der Bereitstellung geändert werden können. Einige dieser Konfigurationseinstellungen können nach der Bereitstellung geändert werden.

Hinweis

Dieser Artikel gilt nur für SQL Server auf Azure-VMs, die Storage Premium verwenden, nicht SSD Premium v2-Speicher.

Voraussetzungen

Zur Verwendung der Einstellungen für die automatische Speicherkonfiguration muss Ihr virtueller Computer über die folgenden Merkmale verfügen:

Neue virtuelle Computer

In den folgenden Abschnitten wird beschrieben, wie Speicher für neue virtuelle SQL Server-Computer konfiguriert wird.

Azure-Portal

Wenn Sie eine Azure-VM mithilfe eines SQL Server-Katalogimages bereitstellen, wählen Sie auf der Registerkarte SQL Server-Einstellungen und Speicher die Option Konfiguration ändern aus, um die Seite Speicher konfigurieren zu öffnen. Sie können die Standardeinstellungen der Werte übernehmen oder den Typ der Datenträgerkonfiguration ändern, der den Anforderungen für Ihre Workload am besten entspricht.

Screenshot mit Hervorhebung der Registerkarte „SQL Server-Einstellungen“ und der Option „Konfiguration ändern“.

Hinweis

Wenn Sie eine unterstützte VM-Größe ausgewählt haben, können Sie SSD Premium v2 verwenden, wodurch Sie präzise Kontrolle über Datenträgergröße, IOPS und Durchsatz erhalten.

Wählen Sie den Speicherort auf dem Laufwerk für Ihre Daten- und Protokolldateien aus, und geben Sie den Datenträgertyp sowie die Anzahl der Datenträger an. Verwenden Sie die IOPS-Werte, um die beste Speicherkonfiguration für Ihre geschäftlichen Anforderungen zu bestimmen. Wenn Sie Storage Premium auswählen, wird die Zwischenspeicherung auf Schreibgeschützt für das Datenlaufwerk und Keine für das Protokolllaufwerk festgelegt, wie unter Bewährte Methoden für die SQL Server-VM-Leistung beschrieben.

Screenshot der Seite zum Konfigurieren des Speichers der SQL Server-VM im Azure-Portal während der Bereitstellung.

Die Datenträgerkonfiguration ist vollständig anpassbar, sodass Sie die Speichertopologie, den Datenträgertyp und den IOPs konfigurieren können, die Sie für Ihre SQL Server-VM-Workload benötigen. Sie haben auch die Möglichkeit, Ultradisk als Option für den Datenträgertyp zu verwenden, wenn sich Ihre SQL Server-VM in einer der unterstützten Regionen befindet und Sie Ultra-Datenträger für Ihr Abonnement aktiviert haben.

Konfigurieren Sie Ihre Einstellungen für die tempdb-Datenbank im tempDb-Speicher, dazu gehören z. B. der Speicherort der Datenbankdateien sowie die Anzahl der Dateien, die Anfangsgröße und die Größe für die automatische Größenanpassung in MB.

  • Derzeit beträgt die maximale Anzahl von tempdb-Dateien während der Bereitstellung acht, aber nach der Bereitstellung der SQL Server-VM können weitere Dateien hinzugefügt werden.
  • Wenn Sie die SQL Server-Instanz tempdb auf dem lokalen SSD-Volume D: wie empfohlen konfigurieren, verwaltet die SQL IaaS-Agent-Erweiterung die Ordner und Berechtigungen, die bei der erneuten Bereitstellung erforderlich sind. Dies erfordert nicht, dass Sie den virtuellen SQL-Computer mit einem Image aus dem Azure Marketplace erstellt haben.

Screenshot: Konfigurieren der tempdb-Speicherung für Ihre SQL-VM.

Zusätzlich haben Sie die Möglichkeit, die Zwischenspeicherung für die Datenträger festzulegen. Azure VMs verfügen über eine mehrschichtige Zwischenspeicherungstechnologie namens Blobcache, wenn sie mit Premium-Datenträgern verwendet werden. Blobcache verwendet für das Zwischenspeichern eine Kombination aus RAM des virtuellen Computers und lokalem SSD-Laufwerk.

Die Datenträgerzwischenspeicherung für SSD Premium kann die Werte ReadOnly, ReadWrite* oder None aufweisen.

  • Zwischenspeicherung vom Typ ReadOnly ist sehr vorteilhaft für SQL Server-Datendateien, die in Storage Premium gespeichert sind. Zwischenspeicherung vom Typ ReadOnly bringt niedrige Leselatenz, hohe Lese-IOPS und Durchsatz mit sich, da Lesezugriffe aus dem Cache erfolgen, der sich im VM-Arbeitsspeicher und auf der lokalen SSD befindet. Diese Lesezugriffe sind viel schneller als Lesezugriffe vom Datenträger, die aus Azure Blob Storage erfolgen. Storage Premium rechnet die aus dem Cache erfüllten Leseanforderungen nicht zur IOPS- und Durchsatzrate des Datenträgers. Aus diesem Grund kann Ihre Anwendung eine höhere Gesamtrate bei IOPS und Durchsatz erzielen.

  • Die Cachekonfiguration None sollte für die Datenträger verwendet werden, auf denen sich die SQL Server-Protokolldatei befindet, da die Protokolldatei sequenziell geschrieben wird und nicht von ReadOnly-Zwischenspeicherung profitiert.

  • Zwischenspeicherung vom Typ ReadWrite sollte nicht zum Hosten von SQL Server-Dateien verwendet werden, da SQL Server keine Datenkonsistenz mit dem ReadWrite-Cache unterstützt. Schreibvorgänge vergeuden die Kapazität des ReadOnly-Blobcaches, und die Latenzzeiten nehmen geringfügig zu, wenn die Schreibvorgänge durch ReadOnly-Blobcacheebenen erfolgen.

    Tipp

    Stellen Sie sicher, dass Ihre Speicherkonfiguration mit den Einschränkungen der ausgewählten VM-Größe übereinstimmt. Die Auswahl von Speicherparametern, die die Leistungsgrenze der VM-Größe überschreiten, führt zur Warnung The desired performance might not be reached due to the maximum virtual machine disk performance cap. Verringern Sie den IOPS durch Ändern des Datenträgertyps, oder erhöhen Sie die Leistungsbegrenzung durch Vergrößern der VM-Größe. Dadurch wird die Bereitstellung nicht unterbrochen.

Je nach Ihrer Auswahl führt Azure nach dem Erstellen der VM die folgenden Aufgaben der Speicherkonfiguration durch:

  • Erstellt SSD Premium-Datenträger und fügt sie an die VM an.
  • Konfiguriert die Datenträger so, dass sie für SQL Server zugänglich sind.
  • Konfiguriert die Datenträger in einem Speicherpool basierend auf der angegebenen Größe und den Leistungsanforderungen (IOPS und Durchsatz).
  • Ordnet dem Speicherpool ein neues Laufwerk auf dem virtuellen Computer zu.

Eine vollständige exemplarische Vorgehensweise zur Erstellung einer SQL Server-VM im Azure-Portal finden Sie unter Tutorial zur Bereitstellung.

Resource Manager-Vorlagen

Wenn Sie die folgenden Resource Manager-Vorlagen verwenden, werden standardmäßig zwei Premium-Datenträger ohne Speicherpoolkonfiguration angefügt. Sie können diese Vorlagen aber anpassen, um die Anzahl von Premium-Datenträgern zu ändern, die an den virtuellen Computer angefügt sind.

Schnellstartvorlage

Sie können die folgende Schnellstartvorlage verwenden, um eine SQL Server-VM mithilfe von Speicheroptimierung bereitzustellen.

Hinweis

Einige VM-Größen verfügen möglicherweise nicht über temporären oder lokalen Speicher. Wenn Sie eine SQL Server-Instanz auf einem virtuellen Azure-Computer ohne temporären Speicher bereitstellen, werden tempdb-Daten und Protokolldateien im Datenordner abgelegt.

Vorhandene virtuelle Computer

Hinweis

Der Speicher ist nur für SQL Server-VMs konfigurierbar, die aus einem SQL Server-Image im Azure Marketplace bereitgestellt wurden und wird derzeit nicht für SSD Premium v2-Festplatten unterstützt. Verwenden Sie zum Ändern von Datenträgerkonfigurationen auf einem virtuellen Azure-Computer mit selbst installiertem SQL Server den Bereich „Datenträger“.

Ändern vorhandener Laufwerke

Für vorhandene SQL Server-VMs, die über Azure Marketplace bereitgestellt wurden, können Sie im Azure-Portal über die Ressource der virtuellen SQL-Computer oder im Bereich „Datenträger“ einige Speichereinstellungen ändern.

Um die Speichereinstellungen zu ändern, öffnen Sie die Ressource der virtuellen SQL-Computer und wählen Sie Speicherkonfiguration unter Einstellungen, wo Folgendes möglich ist:

  • Hinzufügen zusätzlicher Datenträger
  • Konfigurieren oder Erweitern vorhandener Datenträger

Screenshot mit Hervorhebung der Option „Konfigurieren“ und des Abschnitts „Speichernutzung“.

Durch die Auswahl von Konfigurieren wird die Seite Datenlaufwerks erweitern geöffnet, auf der Sie den Datenträgertyp ändern und zusätzliche Datenträger hinzufügen können. Sie können Datenträger auch über den Bereich „Datenträger“ hinzufügen.

Screenshot der Seite „Datenlaufwerk erweitern“ im Azure-Portal, die zum Konfigurieren des Speichers für eine vorhandene SQL Server-VM dient.

Wenn Sie die maximal unterstützten Datenträger für eine bestimmte VM-Größe bereits erreicht haben, müssen Sie gegebenenfalls den virtuellen Computer skalieren.

Ändern von tempdb

Es ist auch möglich, Ihre tempdb-Einstellungen auf der Seite Speicherkonfiguration zu ändern, dazu gehören z. B. die Anzahl der tempdb-Dateien sowie die Anfangsgröße und das Verhältnis für die automatische Vergrößerung. Wählen Sie Konfigurieren neben tempdb aus, um die Seite tempdb-Konfiguration zu öffnen.

Wählen Sie Ja neben tempdb-Datendateien konfigurieren aus, um Ihre Einstellungen zu ändern, und wählen Sie dann Ja neben tempdb-Datenbankordner beim Neustart verwalten aus, damit Azure Ihre tempdb-Konfiguration, Ordner und Berechtigungen verwalten beim nächsten Start Ihres SQL Server Diensts starten können. Dies erfordert nicht, dass Sie den virtuellen SQL-Computer mit einem Image aus dem Azure Marketplace erstellt haben.

Screenshot: Seite „tempdb-Konfiguration“ im Azure-Portal unter der Seite „SQL-VM-Ressourcen“.

Starten Sie den SQL Server-Dienst neu, damit die Änderungen übernommen werden.

Erhöhen der temporären Datenträgergröße

Wenn Sie den temporären Datenträger vergrößern möchten, müssen Sie die Größe des virtuellen Computers in eine SKU ändern, die einen größeren Datenträger für die temporäre Speicherung unterstützt.

Automatisierte Änderungen

Dieser Abschnitt dient als Referenz für die Änderungen der Speicherkonfiguration, die von Azure automatisch vorgenommen werden, während die SQL Server-VM-Bereitstellung oder -Konfiguration im Azure-Portal durchgeführt wird.

  • Azure konfiguriert einen Speicherpool aus dem ausgewählten Speicher Ihrer VM. Im nächsten Abschnitt dieses Artikels sind Details zur Speicherpoolkonfiguration angegeben.
  • Bei der automatischen Speicherkonfiguration werden immer P30-Datenträger vom Typ SSD Premium verwendet. Es besteht also eine 1:1-Zuordnung zwischen der ausgewählten TB-Menge und der Anzahl von Datenträgern, die an die VM angefügt sind.

Preisinformationen finden Sie auf der Seite Preise für Azure Storage auf der Registerkarte Disk Storage .

Erstellung des Speicherpools

In Azure werden die folgenden Einstellungen verwendet, um den Speicherpool auf SQL Server-VMs zu erstellen:

Einstellung Wert
Stripegröße 64 KB
Datenträgergrößen 1 TB jeder
Cache Lesen
Zuordnungsgröße Größe der NTFS-Zuordnungseinheit: 64 KB
Wiederherstellung Einfache Wiederherstellung (keine Resilienz)
Anzahl von Spalten Anzahl von Datenträgern für Daten bis zu 81

1 Nach der Erstellung des Speicherpools können Sie die Anzahl von Spalten im Speicherpool nicht mehr ändern.

Hinweis

Verwenden Sie Optimize-StoragePoo und Optimize-Volume, um die Speicherplatzzuweisung in einem Pool neu auszugleichen und die Leistung für Workload-Typen zu optimieren, die zufällige E/A-Muster mit langer Warteschlange aufweisen.

Aktivieren der Zwischenspeicherung

Bei SSD Premium können Sie die Zwischenspeicherungsrichtlinie auf Datenträgerebene ändern. Sie können dies über das Azure-Portal, PowerShell oder die Azure CLI erreichen.

Gehen Sie folgendermaßen vor, um Ihre Richtlinie für das Zwischenspeichern im Azure-Portal zu ändern:

  1. Beenden Sie den SQL Server-Dienst.

  2. Melden Sie sich beim Azure-Portal an.

  3. Navigieren Sie zu Ihrem virtuellen Computer, und wählen Sie Datenträger unter Einstellungen aus.

    Screenshot: Bereich „VM-Datenträgerkonfiguration“ im Azure-Portal.

  4. Wählen Sie in der Dropdown-Liste die entsprechende Richtlinie für die Zwischenspeicherung für den Datenträger aus – entweder Schreibgeschützt oder Keine.

    Screenshot: Konfiguration der Richtlinie für die Zwischenspeicherung im Azure-Portal

  5. Nachdem die Änderung wirksam geworden ist, starten Sie die SQL Server-VM neu. Anschließend starten Sie den SQL Server-Dienst.

Aktivieren der Schreibbeschleunigung

Die Schreibbeschleunigung ist ein Datenträgerfeature, das nur für die virtuellen Computer (VMs) der M-Serie verfügbar ist. Der Zweck der Schreibbeschleunigung besteht darin, die E/A-Wartezeit von Schreibvorgängen für Azure Storage Premium zu verbessern, wenn Sie aufgrund von unternehmenskritischen OLTP-Workloads mit hohem Volumen oder Data Warehouse-Umgebungen eine einstellige E/A-Wartezeit benötigen.

Bevor Sie Schreibbeschleunigung aktivieren, sollten Sie einige der Einschränkungen überprüfen, um sicherzustellen, dass sie für Ihr Unternehmen akzeptabel sind.

Beenden Sie alle SQL Server-Aktivitäten, und fahren Sie den SQL Server-Dienst herunter, bevor Sie Änderungen an der Richtlinie für die Schreibbeschleunigung vornehmen.

Wenn Ihre Datenträger Stripesetdatenträger sind, aktivieren Sie die Schreibbeschleunigung für jeden Datenträger einzeln und Ihre Azure-VM sollte heruntergefahren sein, bevor Sie Änderungen vornehmen.

Gehen Sie folgendermaßen vor, um die Schreibbeschleunigung über das Azure-Portal zu aktivieren:

  1. Beenden Sie den SQL Server-Dienst. Wenn Ihre Datenträger Stripesetdatenträger sind, fahren Sie den virtuellen Computer herunter.

  2. Melden Sie sich beim Azure-Portal an.

  3. Navigieren Sie zu Ihrem virtuellen Computer, und wählen Sie Datenträger unter Einstellungen aus.

    Screenshot: Bereich „VM-Datenträgerkonfiguration“ im Azure-Portal.

  4. Wählen Sie die Option zum Zwischenspeichern mit Schreibbeschleunigung für Ihren Datenträger aus der Dropdown-Liste aus.

    Screenshot: Richtlinie für die Zwischenspeicherung für die Schreibbeschleunigung

  5. Nachdem die Änderung wirksam geworden ist, starten Sie den virtuellen Computer und den SQL Server-Dienst.

Datenträgerstriping

Für einen höheren Durchsatz können Sie zusätzliche Datenträger für Daten hinzufügen und Datenträgerstriping verwenden. Um die Anzahl der Datenträger für Daten zu bestimmen, analysieren Sie den Durchsatz und die Bandbreite, die für Ihre SQL Server-Datendateien erforderlich sind, einschließlich Protokoll und tempdb. Die Grenzwerte für Durchsatz und Bandbreite variieren je nach VM-Größe. Weitere Informationen finden Sie unter VM-Größe.

  • Verwenden Sie Speicherplätze für Windows 8 und Windows Server 2012 oder höher mit den folgenden Richtlinien:

    1. Legen Sie die Überlappung (Stripesetgröße) auf 64 KB (65.536 Byte) fest, um Leistungseinbußen durch falsche Partitionsausrichtung zu vermeiden. Dies muss mit PowerShell festgelegt werden.

    2. Festgelegte Anzahl der Spalten = Anzahl der physischen Datenträger. Verwenden Sie PowerShell, wenn Sie mehr als 8 Datenträger (keine Server-Manager-Benutzeroberfläche) konfigurieren.

Mit PowerShell erstellen Sie z. B. wie folgt einen neuen Speicherpool mit einer Überlappungsgröße von 64 KB und einer Anzahl der Spalten, die der Anzahl der physischen Datenträger im Speicherpool entspricht:

$PhysicalDisks = Get-PhysicalDisk | Where-Object {$_.FriendlyName -like "*2" -or $_.FriendlyName -like "*3"}

New-StoragePool -FriendlyName "DataFiles" -StorageSubsystemFriendlyName "Windows Storage on <VM Name>" `
    -PhysicalDisks $PhysicalDisks | New-VirtualDisk -FriendlyName "DataFiles" `
    -Interleave 65536 -NumberOfColumns $PhysicalDisks.Count -ResiliencySettingName simple `
    -UseMaximumSize |Initialize-Disk -PartitionStyle GPT -PassThru |New-Partition -AssignDriveLetter `
    -UseMaximumSize |Format-Volume -FileSystem NTFS -NewFileSystemLabel "DataDisks" `
    -AllocationUnitSize 65536 -Confirm:$false

In Windows Server 2016 und höher ist der Standardwert für -StorageSubsystemFriendlyNameWindows Storage on <VM Name>.

  • Für Windows 2008 R2 oder früher können Sie dynamische Datenträger (Betriebssystem-Stripesetvolumes) verwenden, und die Stripesetgröße ist immer 64 KB. Diese Option ist seit Windows 8/Windows Server 2012 veraltet. Informationen hierzu finden Sie in der Supporterklärung unter Virtual Disk Service is transitioning to Windows Storage Management API(Übergang des Diensts für virtuelle Datenträger in die Windows-Speicherverwaltungs-API, in englischer Sprache).

  • Bei Verwendung von Direkte Speicherplätze (Storage Spaces Direct, S2D) mit SQL Server-Failoverclusterinstanzen müssen Sie einen einzelnen Pool konfigurieren. Auch wenn für einen einzelnen Pool unterschiedliche Volumes erstellt werden können, weisen diese alle die gleichen Merkmale (z. B. die gleiche Cacherichtlinie) auf.

  • Bestimmen Sie auf Basis der erwarteten Auslastung die Anzahl der jedem Speicherpool zugeordneten Datenträger. Bedenken Sie, dass verschiedene VM-Größen unterschiedlich viele angefügte Datenträger für Daten unterstützen. Weitere Informationen finden Sie unter Größen für virtuelle Computer.

Bekannte Probleme

Option „Datenträger konfigurieren“ oder Bereich „Speicherkonfiguration“ ist auf der SQL-VM-Ressource abgeblendet

Die Seite Storage kann im Ressourcenbereich der virtuellen SQL-Computer im Azure-Portal aus folgenden Gründen ausgegraut sein:

  • Ihre Erweiterung für den SQL-IaaS-Agent befindet sich in einem fehlerhaften Zustand. Löschen Sie Ihre SQL Server-VM und registrieren Sie sie dann erneut mit der Erweiterung.
  • Sie haben Ihren Speicherpool angepasst.
  • Sie verwenden ein Nicht-Marketplace-Bild.
  • Sie haben Ihren virtuellen Computer mit nicht verwalteten Datenträgern erstellt. Es werden nur Managed Disks unterstützt.

Die Option „Datenträger erweitern“ ist ausgegraut

Die Option Datenträrer erweitern kann aus den folgenden Gründen ausgegraut sein:

  • Sie haben Ihren Speicherpool angepasst. Wenn Sie Ihren Datenträger erweitern müssen, fügen Sie dem Speicherpool Datenträger hinzu, um den virtuellen Datenträger zu vergrößern.
  • Sie haben die Namen des virtuellen Datenträgers oder Volumes aus den Standardwerten geändert:
    • Speicherpoolnamen: SQLVMStoragePool1, SQLVMStoragePool2, SQLVMStoragePool3
    • Virtueller Datenträger: SQLVMVirtualDisk1, SQLVMVirtualDisk2, SQLVMVirtualDisk3
    • Volumes: SQLVMDATA1, SQLVMLOG and SQLVMTEMPDB
  • Sie haben einen Windows-Cluster auf Ihrer SQL Server-VM installiert, sodass das Erweitern von Datenträgern nicht unterstützt wird.

Ich verfüge über einen Datenträger mit 1 TB an nicht zugewiesenem Speicherpool, den ich nicht aus dem Speicherpool entfernen kann

Es ist keine Option zum Entfernen des nicht zugewiesenen Speicherplatzes eines Datenträgers vorhanden, der zu einem Speicherpool gehört.

Mein Transaktionsprotokoll ist voll

Siehe Problembehandlung bei vollen Transaktionsprotokollen, wenn Ihr Protokoll voll ist.

Speicher mit der Ressource für virtuelle SQL-Computer kann nicht konfiguriert werden

Der Speicherkonfigurationsbereich für die Ressource virtuelle SQL-Computer in der Azure-Portal ist in den folgenden Szenarien möglicherweise nicht verfügbar, ausgegraut oder die Option Datenträger erweitern führt nichts aus:

  • Virtuelle Computer mit selbst installierten SQL Server-Instanzen. Derzeit werden nur SQL Server-VM-Bilder aus Azure Marketplace unterstützt.
  • SQL Server-VMs mit Premium SSDv2. Derzeit werden nur SQL Server-VMs mit SSD Premium unterstützt.
  • Wenn TCP/IP in SQL Server-Konfigurations-Manager deaktiviert ist.