Configurare l'archiviazione per SQL Server in macchine virtuali di Azure

Si applica a:SQL Server nella macchina virtuale di Azure

Questo articolo illustra come configurare l'archiviazione per SQL Server in Azure Macchine virtuali (VM) distribuite tramite Azure Marketplace tramite SSD Premium.

Le macchine virtuali di SQL Server distribuite tramite immagini del marketplace seguono automaticamente le procedure consigliate di archiviazione predefinite che possono essere modificate durante la distribuzione. Alcune di queste impostazioni di configurazione possono essere modificate dopo la distribuzione.

Nota

Questo articolo è applicabile solo a SQL Server in macchine virtuali di Azure che usano Archiviazione Premium, non all'archiviazione SSD Premium v2.

Prerequisiti

Per usare le impostazioni di configurazione automatica dell'archiviazione, la macchina virtuale deve avere le caratteristiche seguenti:

Nuove VM

Le sezioni seguenti descrivono come configurare l'archiviazione per le nuove macchine virtuali di SQL Server.

Azure portal

Quando si esegue il provisioning di una macchina virtuale di Azure usando un'immagine della raccolta di SQL Server, selezionare Cambia configurazione in Archiviazione nella scheda SQL Server Impostazioni per aprire la pagina Configura archiviazione. È possibile lasciare i valori predefiniti o modificare il tipo di configurazione del disco più adatto alle proprie esigenze in base al carico di lavoro.

Screenshot that highlights the SQL Server settings tab and the Change configuration option.

Nota

Se è stata selezionata una dimensione di macchina virtuale supportata, è possibile usare SSD Premium v2, che offre un controllo granulare sulle dimensioni del disco, le operazioni di I/O al secondo e la velocità effettiva.

Scegliere il percorso dell'unità per i file di dati e i file di log, specificando il tipo di disco e il numero di dischi. Usare i valori di operazioni di I/O al secondo per determinare la configurazione di archiviazione migliore per soddisfare le esigenze aziendali. La scelta dell'archiviazione Premium imposta la memorizzazione nella cache su ReadOnly per l'unità dati e Nessuno per l'unità di log in base alle procedure consigliate per le prestazioni delle macchine virtuali di SQL Server.

Screenshot from the Azure portal of the SQL Server VM Storage Configuration page during provisioning.

La configurazione del disco è completamente personalizzabile in modo da poter configurare la topologia di archiviazione, il tipo di disco e le operazioni di I/O al secondo necessarie per il carico di lavoro della macchina virtuale di SQL Server. È anche possibile usare Ultradisk come opzione per il tipo di disco se la macchina virtuale di SQL Server si trova in una delle aree supportate e sono stati abilitati i dischi Ultra per la sottoscrizione.

tempdb Configurare le impostazioni del database in Archiviazione TempDb, ad esempio il percorso dei file di database, nonché il numero di file, le dimensioni iniziali e l'aumento automatico in MB.

  • Attualmente, durante la distribuzione, il numero massimo di tempdb file è 8, ma è possibile aggiungere altri file dopo la distribuzione della macchina virtuale di SQL Server.
  • Se si configura l'istanza tempdb di SQL Server nel volume SSD locale come consigliato, l'estensione SQL IaaS Agent gestisce le cartelle e le autorizzazioni necessarie al nuovo provisioning. Non è necessario creare la macchina virtuale SQL con un'immagine da Azure Marketplace.

Screenshot that shows where you can configure the tempdb storage for your SQL VM.

Inoltre, è possibile impostare la memorizzazione nella cache per i dischi. Le macchine virtuali di Azure hanno una tecnologia di memorizzazione nella cache a più livelli denominata cache di dati BLOB se usate con dischi Premium. La cache di dati BLOB usa una combinazione della RAM della macchina virtuale e dell'unità SSD locale per la memorizzazione nella cache.

La memorizzazione nella cache del disco per SSD Premium può essere ReadOnly, *ReadWrite o Nessuno.

  • La memorizzazione nella cache ReadOnly è molto utile per i file di dati di SQL Server archiviati in Archiviazione Premium. Il tipo ReadOnly implica una bassa latenza di lettura e valori elevati per le operazioni di I/O al secondo e la velocità effettiva di lettura, poiché le letture vengono eseguite dalla cache, che si trova all'interno della memoria della VM e dell'unità SSD locale. Queste letture sono molto più veloci rispetto alle letture dal disco dati, che proviene dall'archivio BLOB di Azure. L'archiviazione Premium non conta le letture gestite dalla cache verso le operazioni di I/O al secondo del disco e la velocità effettiva. Si è quindi in grado di ottenere valori totali di operazioni di I/O al secondo e velocità effettiva più elevati.

  • None cache configuration should be used for the disks hosting SQL Server Log file as the log file is writely and not benefit from ReadOnly caching.

  • La memorizzazione nella cache ReadWrite non deve essere usata per ospitare file di SQL Server perché SQL Server non supporta la coerenza dei dati con la cache ReadWrite . Le scritture sprecano la capacità della cache BLOB ReadOnly e le latenze aumentano leggermente se le scritture passano attraverso i livelli della cache BLOB ReadOnly.

    Suggerimento

    Assicurarsi che la configurazione dell'archiviazione corrisponda alle limitazioni imposte dalle dimensioni della macchina virtuale selezionata. La scelta dei parametri di archiviazione che superano il limite di prestazioni delle dimensioni della macchina virtuale genererà un avviso: The desired performance might not be reached due to the maximum virtual machine disk performance cap. Ridurre le operazioni di I/O al secondo cambiando il tipo di disco o aumentare il limite massimo per le prestazioni aumentando le dimensioni della macchina virtuale. Questo non interromperà il provisioning.

A seconda delle scelte effettuate, Azure esegue le seguenti attività di configurazione dell'archiviazione dopo la creazione della VM:

  • Crea e collega unità SSD Premium alla macchina virtuale.
  • Configura i dischi dati in modo che siano accessibili per SQL Server.
  • Configura i dischi dati in un pool di archiviazione in base ai requisiti specificati per dimensioni e prestazioni (operazioni di I/O al secondo e velocità effettiva).
  • Associa il pool di archiviazione a una nuova unità nella macchina virtuale.

Per istruzioni complete su come creare una VM di SQL Server nel portale di Azure, vedere l'esercitazione sul provisioning.

Modelli di Resource Manager

Se si usano i modelli di Resource Manager seguenti, vengono collegati per impostazione predefinita due dischi dati Premium, senza configurare un pool di archiviazione. È comunque possibile personalizzare questi modelli per modificare il numero di dischi di dati Premium collegati alla macchina virtuale.

Modello di avvio rapido

È possibile usare il modello di avvio rapido seguente per distribuire una VM di SQL Server usando l'ottimizzazione dell'archiviazione.

Nota

Alcune dimensioni delle macchine virtuali potrebbero non avere spazio di archiviazione temporaneo o locale. Se si distribuisce un'istanza di SQL Server in una macchina virtuale di Azure senza archiviazione temporanea, tempdb i file di dati e di log vengono inseriti nella cartella dati.

VM esistenti

Nota

Archiviazione è configurabile solo per le macchine virtuali di SQL Server distribuite da un'immagine di SQL Server in Azure Marketplace e non attualmente supportate per Dischi SSD Premium v2.

Per le macchine virtuali di SQL Server esistenti distribuite tramite Azure Marketplace, è possibile modificare alcune impostazioni di archiviazione nella portale di Azure.

Per modificare le impostazioni di archiviazione, aprire la risorsa macchine virtuali SQL e selezionare Archiviazione configurazione in Impostazioni.

Screenshot that highlights the Configure option and the Storage Usage section.

È possibile modificare le impostazioni del disco per le unità configurate durante il processo di creazione della VM di SQL Server. Se si seleziona Configura , viene visualizzata la pagina Estendi unità dati, che consente di modificare il tipo di disco e di aggiungere altri dischi.

A screenshot from the Azure portal showing the Extend Data drive page, used to configure storage for an existing SQL Server VM.

È anche possibile modificare tempdb le impostazioni usando la pagina di configurazione Archiviazione, ad esempio il numero di tempdb file, nonché le dimensioni iniziali e il rapporto di aumento automatico. Selezionare Configura accanto a tempdb per aprire la pagina configurazione di tempdb.

Scegliere accanto a Configura file di dati tempdb per modificare le impostazioni e quindi scegliere accanto a Gestisci cartelle di database tempdb al riavvio per consentire ad Azure di gestire la tempdb configurazione, la cartella e le autorizzazioni al successivo avvio del servizio SQL Server. Non è necessario creare la macchina virtuale SQL con un'immagine da Azure Marketplace.

Screenshot of the tempdb configuration page of the Azure portal from the SQL virtual machines resource page.

Riavviare il servizio SQL Server per applicare le modifiche.

Modifiche automatizzate

Questa sezione fornisce un riferimento per le modifiche alla configurazione dell'archiviazione eseguite automaticamente da Azure durante il provisioning o la configurazione delle macchine virtuali di SQL Server nel portale di Azure.

  • Azure configura un pool di archiviazione dallo spazio di archiviazione selezionato dalla VM. La sezione successiva di questo articolo fornisce informazioni dettagliate sulla configurazione del pool di archiviazione.
  • Per la configurazione automatica dell'archiviazione vengono sempre usati dischi dati P30 SSD Premium. Esiste quindi un mapping 1:1 tra il numero selezionato di Terabyte e il numero di dischi dati collegati alla macchina virtuale.

Per informazioni sui prezzi, vedere la pagina Prezzi di archiviazione nella scheda Archiviazione su disco .

Creazione del pool di archiviazione

Azure usa le impostazioni seguenti per creare il pool di archiviazione nelle VM di SQL.

Impostazione Valore
Dimensioni di striping 64 kB
Dimensione disco 1 TB ciascuno
Cache Lettura
Dimensioni allocazione Dimensioni unità di allocazione NTFS da 64 KB
Ripristino Recupero con registrazione minima (nessuna resilienza)
Numero di colonne Numero di dischi dati fino a 81

1 Dopo aver creato il pool di archiviazione, non è possibile modificare il numero di colonne nel pool di archiviazione.

Abilitazione della memorizzazione nella cache.

Per SSD Premium, è possibile modificare i criteri di memorizzazione nella cache a livello di disco. A tale scopo, è possibile usare il portale di Azure, PowerShell o l'interfaccia della riga di comando di Azure.

Per modificare i criteri di memorizzazione nella cache nella portale di Azure, seguire questa procedura:

  1. Arrestare il servizio SQL Server.

  2. Accedere al portale di Azure.

  3. Passare alla macchina virtuale e selezionare Dischi in Impostazioni.

    Screenshot showing the VM disk configuration pane in the Azure portal.

  4. Scegliere i criteri di memorizzazione nella cache appropriati per il disco dall'elenco a discesa, ovvero Sola lettura o Nessuno.

    Screenshot showing the disk caching policy configuration in the Azure portal.

  5. Dopo l'applicazione della modifica, riavviare la macchina virtuale di SQL Server e avviare il servizio SQL Server.

Abilitare l'acceleratore di scrittura

L'acceleratore di scrittura è una funzionalità del disco disponibile solo per le Macchine virtuali serie M( VM). Lo scopo dell'accelerazione della scrittura è migliorare la latenza di I/O delle scritture in Azure Archiviazione Premium quando è necessaria una latenza di I/O a cifra singola a causa di carichi di lavoro OLTP cruciali per volumi elevati o ambienti di data warehouse.

Prima di abilitare l'acceleratore di scrittura, esaminare alcune delle restrizioni per verificare che siano accettabili per l'azienda.

Arrestare tutte le attività di SQL Server e arrestare il servizio SQL Server prima di apportare modifiche ai criteri di accelerazione della scrittura.

Se i dischi sono con striping, abilitare l'accelerazione di scrittura per ogni disco singolarmente e la macchina virtuale di Azure deve essere arrestata prima di apportare modifiche.

Per abilitare l'accelerazione di scrittura usando il portale di Azure, seguire questa procedura:

  1. Arrestare il servizio SQL Server. Se i dischi sono con striping, arrestare la macchina virtuale.

  2. Accedere al portale di Azure.

  3. Passare alla macchina virtuale e selezionare Dischi in Impostazioni.

    Screenshot showing the VM disk configuration pane in the Azure portal.

  4. Scegliere l'opzione cache con l'acceleratore di scrittura per il disco dall'elenco a discesa.

    Screenshot showing the write accelerator cache policy.

  5. Dopo l'applicazione della modifica, avviare la macchina virtuale e il servizio SQL Server.

Striping del disco

Per una maggiore velocità effettiva, è possibile aggiungere altri dischi dati e usare lo striping del disco. Per determinare il numero di dischi dati, analizzare la velocità effettiva e la larghezza di banda necessari per i file di dati di SQL Server, inclusi il log e tempdb. I limiti di velocità effettiva e larghezza di banda variano in base alle dimensioni della macchina virtuale. Per altre informazioni, vedere Dimensioni delle macchine virtuali.

  • Per Windows 8 e Windows Server 2012 o versioni successive, usare Spazi di archiviazione applicando le indicazioni seguenti:

    1. Impostare interleave (dimensioni di striping) su 64 KB (65.536 byte) per evitare un impatto sulle prestazioni a causa di un errore di allineamento della partizione. Questo valore deve essere impostato con PowerShell.

    2. Impostare il numero di colonne sul numero di dischi fisici. Usare PowerShell (e non l'interfaccia utente di Server Manager) per configurare più di 8 dischi.

Ad esempio, powerShell seguente crea un nuovo pool di archiviazione con dimensioni interleave fino a 64 KB e il numero di colonne uguale alla quantità di disco fisico nel pool di archiviazione:

$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 e versioni successive il valore predefinito per -StorageSubsystemFriendlyName è Windows Storage on <VM Name>

  • Per Windows 2008 R2 o versioni precedenti, è possibile usare i dischi dinamici (volumi con striping del sistema operativo) e la dimensione di striping è sempre di 64 KB. Questa opzione è deprecata a partire da Windows 8 e Windows Server 2012. Per informazioni, vedere l'informativa di supporto relativa al passaggio dal servizio dischi virtuali all'API di gestione archiviazione di Windows.

  • Se si usa Spazi di archiviazione diretta (S2D) con istanze del cluster di failover di SQL Server, è necessario configurare un singolo pool. Anche se è possibile creare volumi diversi in tale singolo pool, condividono tutte le stesse caratteristiche, ad esempio gli stessi criteri di memorizzazione nella cache.

  • Determinare il numero di dischi associati al pool di archiviazione dell'utente in base alle aspettative di carico. Tenere presente che le diverse dimensioni di macchine virtuali consentono diversi numeri di dischi dati associati. Per altre informazioni, vedere Dimensioni delle macchine virtuali in Azure.

Problemi noti

L'opzione Configura disco o Archiviazione riquadro Configurazione nella risorsa macchina virtuale SQL è disattivata

Il riquadro configurazione Archiviazione può essere disattivato nella portale di Azure se l'estensione SQL IaaS Agent si trova in uno stato di errore. Ripristinare l'estensione SQL IaaS Agent.

La configurazione nel riquadro configurazione Archiviazione può essere disattivata se è stato personalizzato il pool di archiviazione o se si usa un'immagine non marketplace.

Si dispone di un disco con 1 TB di spazio non allocato che non è possibile rimuovere dal pool di archiviazione

Non è possibile rimuovere lo spazio non allocato da un disco appartenente a un pool di archiviazione.