Un passaggio iniziale e semplice per spostare i carichi di lavoro locali di SQL Server nel cloud consiste nell'usare le macchine virtuali di Azure per eseguire i carichi di lavoro di SQL Server in uno scenario IaaS (Infrastructure as a Service). Ciò elimina l'onere dell'acquisto e della manutenzione dell'hardware, dell'archiviazione e dell'infrastruttura di rete, offrendo allo stesso tempo un'esperienza molto familiare con Windows e SQL Server stesso.
Dovrai comunque mantenere il tuo sistema operativo, SQL Server e i database proprio come faresti in uno scenario locale. In cambio, i database e le applicazioni funzioneranno esattamente come in un'installazione locale, il che rende questo un modo semplice per iniziare a usare Azure.
Una scelta importante che dovrai ancora fare è il tipo e le dimensioni della macchina virtuale di Azure che vuoi usare per il carico di lavoro di SQL Server esistente. A differenza di uno scenario locale, avrai molto meno controllo sulla scelta effettiva del processore nel computer host sottostante. Con una macchina virtuale di Azure, scegli una serie di macchine particolari (come una serie Esv3) e le dimensioni in una determinata area di Azure, quindi ottieni qualsiasi processore utilizzato da Microsoft per quella serie e dimensione in quell'area di Azure.
Tipi e serie di macchine virtuali di Azure
Microsoft dispone attualmente di otto tipi principali di macchine virtuali progettate per diversi tipi di carichi di lavoro. Questi includono Entry level, Uso generico, Ottimizzazione per il calcolo, Ottimizzazione per la memoria, Ottimizzazione per l'archiviazione, GPU, Calcolo ad alte prestazioni e Enclave di sicurezza riservata.
Per carichi di lavoro OLTP SQL Server ad alte prestazioni, il tipo ottimizzato per la memoria di macchine virtuali di Azure è in genere la scelta migliore. Secondo Microsoft, "le dimensioni delle macchine virtuali ottimizzate per la memoria offrono un rapporto memoria-CPU elevato, ottimo per i server di database relazionali". In questo modo si ottengono conteggi di core inferiori, con più memoria, che di solito è ciò che si desidera per SQL Server, per ridurre al minimo i costi di licenza e mantenere comunque buone prestazioni.
Puoi andare ancora più avanti in questo percorso con le dimensioni delle VM compatibili con vCPU vincolate, in cui puoi limitare il conteggio delle vCPU delle VM (a metà o un quarto della dimensione della VM originale) per ridurre il costo delle licenze di SQL Server, mantenendo la stessa memoria , archiviazione e larghezza di banda di I/O come macchina virtuale non vincolata. Queste macchine virtuali di Azure vincolate hanno un suffisso nel nome che indica il numero di vCPU attive nella macchina virtuale.
Ad esempio:un normale Standard_E64s_v3 avrebbe 64 core vCPU, mentre uno Standard_E64-16s_v3 vincolato avrebbe solo 16 core vCPU con specifiche altrimenti identiche. Il suffisso -16s indica il numero di core vCPU attivi.
Serie Esv3
Questa serie utilizza il processore Intel Xeon Platinum 8171M (Skylake-SP) da 2,1 GHz, che è uno speciale SKU del processore su misura che non è nel database pubblico di Intel ARK. Sembra avere specifiche identiche al processore Intel Xeon Platinum 8170M (Skylake-SP) 26C/52T da 2,1 GHz. Il suffisso M nel numero del modello significa che supporta 1,5 TB di RAM per socket anziché 768 GB di RAM per socket. La serie Esv3 ha una valutazione di 160-190 unità di calcolo di Azure (ACU).
Nota:in alcune regioni, Microsoft utilizza il vecchio processore su misura Intel Xeon E5-2673 v4 (Broadwell) nella serie Esv3. Mine Tokus di Microsoft ha un buon articolo in cui ha eseguito una serie di benchmark TPC-E ridotti rispetto a una VM E64s_v3 che utilizzava il vecchio processore Broadwell.
La serie Esv3 inizia con uno Standard_E2s_v3 con 2 vCPU e 16 GB di RAM, e termina con uno Standard_E64is_v3 con 64 vCPU e 432 GB di RAM. Esistono anche grandi differenze nella capacità di archiviazione e nel throughput tra questi estremi. A proposito, la "i" nella denominazione Standard_E64is_v3 significa che l'istanza è isolata dall'hardware dedicato a un singolo cliente. La maggior parte delle normali dimensioni della serie Esv3 sono disponibili anche come macchine virtuali vincolate, il che offre molta flessibilità per il dimensionamento.
Se confronti da vicino le Figure 1 e 2, vedrai un insieme molto più favorevole di scelte per i conteggi di vCPU, le quantità di RAM e il throughput massimo del disco non memorizzato nella cache con le scelte di VM vincolate nella Figura 2.
Figura 1:Specifiche della serie Esv3 regolare (fare clic per ingrandire)
In particolare, mi piacciono le dimensioni Standard_E16-4s_v3, Standard_E32-8s_v3, Standard_E48-12s_v3 e Standard_E64-16s_v3 per SQL Server poiché hanno una combinazione estremamente interessante di conteggi di core relativamente bassi, elevata capacità di memoria e velocità effettiva del disco elevata rispetto al altre scelte disponibili in questa serie.
Queste sono tutte offerte vincolate che utilizzano solo un quarto dei core vCPU disponibili dell'offerta normale. Le altre scelte nella Figura 2 utilizzano tutte la metà dei core vCPU disponibili dell'offerta normale, con gli stessi limiti di memoria e velocità effettiva del disco, il che raddoppierebbe il costo della licenza con una velocità effettiva della RAM e del disco inferiore rispetto a quella che potresti altrimenti ottenere con una scelta migliore .
Figura 2:Specifiche della serie Esv3 vincolate (fare clic per ingrandire)
Ad esempio, confronta le tre possibili scelte di VM mostrate nella Figura 3. Scegliendo saggiamente tra le scelte vincolate a un determinato conteggio di vCPU, puoi ottenere da 2 a 4 volte la velocità effettiva di memoria e disco per lo stesso costo di licenza di SQL Server.
Tieni presente che il costo di elaborazione, che include la licenza del sistema operativo, rimane lo stesso della dimensione della vCPU originale da cui è stata derivata la dimensione vincolata.
Figura 3:Specifiche comparative della vCPU Esv3-series 8 (fare clic per ingrandire)
Serie Esv4
Un'altra scelta adatta sia per carichi di lavoro OLTP che DW è la serie Esv4. Queste macchine virtuali utilizzano il nuovo processore AMD EPYC 7452 (Roma) da 7 nm a 2,35 GHz. Questo processore ha 32C/64T, un clock di base di 2,35 GHz, un boost clock massimo fino a 3,35 GHz, 128 MB di cache L3, 128 corsie PCIe 4.0 e 2 TB di capacità RAM. Le macchine virtuali di Azure di questa serie iniziano con Standard_E2as_v4 con 2 vCPU e 16 GB di RAM e si completano con Standard_E96as_v4 con 96 vCPU e 672 GB di RAM. La serie Esv4 ha una valutazione di 230-260 unità di calcolo di Azure (ACU).
Il processore AMD EPYC 7452 è in realtà significativamente più veloce per le prestazioni della CPU a thread singolo rispetto al processore Intel Xeon Platinum 8171M secondo i miei calcoli del punteggio TPC-E stimato. L'AMD EPYC 7452 ha un punteggio/core TPC-E stimato di 67,64, mentre l'Intel Xeon Platinum 8171M ha un punteggio/core TPC-E stimato di 49,55. Credo che ciò sia dovuto all'IPC più elevato e alla maggiore velocità di clock di base del processore AMD.
La figura 4 mostra le specifiche pertinenti per la maggior parte delle dimensioni delle macchine virtuali della serie Esv4. Da quello che posso dire, Microsoft non offre ancora versioni vincolate delle macchine virtuali della serie Esv4. Si spera che lo faranno in futuro.
Figura 4:Specifiche della serie Esv4 selezionate (fai clic per ingrandire)
Conclusione
Quando si usano macchine virtuali di Azure per carichi di lavoro di SQL Server, è necessario dedicare del tempo alla valutazione delle diverse serie e dimensioni di macchine virtuali di Azure disponibili nell'area preferita. Microsoft utilizza diversi processori su misura in diverse serie di VM e talvolta all'interno della stessa serie di VM. Fare questo tipo di analisi delle scelte disponibili per le serie e il dimensionamento delle macchine virtuali dovrebbe essere una delle tue attività iniziali. Se possibile, prova a sfruttare le offerte vincolate offerte da Microsoft, poiché offrono un ottimo rapporto qualità-prezzo per SQL Server.
Dopo aver selezionato una serie e una dimensione di VM, farei alcuni rapidi benchmark di CPU e archiviazione, come CPU-Z, Geekbench 5 e CrystalDiskMark 7 come controllo di integrità iniziale (prima ancora di installare SQL Server). Ciò ti consentirà di confrontare le tue macchine virtuali di Azure tra loro e con l'hardware e l'archiviazione locali legacy. Tim Radney ha un ottimo articolo su questo processo (per l'archiviazione).