Configurare l'archiviazione per SQL Server in VM di Azure

Si applica a:‬SQL Server su VM di Azure‭

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

Le macchine virtuali di SQL Server distribuite tramite immagini del marketplace seguono automaticamente le procedure di archiviazione consigliate 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 VM 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.

Portale di Azure

Quando si esegue il provisioning di una VM di Azure usando un'immagine della raccolta di SQL Server, selezionare Cambia la configurazione, in Archiviazione, nella scheda Impostazioni di SQL Server, per aprire la pagina di configurazione dell'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 che evidenzia la scheda Impostazioni di SQL Server e l'opzione Modifica configurazione.

Nota

Se è stata selezionata una dimensione di VM 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. Se si sceglie l'archiviazione Premium, la memorizzazione nella cache viene impostata su ReadOnly per l'unità dati e su None per l'unità log in base alle procedure consigliate per le prestazioni delle VM di SQL Server.

Screenshot del portale di Azure della pagina configurazione Archiviazione della VM di SQL Server durante il provisioning.

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

Configurare le tempdb impostazioni del database in Archiviazione TempDb, come la posizione dei file di database, il numero di file, le dimensioni iniziali e le dimensioni dell'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 D: come consigliato, l'estensione SQL IaaS Agent gestisce le cartelle e le autorizzazioni necessarie al reprovisioning. Ciò non richiede che la macchina virtuale SQL sia stata creata con un'immagine da Azure Marketplace.

Screenshot che mostra dove è possibile configurare l'archiviazione tempdb per la VM SQL.

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, oppure None.

  • 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 delle letture dal disco dati, ovvero dalla risorsa di archiviazione BLOB di Azure. L'archiviazione Premium non include le operazioni di lettura servite dalla cache nel calcolo dei valori di operazioni di I/O al secondo e velocità effettiva del disco. Si è quindi in grado di ottenere valori totali di operazioni di I/O al secondo e velocità effettiva più elevati.

  • La configurazione della cache None deve essere usata per i dischi che ospitano il file di log di SQL Server, poiché tale file viene scritto in sequenza e non sfrutta la memorizzazione nella cache di tipo ReadOnly.

  • La memorizzazione nella cache ReadWrite non deve essere usata per ospitare i 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. Se si scelgono parametri di archiviazione che superano il limite massimo delle dimensioni della macchina virtuale per le prestazioni, verrà generato un errore: 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 le 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

L’archiviazione è configurabile solo per le VM di SQL Server implementate da un'immagine di SQL Server in Azure Marketplace e attualmente non supportate per dischi SSD Premium v2. Per modificare le configurazioni del disco in una macchina virtuale di Azure con SQL Server installato automaticamente, usare il riquadro Dischi.

Modificare le unità esistenti

Per le macchine virtuali SQL Server esistenti, distribuite tramite Azure Marketplace, è possibile modificare alcune impostazioni di archiviazione nel portale di Azure attraverso la risorsa Macchine virtuali SQL o nel riquadro Dischi.

Per modificare le impostazioni di archiviazione, aprire la risorsa macchine virtuali SQL e selezionare Configurazione archiviazione in Impostazioni, dove si potrà:

  • Aggiungere ulteriori dischi
  • Configurare o espandere i dischi esistenti

Screenshot che evidenzia l'opzione Configura e la sezione Utilizzo Archiviazione.

Selezionando Configura, viene visualizzata la pagina Estendi unità dati, che consente di modificare il tipo di disco, nonché di aggiungere altri dischi. È anche possibile aggiungere dischi tramite il riquadro Dischi.

Screenshot del portale di Azure che mostra la pagina Estensione unità dati usata per configurare l'archiviazione per una VM di SQL Server esistente.

Se si è già raggiunto il massimo dei dischi supportati per una particolare dimensione della VM, potrebbe essere necessario Ridimensionare la VM.

Modifica di tempdb

Inoltre, è possibile modificare le impostazioni tempdb usando la pagina Configurazione dell'archiviazione, ad esempio il numero di file tempdb, 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, quindi scegliere accanto a Gestisci cartelle di database tempdb al riavvio per consentire ad Azure di gestire la configurazione tempdb, la cartella e le autorizzazioni al successivo avvio del servizio SQL Server. Ciò non richiede che la macchina virtuale SQL sia stata creata con un'immagine da Azure Marketplace.

Screenshot della pagina di configurazione di tempdb del portale di Azure dalla pagina delle risorse delle macchine virtuali SQL.

Riavviare il servizio SQL Server per applicare le modifiche.

Aumento delle dimensioni del disco temporaneo

Per aumentare le dimensioni del disco temporaneo, ridimensionare la VM passando a uno SKU che supporti un disco superiore per l'archiviazione temporanea.

Modifiche automatizzate

In questa sezione sono disponibili informazioni di riferimento sulle modifiche della configurazione dell'archiviazione eseguite automaticamente da Azure durante il provisioning o la configurazione di VM SQL nel portale di Azure.

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

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 Server.

Impostazione Valore
Dimensioni di striping 64 kB
Dimensione disco 1 TB ciascuno
Cache Lettura
Dimensioni allocazione Dimensioni delle unità di allocazione NTFS = 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.

Abilitazione della memorizzazione nella cache.

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

Per modificare un criterio di memorizzazione nella cache nel 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 che mostra il riquadro Configurazione disco VM nel portale di Azure.

  4. Scegliere i criteri di memorizzazione nella cache appropriati per il disco dall'elenco a discesa: Read-only oppure None.

    Screenshot che mostra la configurazione dei criteri di cache del disco nel portale Azure.

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

Abilitare l'acceleratore di scrittura

Acceleratore di scrittura è una funzionalità del disco disponibile solo per le macchine virtuali (VM) serie M. 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 che mostra il riquadro Configurazione disco VM nel portale di Azure.

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

    Screenshot che mostra i criteri di cache dell'acceleratore di scrittura.

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

Striping del disco

Per una maggiore produttività, è possibile aggiungere altri dischi dati e usare lo striping del disco. Per determinare il numero di dischi dati, analizzare la produttività e la larghezza di banda necessari per i file di dati di SQL Server, inclusi il log e tempdb. I limiti di produttività e bandwidth variano in base alle dimensioni della VM. Per ulteriori informazioni, si veda Dimensioni della VM.

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

    1. Impostare l'interleave (dimensione di striping) su 64 KB (65.536 byte), in modo da evitare effetti sulle prestazioni a causa del mancato allineamento delle partizioni. 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, il seguente script di PowerShell crea un nuovo pool di archiviazione con la dimensione di interleave impostata su 64 KB e il numero di colonne uguale al numero di dischi fisici presenti 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>.

Problemi noti

L'opzione Configura Disco o il riquadro Configurazione Archiviazione nella risorsa della macchina virtuale SQL è disabilitata

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

Configura nel riquadro Configurazione Archiviazione può essere disattivato 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 che appartiene a un pool di archiviazione.

Il log delle transazioni è pieno

Si veda Risolvere i problemi relativi a un log delle transazioni completo se il log diventa pieno.