SlideShare a Scribd company logo
1 of 27
Download to read offline
#datasatpn
February 27th, 2021
Data Saturday #1
SQL Server Failover Cluster
Instances con Azure Managed Disks
Gianluca Hotz
Chi sono?
• Gianluca Hotz | @glhotz | ghotz@ugiss.org
• Consulente indipendente
• 25 anni su SQL Server (dalla 4.21 nel 1996)
• Modellazione e sviluppo database, dimensionamento e amministrazione
database server, aggiornamenti e migrazioni, performance tuning
• Community
• 23 anni Microsoft MVP SQL Server/Data Platform (dal 1998)
• VMware Experts SQL Server
• Fondatore e presidente UGISS (PASS Chapter)
• Co-organizzatore DAMAG Meetup Community
Introduzione
SQL Server Failover Cluster Instances con Azure Managed Disks
Always On
FCI (Failover Cluster Instance)
• Protegge intera istanza
• Tutti i database
• Storage condiviso
• Windows Failover Clustering
• DTC supportato
Always On AG (Availability Group)
• Protegge gruppi di database
• No database di sistema
• Replica tra storage indipendente
• Scenari «clusterless» supportati
• DTC cross-database 2016 SP2+
https://docs.microsoft.com/en-us/sql/sql-server/failover-clusters/install/sql-server-failover-cluster-installation
https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/overview-of-always-on-availability-groups-sql-server
Windows Server Failover Cluster Basics
• Controllo stato risorse e coordinamento Failover
• Meccanismo basato su Quorum e Witness
• Da in carico le risorse e fa ripartire il servizio su un altro nodo
• Può ospitare più istanze di SQL Server (anche diverse versioni)
• Una sola istanza di DEFAULT altre NAMED
SQL Server AlwaysOn FCI Basics
• Servizio installato su più nodi
• 2 con Edizione Standard
• Limite S.O. con Edizione Enterprise (64 da Windows Server 2012)
• Servizio attivo su un solo nodo
• Risorse condivise (es. storage) ONLINE nodo servizio attivo
• Nome di rete e indirizzi IP virtuali indirizzano traffico a servizio attivo
• Terminologia Active-Passive/Active-Active fuorviante
Funzionamento AlwaysOn FCI Primary Site
Shared Storage
SQLCLUSTER
SQL FCI Primary
SQL02
SAN01
SQLFCI01
ADMINWKS
Router
10.1.0.20
SQL01
10.1.0.10
Quorum Witness
Disk Share Node
10.1.1.100
10.1.1.50
Core Services
DC01 DC02
10.1.0.1 10.1.0.2
Indisponibilità nodo con AlwaysOn FCI
Primary Site
Shared Storage
SQLCLUSTER
SQL FCI Primary
SQL02
SAN01
SQLFCI01
ADMINWKS
Router
10.1.0.20
SQL01
10.1.0.10
Quorum Witness
Disk Share Node
10.1.1.100
10.1.1.50
Core Services
DC01 DC02
10.1.0.1 10.1.0.2
CRASH
Scenario Azure
SQL Server Failover Cluster Instances con Azure Managed Disks
Availability Zone
• Region
• Insieme di Data Center
• Collegati con latenza ben definita
• AZ
• Luogo fisico specifico in una Region
• Uno o più Data Center indipendenti
• Almeno 3 AZ in ogni Region
• Protezione per servizi «zone-redundant»
• Zonal Service
• Risorsa fissata in zona specifica
• Es. VM, Managed Disk, indirizzi IP
• Zone-redundant service
• Replicati automaticamente
• Es. ZRS, SQL Database
https://docs.microsoft.com/en-us/azure/availability-zones/az-overview#availability-zones
Alta Disponibilità
• Raggruppamenti HW
• Fault Domain
• Condivisione Power/Network Switch
• Update Domain
• Manutenzione contemporanea
• Availability Sets
• Distribuzione VM su molteplici
• Server fisici
• Rack di server
• Unità storage
• Switch di rete https://docs.microsoft.com/en-us/azure/virtual-machines/availability
Proximity placement groups (PPG)
• Raggruppamento logico
• Vicinanza posizionamento fisico
• Bassa latenza tra VM
• «Stand-Alone»
• «Availability Set»
• «Scale Set»
https://docs.microsoft.com/en-us/azure/virtual-machines/co-location#proximity-placement-groups
Storage condiviso supportato for WSFC
• Azure Shared Disks
• Storage Spaces Direct
• Premium file share
• Altri
• iSCSI via ExpressRoute con Equinix
• SIOS Datakeeper
https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/failover-cluster-instance-overview
Caratteristiche storage condiviso
Azure Shared Disks Premium file shares Storage Spaces Direct
Versione minima OS Tutte Windows Server 2012 Windows Server 2016
Versione minima SQL Tutte SQL Server 2012 SQL Server 2016
Disponibilità VM • Availability Sets
• Premium SSD
• PPG consigliato
• Availability Zone
• Ultra SSD
• VM stessa AZ!
• Availability Sets
• Availability Zones
Availability Sets
Supporto FILESTREAM Si No Si
Azure Blob Cache No No Si
https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/failover-cluster-instance-overview
Dimensioni Azure Shared Disk
https://docs.microsoft.com/en-us/azure/virtual-machines/disks-shared-enable?tabs=azure-cli#disk-size
Disk Type Disk Sizes Max Shares
Premium SSD P15, P20 2
P30, P40, P50 5
P60, P70, P80 10
Ultra Disk No restrictions 5
Implementazione ambiente Azure (1)
• Creazione «Resource Group»
• Creazione «Virtual Network»
• Creazione «Active Directory Domain Services»
• Creazione «Availability Set»
• Creazione «Proximity Placement Group»
• Aggiunta «PPG» a «Availability Set»
• Creazione «Bastion»
Implementazione ambiente Azure (2)
• Creazione VM di Management
• Stand-alone VM nel PPG
• Installazione strumentazione
• RSAT-Clustering, RSAT-AD-Tools, RSAT-DNS-Server
• SQL Server Management Studio, Visual Studio Code, modulo PS dbatools.io
• Creazione VM Nodi cluster
• VM in Availability Set (a sua volta nel PPG)
• Nota: se immagine VM con SQL Server preinstallato
• Va disinstallato SQL Server
• Vanno deregistrate le estensioni SQL IaaS
Implementazione Ambiente Windows
• Completamento configurazione VM nodi cluster
• Modifica Computer Name
• Join a dominio
• Non assegnare indirizzi IP fissi, usare Azure DHCP
• Apertura porte Firewall
• Preparazione oggetti Active Directory
• Gruppi utenti (SQLAdmins, SQLComputers)
• Utente da assegnare al servizio (SqlService)
Implementazione Windows Failover Cluster
• Installazione Feature Failover Clustering sui nodi
• Configurazione «Shared Disk»
• Validazione nodi e creazione Cluster da macchina ponte
• Con DNN (Distributed Network Name) finito
• Windows Server 2016+
• SQL Server 2019 CU2+ (CU8+ per Availability Groups)
• Con VNN (Virtual Network Name) serve configurare il bilanciatore Azure
• Configurazione Quorum
• Best practice disco condiviso…
Installazione SQL Server
• In modalità Failover Cluster
• Installazione primo nodo, aggiunta secondo nodo
• Posizionamento tempdb
• Best Practice generica utilizzo disco temporaneo D:
• Script creazione directory startup e partenza manuale servizi
• Con FCI partenza del servizio governata da Cluster, rischiare?
• Se poco utilizzato: posizionamento dischi condivisi per dati
• Se molto utilizzato: dischi condivisi dedicati
• Registrazione «Distributed Network Name» (DNN)
• Registrazione SQL IaaS Agent extension (RP)
DEMO
Automatic Failover
Limitazioni
• SQL IaaS Agent Extension solo in modalità «lightweight»
• MSDTC in modalità Cluster richiede Windows Server 2019
Problemi Multi-Subnet con librerie vecchie
• Si applica a
• Librerie vecchie senza supporto MultiSubnetFailover
• Stringhe di connessione non modificabili
• Origine del problema
• Indirizzi IP multipli nel DNS
• «Library timeout» < «TCP timeout» (15 vs 21 sec.)
• Mitigazione
• SQL Client Provider in .NET 4.6.1 automatico!
• Alzare timeout > 30-40 sec.
• se possibile, non sempre funziona…
• Non registrare tutti gli indirizzi IP (colpisce tutti)
• Ridurre latenza aggiornamenti DNS (HostRecordTTL)
• Ridurre scadenza cache DNS sui client
https://docs.microsoft.com/en-us/sql/sql-server/failover-clusters/windows/sql-server-multi-subnet-clustering-sql-server
DEMO
Problemi con Multi-Subnet
Problemi comuni con AlwaysOn AG
• «Basic Availability Groups» con Edizione Standard
• 1 database per Availability Group e Listener
• No Failover coordinato
• Replica del database
• Doppio dello spazio utilizzato (pro per DR)
• Maggiore latenza in scrittura con replica sincrona per failover automatico
• Worker Thread/CPU impegnati per replicare il dato
• Richiede «recovery model» FULL (gestione backup del log)
• No replica database di sistema
• Sincronizzazione manuale (es. login, certificati, job, operatori ecc.)
• Agent Job deve prevedere di terminare se esecuzione replica secondaria
Risorse
• Failover cluster instances with SQL Server on Azure Virtual Machines
• https://docs.microsoft.com/en-us/azure/azure-sql/virtual-
machines/windows/failover-cluster-instance-overview
• Cluster configuration best practices (SQL Server on Azure VMs)
• https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/hadr-
cluster-best-practices
• Create an FCI with Azure shared disks (SQL Server on Azure VMs)
• https://docs.microsoft.com/en-us/azure/azure-sql/virtual-
machines/windows/failover-cluster-instance-azure-shared-disks-manually-configure
• Configure a DNN for failover cluster instance
• https://docs.microsoft.com/en-us/azure/azure-sql/virtual-
machines/windows/failover-cluster-instance-distributed-network-name-dnn-
configure
Risorse «Multi Subnet»
• Connection Timeouts in Multi-subnet Availability Group
• https://techcommunity.microsoft.com/t5/sql-server-support/connection-
timeouts-in-multi-subnet-availability-group/ba-p/318334
• Improved MultiSubnet Listener Behavior With Newly Released SQL
Client Provider in .NET 4.6.1
• https://techcommunity.microsoft.com/t5/sql-server-support/improved-
multisubnet-listener-behavior-with-newly-released-sql/ba-p/318664

More Related Content

What's hot

Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...Gianluca Hotz
 
Azure SQL Database Ledger
Azure SQL Database LedgerAzure SQL Database Ledger
Azure SQL Database LedgerGianluca Hotz
 
Best Practices on SQL Server
Best Practices on SQL ServerBest Practices on SQL Server
Best Practices on SQL ServerGianluca Hotz
 
Mettere in sicurezza ambienti sql server
Mettere in sicurezza ambienti sql serverMettere in sicurezza ambienti sql server
Mettere in sicurezza ambienti sql serverGianluca Hotz
 
SQL Server Data Virtualization with Polybase
SQL Server Data Virtualization with PolybaseSQL Server Data Virtualization with Polybase
SQL Server Data Virtualization with PolybaseGianluca Hotz
 
SQL Server Modern Query Processing
SQL Server Modern Query ProcessingSQL Server Modern Query Processing
SQL Server Modern Query ProcessingGianluca Hotz
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databasesGianluca Hotz
 
SQL Server Data Virtualization with polybase
SQL Server Data Virtualization with polybaseSQL Server Data Virtualization with polybase
SQL Server Data Virtualization with polybaseGianluca Hotz
 
Azure Data Factory: l'evoluzione della specie della data integration
Azure Data Factory: l'evoluzione della specie della data integrationAzure Data Factory: l'evoluzione della specie della data integration
Azure Data Factory: l'evoluzione della specie della data integrationRoberto Messora
 
Novità di SQL Server 2017
Novità di SQL Server 2017Novità di SQL Server 2017
Novità di SQL Server 2017Gianluca Hotz
 
Una web farm bilanciata e scalabile con Microsoft Azure
Una web farm bilanciata e scalabile con Microsoft AzureUna web farm bilanciata e scalabile con Microsoft Azure
Una web farm bilanciata e scalabile con Microsoft AzureDavide Benvegnù
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databasesGianluca Hotz
 
Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2Emanuele Zanchettin
 
Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017MongoDB
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
 
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL ServerSql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL ServerAlessandro Alpi
 
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on AzureSQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on AzureMarco Obinu
 
CCI2018 - Iperconvergenza con Windows Server
CCI2018 - Iperconvergenza con Windows ServerCCI2018 - Iperconvergenza con Windows Server
CCI2018 - Iperconvergenza con Windows Serverwalk2talk srl
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
 
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...MongoDB
 

What's hot (20)

Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
 
Azure SQL Database Ledger
Azure SQL Database LedgerAzure SQL Database Ledger
Azure SQL Database Ledger
 
Best Practices on SQL Server
Best Practices on SQL ServerBest Practices on SQL Server
Best Practices on SQL Server
 
Mettere in sicurezza ambienti sql server
Mettere in sicurezza ambienti sql serverMettere in sicurezza ambienti sql server
Mettere in sicurezza ambienti sql server
 
SQL Server Data Virtualization with Polybase
SQL Server Data Virtualization with PolybaseSQL Server Data Virtualization with Polybase
SQL Server Data Virtualization with Polybase
 
SQL Server Modern Query Processing
SQL Server Modern Query ProcessingSQL Server Modern Query Processing
SQL Server Modern Query Processing
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databases
 
SQL Server Data Virtualization with polybase
SQL Server Data Virtualization with polybaseSQL Server Data Virtualization with polybase
SQL Server Data Virtualization with polybase
 
Azure Data Factory: l'evoluzione della specie della data integration
Azure Data Factory: l'evoluzione della specie della data integrationAzure Data Factory: l'evoluzione della specie della data integration
Azure Data Factory: l'evoluzione della specie della data integration
 
Novità di SQL Server 2017
Novità di SQL Server 2017Novità di SQL Server 2017
Novità di SQL Server 2017
 
Una web farm bilanciata e scalabile con Microsoft Azure
Una web farm bilanciata e scalabile con Microsoft AzureUna web farm bilanciata e scalabile con Microsoft Azure
Una web farm bilanciata e scalabile con Microsoft Azure
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databases
 
Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2
 
Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
 
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL ServerSql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
 
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on AzureSQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
 
CCI2018 - Iperconvergenza con Windows Server
CCI2018 - Iperconvergenza con Windows ServerCCI2018 - Iperconvergenza con Windows Server
CCI2018 - Iperconvergenza con Windows Server
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
 
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
 

Similar to SQL Server Failover Cluster Instances con Azure Managed Disks

IaaS and PaaS relational databases in the cloud
IaaS and PaaS relational databases in the cloudIaaS and PaaS relational databases in the cloud
IaaS and PaaS relational databases in the cloudGianluca Hotz
 
Microsoft SQL Server PaaS (Platform as a Service)
Microsoft SQL Server PaaS (Platform as a Service)Microsoft SQL Server PaaS (Platform as a Service)
Microsoft SQL Server PaaS (Platform as a Service)Gianluca Hotz
 
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi ItaliaDifferenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi ItaliaYashi Italia
 
CCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
CCI2019 - SQL Server ed Azure: Disaster Recovery per tuttiCCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
CCI2019 - SQL Server ed Azure: Disaster Recovery per tuttiwalk2talk srl
 
SDS,la pietra d’angolo dell SDDC
SDS,la pietra d’angolo dell SDDC SDS,la pietra d’angolo dell SDDC
SDS,la pietra d’angolo dell SDDC VMUG IT
 
#vBrownBag.IT - Session 1
#vBrownBag.IT - Session 1#vBrownBag.IT - Session 1
#vBrownBag.IT - Session 1Andrea Mauro
 
SPBM VSAN VVOL @ VMUG.IT 20150529
SPBM VSAN VVOL @ VMUG.IT 20150529SPBM VSAN VVOL @ VMUG.IT 20150529
SPBM VSAN VVOL @ VMUG.IT 20150529VMUG IT
 
festival ICT 2013: Windows Server 2012 R2: Lo Storage Enterprise per Tutti
festival ICT 2013: Windows Server 2012 R2: Lo Storage Enterprise per Tutti festival ICT 2013: Windows Server 2012 R2: Lo Storage Enterprise per Tutti
festival ICT 2013: Windows Server 2012 R2: Lo Storage Enterprise per Tutti festival ICT 2016
 
Azure Mobile Services con il .NET Framework
Azure Mobile Services con il .NET FrameworkAzure Mobile Services con il .NET Framework
Azure Mobile Services con il .NET FrameworkNicolò Carandini
 
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...azuredayit
 
Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...
Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...
Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...azuredayit
 
Azure for Game Developers
Azure for Game DevelopersAzure for Game Developers
Azure for Game DevelopersMarco Parenzan
 
Multitenancy con SQL Server e Azure SQL Database
Multitenancy con SQL Server e Azure SQL DatabaseMultitenancy con SQL Server e Azure SQL Database
Multitenancy con SQL Server e Azure SQL DatabaseGianluca Hotz
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloudRiccardo Zamana
 
Realizzare una rete aziendale con linux e samba
Realizzare una rete aziendale con linux e sambaRealizzare una rete aziendale con linux e samba
Realizzare una rete aziendale con linux e sambaAndrea Mauro
 
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFSLa nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFSMorlini Gabriele
 
Novità di VMware vShere 6.0 @ VMUG.IT 20150304
Novità di VMware vShere 6.0 @ VMUG.IT 20150304Novità di VMware vShere 6.0 @ VMUG.IT 20150304
Novità di VMware vShere 6.0 @ VMUG.IT 20150304VMUG IT
 

Similar to SQL Server Failover Cluster Instances con Azure Managed Disks (20)

IaaS and PaaS relational databases in the cloud
IaaS and PaaS relational databases in the cloudIaaS and PaaS relational databases in the cloud
IaaS and PaaS relational databases in the cloud
 
Microsoft SQL Server PaaS (Platform as a Service)
Microsoft SQL Server PaaS (Platform as a Service)Microsoft SQL Server PaaS (Platform as a Service)
Microsoft SQL Server PaaS (Platform as a Service)
 
Azure sql database
Azure sql databaseAzure sql database
Azure sql database
 
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi ItaliaDifferenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
 
CCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
CCI2019 - SQL Server ed Azure: Disaster Recovery per tuttiCCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
CCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
 
SDS,la pietra d’angolo dell SDDC
SDS,la pietra d’angolo dell SDDC SDS,la pietra d’angolo dell SDDC
SDS,la pietra d’angolo dell SDDC
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
#vBrownBag.IT - Session 1
#vBrownBag.IT - Session 1#vBrownBag.IT - Session 1
#vBrownBag.IT - Session 1
 
Akka.net & Actor Model
Akka.net & Actor ModelAkka.net & Actor Model
Akka.net & Actor Model
 
SPBM VSAN VVOL @ VMUG.IT 20150529
SPBM VSAN VVOL @ VMUG.IT 20150529SPBM VSAN VVOL @ VMUG.IT 20150529
SPBM VSAN VVOL @ VMUG.IT 20150529
 
festival ICT 2013: Windows Server 2012 R2: Lo Storage Enterprise per Tutti
festival ICT 2013: Windows Server 2012 R2: Lo Storage Enterprise per Tutti festival ICT 2013: Windows Server 2012 R2: Lo Storage Enterprise per Tutti
festival ICT 2013: Windows Server 2012 R2: Lo Storage Enterprise per Tutti
 
Azure Mobile Services con il .NET Framework
Azure Mobile Services con il .NET FrameworkAzure Mobile Services con il .NET Framework
Azure Mobile Services con il .NET Framework
 
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
 
Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...
Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...
Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...
 
Azure for Game Developers
Azure for Game DevelopersAzure for Game Developers
Azure for Game Developers
 
Multitenancy con SQL Server e Azure SQL Database
Multitenancy con SQL Server e Azure SQL DatabaseMultitenancy con SQL Server e Azure SQL Database
Multitenancy con SQL Server e Azure SQL Database
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloud
 
Realizzare una rete aziendale con linux e samba
Realizzare una rete aziendale con linux e sambaRealizzare una rete aziendale con linux e samba
Realizzare una rete aziendale con linux e samba
 
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFSLa nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
 
Novità di VMware vShere 6.0 @ VMUG.IT 20150304
Novità di VMware vShere 6.0 @ VMUG.IT 20150304Novità di VMware vShere 6.0 @ VMUG.IT 20150304
Novità di VMware vShere 6.0 @ VMUG.IT 20150304
 

More from Gianluca Hotz

SQL Server 2022 Programmability & Performance
SQL Server 2022 Programmability & PerformanceSQL Server 2022 Programmability & Performance
SQL Server 2022 Programmability & PerformanceGianluca Hotz
 
SQL Server 2022 Intelligent Query Processing
SQL Server 2022 Intelligent Query ProcessingSQL Server 2022 Intelligent Query Processing
SQL Server 2022 Intelligent Query ProcessingGianluca Hotz
 
Le novità di SQL Server 2022
Le novità di SQL Server 2022Le novità di SQL Server 2022
Le novità di SQL Server 2022Gianluca Hotz
 
Data Integrity with SQL Database Ledger
Data Integrity with SQL Database LedgerData Integrity with SQL Database Ledger
Data Integrity with SQL Database LedgerGianluca Hotz
 
Best Practices for Running Microsoft SQL Server on AWS
Best Practices for Running Microsoft SQL Server on AWSBest Practices for Running Microsoft SQL Server on AWS
Best Practices for Running Microsoft SQL Server on AWSGianluca Hotz
 
SQL Server Modernization
SQL Server ModernizationSQL Server Modernization
SQL Server ModernizationGianluca Hotz
 
Le novità di sql server 2019
Le novità di sql server 2019Le novità di sql server 2019
Le novità di sql server 2019Gianluca Hotz
 
SQL Server 2019 CTP 2.5
SQL Server 2019 CTP 2.5SQL Server 2019 CTP 2.5
SQL Server 2019 CTP 2.5Gianluca Hotz
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databasesGianluca Hotz
 
SQL Server 2019 CTP2.4
SQL Server 2019 CTP2.4SQL Server 2019 CTP2.4
SQL Server 2019 CTP2.4Gianluca Hotz
 
SQL Server 2019 ctp2.2
SQL Server 2019 ctp2.2SQL Server 2019 ctp2.2
SQL Server 2019 ctp2.2Gianluca Hotz
 

More from Gianluca Hotz (11)

SQL Server 2022 Programmability & Performance
SQL Server 2022 Programmability & PerformanceSQL Server 2022 Programmability & Performance
SQL Server 2022 Programmability & Performance
 
SQL Server 2022 Intelligent Query Processing
SQL Server 2022 Intelligent Query ProcessingSQL Server 2022 Intelligent Query Processing
SQL Server 2022 Intelligent Query Processing
 
Le novità di SQL Server 2022
Le novità di SQL Server 2022Le novità di SQL Server 2022
Le novità di SQL Server 2022
 
Data Integrity with SQL Database Ledger
Data Integrity with SQL Database LedgerData Integrity with SQL Database Ledger
Data Integrity with SQL Database Ledger
 
Best Practices for Running Microsoft SQL Server on AWS
Best Practices for Running Microsoft SQL Server on AWSBest Practices for Running Microsoft SQL Server on AWS
Best Practices for Running Microsoft SQL Server on AWS
 
SQL Server Modernization
SQL Server ModernizationSQL Server Modernization
SQL Server Modernization
 
Le novità di sql server 2019
Le novità di sql server 2019Le novità di sql server 2019
Le novità di sql server 2019
 
SQL Server 2019 CTP 2.5
SQL Server 2019 CTP 2.5SQL Server 2019 CTP 2.5
SQL Server 2019 CTP 2.5
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databases
 
SQL Server 2019 CTP2.4
SQL Server 2019 CTP2.4SQL Server 2019 CTP2.4
SQL Server 2019 CTP2.4
 
SQL Server 2019 ctp2.2
SQL Server 2019 ctp2.2SQL Server 2019 ctp2.2
SQL Server 2019 ctp2.2
 

SQL Server Failover Cluster Instances con Azure Managed Disks

  • 1. #datasatpn February 27th, 2021 Data Saturday #1 SQL Server Failover Cluster Instances con Azure Managed Disks Gianluca Hotz
  • 2. Chi sono? • Gianluca Hotz | @glhotz | ghotz@ugiss.org • Consulente indipendente • 25 anni su SQL Server (dalla 4.21 nel 1996) • Modellazione e sviluppo database, dimensionamento e amministrazione database server, aggiornamenti e migrazioni, performance tuning • Community • 23 anni Microsoft MVP SQL Server/Data Platform (dal 1998) • VMware Experts SQL Server • Fondatore e presidente UGISS (PASS Chapter) • Co-organizzatore DAMAG Meetup Community
  • 3. Introduzione SQL Server Failover Cluster Instances con Azure Managed Disks
  • 4. Always On FCI (Failover Cluster Instance) • Protegge intera istanza • Tutti i database • Storage condiviso • Windows Failover Clustering • DTC supportato Always On AG (Availability Group) • Protegge gruppi di database • No database di sistema • Replica tra storage indipendente • Scenari «clusterless» supportati • DTC cross-database 2016 SP2+ https://docs.microsoft.com/en-us/sql/sql-server/failover-clusters/install/sql-server-failover-cluster-installation https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/overview-of-always-on-availability-groups-sql-server
  • 5. Windows Server Failover Cluster Basics • Controllo stato risorse e coordinamento Failover • Meccanismo basato su Quorum e Witness • Da in carico le risorse e fa ripartire il servizio su un altro nodo • Può ospitare più istanze di SQL Server (anche diverse versioni) • Una sola istanza di DEFAULT altre NAMED
  • 6. SQL Server AlwaysOn FCI Basics • Servizio installato su più nodi • 2 con Edizione Standard • Limite S.O. con Edizione Enterprise (64 da Windows Server 2012) • Servizio attivo su un solo nodo • Risorse condivise (es. storage) ONLINE nodo servizio attivo • Nome di rete e indirizzi IP virtuali indirizzano traffico a servizio attivo • Terminologia Active-Passive/Active-Active fuorviante
  • 7. Funzionamento AlwaysOn FCI Primary Site Shared Storage SQLCLUSTER SQL FCI Primary SQL02 SAN01 SQLFCI01 ADMINWKS Router 10.1.0.20 SQL01 10.1.0.10 Quorum Witness Disk Share Node 10.1.1.100 10.1.1.50 Core Services DC01 DC02 10.1.0.1 10.1.0.2
  • 8. Indisponibilità nodo con AlwaysOn FCI Primary Site Shared Storage SQLCLUSTER SQL FCI Primary SQL02 SAN01 SQLFCI01 ADMINWKS Router 10.1.0.20 SQL01 10.1.0.10 Quorum Witness Disk Share Node 10.1.1.100 10.1.1.50 Core Services DC01 DC02 10.1.0.1 10.1.0.2 CRASH
  • 9. Scenario Azure SQL Server Failover Cluster Instances con Azure Managed Disks
  • 10. Availability Zone • Region • Insieme di Data Center • Collegati con latenza ben definita • AZ • Luogo fisico specifico in una Region • Uno o più Data Center indipendenti • Almeno 3 AZ in ogni Region • Protezione per servizi «zone-redundant» • Zonal Service • Risorsa fissata in zona specifica • Es. VM, Managed Disk, indirizzi IP • Zone-redundant service • Replicati automaticamente • Es. ZRS, SQL Database https://docs.microsoft.com/en-us/azure/availability-zones/az-overview#availability-zones
  • 11. Alta Disponibilità • Raggruppamenti HW • Fault Domain • Condivisione Power/Network Switch • Update Domain • Manutenzione contemporanea • Availability Sets • Distribuzione VM su molteplici • Server fisici • Rack di server • Unità storage • Switch di rete https://docs.microsoft.com/en-us/azure/virtual-machines/availability
  • 12. Proximity placement groups (PPG) • Raggruppamento logico • Vicinanza posizionamento fisico • Bassa latenza tra VM • «Stand-Alone» • «Availability Set» • «Scale Set» https://docs.microsoft.com/en-us/azure/virtual-machines/co-location#proximity-placement-groups
  • 13. Storage condiviso supportato for WSFC • Azure Shared Disks • Storage Spaces Direct • Premium file share • Altri • iSCSI via ExpressRoute con Equinix • SIOS Datakeeper https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/failover-cluster-instance-overview
  • 14. Caratteristiche storage condiviso Azure Shared Disks Premium file shares Storage Spaces Direct Versione minima OS Tutte Windows Server 2012 Windows Server 2016 Versione minima SQL Tutte SQL Server 2012 SQL Server 2016 Disponibilità VM • Availability Sets • Premium SSD • PPG consigliato • Availability Zone • Ultra SSD • VM stessa AZ! • Availability Sets • Availability Zones Availability Sets Supporto FILESTREAM Si No Si Azure Blob Cache No No Si https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/failover-cluster-instance-overview
  • 15. Dimensioni Azure Shared Disk https://docs.microsoft.com/en-us/azure/virtual-machines/disks-shared-enable?tabs=azure-cli#disk-size Disk Type Disk Sizes Max Shares Premium SSD P15, P20 2 P30, P40, P50 5 P60, P70, P80 10 Ultra Disk No restrictions 5
  • 16. Implementazione ambiente Azure (1) • Creazione «Resource Group» • Creazione «Virtual Network» • Creazione «Active Directory Domain Services» • Creazione «Availability Set» • Creazione «Proximity Placement Group» • Aggiunta «PPG» a «Availability Set» • Creazione «Bastion»
  • 17. Implementazione ambiente Azure (2) • Creazione VM di Management • Stand-alone VM nel PPG • Installazione strumentazione • RSAT-Clustering, RSAT-AD-Tools, RSAT-DNS-Server • SQL Server Management Studio, Visual Studio Code, modulo PS dbatools.io • Creazione VM Nodi cluster • VM in Availability Set (a sua volta nel PPG) • Nota: se immagine VM con SQL Server preinstallato • Va disinstallato SQL Server • Vanno deregistrate le estensioni SQL IaaS
  • 18. Implementazione Ambiente Windows • Completamento configurazione VM nodi cluster • Modifica Computer Name • Join a dominio • Non assegnare indirizzi IP fissi, usare Azure DHCP • Apertura porte Firewall • Preparazione oggetti Active Directory • Gruppi utenti (SQLAdmins, SQLComputers) • Utente da assegnare al servizio (SqlService)
  • 19. Implementazione Windows Failover Cluster • Installazione Feature Failover Clustering sui nodi • Configurazione «Shared Disk» • Validazione nodi e creazione Cluster da macchina ponte • Con DNN (Distributed Network Name) finito • Windows Server 2016+ • SQL Server 2019 CU2+ (CU8+ per Availability Groups) • Con VNN (Virtual Network Name) serve configurare il bilanciatore Azure • Configurazione Quorum • Best practice disco condiviso…
  • 20. Installazione SQL Server • In modalità Failover Cluster • Installazione primo nodo, aggiunta secondo nodo • Posizionamento tempdb • Best Practice generica utilizzo disco temporaneo D: • Script creazione directory startup e partenza manuale servizi • Con FCI partenza del servizio governata da Cluster, rischiare? • Se poco utilizzato: posizionamento dischi condivisi per dati • Se molto utilizzato: dischi condivisi dedicati • Registrazione «Distributed Network Name» (DNN) • Registrazione SQL IaaS Agent extension (RP)
  • 22. Limitazioni • SQL IaaS Agent Extension solo in modalità «lightweight» • MSDTC in modalità Cluster richiede Windows Server 2019
  • 23. Problemi Multi-Subnet con librerie vecchie • Si applica a • Librerie vecchie senza supporto MultiSubnetFailover • Stringhe di connessione non modificabili • Origine del problema • Indirizzi IP multipli nel DNS • «Library timeout» < «TCP timeout» (15 vs 21 sec.) • Mitigazione • SQL Client Provider in .NET 4.6.1 automatico! • Alzare timeout > 30-40 sec. • se possibile, non sempre funziona… • Non registrare tutti gli indirizzi IP (colpisce tutti) • Ridurre latenza aggiornamenti DNS (HostRecordTTL) • Ridurre scadenza cache DNS sui client https://docs.microsoft.com/en-us/sql/sql-server/failover-clusters/windows/sql-server-multi-subnet-clustering-sql-server
  • 25. Problemi comuni con AlwaysOn AG • «Basic Availability Groups» con Edizione Standard • 1 database per Availability Group e Listener • No Failover coordinato • Replica del database • Doppio dello spazio utilizzato (pro per DR) • Maggiore latenza in scrittura con replica sincrona per failover automatico • Worker Thread/CPU impegnati per replicare il dato • Richiede «recovery model» FULL (gestione backup del log) • No replica database di sistema • Sincronizzazione manuale (es. login, certificati, job, operatori ecc.) • Agent Job deve prevedere di terminare se esecuzione replica secondaria
  • 26. Risorse • Failover cluster instances with SQL Server on Azure Virtual Machines • https://docs.microsoft.com/en-us/azure/azure-sql/virtual- machines/windows/failover-cluster-instance-overview • Cluster configuration best practices (SQL Server on Azure VMs) • https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/hadr- cluster-best-practices • Create an FCI with Azure shared disks (SQL Server on Azure VMs) • https://docs.microsoft.com/en-us/azure/azure-sql/virtual- machines/windows/failover-cluster-instance-azure-shared-disks-manually-configure • Configure a DNN for failover cluster instance • https://docs.microsoft.com/en-us/azure/azure-sql/virtual- machines/windows/failover-cluster-instance-distributed-network-name-dnn- configure
  • 27. Risorse «Multi Subnet» • Connection Timeouts in Multi-subnet Availability Group • https://techcommunity.microsoft.com/t5/sql-server-support/connection- timeouts-in-multi-subnet-availability-group/ba-p/318334 • Improved MultiSubnet Listener Behavior With Newly Released SQL Client Provider in .NET 4.6.1 • https://techcommunity.microsoft.com/t5/sql-server-support/improved- multisubnet-listener-behavior-with-newly-released-sql/ba-p/318664