Guida alle soluzioni Microsoft SQL Server AlwaysOn per la

Guida alle soluzioni Microsoft SQL Server AlwaysOn
per la disponibilità elevata e il ripristino di emergenza
Autore: LeRoy Tuttle Jr. (Microsoft)
Collaboratori: Cephas Lin (Microsoft), Justin Erickson (Microsoft), Lindsey Allen (Microsoft),
Min He (Microsoft), Sanjay Mishra (Microsoft)
Revisori: Alexei Khalyako (Microsoft), Allan Hirt (SQLHA), Ayad Shammout (Caregroup),
Benjamin Wright-Jones (Microsoft), Charles Matthews (Microsoft), David P. Smith (ServiceU),
Juergen Thomas (Microsoft), Kevin Farlee (Microsoft), Shahryar G. Hashemi (Motricity),
Wolfgang Kutschera (Bwin Party)
Data di pubblicazione:
gennaio 2012
Contesto di applicazione: SQL Server 2012
Riepilogo: in questo white paper viene descritto come ridurre il tempo di inattività pianificato e non
pianificato, ottimizzare la disponibilità delle applicazioni e implementare protezione dati utilizzando le
soluzioni per la disponibilità elevata e il ripristino di emergenza di SQL Server 2012 AlwaysOn.
Un obiettivo fondamentale del documento è stabilire un contesto comune per le discussioni correlate
tra parti interessate aziendali, responsabili delle decisioni tecniche, architetti di sistema, ingegneri
infrastrutturali e amministratori di database.
Il contenuto è suddiviso in due parti principali:
Concetti di disponibilità elevata e ripristino di emergenza. Viene fornita una breve descrizione dei
principi guida e delle sfide che riguardano pianificazione, gestione e misurazione degli obiettivi aziendali
di un ambiente di database a disponibilità elevata. Alla descrizione segue una rapida panoramica delle
funzionalità di disponibilità elevata e ripristino di emergenza delle soluzioni SQL Server 2012 AlwaysOn
e Windows Server.
Livelli di protezione di SQL Server AlwaysOn. Viene fornita una descrizione più approfondita di funzionalità,
logica e dipendenze dei livelli di protezione offerti da una soluzione SQL Server AlwaysOn. Vengono
inoltre illustrate le funzionalità di disponibilità dell'infrastruttura, protezione a livello di istanza di SQL
Server e a livello di database e delle applicazioni livello dati.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
i
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
ii
Copyright
Il documento viene fornito “com'è”. Le informazioni e le opinioni espresse nel presente documento,
inclusi gli URL e altri riferimenti a siti Web, possono essere soggette a modifiche senza preavviso.
L'utente accetta di utilizzarlo a proprio rischio.
Alcuni esempi raffigurati in questo documento sono forniti a scopo puramente illustrativo e sono fittizi.
Nessuna associazione o connessione reale è intenzionale o può essere desunta.
Il presente documento non implica la concessione di alcun diritto di proprietà intellettuale relativo ai
prodotti Microsoft. È possibile copiare e utilizzare questo documento per fini di riferimento interno.
© 2012 Microsoft. Tutti i diritti sono riservati.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
iii
Sommario
Concetti di disponibilità elevata e ripristino di emergenza ................................. 1
Il concetto di disponibilità elevata ............................................................................................................ 1
Tempo di inattività pianificato e non pianificato .................................................................................................................... 1
Disponibilità ridotta ................................................................................................................................................................ 2
Quantificazione del tempo di inattività .................................................................................................... 3
Obiettivi di recupero ............................................................................................................................................................... 3
Giustificazione del ROI o dei costi derivati da mancate opportunità ...................................................................................... 3
Monitoraggio dell'integrità della disponibilità ........................................................................................................................ 4
Pianificazione del ripristino di emergenza .............................................................................................................................. 4
Panoramica: disponibilità elevata con Microsoft SQL Server 2012 .......................................................... 5
SQL Server AlwaysOn .............................................................................................................................................................. 5
Riduzione significativa del tempo di inattività pianificato ...................................................................................................... 6
Eliminazione di hardware inattivo e miglioramento dell'efficienza dei costi e delle prestazioni.................................................... 6
Facilità di distribuzione e gestione.......................................................................................................................................... 6
Funzionalità RPO e RTO a confronto ....................................................................................................................................... 6
Livelli di protezione di SQL Server AlwaysOn ...................................................... 8
Disponibilità dell'infrastruttura................................................................................................................. 9
Sistema operativo Windows ................................................................................................................................................... 9
Windows Server Failover Clustering ..................................................................................................................................... 10
Procedura guidata di convalida cluster WSFC....................................................................................................................... 12
Modalità di quorum e configurazione del voto nel WSFC .................................................................................................... 13
Ripristino di emergenza del cluster WSFC tramite quorum forzato ..................................................................................... 16
Protezione a livello di istanza di SQL Server ........................................................................................... 18
Miglioramenti alla disponibilità - Istanze di SQL Server ........................................................................................................ 18
Istanze del cluster di failover AlwaysOn ............................................................................................................................... 19
Disponibilità dei database....................................................................................................................... 21
Gruppi di disponibilità AlwaysOn .......................................................................................................................................... 21
Failover del gruppo di disponibilità ...................................................................................................................................... 23
Listener del gruppo di disponibilità ...................................................................................................................................... 25
Miglioramenti alla disponibilità - Database .......................................................................................................................... 27
Consigli sulla connettività client ............................................................................................................. 28
Conclusione ......................................................................................................29
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
iv
Concetti di disponibilità elevata e ripristino di emergenza
È possibile scegliere la migliore tecnologia di database da utilizzare come base per una soluzione per la
disponibilità elevata e il ripristino di emergenza quando tutte le parti interessate condividono una comune
comprensione degli obiettivi, delle problematiche e dei principi guida aziendali correlati in termini di
pianificazione, gestione e misurazione degli obiettivi di tempo di recupero (RTO) e di punto di recupero
(RPO).
I lettori che hanno familiarità con questi concetti possono passare direttamente alla sezione
Panoramica: disponibilità elevata con Microsoft SQL Server 2012 di questo documento.
Il concetto di disponibilità elevata
Per un'applicazione software o un servizio specifico, in definitiva la disponibilità elevata viene misurata
in termini di esperienza e aspettative dell'utente finale. L'impatto aziendale tangibile e percepito del
tempo di inattività può essere espresso in termini di perdita di informazioni, danni alla proprietà, riduzione
della produttività, costi derivati da mancate opportunità, danni contrattuali o perdita di avviamento.
L'obiettivo principale di una soluzione per la disponibilità elevata è attenuare o ridurre al minimo
l'impatto del tempo di inattività. L'implementazione di una solida strategia in questo senso deve creare
un equilibrio ottimale tra le esigenze in termini di processi aziendali e contratti di servizio (SLA)
e funzionalità tecniche e costi dell'infrastruttura.
Una piattaforma è considerata a elevata disponibilità in base al contratto e alle aspettative di clienti
e parti interessate. È possibile esprimere la disponibilità di un sistema con il calcolo seguente.
π‘‡π‘’π‘šπ‘π‘œ 𝑑𝑖 π‘Žπ‘‘π‘‘π‘–π‘£π‘–π‘‘à π‘’π‘“π‘“π‘’π‘‘π‘‘π‘–π‘£π‘œ
× 100%
π‘‡π‘’π‘šπ‘π‘œ 𝑑𝑖 π‘Žπ‘‘π‘‘π‘–π‘£π‘–π‘‘à π‘π‘Ÿπ‘’π‘£π‘–π‘ π‘‘π‘œ
Il valore risultante è spesso espresso dagli addetti ai lavori del settore come quantità di 9 (percentuali
tendenti al 100%) che la soluzione è in grado di fornire. Tale valore corrisponde a un numero annuo di
minuti di possibile tempo di attività o, viceversa, di minuti di tempo di inattività.
Numero di 9
2
3
4
5
Percentuale di disponibilità
99%
99.9%
99.99%
99.999%
Tempo di inattività annuo totale
3 giorni, 15 ore
8 ore, 45 minuti
52 minuti, 34 secondi
5 minuti, 15 secondi
Tempo di inattività pianificato e non pianificato
I periodi di interruzione del sistema sono previsti e pianificati o costituiscono il risultato di un problema
imprevisto. Se gestito in modo appropriato, il tempo di inattività non deve essere considerato
negativamente. Esistono due tipi principali di tempo di inattività prevedibile:
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
1
ο‚·
Manutenzione pianificata. Viene preannunciato e coordinato un certo intervallo di tempo per attività
di manutenzione pianificata, come applicazione di patch software, aggiornamenti hardware,
aggiornamenti delle password, reindicizzazione offline, caricamento di dati o prova delle procedure
di ripristino di emergenza. Con procedure operative intenzionali e ben gestite è possibile ridurre al
minimo il tempo di inattività e prevenire la perdita di dati. Le attività di manutenzione pianificata
possono essere considerate un investimento necessario per impedire o ridurre l'impatto di altri
scenari di interruzione non pianificati e potenzialmente più gravi.
ο‚·
Periodo di interruzione non pianificato. A livello di sistema, infrastruttura o processo possono
verificarsi errori e guasti non pianificati né controllabili, oppure prevedibili ma ritenuti poco
probabili, oppure considerati di impatto accettabile. Con una solida soluzione per la disponibilità
elevata è possibile rilevare questi tipi di errori, ripristinare automaticamente il sistema in seguito
all'interruzione e ristabilire la tolleranza di errore.
Nella definizione dei contratti di servizio (SLA) per la disponibilità elevata è opportuno calcolare
indicatori di prestazioni chiave (KPI) separati per le attività di manutenzione pianificata e il tempo di
inattività non pianificato. Questo approccio consente di bilanciare l'investimento nelle attività di
manutenzione pianificata con il vantaggio di evitare tempi di inattività non pianificati.
Disponibilità ridotta
La disponibilità elevata non deve essere considerata nei termini assoluti di “tutto o niente”. In alternativa
a un totale periodo di interruzione, l'utente finale spesso accetta una parziale disponibilità del sistema,
funzionalità limitate o prestazioni ridotte. I diversi gradi di disponibilità possibili sono i seguenti:
ο‚·
Operazioni di sola lettura e posticipate. Durante un periodo di manutenzione o un ripristino di
emergenza per fasi, il recupero dei dati è ancora possibile, ma potrebbero essere temporaneamente
interrotti o accodati nuovi flussi di lavoro e l'elaborazione in background.
ο‚·
Latenza dei dati e velocità di risposta delle applicazioni. A causa di un carico di lavoro elevato, di un
backlog di elaborazione o di un malfunzionamento parziale della piattaforma, risorse hardware
limitate potrebbero risultare sovraccariche o sottodimensionate. Una situazione del genere può
influire sull'esperienza utente ma permette il normale svolgimento delle attività, sia pure in modo
meno produttivo.
ο‚·
Errori parziali, temporanei o imminenti. La solidità nella logica dell'applicazione o nello stack
dell'hardware assicura nuovi tentativi o attività di autocorrezione a ogni errore riscontrato.
È possibile che questi tipi di problemi si manifestino all'utente finale sotto forma di latenza dei dati
o scarsa velocità di risposta delle applicazioni.
ο‚·
Errore end-to-end parziale. Le interruzioni pianificate o non pianificate possono verificarsi in modo
non grave all'interno di livelli verticali dello stack della soluzione (infrastruttura, piattaforma
e applicazione) oppure a livello orizzontale tra componenti funzionali diversi. L'esperienza utente
può essere parzialmente positiva o rivelare un peggioramento delle prestazioni, in base alle
funzionalità o ai componenti interessati.
L'accettabilità di questi scenari non ottimali deve essere considerata parte di una gamma di livelli di
disponibilità ridotta che possono implicare fino all'interruzione completa e costituire passaggi intermedi
di un ripristino di emergenza per fasi.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
2
Quantificazione del tempo di inattività
Quando si verifica un periodo di inattività, pianificato o non pianificato, il principale obiettivo aziendale
è riportare il sistema online e ridurre al minimo la perdita di dati. Ogni minuto di tempo di inattività
implica costi diretti e indiretti. Nel caso di periodi di inattività non pianificati, è opportuno bilanciare il
tempo e l'impegno necessari a determinare le cause dell'interruzione, l'attuale stato del sistema
e I passaggi richiesti per ripristinarlo in seguito all'interruzione.
In un momento predeterminato durante un periodo di interruzione, si impone la decisione aziendale di
fermare la ricerca delle cause dell'interruzione o l'esecuzione delle attività di manutenzione, ripristinare
il sistema in seguito all'interruzione riportandolo online e, se necessario, ristabilire la tolleranza di
errore.
Obiettivi di recupero
La ridondanza dei dati è una componente fondamentale di una soluzione di database a disponibilità
elevata. L'attività transazionale che avviene sull'istanza di SQL Server primaria viene applicata in modo
sincrono o asincrono a una o più istanze secondarie. Quando si verifica un'interruzione, è possibile che
le transazioni in corso vengano sottoposte a rollback o vadano perdute sulle istanze secondarie a causa
del ritardo nella propagazione dei dati.
È possibile misurare l'impatto di questa situazione e definire obiettivi di recupero in termini di tempo
necessario per ripristinare le normali attività e di durata della latenza nell'ultima transazione recuperata,
come descritto di seguito.
ο‚·
Obiettivo del tempo di recupero (RTO). Si tratta della durata dell'interruzione. L'obiettivo iniziale
è riportare il sistema online almeno nelle funzionalità di sola lettura per facilitare l'analisi del
problema. Tuttavia, l'obiettivo primario è ripristinare la piena operatività fino al punto in cui
possono avere luogo nuove transazioni.
ο‚·
Obiettivo del punto di recupero (RPO). Questo concetto viene spesso definito come misura della
perdita di dati accettabile. Si tratta della latenza o del gap temporale tra l'ultima transazione di dati
di cui è stato eseguito il commit prima dell'errore e i dati più recenti recuperati dopo l'errore. La
perdita di dati effettiva può variare in base al carico di lavoro del sistema al momento dell'errore, al
tipo di errore e al tipo di soluzione per la disponibilità elevata utilizzata.
I valori di RTO e RPO vanno utilizzati come obiettivi che indicano la tolleranza aziendale del tempo di
inattività e della perdita di dati accettabile e come metriche per il monitoraggio dell'integrità della
disponibilità.
Giustificazione del ROI o dei costi derivati da mancate opportunità
I costi aziendali legati al tempo di inattività possono essere di natura finanziaria o assumere la forma di
avviamento dei clienti. Questi costi possono accumularsi nel tempo o essere prodotti in un determinato
momento durante il periodo di interruzione. Oltre a preventivare i costi derivanti da un'interruzione con
uno specifico tempo di recupero e uno specifico punto di recupero dei dati, è anche possibile calcolare
gli investimenti richiesti nei processi aziendali e nell'infrastruttura per raggiungere gli obiettivi RTO
e RPO o per evitare completamente il periodo di interruzione. Aspetti da considerare per la valutazione
degli investimenti:
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
3
ο‚·
Possibilità di evitare il tempo di inattività. I costi di ripristino a seguito di un'interruzione vengono
del tutto evitati se l'interruzione non si verifica. Gli investimenti includono il costo di hardware
o infrastrutture ridondanti e a tolleranza di errore, la distribuzione dei carichi di lavoro tra punti di
errore isolati e la pianificazione del tempo di inattività dedicato alla manutenzione preventiva.
ο‚·
Automazione del ripristino. Se si verifica un errore di sistema, è possibile ridurre in modo
sostanziale l'impatto del tempo di inattività sull'esperienza utente implementando funzionalità di
ripristino automatiche e trasparenti.
ο‚·
Utilizzo delle risorse. L'infrastruttura secondaria o di standby può rimanere inattiva, in attesa di
un'interruzione. Può inoltre essere sfruttata per i carichi di lavoro di sola lettura o per migliorare le
prestazioni complessive del sistema tramite la distribuzione dei carichi di lavoro su tutto l'hardware
disponibile.
Per specifici obiettivi RTO e RPO, gli investimenti necessari per la disponibilità e il recupero, combinati
con i costi preventivati del tempo di inattività, possono essere espressi e giustificati in funzione del
tempo. Durante un'interruzione effettiva, questo approccio consente di adottare decisioni in base ai
costi e al tempo di inattività trascorso.
Monitoraggio dell'integrità della disponibilità
Da un punto di vista operativo, durante un periodo di interruzione effettivo non è opportuno cercare di
considerare in tempo reale tutte le variabili pertinenti e calcolare il ROI o i costi derivati da mancate
opportunità. Monitorare invece la latenza dei dati sulle istanze di standby come indicatore dell'RPO
previsto.
Durante un eventuale periodo di interruzione, è poi opportuno limitare il tempo iniziale dedicato
all'analisi della causa principale e concentrarsi invece sulla convalida dell'integrità dell'ambiente di
ripristino, basandosi successivamente sui log di sistema dettagliati e sulle copie secondarie dei dati per
un'analisi approfondita.
Pianificazione del ripristino di emergenza
Mentre le misure per assicurare la disponibilità elevata tendono a impedire che si verifichi
un'interruzione, le procedure di ripristino di emergenza riguardano le attività necessarie a ristabilire la
disponibilità elevata dopo il periodo di interruzione.
Per quanto possibile, le procedure di ripristino di emergenza e le responsabilità devono essere definite
prima del verificarsi di un'effettiva interruzione. In base al monitoraggio e agli avvisi attivi, la decisione di
avviare un piano di failover e ripristino automatico o manuale deve essere associata a soglie predeterminate
di RTO e RPO. In un piano di ripristino di emergenza affidabile devono essere tenuti in considerazione gli
aspetti seguenti:
ο‚·
Granularità dell'errore e del ripristino. In base alla posizione e al tipo di errore è possibile
intraprendere azioni correttive a livelli diversi, ovvero di data center, infrastruttura, piattaforma,
applicazione o carico di lavoro.
ο‚·
Fonti di analisi. Base di riferimento e cronologia recente del monitoraggio, avvisi del sistema, registri
eventi e query diagnostiche devono essere tempestivamente accessibili dalle parti pertinenti.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
4
ο‚·
Coordinamento delle dipendenze. Individuare le dipendenze aziendali e del sistema nello stack
applicativo e tra parti interessate.
ο‚·
Albero delle decisioni. Un albero delle decisioni predeterminato, ripetibile e convalidato che includa
responsabilità dei ruoli, valutazione del problema, criteri di failover in termini di obiettivi RPO e RTO
e passaggi di ripristino stabiliti.
ο‚·
Convalida. Dopo avere eseguito le procedure di ripristino in seguito all'interruzione, individuare le
azioni da intraprendere per verificare che il sistema sia tornato al normale funzionamento.
ο‚·
Documentazione. Acquisire tutti gli elementi di cui sopra in una serie di documenti, con un livello di
dettaglio e chiarezza che permetta a un team terzo di eseguire il piano di ripristino con assistenza
minima. Questo tipo di documentazione è detto anche “runbook” o ”guida di riferimento dettagliata”.
ο‚·
Prove di ripristino. Eseguire regolarmente il piano di ripristino di emergenza per definire le
aspettative di base per gli obiettivi RTO e valutare se ruotare periodicamente l'hosting del sito di
produzione primario dal sito primario e ognuno dei siti di ripristino di emergenza.
Panoramica: disponibilità elevata con Microsoft SQL Server 2012
La realizzazione degli obiettivi RPO e RTO prefissati richiede un tempo di attività continuo per le
applicazioni critiche e la protezione dei dati strategici durante il tempo di inattività pianificato e non
pianificato. SQL Server offre un set di caratteristiche e funzionalità in grado di realizzare questi obiettivi,
contenendo al contempo costi e complessità.
I lettori già esperti delle nuove funzionalità AlwaysOn possono passare direttamente alla trattazione
dettagliata nella sezione Livelli di protezione di SQL Server AlwaysOn di questo documento.
SQL Server AlwaysOn
AlwaysOn è una nuova soluzione integrata, flessibile e conveniente per la disponibilità elevata e il
ripristino di emergenza. Può fornire ridondanza hardware e dei dati tra data center e al loro interno
e migliora il tempo di failover delle applicazioni per aumentare la disponibilità delle applicazioni di
importanza strategica. AlwaysOn assicura flessibilità di configurazione e il riutilizzo degli investimenti
hardware effettuati.
Con una soluzione AlwaysOn è possibile usufruire di due principali funzionalità di SQL Server 2012 per la
configurazione della disponibilità a livello di database e a livello di istanza:
ο‚·
Gruppi di disponibilità AlwaysOn, una novità di SQL Server 2012, potenzia in modo notevole il
mirroring del database e favorisce la disponibilità dei database dell'applicazione, eliminando inoltre
il rischio di perdita dei dati proteggendoli attraverso lo spostamento basato su log, senza dischi condivisi.
I gruppi di disponibilità forniscono un set integrato di opzioni che includono il failover automatico
e manuale di un gruppo logico di database, il supporto di un massimo di quattro repliche
secondarie, il failover veloce dell'applicazione e la correzione automatica della pagina.
ο‚·
Le istanze del cluster di failover AlwaysOn migliorano la funzionalità di clustering di failover di SQL
Server e supportano il clustering multisito tra subnet, che permette il failover delle istanze di SQL
Server tra data center. Un altro vantaggio fondamentale è costituito dal failover più veloce e prevedibile
delle istanze, per un ripristino più rapido delle applicazioni.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
5
Riduzione significativa del tempo di inattività pianificato
La causa principale del tempo di inattività delle applicazioni in qualsiasi organizzazione è riconducibile ad
attività pianificate, quali l'applicazione di patch al sistema operativo, la manutenzione dell'hardware
e così via. Queste attività possono coprire quasi l'80% delle interruzioni in un ambiente IT.
SQL Server 2012 favorisce una notevole diminuzione del tempo di inattività pianificato riducendo
i requisiti di applicazione di patch e consentendo un numero maggiore di operazioni di manutenzione
online, come illustrato di seguito.
ο‚·
Windows Server Core. SQL Server 2012 supporta le distribuzioni su Windows Server Core,
un'opzione di distribuzione minima e semplificata per Windows Server 2008 e Windows Server 2008
R2. Questa configurazione del sistema operativo può garantire un minor tempo di inattività
pianificato riducendo di ben il 60% i requisiti di applicazione di patch al sistema operativo.
ο‚·
Operazioni online. Il supporto migliorato per le operazioni online, come la reindicizzazione delle
applicazioni LOB e l'aggiunta di colonne con valori predefiniti, favorisce la riduzione del tempo di
inattività durante le operazioni di manutenzione dei database.
ο‚·
Aggiornamento in sequenza e applicazione di patch. Le funzionalità AlwaysOn facilitano gli
aggiornamenti in sequenza e l'applicazione di patch alle istanze, favorendo notevolmente la
riduzione del tempo di inattività delle applicazioni.
ο‚·
SQL Server su Hyper-V. Le istanze di SQL Server ospitate nell'ambiente Hyper-V godono dell'ulteriore
vantaggio di Live Migration, che consente di eseguire la migrazione delle macchine virtuali tra host
senza alcun tempo di inattività. Gli amministratori possono eseguire operazioni di manutenzione
sull'host senza impatto sulle applicazioni.
Eliminazione di hardware inattivo e miglioramento dell'efficienza dei costi e delle prestazioni
Le soluzioni tipiche per la disponibilità elevata comportano la distribuzione di costosi server passivi
e ridondanti. Gruppi di disponibilità AlwaysOn consente di utilizzare repliche di database secondarie su
server altrimenti passivi o inattivi per carichi di lavoro di sola lettura, come query di report di SQL Server
Reporting Services o operazioni di backup. La possibilità di utilizzare simultaneamente le repliche di
database primarie e secondarie favorisce il miglioramento delle prestazioni di tutti i carichi di lavoro
grazie a un miglior bilanciamento delle risorse tra gli investimenti hardware per i server.
Facilità di distribuzione e gestione
Caratteristiche come la Configurazione guidata, il supporto per l'interfaccia della riga di comando di
Windows PowerShell, i dashboard, le DMV, la gestione basata su criteri e l'integrazione con System
Center contribuiscono a semplificare e distribuire la gestione dei gruppi di disponibilità.
Funzionalità RPO e RTO a confronto
Gli obiettivi aziendali per RPO (obiettivo del punto di recupero) e RTO (obiettivo del tempo di recupero)
devono costituire i principi guida chiave nel selezionare una tecnologia SQL Server alla base della
soluzione per la disponibilità elevata e il ripristino di emergenza. Nella tabella viene presentato un
confronto sommario tra i tipi di risultati ottenibili con le diverse soluzioni.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
6
Soluzione SQL Server per la disponibilità
elevata e il ripristino di emergenza
Potenziale
perdita di
dati (RPO)
Potenziale
tempo di
recupero
(RTO)
Failover
automatico
Repliche
secondarie
leggibili(1)
Gruppo di disponibilità AlwaysOn - Commit sincrono
Zero
Secondi
Sì(4)
0-2
Gruppo di disponibilità AlwaysOn - Commit asincrono
Secondi
Minuti
No
0-4
Istanza del cluster di failover AlwaysOn
ND(5)
Sì
ND
Mirroring del database(2) - Sicurezza elevata
(sincrono + server di controllo)
Zero
Da secondi
a minuti
Secondi
Sì
ND
Mirroring del database(2) - Prestazioni elevate
(asincrono)
Secondi(6)
Minuti(6)
No
ND
Log shipping
Minuti(6)
Da minuti
a ore(6)
Da ore
a giorni(6)
No
Non durante
un ripristino
Non durante
un ripristino
Backup, copia, ripristino(3)
(1) Il
Ore(6)
No
gruppo di disponibilità AlwaysOn non può avere più di quattro repliche secondarie totali, indipendentemente dal tipo.
(2) Questa
funzionalità verrà rimossa in una versione successiva di Microsoft SQL Server. Utilizzare Gruppi di disponibilità AlwaysOn.
(3) Backup,
copia e ripristino sono adatti per il ripristino di emergenza, ma non per la disponibilità elevata.
(4)
Non è supportato il failover automatico di un gruppo di disponibilità verso o da un'istanza del cluster di failover.
(5)
L'istanza del cluster di failover non fornisce in sé protezione dati; la perdita dei dati dipende dall'implementazione del sistema di archiviazione.
(6)
Dipende strettamente dal carico di lavoro, dal volume dei dati e dalle procedure di failover.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
7
Livelli di protezione di SQL Server AlwaysOn
Le soluzioni SQL Server AlwaysOn forniscono le funzionalità di tolleranza di errore e ripristino di emergenza
a diversi livelli logici e fisici dei componenti dell'infrastruttura e delle applicazioni. È da sempre pratica
comune attuare una separazione di compiti e responsabilità per i vari gruppi di destinatari e ruoli interessati,
in modo che ciascuno si occupasse soprattutto di una parte di tali livelli delle soluzioni.
Questa sezione è organizzata in modo da descrivere dettagliatamente ciascuno dei livelli e fornire
i fondamenti logici e le indicazioni per definire la progettazione e l'implementazione della soluzione più
adeguata alle diverse esigenze.
Ai fini di una soluzione SQL Server AlwaysOn efficace sono necessarie una buona comprensione dei livelli
seguenti e l'implementazione di una collaborazione tra livelli.
ο‚·
Livello infrastruttura. La tolleranza di errore a livello di server e la comunicazione di rete tra nodi
sfruttano le funzionalità Windows Server Failover Clustering (WSFC) per il monitoraggio dell'integrità
e il coordinamento del failover.
ο‚·
Livello istanza di SQL Server. Un'istanza del cluster di failover di SQL Server AlwaysOn è un'istanza di
SQL Server installata in più nodi server in un cluster WSFC, sui quali può eseguire il failover. I nodi
che ospitano l'istanza sono collegati a un sistema di archiviazione condiviso, simmetrico e affidabile
(rete SAN o SMB).
ο‚·
Livello database. Un gruppo di disponibilità è un set di database utente di cui viene eseguito
simultaneamente il failover. Un gruppo di disponibilità è costituito da una replica primaria e da una
a quattro repliche secondarie. Ogni replica è ospitata da un'istanza di SQL Server (del cluster di
failover o meno) su un nodo diverso del cluster WSFC.
ο‚·
Connettività client. Le applicazioni client di database possono connettersi direttamente a un nome
di rete dell'istanza di SQL Server oppure a un nome di rete virtuale (VNN) associato a un listener del
gruppo di disponibilità. Il VNN separa la topologia del cluster WSFC e del gruppo di disponibilità,
reindirizzando a livello logico le richieste di connessione all'istanza di SQL Server e alla replica di
database appropriate.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
8
La topologia logica di una tipica soluzione AlwaysOn viene illustrata nel diagramma seguente:
Disponibilità dell'infrastruttura
Sia i gruppi di disponibilità AlwaysOn che le istanze del cluster di failover AlwaysOn utilizzano il sistema
operativo Windows Server e WSFC come tecnologia di piattaforma. È più che mai importante che gli
amministratori di database di Microsoft SQL Server abbiano acquisito una solida comprensione di tali
tecnologie.
Sistema operativo Windows
SQL Server è basato sulla piattaforma Windows per l'infrastruttura e i servizi fondamentali di rete,
archiviazione, sicurezza, applicazione di patch e monitoraggio, con una progressiva corrispondenza tra le
differenti edizioni di SQL Server 2012 e le più ampie funzionalità e capacità delle edizioni simili del
sistema operativo Windows Server 2008 R2, come Windows Server 2008 R2 Standard, Windows Server
2008 R2 Enterprise e Windows Server 2008 R2 Datacenter.
Per ulteriori informazioni, vedere Requisiti hardware e software per l'installazione di SQL Server 2012
(http://msdn.microsoft.com/it-it/library/ms143506(SQL.110).aspx).
Opzione di installazione Windows Server Core
Una funzionalità chiave di SQL Server 2012 per la disponibilità elevata è la distribuzione nell'opzione di
installazione Windows Server Core in Windows Server 2008 o versioni successive. L'opzione di
installazione Server Core fornisce un ambiente minimo per l'esecuzione di determinati ruoli server con
funzionalità limitata e supporto molto ridotto per applicazioni con GUI. Per impostazione predefinita
sono abilitati solo i servizi necessari e un ambiente di prompt dei comandi.
Questa modalità operativa limita la superficie d'attacco del sistema operativo e l'overhead di sistema
e può ridurre significativamente i requisiti di normale manutenzione, assistenza e applicazione di patch.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
9
Una considerazione importante per la distribuzione di SQL Server 2012 su Windows Server Core è che
tutte le attività di distribuzione, configurazione, amministrazione e manutenzione di SQL Server e del
sistema operativo devono essere completate utilizzando un ambiente di scripting come Windows
PowerShell, la riga di comando o strumenti remoti.
Ottimizzazione di SQL Server per il cloud privato
Gli scenari di disponibilità elevata e ripristino di emergenza assumono un ruolo sempre più strategico
nell'ambiente cloud privato. La distribuzione di SQL Server nel cloud privato favorisce l'uso efficiente
delle risorse di elaborazione, di rete e di archiviazione, riducendo sia l'impatto fisico che i costi in conto
capitale e di esercizio. Facilita inoltre il consolidamento delle distribuzioni, il ridimensionamento
efficiente delle risorse e la loro distribuzione su richiesta senza pregiudicare le funzioni di controllo.
Oltre a Windows Server Failover Clustering per i sistemi Hyper-V sia host che guest, SQL Server supporta
anche Live Migration, che consente di spostare macchine virtuali tra host con un tempo di inattività
irrilevante. Live Migration è utilizzabile anche in combinazione con il clustering guest.
Per ulteriori informazioni, vedere Private Cloud Computing - Optimizing SQL Server for Private Cloud
(http://www.microsoft.com/SqlServerPrivateCloud).
Windows Server Failover Clustering
Windows Server Failover Clustering (WSFC) offre caratteristiche di infrastruttura che supportano gli
scenari di disponibilità elevata e ripristino di emergenza delle applicazioni server ospitate, come
Microsoft SQL Server.
Se si verifica un errore in un nodo o un servizio del cluster WSFC, le risorse o i servizi ospitati su tale
nodo possono essere trasferiti automaticamente o manualmente a un altro nodo disponibile, con un
processo noto come failover. Con le soluzioni AlwaysOn questo processo è valido sia per le istanze del
cluster di failover che per i gruppi di disponibilità.
I nodi del cluster WSFC operano insieme per fornire collettivamente i tipi di funzionalità seguenti:
ο‚·
Notifiche e metadati distribuiti. I metadati del servizio WSFC e delle applicazioni ospitate vengono
gestiti in ogni nodo del cluster. I metadati includono la configurazione e lo stato di WSFC oltre alle
impostazioni delle applicazioni ospitate. Le modifiche apportate ai metadati o allo stato su un nodo
vengono automaticamente propagate agli altri nodi del cluster.
ο‚·
Gestione delle risorse. I singoli nodi del cluster possono fornire risorse fisiche, ad esempio archiviazione
a collegamento diretto (DAS), interfacce di rete e accesso all'archiviazione su dischi condivisi. Le
applicazioni ospitate, come SQL Server, effettuano la registrazione come risorse cluster e possono
configurare dipendenze di avvio e integrità da altre risorse.
ο‚·
Monitoraggio dell'integrità. Il rilevamento dell'integrità del nodo primario e tra nodi viene effettuato
combinando comunicazioni di rete di tipo heartbeat e monitoraggio delle risorse. Lo stato
complessivo del cluster è determinato dai voti di un quorum di nodi nel cluster.
ο‚·
Coordinamento del failover. Ogni risorsa è configurata per essere ospitata su un nodo primario
e può essere trasferita automaticamente o manualmente a uno o più nodi secondari. I criteri di
failover basati sull'integrità controllano il trasferimento automatico della proprietà della risorsa tra
i nodi. Quando avviene il failover, viene inviata una notifica ai nodi e alle applicazioni ospitate
perché possano reagire nel modo appropriato.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
10
Per ulteriori informazioni, vedere le pagine di Windows Server | Clustering di failover e bilanciamento
dei nodi (http://www.microsoft.com/windowsserver2008/it/it/failover-clustering-main.aspx).
Nota: è ora essenziale che gli amministratori di database comprendano i meccanismi interni dei cluster
WSFC e della gestione del quorum. Tutte le procedure AlwaysOn, dal monitoraggio dell'integrità alla
gestione e al ripristino in seguito a un errore, sono intrinsecamente legate alla configurazione WSFC
utilizzata.
Configurazioni di archiviazione WSFC
Windows Server Failover Clustering si basa su ogni nodo nel cluster per gestire i dispositivi di
archiviazione, i volumi dei dischi e il file system connessi. Il presupposto del funzionamento di WSFC
è che il sottosistema di archiviazione sia estremamente affidabile e di conseguenza, se il dispositivo di
archiviazione collegato a un nodo non è disponibile, il nodo del cluster viene considerato in errore.
Per le operazioni basate su scrittura, il volume di un disco è collegato a livello logico a un solo nodo del
cluster per volta tramite una prenotazione permanente SCSI-3. In base alle funzionalità e alla configurazione
del sottosistema di archiviazione, se un nodo non funziona la proprietà logica del volume del disco può
essere trasferita a un altro nodo nel cluster.
Le soluzioni SQL Server AlwaysOn sfruttano una serie limitata di combinazioni di configurazione delle
risorse di archiviazione WSFC, tra cui:
ο‚·
Dispositivi collegati direttamente e dispositivi remoti. I dispositivi di archiviazione sono collegati
direttamente e fisicamente al server o vengono presentati da un dispositivo remoto tramite una
scheda di rete o una scheda bus host (HBA). Le tecnologie di archiviazione remota includono
soluzioni basate su rete SAN (rete di archiviazione virtuale), come iSCSI o Fibre Channel, e soluzioni
basate su condivisioni di file SMB (Server Message Block).
ο‚·
Dispositivi simmetrici e dispositivi asimmetrici. I dispositivi di archiviazione vengono considerati
simmetrici se a ciascun nodo vengono presentati esattamente la stessa configurazione dei volumi
dei dischi logici e gli stessi percorsi di file. L'implementazione fisica e la capacità dei volumi dei dischi
sottostanti possono variare.
ο‚·
Archiviazione dedicata e archiviazione condivisa. Le risorse di archiviazione dedicata sono riservate
all'utilizzo di un solo nodo nel cluster a cui vengono assegnate, mentre le risorse di archiviazione
condivisa sono accessibili a più nodi nel cluster. Il controllo e la proprietà di dispositivi di archiviazione
condivisa conformi possono essere trasferiti da un nodo all'altro tramite protocolli SCSI-3. WSFC
supporta l'hosting multinodo simultaneo di volumi condivisi del cluster per scopi di condivisione di
file, ma SQL Server non supporta l'accesso multinodo simultaneo a un volume condiviso.
Nota: per l'accesso alle istanze del cluster di failover di SQL Server da parte di tutti i possibili proprietari
dei nodi delle istanze è comunque necessaria l'archiviazione condivisa simmetrica. Tuttavia, con
l'introduzione di Gruppi di disponibilità AlwaysOn, è ora possibile distribuire diverse istanze non di
cluster di failover di SQL Server in un cluster WSFC, ognuna con le proprie risorse di archiviazione
univoche dedicate, locali o remote.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
11
Rilevamento dell'integrità e failover delle risorse WSFC
Ogni risorsa in un nodo del cluster WSFC può segnalare il proprio stato e la propria integrità,
periodicamente o su richiesta. Varie sono le circostanze che possono indicare l'errore di una risorsa
cluster, ad esempio un'interruzione dell'alimentazione, errori del disco o di memoria, errori nella
comunicazione di rete, configurazioni errate o servizi che non rispondono.
È possibile rendere dipendenti l'una dall'altra risorse cluster WSFC quali reti, archiviazione o servizi.
L'integrità cumulativa di una risorsa è determinata dal rollup successivo della sua integrità con quella di
ognuna delle sue dipendenze.
Per Gruppi di disponibilità AlwaysOn, il gruppo di disponibilità e il listener del gruppo di disponibilità
sono registrati come risorse cluster WSFC. Per le istanze del cluster di failover AlwaysOn, il servizio SQL
Server e il servizio SQL Server Agent vengono registrati come risorse cluster WSFC ed entrambi vengono
resi dipendenti dalla risorsa nome di rete virtuale dell'istanza.
Se in una risorsa cluster WSFC si verifica un dato numero di errori o guasti in un determinato periodo di
tempo, il servizio cluster eseguirà una delle azioni seguenti in base ai criteri di failover configurati.
ο‚·
ο‚·
ο‚·
Riavvio della risorsa sul nodo corrente.
Impostazione offline della risorsa.
Avvio di un failover automatico della risorsa e delle dipendenze su un altro nodo.
Nota: il rilevamento dell'integrità delle risorse cluster WSFC non ha impatto diretto sull'integrità dei
singoli nodi o su quella complessiva del cluster.
Procedura guidata di convalida cluster WSFC
La procedura guidata di convalida cluster è una funzionalità integrata nel clustering di failover in
Windows Server 2008 e Windows Server 2008 R2. Si tratta di un utilissimo strumento di cui può servirsi
l'amministratore del database per verificare l'esistenza di un ambiente WSFC stabile, pulito e integro
prima di distribuire una soluzione SQL Server AlwaysOn.
Questa procedura guidata consente di eseguire un set di test specifici su un insieme di server da
utilizzare come nodi in un cluster oppure su un cluster esistente. Questo processo consente di testare,
direttamente e singolarmente, l'hardware e il software dei server per ottenere una valutazione accurata
dell'adeguatezza di una data configurazione per un cluster WSFC.
Questo processo di convalida è costituito da una serie di test e raccolte di dati su ogni nodo nelle
categorie seguenti:
ο‚·
Inventario. Informazioni sulle versioni del BIOS, i livelli di ambiente, le schede bus host, la RAM, le
versioni del sistema operativo, i dispositivi, i servizi, i driver e così via.
ο‚·
Rete. Informazioni sull'ordine di associazione delle NIC, le comunicazioni di rete, la configurazione
degli indirizzi IP e del firewall. Vengono convalidate le comunicazioni tra nodi su tutte le NIC.
ο‚·
Archiviazione. Informazioni sui dischi, la capacità delle unità, la latenza di accesso, i file system e così
via. Vengono convalidati i comandi SCSI, la funzionalità di failover dei dischi e la configurazione
dell'archiviazione simmetrica o asimmetrica.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
12
ο‚·
Configurazione di sistema. Vengono convalidati la configurazione di Active Directory, l'avvenuta
firma dei driver, le impostazioni del dump di memoria, le funzionalità e i servizi del sistema
necessari, l'architettura di processore compatibile e i livelli dei Service Pack e dell'aggiornamento del
software Windows.
I risultati di questi test di convalida forniscono le informazioni necessarie per ottimizzare la
configurazione di un cluster, tenere traccia della configurazione e individuare potenziali problemi di
configurazione prima che provochino inattività. È possibile salvare un report dei risultati dei test sotto
forma di documento HTML da consultare in futuro.
I test devono essere eseguiti prima e dopo avere apportato modifiche alla configurazione di WSFC,
prima di installare SQL Server e come parte di qualsiasi processo di ripristino di emergenza. Un report di
convalida del cluster è richiesto dal Servizio Supporto Tecnico Clienti Microsoft come condizione per la
fornitura del supporto Microsoft a una specifica configurazione cluster WSFC.
Per ulteriori informazioni, vedere Guida dettagliata ai cluster di failover: Convalidare l'hardware per un
cluster di failover (http://technet.microsoft.com/it-it/library/cc732035 (WS.10).aspx).
Nota: se la configurazione del cluster prevede l'archiviazione asimmetrica, come nel caso delle soluzioni
di archiviazione di tipo geo-clustering basate sull'hardware o nel caso di Gruppi di disponibilità
AlwaysOn, potrebbe essere necessario applicare una serie di hotfix per evitare errori della procedura
guidata durante la convalida dell'archiviazione.
Per ulteriori informazioni, vedere Prerequisiti, restrizioni e consigli per i gruppi di disponibilità AlwaysOn
(SQL Server) (http://msdn.microsoft.com/it-it/library/ff878487(SQL.110).aspx#SystemReqsForAOAG).
Modalità di quorum e configurazione del voto nel WSFC
WSFC utilizza un approccio basato sul quorum per monitorare l'integrità complessiva del cluster
e ottimizzare la tolleranza di errore a livello di nodo. Una comprensione di base delle modalità di
quorum e della configurazione di voto dei nodi di WSFC è molto importante per progettare ed eseguire
una soluzione AlwaysOn per la disponibilità elevata e il ripristino di emergenza, nonché per risolverne
i problemi.
Rilevamento dell'integrità del cluster in base al quorum
Ogni nodo in un cluster WSFC partecipa alla comunicazione heartbeat periodica per condividere il
proprio stato di integrità con gli altri nodi. I nodi che non rispondono sono considerati in stato di errore.
Un set di nodi quorum rappresenta una maggioranza dei nodi votanti e degli elementi di controllo nel
cluster WSFC. L'integrità e lo stato complessivi di un cluster WSFC sono determinati da un voto di
quorum periodico. La presenza di un quorum indica che il cluster è sufficientemente integro da fornire
tolleranza di errore a livello di nodo.
L'assenza di un quorum indica che il cluster non è integro. L'integrità complessiva del cluster WSFC
è necessaria per garantire la disponibilità di nodi secondari integri in cui eseguire il failover dei nodi
primari. Se il voto del quorum dà esito negativo, l'intero cluster WSFC viene impostato offline come
misura precauzionale, che implica anche l'arresto di tutte le istanze di SQL Server registrate con il
cluster.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
13
Nota: se un cluster WSFC viene impostato offline a causa di un errore del quorum, è necessario
l'intervento manuale per riportarlo online. Per ulteriori informazioni, vedere la sezione Ripristino di
emergenza del cluster WSFC tramite quorum forzato più avanti in questo documento.
Modalità di quorum
Per specificare la metodologia utilizzata per i voti del quorum viene configurata una modalità di quorum
a livello del cluster WSFC. In base al numero di nodi nel cluster l'utilità Gestione cluster di failover
consiglia una modalità di quorum.
Il quorum di voti viene determinato da una delle modalità di quorum riportate di seguito.
ο‚·
Maggioranza dei nodi. Oltre la metà dei nodi votanti nel cluster deve votare affermativamente
perché il cluster sia ritenuto integro.
ο‚·
Maggioranza dei nodi e delle condivisioni file. È simile alla modalità di quorum Maggioranza dei
nodi, ad eccezione del fatto che viene configurata anche una condivisione file remota come
elemento di controllo del voto e la connettività da qualsiasi nodo a tale condivisione viene anch'essa
conteggiata come voto affermativo. Oltre la metà dei possibili voti deve essere affermativa perché il
cluster sia ritenuto integro.
Come procedura consigliata, la condivisione file di controllo non deve trovarsi in alcun nodo nel
cluster e deve essere visibile a tutti i nodi nel cluster.
ο‚·
Maggioranza dei nodi e dei dischi. È simile alla modalità di quorum Maggioranza dei nodi, ad
eccezione del fatto che viene designata come elemento di controllo di voto anche una risorsa cluster
di tipo disco condiviso e la connettività da qualsiasi nodo a tale disco condiviso viene anch'essa
conteggiata come voto affermativo. Oltre la metà dei possibili voti deve essere affermativa perché il
cluster sia ritenuto integro.
ο‚·
Solo disco. Viene designata come elemento di controllo anche una risorsa cluster di tipo disco
condiviso e la connettività da qualsiasi nodo a tale disco condiviso viene anch'essa conteggiata come
voto affermativo.
Per ulteriori informazioni, vedere Guida dettagliata ai cluster di failover: Configurazione del quorum in
un cluster (http://technet.microsoft.com/it-it/library/cc770620(WS.10).aspx).
Nota: a meno che ogni nodo nel cluster non sia configurato per l'utilizzo dello stesso disco di controllo
del quorum di archiviazione condivisa, è in genere preferibile utilizzare la modalità di quorum
Maggioranza dei nodi se è presente un numero dispari di nodi votanti, mentre la modalità Maggioranza
dei nodi e delle condivisioni file è più appropriata in presenza di un numero pari di nodi votanti.
Nodi votanti e non votanti
Per impostazione predefinita, ogni nodo nel cluster WSFC è incluso come membro del quorum del
cluster. Ogni nodo, condivisione file di controllo e disco di controllo ha a disposizione un solo voto per
determinare l'integrità complessiva del cluster. Nell'illustrare il quorum fino a questo punto, il set di nodi
del cluster WSFC che votano per determinare l'integrità del cluster è stato definito set di nodi votanti. In
alcune circostanze è però preferibile evitare che ogni nodo abbia un voto.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
14
Ogni nodo in un cluster WSFC tenta continuamente di stabilire un quorum. Un singolo nodo nel cluster
non può determinare in modo definitivo se il cluster sia complessivamente integro o non integro. In
qualsiasi momento specificato, dal punto di vista di ciascun nodo, alcuni degli altri nodi possono apparire
come offline, con un failover in corso oppure possono non rispondere a causa di un errore di comunicazione
di rete. Una funzione principale del voto del quorum consiste nel determinare se lo stato apparente di
ogni nodo nel cluster WSFC corrisponda in realtà all'effettivo stato di tali nodi.
Per tutti i modelli di quorum ad eccezione di Solo disco, l'efficacia di un voto del quorum dipende da
comunicazioni affidabili tra tutti i nodi votanti nel cluster. Il voto del quorum deve essere considerato
attendibile quando tutti i nodi sono sulla stessa subnet fisica.
Se, tuttavia, si riscontra che un nodo in un'altra subnet non risponde in un voto del quorum, ma è in
realtà online e altrimenti integro, la causa è molto probabilmente dovuta a un errore di comunicazione
di rete tra subnet. A seconda della topologia del cluster, della modalità di quorum e della configurazione
dei criteri di failover, l'errore di comunicazione di rete potrebbe effettivamente implicare la creazione di
più di un set (o subset) di nodi votanti.
Se più di un subset di nodi votanti è in grado di stabilire singolarmente un quorum, si verifica uno
scenario split brain, in cui i nodi nei quorum separati possono comportarsi in modo diverso ed essere in
conflitto gli uni con gli altri.
Nota: lo scenario split brain è possibile solo se un amministratore di sistema esegue manualmente
un'operazione di quorum forzato o, in casi molto rari, un failover manuale forzato, suddividendo in
modo esplicito il set di nodi del quorum. Per ulteriori informazioni, vedere la sezione Ripristino di
emergenza del cluster WSFC tramite quorum forzato più avanti in questo documento.
Per semplificare la configurazione del quorum e aumentare il tempo di attività, è possibile modificare
l'impostazione NodeWeight (un valore 0 o 1) di ogni nodo per impedire che il voto del nodo venga
conteggiato rispetto al quorum.
Modifiche consigliate ai voti del quorum
Per determinare la configurazione consigliata per i voti del quorum del cluster, applicare in sequenza le
linee guida seguenti.
1. Nessun voto per impostazione predefinita. Presupporre che ogni nodo non debba votare senza
giustificazione esplicita.
2. Includere tutti i nodi primari. Ogni nodo che ospita una replica primaria del gruppo di disponibilità
AlwaysOn o è il proprietario preferito dell'istanza del cluster di failover AlwaysOn deve disporre di
un voto.
3. Includere i possibili proprietari del failover automatico. Ogni nodo che può ospitare una replica
primaria o un'istanza del cluster di failover, come risultato di un failover automatico, deve disporre
di un voto.
4. Escludere nodi del sito secondari. In generale, non assegnare voti a nodi che si trovano in un sito di
ripristino di emergenza secondario. Non è consigliabile fare in modo che i nodi nel sito secondario
contribuiscano a una decisione che comporti l'impostazione offline del cluster quando non vi sono
problemi con il sito primario.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
15
5. Numero dispari di voti. Se necessario, aggiungere una condivisione file di controllo, un nodo di
controllo (con o senza istanza di SQL Server) o un disco di controllo al cluster e modificare la
modalità di quorum per impedire possibili pareggi nel voto del quorum.
6. Valutare nuovamente le assegnazioni dei voti dopo il failover. Non è consigliabile eseguire il
failover in una configurazione del cluster che non supporta un quorum integro.
Per ulteriori informazioni sulla modifica dei voti dei nodi, vedere Configurare le impostazioni NodeWeight
per il quorum del cluster (http://msdn.microsoft.com/it-it/library/hh270281(SQL.110).aspx).
Non è possibile modificare il voto di una condivisione file di controllo. È necessario invece selezionare
una modalità di quorum diversa per includere o escludere il voto.
Nota: in SQL Server vengono esposte diverse DMV di sistema che semplificano l'amministrazione delle
impostazioni correlate alla configurazione del cluster WSFC e ai voti del quorum dei nodi.
Per ulteriori informazioni, vedere Monitorare Gruppi di disponibilità (Transact-SQL)
(http://msdn.microsoft.com/it-it/library/ff878305(SQL.110).aspx).
Ripristino di emergenza del cluster WSFC tramite quorum forzato
Un errore del quorum è causato generalmente da una situazione di emergenza a livello di sistema o da
un errore di comunicazione persistente che interessa diversi nodi del cluster WSFC. Tenere presente che
l'errore del quorum provoca l'impostazione offline di tutti i servizi del cluster, le istanze di SQL Server
e I gruppi di disponibilità del cluster WSFC, in quanto il cluster non è in grado di garantire la tolleranza di
errore a livello di nodo. Un errore del quorum significa che i nodi votanti integri del cluster WSFC non
soddisfano più il modello di quorum. È possibile che alcuni nodi abbiano avuto esito completamente
negativo e alcuni abbiano solo arrestato il servizio WSFC e siano altrimenti integri, a eccezione della
perdita della capacità di comunicare con un quorum.
Per riportare online il cluster WSFC, è necessario correggere la causa principale dell'errore del quorum
su almeno un nodo nella configurazione esistente. In uno scenario di emergenza può essere necessario
riconfigurare l'hardware o utilizzarne di nuovo. Può inoltre rivelarsi opportuno riconfigurare i nodi
restanti nel cluster WSFC in base alla topologia del cluster rimasto attivo.
È possibile utilizzare la procedura di quorum forzato su un nodo del cluster WSFC per ignorare i controlli
di sicurezza che hanno portato il cluster offline. L'esecuzione della procedura comporta la sospensione
dei controlli di voto del quorum all'interno del cluster e consente di riportare online le risorse del cluster
WSFC e SQL Server su tutti i nodi nel cluster.
È opportuno che questo tipo di processo di ripristino di emergenza includa i passaggi seguenti:
1) Determinare l'ambito dell'errore. Determinare i gruppi di disponibilità o le istanze di SQL Server che
non rispondono, i nodi del cluster online e disponibili per l'uso dopo la condizione di emergenza
e quindi esaminare i registri eventi di Windows e i log di sistema di SQL Server. Dove possibile,
è consigliabile mantenere dati e registri di sistema per un'analisi successiva.
2) Avviare il cluster WSFC tramite quorum forzato su un singolo nodo. Su un nodo altrimenti integro,
riportare manualmente il cluster online utilizzando la procedura di quorum forzato. Per ridurre al
minimo la possibile perdita di dati, selezionare un nodo che nell'ultima operazione ospitava una
replica primaria del gruppo di disponibilità.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
16
Per ulteriori informazioni, vedere Forzare l'avvio di un cluster WSFC senza un quorum
(http://msdn.microsoft.com/it-it/library/hh270275(v=SQL.110).aspx).
Nota: l'impostazione del quorum forzato implica il blocco dei controlli del quorum a livello di cluster
finché il cluster WSFC non ottiene una maggioranza di voti e passa automaticamente alla modalità
operativa di quorum normale.
3) Avviare il servizio WSFC normalmente su tutti i nodi diversamente integri, uno alla volta. Non
è necessario specificare l'opzione per il quorum forzato quando si avvia il servizio cluster sugli altri
nodi.
Man mano che il servizio WSFC ritorna online su ogni nodo, viene avviata la negoziazione con gli altri
nodi integri per sincronizzare il nuovo stato di configurazione del cluster. Questa operazione deve
essere effettuata un nodo per volta per evitare possibili casi di race condition nella risoluzione
dell'ultimo stato noto del cluster.
Nota: assicurarsi che ogni nodo avviato possa comunicare con gli altri nodi da poco online. In caso
contrario, vi è il rischio di creare più set di nodi del quorum e quindi uno scenario split brain. Se
i risultati nel passaggio 1 sono accurati, questa situazione non dovrebbe verificarsi.
4) Applicare la nuova modalità di quorum e la nuova configurazione di voto dei nodi. Se tramite la
procedura di quorum forzato vengono riavviati tutti i nodi del cluster e la causa principale dell'errore
del quorum è stata corretta, non è necessario apportare modifiche alla modalità di quorum e alla
configurazione di voto dei nodi originali.
In caso contrario, è necessario valutare il nodo del cluster appena ripristinato e la topologia della
replica di disponibilità e modificare la modalità di quorum e le assegnazioni dei voti per ogni nodo
nel modo appropriato. Impostare offline il servizio cluster WSFC sui nodi non ripristinati
o impostarne su zero i voti.
Nota: a questo punto è possibile che i nodi e le istanze di SQL Server nel cluster risultino
apparentemente di nuovo funzionanti. In realtà è possibile che non sia ancora presente un quorum
integro. Utilizzando Gestione cluster di failover o il dashboard AlwaysOn all'interno di SQL Server
Management Studio (o le DMV appropriate), verificare che sia stato ripristinato un quorum integro.
5) Ripristinare le repliche di database del gruppo di disponibilità nel modo necessario. Alcuni
database potrebbero procedere al ripristino e ritornare online autonomamente come parte del
normale processo di avvio di SQL Server, mentre il ripristino di altri database potrebbe richiedere
passaggi manuali aggiuntivi.
È possibile ridurre al minimo l'eventuale perdita di dati e il tempo di recupero per le repliche del
gruppo di disponibilità riportandole online in questa sequenza, se fattibile: replica primaria, repliche
secondarie sincrone, repliche secondarie asincrone.
6) Ripristinare o sostituire componenti con errori e convalidare di nuovo il cluster. Dopo aver
eseguito il ripristino in seguito alla situazione di emergenza iniziale e dell'errore del quorum,
è necessario ripristinare o sostituire i nodi con errori e modificare di conseguenza le configurazioni
di WSFC e AlwaysOn correlate. Questa operazione può implicare l'eliminazione di repliche del
gruppo di disponibilità, la rimozione di nodi dal cluster o l'eliminazione e la reinstallazione del
software in un nodo.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
17
Nota: è necessario ripristinare o rimuovere tutte le repliche di disponibilità con errori. In SQL Server
2012 il log delle transazioni non viene troncato oltre l'ultimo punto noto della replica di disponibilità
meno aggiornata. Se una replica con errori non viene ripristinata o rimossa dal gruppo di disponibilità,
le dimensioni dei log delle transazioni aumenteranno e si correrà il rischio di esaurire lo spazio dei
log delle transazioni delle altre repliche.
7) Ripetere il passaggio 4 nel modo necessario. L'obiettivo è ristabilire il livello appropriato di
tolleranza di errore e disponibilità elevata per assicurare operazioni integre.
8) Eseguire un'analisi RPO/RTO. È consigliabile analizzare i log di sistema di SQL Server, i timestamp
del database e i registri eventi di Windows per determinare la causa principale dell'errore
e documentare il punto di recupero e il tempo di recupero effettivi.
Protezione a livello di istanza di SQL Server
Il successivo livello di protezione in una soluzione AlwaysOn è la piattaforma dati in sé, ovvero le
funzionalità e le caratteristiche offerte da Microsoft SQL Server 2012 e la sua integrazione con
i componenti dell'infrastruttura di Windows Server.
Miglioramenti alla disponibilità - Istanze di SQL Server
Di seguito sono descritte le nuove funzionalità a livello di istanza di SQL Server 2012 in grado di
migliorare la disponibilità sia delle istanze del cluster di failover AlwaysOn che delle istanze autonome
che ospitano Gruppi di disponibilità AlwaysOn.
Questi miglioramenti riguardano la gestione e la risoluzione dei problemi degli scenari di failover.
ο‚·
Criteri di failover flessibili. Nell'output della nuova stored procedure di sistema utilizzata per il
rilevamento affidabile degli errori, sp_server_diagnostics, viene impiegata la proprietà
FailureConditionLevel per specificare la gravità del problema che interessa l'istanza di SQL Server.
Specifici criteri di failover WSFC determinano l'impatto di tale valore sull'istanza di SQL Server,
variando da una tolleranza agli errori relativa fino alla sensibilità a qualsiasi errore dei componenti
interni di SQL Server.
L'attivazione del failover può essere configurata in base a uno dei livelli di errore nella gamma
disponibile, tra cui server inaccessibile, mancata risposta del server, errore critico, errore con gravità
moderata o qualsiasi errore qualificato. La proprietà FailureConditionLevel può essere utilizzata per
i criteri di failover delle istanze del cluster di failover o dei gruppi di disponibilità.
Prima di SQL Server 2012, non era prevista alcuna granularità delle condizioni di errore per
controllare il failover, che poteva essere prodotto da qualsiasi errore a livello di servizio.
Per ulteriori informazioni, vedere Criteri di failover per istanze del cluster di failover
(http://msdn.microsoft.com/it-it/library/ff878664(SQL.110).aspx).
ο‚·
Strumentazione e registrazione avanzate. È disponibile una serie, specifica di AlwaysOn, di viste di
configurazione di sistema, DMV, contatori delle prestazioni e una sessione di integrità Eventi estesi
che acquisisce e mostra le informazioni necessarie per la risoluzione dei problemi, l'ottimizzazione
e il monitoraggio della distribuzione AlwaysOn. Molti di questi strumenti sono esposti tramite
i nuovi facet e criteri di Gestione criteri di SQL Server.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
18
Per ulteriori informazioni, vedere Funzioni e DMV di Gruppi di disponibilità AlwaysOn (Transact-SQL)
(http://msdn.microsoft.com/it-it/library/ff877943(SQL.110).aspx) e sys.dm_os_cluster_nodes
(http://msdn.microsoft.com/it-it/library/ms187341(SQL.110).aspx).
ο‚·
Supporto per la condivisione file SMB. È possibile salvare i file di database in una condivisione file
remota di Windows Server 2008 o versione successiva sia per le istanze autonome che per le istanze
del cluster di failover, eliminando la necessità di una lettera di unità separata per queste ultime. Si
tratta di una buona scelta per il consolidamento delle risorse di archiviazione o per l'hosting delle
risorse di archiviazione dei file di database in un server fisico per un sistema operativo guest della
macchina virtuale. Con la configurazione corretta, le prestazioni di I/O possono avvicinarsi molto
a quelle dell'archiviazione a collegamento diretto.
Per ulteriori informazioni, vedere SQL Databases on File Shares - It's time to reconsider the scenario
(http://blogs.msdn.com/b/sqlserverstorageengine/archive/2011/10/18/sql-databases-on-fileshares-it-s-time-to-reconsider-the-scenario.aspx).
Nota: in un cluster WSFC non è possibile aggiungere una dipendenza della risorsa condivisione file
SMB al gruppo di risorse di SQL Server, ma in questo caso sono necessarie misure separate per
assicurare la disponibilità della condivisione file. Se la condivisione file diventa non disponibile, in
SQL Server viene generata un'eccezione di I/O, seguita dal passaggio alla modalità offline.
ο‚·
Interoperabilità del cluster WSFC con il sistema DNS. Il nome di rete virtuale (VNN) per un'istanza
del cluster di failover o un listener del gruppo di disponibilità viene registrato con il sistema DNS solo
durante la creazione del VNN o durante le modifiche alla configurazione. Tutti gli indirizzi IP virtuali,
in stato online o offline, vengono registrati con il sistema DNS sotto lo stesso nome di rete virtuale.
Le chiamate client per risolvere il nome di rete virtuale nel sistema DNS restituiscono tutto l'indirizzo
IP registrato in una sequenza round robin variabile.
Istanze del cluster di failover AlwaysOn
Obiettivo principale di un'istanza del cluster di failover di SQL Server AlwaysOn è migliorare la
disponibilità di un'istanza di SQL Server ospitata nell'hardware del server e di archiviazione locale
all'interno di un singolo data center.
Un'istanza del cluster di failover è una singola istanza logica di SQL Server installata nei nodi di un cluster
WSFC (Windows Server Failover Clustering), ma attiva solo su un nodo per volta. Le applicazioni client si
connettono a un nome di rete virtuale e a un indirizzo IP virtuale di proprietà del nodo del cluster attivo.
Ogni nodo installato ha una configurazione e un set di file binari di SQL Server identici. Il servizio cluster
WSFC replica inoltre le modifiche pertinenti dalle voci dell'istanza attiva nel Registro di sistema di Windows
a ogni nodo installato. Ogni nodo in cui è installata l'istanza del cluster di failover è definito come
possibile proprietario dell'istanza e delle relative risorse, all'interno di una sequenza di failover preferita.
I file di database vengono archiviati su volumi di archiviazione simmetrici condivisi, registrati come risorsa
con il cluster WSFC e definiti di proprietà del nodo che attualmente ospita l'istanza del cluster di failover.
Per ulteriori informazioni, vedere Istanze del cluster di failover AlwaysOn (SQL Server)
(http://msdn.microsoft.com/it-it/library/ms189134(SQL.110).aspx).
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
19
Procedura di failover dell'istanza del cluster di failover
Se si verifica un problema in una risorsa cluster dipendente, un'istanza del cluster di failover AlwaysOn
interagisce con il servizio cluster WSFC utilizzando la procedura di alto livello seguente per eseguire un
failover.
1) Viene indicato un riavvio. Un controllo periodico della configurazione dei criteri di failover di WSFC
o SQL Server indica uno stato con errori. Per impostazione predefinita, viene tentato un riavvio del
servizio prima di avviare un failover a un altro nodo. Un timeout durante il tentativo di riavvio indica
un errore della risorsa.
2) Viene indicato un failover. Un controllo dei criteri di failover indica la necessità del failover di
un nodo.
3) Il servizio SQL Server viene arrestato. Se è in esecuzione, viene tentato un normale arresto del
servizio SQL Server.
4) La risorsa cluster WSFC viene trasferita. La proprietà del gruppo di risorse del cluster di SQL Server
e le relative risorse di rete e di archiviazione condivisa dipendenti vengono trasferite al successivo
proprietario del nodo preferito dell'istanza del cluster di failover.
5) SQL Server viene avviato sul nuovo nodo. L'istanza di SQL Server segue le normali procedure di
avvio. Se non ritorna online entro un periodo di timeout in sospeso, il servizio cluster inserisce la
risorsa su questo nuovo nodo indicandone uno stato con errori.
6) I database utente vengono ripristinati sul nuovo nodo. Ogni database utente viene posto in
modalità di ripristino mentre vengono effettuate le operazioni di rollforward dei log delle
transazioni e di rollback delle transazioni di cui non è stato eseguito il commit.
Miglioramenti apportati all'istanza del cluster del failover
Nelle versioni precedenti di SQL Server era disponibile un'opzione di installazione dell'istanza del cluster
di failover. L'affidabilità e la facilità d'uso della funzionalità sono ora maggiori grazie ad alcuni
miglioramenti introdotti in SQL Server 2012:
ο‚·
Clustering su più subnet. In SQL Server 2012 vengono supportati nodi del cluster WSFC che si
trovano in più di una subnet. Una data istanza di SQL Server che si trova in un nodo del cluster WSFC
può essere avviata se è disponibile un'interfaccia di rete qualsiasi. Questa caratteristica è nota come
dipendenza della risorsa cluster “OR”.
Nelle versioni precedenti di SQL Server era necessario che tutte le interfacce di rete fossero
funzionanti per consentire l'avvio o il failover del servizio SQL Server e che fossero tutte presenti
sulla stessa subnet o VLAN.
Nota: la replica a livello di archiviazione tra nodi del cluster non è abilitata in modo implicito con il
clustering su più subnet. Una soluzione basata sull'istanza del cluster di failover su più subnet dovrà
a sua volta fare uso di una soluzione basata su SAN di terze parti per replicare i dati e coordinare il
failover delle risorse di archiviazione tra i nodi del cluster.
Per ulteriori informazioni, vedere SQL Server 2012 AlwaysOn: Istanza del cluster di failover multisito
(http://sqlcat.com/sqlcat/b/whitepapers/archive/2011/12/22/sql-server-2012-alwayson_3a00_multisite-failover-cluster-instance.aspx).
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
20
ο‚·
Affidabile rilevamento degli errori. Il servizio cluster WSFC mantiene una connessione amministrativa
dedicata a ogni istanza del cluster di failover di SQL Server 2012 presente sul nodo. Su questa
connessione, una chiamata periodica a una speciale stored procedure di sistema, sp_server_diagnostics,
restituisce una matrice dettagliata di informazioni diagnostiche sull'integrità del sistema.
Prima di SQL Server 2012, il principale meccanismo di rilevamento dell'integrità di un'istanza del
cluster di failover veniva implementato come semplice processo di polling unidirezionale. In questo
processo, il servizio cluster WSFC creava periodicamente una nuova connessione client SQL all'istanza,
eseguiva una query del nome del server ed effettuava la disconnessione. Un errore di connessione
o un timeout della query, dovuti a un motivo qualsiasi, attivavano un failover con una quantità
estremamente ridotta di informazioni diagnostiche disponibili.
Per ulteriori informazioni, vedere sql_server_diagnostics (http://msdn.microsoft.com/it-it/
library/ff878233(SQL.110).aspx).
È ora disponibile un più ampio supporto per gli scenari di archiviazione delle istanze del cluster di
failover:
ο‚·
Migliore supporto del punto di montaggio. Nell'installazione di SQL Server vengono ora
riconosciute le impostazioni del punto di montaggio dei dischi del cluster. I dischi del cluster
specificati e tutti i dischi montati nel cluster vengono aggiunti automaticamente alla dipendenza
delle risorse di SQL Server durante l'installazione.
ο‚·
Database tempdb su risorse di archiviazione locali. Nelle istanze del cluster di failover è ora
supportata l'aggiunta di tempdb in risorse di archiviazione locali non condivise, come un'unità SSD,
che permette di scaricare potenzialmente una notevole quantità di operazioni di I/O da una rete
SAN condivisa.
Prima di SQL Server 2012, per le istanze del cluster di failover tempdb doveva trovarsi in un volume
di archiviazione condiviso simmetrico con failover con altri database di sistema.
Nota: il percorso di tempdb viene archiviato nel database master, che si sposta tra nodi durante il
failover. Deve essere un percorso di file simmetrico valido (unità, cartelle e autorizzazioni) su tutti
i potenziali proprietari dei nodi, altrimenti il servizio SQL Server non verrà avviato su alcuni nodi.
Disponibilità dei database
Le funzionalità di disponibilità elevata offerte dall'infrastruttura e dai componenti a livello di istanza di
SQL Server operano in combinazione per proteggere in modo implicito i database ospitati. Una soluzione
AlwaysOn offre un set aggiuntivo di opzioni per la protezione esplicita dei dati di database e delle
applicazioni livello dati.
Gruppi di disponibilità AlwaysOn
Un gruppo di disponibilità è un set di database utente di cui viene effettuato il failover simultaneo da
un'istanza di SQL Server a un'altra all'interno dello stesso cluster WSFC. Le applicazioni client possono
connettersi ai database del gruppo di disponibilità tramite un nome di rete virtuale del cluster WSFC,
noto come listener del gruppo di disponibilità, che separa le istanze di SQL Server sottostanti.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
21
I gruppi di disponibilità AlwaysOn si basano su Windows Server Failover Clustering per il monitoraggio
dell'integrità, il coordinamento del failover e la connettività del server. È necessario abilitare il supporto
AlwaysOn su un'istanza di SQL Server che si trova su un nodo del cluster WSFC, ma tale istanza non deve
essere un'istanza del cluster di failover, né utilizzare risorse di archiviazione condivise simmetriche.
Per ulteriori informazioni, vedere Panoramica di Gruppi di disponibilità AlwaysOn (SQL Server)
(http://msdn.microsoft.com/it-it/library/ff877884(SQL.110).aspx).
Repliche di disponibilità e ruoli
Ogni istanza di SQL Server nel gruppo di disponibilità ospita una replica di disponibilità che contiene una
copia dei database utente nel gruppo di disponibilità. Un'istanza di SQL Server può ospitare solo una
replica di disponibilità di un dato gruppo di disponibilità, ma nella stessa istanza possono risiedere più
gruppi di disponibilità. L'istanza di SQL Server deve possedere volumi di archiviazione dedicati (non condivisi).
Una delle repliche di disponibilità svolge il ruolo di replica primaria. Questa replica è designata come
copia master dei database del gruppo di disponibilità e abilitata per le operazioni di lettura/scrittura.
Un gruppo di disponibilità può contenere da una a quattro repliche di disponibilità di sola lettura
aggiuntive, ciascuna delle quali svolge separatamente il ruolo di replica secondaria.
Sincronizzazione delle repliche di disponibilità
Il contenuto di ogni database in un gruppo di disponibilità è sincronizzato dalla replica primaria a ognuna
delle repliche secondarie tramite un meccanismo di spostamento di dati basato su log di SQL Server. Per
questo motivo, è necessario impostare tutti i database nel gruppo di disponibilità sul modello di
recupero con registrazione completa.
Le repliche secondarie vengono inizializzate con un backup e un ripristino completi dei database e dei
log delle transazioni della replica primaria. Man mano che viene eseguito il commit di nuove transazioni
nella replica primaria, la parte corrispondente del log delle transazioni viene memorizzata nella cache,
accodata e quindi inviata in rete a un endpoint del mirroring del database su ognuno dei nodi delle
repliche secondarie.
In questo modo, le nuove voci nel log delle transazioni della replica primaria vengono accodate
a ognuno dei log delle transazioni delle repliche secondarie. Ogni replica secondaria comunica
periodicamente un numero di sequenza del file di log (LSN) alla replica primaria per indicare la quantità
del proprio log delle transazioni finalizzata e scaricata sul disco remoto.
Nota: ogni replica di disponibilità possiede un proprio set di thread di rollforward dei log delle
transazioni indipendenti che non fanno parte del processo di sincronizzazione delle repliche di
disponibilità. Si potrebbero riscontrare ritardi sotto forma di latenza dei dati nel processo di rollforward
dei log sulle repliche secondarie.
Oltre a svolgere un ruolo primario o secondario, ogni replica di disponibilità è associata a una modalità
di disponibilità, che determina il coordinamento della finalizzazione dei log delle transazioni durante
un'istruzione COMMIT TRAN, come descritto di seguito.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
22
ο‚·
Modalità di commit sincrono. Nella replica primaria viene eseguito il commit di una transazione
specificata solo dopo che tutte le repliche secondarie con commit sincrono confermano di avere
completato la finalizzazione dei rispettivi log delle transazioni oltre il numero LSN di tale
transazione. Un gruppo di disponibilità può avere fino a due repliche secondarie con commit
sincrono.
La modalità di commit sincrono causa la latenza delle transazioni sui database della replica primaria,
ma assicura che non vi sia perdita di dati nelle repliche secondarie per le transazioni di cui è stato
eseguito il commit.
ο‚·
Modalità di commit asincrono. Nella replica primaria viene eseguito il commit delle transazioni
dopo la finalizzazione del log delle transazioni locali senza attendere che una replica secondaria con
commit asincrono confermi la finalizzazione del proprio log delle transazioni. Un gruppo di
disponibilità può avere fino a quattro repliche secondarie con commit asincrono, ma non più di
quattro repliche secondarie totali di qualsiasi tipo.
La modalità di commit asincrono riduce al minimo la latenza delle transazioni nei database della
replica primaria, ma permette un certo ritardo dei log delle transazioni delle repliche secondarie,
favorendo la perdita di dati.
Per ulteriori informazioni, vedere Modalità di disponibilità (gruppi di disponibilità AlwaysOn)
(http://msdn.microsoft.com/it-it/library/ff877931(SQL.110).aspx).
L'integrità complessiva del flusso di dati tra le repliche di disponibilità viene indicata dallo stato di
sincronizzazione di ogni replica. Sarà più probabile riscontrare una perdita di dati se il failover viene
eseguito su una replica secondaria associata uno stato di sincronizzazione diverso da “Sincronizzato”
o ”Sincronizzazione in corso”.
Il flusso di sincronizzazione di ogni replica secondaria dispone di una proprietà di timeout di sessione.
Quando in una replica secondaria configurata per una modalità di disponibilità con commit sincrono si
verifica un problema ed è impostato un timeout di sessione, la replica viene temporaneamente
contrassegnata come asincrona a livello interno. Questo avviene per evitare che l'errore della replica
secondaria abbia impatto sulla finalizzazione del log delle transazioni nella replica primaria. Quando la
replica secondaria torna integra e sincronizzata con la replica primaria, viene automaticamente
ripristinato il normale funzionamento in modalità di commit sincrono.
Failover del gruppo di disponibilità
Il gruppo di disponibilità e un nome di rete virtuale corrispondente sono registrati come risorse nel
cluster WSFC. Un gruppo di disponibilità viene sottoposto a failover a livello di una replica di
disponibilità, in base all'integrità e ai criteri di failover della replica primaria.
Nei criteri di failover di un gruppo di disponibilità viene utilizzata la proprietà FailureConditionLevel per
indicare il livello di tolleranza di gravità per un errore che interessa il gruppo di disponibilità, insieme alla
stored procedure di sistema sp_server_diagnostics. Questo stesso meccanismo viene utilizzato per
i criteri di failover delle istanze del cluster di failover.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
23
In caso di failover, anziché trasferire la proprietà delle risorse fisiche condivise a un altro nodo, si utilizza
WSFC per riconfigurare una replica secondaria su un'altra istanza di SQL Server in modo che assuma il
ruolo di replica primaria. La risorsa nome di rete virtuale del gruppo di disponibilità viene quindi trasferita
a tale istanza. Tutte le connessioni client alle repliche di disponibilità interessate vengono reimpostate.
In base all'attuale integrità, allo stato di sincronizzazione e alla modalità di disponibilità delle repliche,
a ogni replica è associato uno stato di conformità failover composto che indica il possibile rischio di
perdita di dati. Queste informazioni sull'integrità delle repliche sono visualizzabili nel dashboard
AlwaysOn o nella vista di sistema sys.dm_hadr_availability_replica_states.
Per ogni replica di disponibilità è inoltre configurata una modalità di failover che ne determina il
comportamento quando viene indicato il failover.
ο‚·
Failover automatico (senza perdita di dati). Questo tipo di failover è il più rapido per qualsiasi
configurazione AlwaysOn perché il log delle transazioni delle repliche secondarie è già finalizzato
e sincronizzato. Viene eseguito il rollback delle transazioni aperte nella replica primaria e il ruolo
della replica primaria viene trasferito a una replica secondaria senza alcun intervento dell'utente.
È necessario impostare la replica primaria e la replica secondaria sulla modalità di failover
automatico e sulla modalità di disponibilità con commit sincrono. Lo stato di sincronizzazione tra le
repliche deve essere “Sincronizzato”. Inoltre, il cluster WSFC deve possedere un quorum integro.
Il failover automatico non è supportato se la replica primaria o secondaria si trova in un'istanza del
cluster di failover, per evitare una situazione di race condition potenziale tra failover del gruppo di
disponibilità e dell'istanza del cluster di failover.
ο‚·
Failover manuale. Questo tipo di failover consente all'amministratore di valutare lo stato della
replica primaria e stabilire se effettuare deliberatamente il failover su una replica secondaria
o meno.
A seconda della modalità di disponibilità e dello stato di sincronizzazione, è possibile scegliere tra le
opzioni seguenti:
o
Failover manuale pianificato (senza perdita di dati). È possibile eseguire questo tipo di failover
solo se le repliche primaria e secondaria sono entrambe integre e con stato “Sincronizzato”.
Questo caso è funzionalmente equivalente a un failover automatico.
o
Failover manuale forzato (con potenziale perdita di dati). Si tratta dell'unica forma di failover
possibile se la replica secondaria di destinazione si trova in modalità di disponibilità con commit
asincrono o se non è sincronizzata con la replica primaria.
Avviso: questa opzione di failover deve essere utilizzata solo in una situazione di ripristino di
emergenza. Se la replica primaria è integra e disponibile, è necessario modificare la modalità di
disponibilità delle repliche interessate in commit sincrono ed eseguire quindi un failover
manuale pianificato.
Per ulteriori informazioni, vedere Eseguire un failover manuale forzato di un gruppo di
disponibilità (SQL Server) (http://msdn.microsoft.com/it-it/library/ff877957(SQL.110).aspx).
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
24
È necessario eseguire un failover manuale se sussiste una qualsiasi delle condizioni seguenti nella replica
primaria o nella replica secondaria su cui effettuare il failover.
ο‚·
ο‚·
ο‚·
La modalità di failover è impostata su manuale.
La modalità di disponibilità è impostata sul commit asincrono.
La replica si trova in un'istanza del cluster di failover.
Per ulteriori informazioni, vedere Failover e modalità di failover (gruppi di disponibilità AlwaysOn)
(http://msdn.microsoft.com/it-it/library/hh213151(SQL.110).aspx).
Nota: dopo un failover, se la nuova replica primaria non è impostata sulla modalità con commit
sincrono, le repliche secondarie indicheranno uno stato di sincronizzazione “Sospeso”. Nessun dato
verrà propagato alle repliche secondarie se la replica primaria non viene prima impostata sulla modalità
con commit sincrono.
Listener del gruppo di disponibilità
Un listener del gruppo di disponibilità è un nome di rete virtuale (VNN) di WSFC che i client possono
utilizzare per accedere a un database nel gruppo di disponibilità. La risorsa cluster VNN è di proprietà
dell'istanza di SQL Server in cui si trova la replica primaria.
Il nome di rete virtuale viene registrato con il sistema DNS solo durante la creazione del listener del
gruppo di disponibilità o durante le modifiche alla configurazione. Tutti gli indirizzi IP virtuali definiti nel
listener del gruppo di disponibilità vengono registrati con il sistema DNS sotto lo stesso nome di rete
virtuale.
Per utilizzare il listener del gruppo di disponibilità, una richiesta di connessione client deve specificare
il nome di rete virtuale come server e il nome di un database presente nel gruppo di disponibilità.
Per impostazione predefinita, questo comportamento deve produrre una connessione all'istanza di
SQL Server che ospita la replica primaria.
In fase di esecuzione, il client utilizza il risolutore DNS locale per ottenere un elenco di indirizzi IP e porte
TCP mappate al nome di rete virtuale. Il client tenta quindi di connettersi a ognuno degli indirizzi IP, fino
a stabilire la connessione o a raggiungere il timeout. Il client tenterà di stabilire queste connessioni in
parallelo se il parametro MultiSubnetFailover è impostato su true, consentendo failover del client molto
più rapidi.
In caso di failover, le connessioni client vengono reimpostate sul server, la proprietà del listener del
gruppo di disponibilità viene trasferita insieme al ruolo di replica primaria alla nuova istanza di SQL
Server e l'endpoint del VNN viene associato agli indirizzi IP virtuali e alle porte TCP della nuova istanza.
Per ulteriori informazioni, vedere Listener del gruppo di disponibilità, connettività client e failover
dell'applicazione (SQL Server) (http://msdn.microsoft.com/it-it/library/hh213417(SQL.110).aspx).
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
25
Filtro della finalità dell'applicazione
Durante la connessione tramite il listener del gruppo di disponibilità, è possibile specificare se la finalità
dell'applicazione corrisponde alla lettura e alla scrittura di dati o all'esclusiva esecuzione di operazioni di
sola lettura. Se non è specificata, la finalità predefinita dell'applicazione per il client corrisponde
a lettura e scrittura.
Per il ruolo primario e il ruolo secondario di ogni replica di disponibilità, è possibile specificare anche una
proprietà di accesso alla connessione che sarà utilizzata come filtro a livello di connessione sulla finalità
dell'applicazione del client. Per impostazione predefinita, le combinazioni non valide di finalità
dell'applicazione e accesso alla connessione hanno come risultato una connessione rifiutata. Le richieste
di connessione client devono essere escluse da SQL Server utilizzando le regole seguenti.
Mentre la replica di disponibilità riguarda il ruolo primario e l'accesso alla connessione corrisponde alle
impostazioni seguenti, vengono effettuate le azioni indicate di seguito.
ο‚·
ο‚·
Consenti qualsiasi finalità dell'applicazione. Le connessioni client non vengono filtrate in base
alla finalità dell'applicazione.
Consenti solo finalità di lettura/scrittura esplicita. Se il client specifica la sola lettura, la
connessione viene rifiutata.
Mentre la replica di disponibilità riguarda il ruolo secondario e l'accesso alla connessione corrisponde
alle impostazioni seguenti, vengono effettuate le azioni indicate di seguito.
ο‚·
ο‚·
ο‚·
Nessuna connessione consentita. Tutte le connessioni vengono rifiutate e la replica viene
utilizzata solo per il ripristino di emergenza.
Consenti qualsiasi finalità dell'applicazione. Le connessioni client non vengono filtrate in base
alla finalità dell'applicazione.
Finalità di sola lettura dell'applicazione. Se il client non specifica la sola lettura, la connessione
viene rifiutata.
Per ulteriori informazioni, vedere Configurare l'accesso in sola lettura in una replica di disponibilità (SQL
Server) (http://msdn.microsoft.com/it-it/library/hh213002(SQL.110).aspx).
Routing di sola lettura della finalità dell'applicazione
Una caratteristica estremamente valida di Gruppi di disponibilità AlwaysOn è la possibilità di sfruttare
l'infrastruttura hardware di standby per scopi diversi dal ripristino di emergenza. Configurando una o più
repliche secondarie per l'accesso in sola lettura, è possibile scaricare carichi di lavoro significativi dalle
repliche primarie.
I carichi di lavoro che possono essere facilmente adattati all'elaborazione su una replica secondaria di
sola lettura includono la creazione di report, i backup dei database, le verifiche di coerenza dei database,
l'analisi della frammentazione dell'indice, l'estrazione della pipeline di dati, il supporto operativo e le
query ad hoc.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
26
Per ogni replica di disponibilità, è possibile configurare facoltativamente un elenco di routing di sola
lettura sequenziale di endpoint dell'istanza di SQL Server da applicare mentre la replica è nel ruolo
primario. Se presente, questo elenco viene utilizzato per reindirizzare le richieste di connessione client
in cui è specificata la finalità di sola lettura dell'applicazione alla prima replica secondaria disponibile
nell'elenco che soddisfa i filtri della finalità dell'applicazione indicati in precedenza.
Nota: il reindirizzamento del routing di sola lettura viene eseguito dal listener del gruppo di disponibilità,
associato alla replica primaria. Se la replica primaria è offline, il reindirizzamento del client non funzionerà.
Per ulteriori informazioni, vedere Configurare il routing di sola lettura in un gruppo di disponibilità (SQL
Server) (http://msdn.microsoft.com/it-it/library/hh653924(SQL.110).aspx).
Miglioramenti alla disponibilità - Database
SQL Server 2012 include una serie di miglioramenti specifici della configurazione e delle funzionalità dei
database.
Il miglioramento indicato di seguito consente di ridurre il tempo di recupero:
ο‚·
Tempo di recupero prevedibile. È possibile impostare un intervallo di tempo di recupero di
destinazione per ogni database, da utilizzare per controllare la pianificazione di un comando
CHECKPOINT in background. Questo checkpoint indiretto si verifica periodicamente, in base alla
stima del tempo necessario per recuperare il log delle transazioni in caso di riavvio o di failover.
Questa funzionalità ha come effetto di uniformare le operazioni di I/O in proporzioni più o meno
uguali per ogni checkpoint e aumentare la prevedibilità del tempo di recupero (RTO).
Prima di SQL Server 2012, i comandi CHECKPOINT in background venivano emessi in base a un
intervallo fisso, indipendentemente dal volume o dal carico delle transazioni, il che poteva
provocare tempi di recupero imprevedibili.
Per ulteriori informazioni, vedere Checkpoint di database (SQL Server)
(http://msdn.microsoft.com/it-it/library/ms189573(SQL.110).aspx).
I miglioramenti indicati di seguito consentono di intervenire su scenari comuni che possono condurre
a tempo di inattività pianificato.
ο‚·
Operazioni sugli indici online per le colonne LOB. Gli indici che contengono colonne con tipi di dati
varbinary(max), varchar(max), nvarchar(max) o XML possono ora essere ricompilati o riorganizzati
online.
ο‚·
Modifica dello schema online per le nuove colonne NOT NULL. Se una nuova colonna NOT NULL
viene aggiunta con un valore predefinito a una tabella di database di SQL Server 2012, è necessario
solo un blocco dello schema per aggiornare i metadati del sistema, anziché dover popolare tutte le
righe durante l'istruzione ALTER TABLE.
SQL Server renderà fisicamente persistente il valore di colonna predefinito solo se viene
effettivamente modificata o reindicizzata una riga. Le query restituiscono il valore predefinito dai
metadati, a meno che non esista un valore di colonna effettivo.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
27
Di seguito viene descritto un esempio di più ampio supporto per gli scenari di archiviazione.
ο‚·
Correzione automatica della pagina. Determinati tipi di errori del sottosistema di archiviazione
possono danneggiare una pagina di dati, rendendola illeggibile. I gruppi di disponibilità AlwaysOn
possono rilevare questi tipi di errori e ripristinare la situazione precedente richiedendo in modo
asincrono una copia aggiornata delle pagine di dati interessate a una replica di disponibilità diversa
e quindi applicando la copia.
Una funzionalità simile esisteva prima di SQL Server 2012 per il mirroring del database, ma è stata
migliorata e supporta più repliche.
Per ulteriori informazioni, vedere Correzione automatica della pagina (Gruppi di disponibilità/Mirroring
del database) (http://msdn.microsoft.com/it-it/library/bb677167(SQL.110).aspx).
Consigli sulla connettività client
Le linee guida seguenti consentono di sfruttare al meglio le tecnologie Microsoft SQL Server 2012
AlwaysOn per le applicazioni client.
ο‚·
Libreria client compatibile con AlwaysOn. Utilizzare una libreria client che supporta il protocollo
TDS versione 7.4 o successiva. In questo modo dovrebbe essere assicurata la funzionalità lato client
desiderata per l'utilizzo di AlwaysOn. Librerie client di esempio includono il Provider di dati per SQL
Server in .NET Framework 4.02 e SQL Native Client 11.0.
ο‚·
Proprietà del provider di connessione: MultiSubnetFailover = True. Utilizzare questa parola chiave
nelle stringhe di connessione per consentire alle librerie client di tentare connessioni in parallelo
a tutti gli indirizzi IP registrati per il listener del gruppo di disponibilità o all'istanza del cluster di
failover associata a un indirizzo IP in più subnet.
ο‚·
Proprietà del provider di connessione: ApplicationIntent = ReadOnly. Se fattibile, scaricare i carichi
di lavoro di sola lettura dalla replica primaria sulle repliche secondarie.
ο‚·
Timeout delle connessione client legacy. Poiché le librerie di database client legacy non
implementano tentativi di connessione paralleli, in presenza di più indirizzi IP tentano di connettersi
in sequenza a ognuno di essi, fino a un timeout TCP o a stabilire una connessione.
È necessario modificare il timeout della connessione sui client legacy in modo da tenere in
considerazione i possibili timeout e tentativi sequenziali in presenza di più indirizzi IP, impostandolo
su un valore di almeno 15 secondi + 21 secondi per ogni replica secondaria.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
28
Conclusione
In questo white paper è stato delineato il contesto di base per ridurre il tempo di inattività pianificato
e non pianificato, ottimizzare la disponibilità delle applicazioni e fornire protezione dati utilizzando le
soluzioni per la disponibilità elevata e il ripristino di emergenza di SQL Server 2012 AlwaysOn.
Molti dei principi guida aziendali e delle problematiche in materia di pianificazione, gestione
e misurazione di un ambiente di database a disponibilità elevata possono essere quantificati ed espressi
in termini di obiettivi del punto di recupero (RPO) e obiettivi del tempo di recupero (RTO).
SQL Server 2012 AlwaysOn fornisce funzionalità a livello di infrastruttura, piattaforma di dati e database
in grado di supportare i comuni scenari di disponibilità elevata e ripristino di emergenza in modo
pienamente giustificabile utilizzando gli obiettivi RPO e RTO.
Per ulteriori informazioni
http://www.microsoft.com/italy/server/sql/: sito Web SQL Server
http://technet.microsoft.com/it-it/sqlserver/: TechCenter di SQL Server
http://msdn.microsoft.com/it-it/sqlserver/: Risorse online per gli sviluppatori di SQL Server
Il documento è risultato utile? Esprimere una valutazione utilizzando una scala compresa tra
1 (scarso) e 5 (eccellente), indicandone i motivi. Ad esempio:
ο‚·
ο‚·
La valutazione è alta perché il documento contiene esempi validi, catture di schermate
nitide, spiegazioni chiare o altri motivi?
La valutazione è bassa perché il documento contiene esempi confusi, catture di
schermate sfocate, spiegazioni poco chiare?
I commenti aiuteranno Microsoft a migliorare la qualità dei white paper pubblicati.
Commenti e suggerimenti.
◊ Versione 1.1, 21 febbraio 2012.
Guida alle soluzioni Microsoft SQL Server AlwaysOn per la disponibilità elevata e il ripristino di emergenza
29