Transcript Granularité
Les journées
SQL Server 2013
Un événement organisé par GUSS
#JSS2013
Les journées
SQL Server 2013
Session Haute-disponibilité
Christophe LAPORTE
David BARBARIN
David BAFFALEUF
Un événement organisé par GUSS
#JSS2013
Présentation
Christophe LAPORTE
David BARBARIN
David BAFFALEUF
~ depuis 1997
6.5 <= SQL Server <= 2014
~ depuis 2002
7 <= SQL Server <= 2014
~ depuis 1999
7.0 <= SQL Server <= 2014
[email protected]
[email protected]
[email protected]
http://conseilit.wordpress.com/
http://blog.developpez.com/mikedavem
http://blog.capdata.fr
@conseilit
@mikedavem
@dbaffaleuf
#JSS2013
Merci à nos sponsors
#JSS2013
Agenda
• Des questions
–
–
–
–
Pourquoi la haute disponibilité
La non disponibilité
Définition d’une stratégie
Problèmes et limitations
• Les solutions
– Des plus anciennes aux plus récentes
#JSS2013
• Des questions
–
–
–
–
Pourquoi la haute disponibilité
La non disponibilité
Définition d’une stratégie
Problèmes et limitations
• Les solutions
– Des plus anciennes aux plus récentes
#JSS2013
Pourquoi la haute disponibilité
• Définition basique
– Etre capable d’accéder à une donnée lorsque l’on en a besoin
dans un laps de temps acceptable !
• BD point central dans le SI
– Sharepoint, sites Web de paris ou commerce en ligne
– Progiciels (RH, Compta, production, CRM)
– Logiciels « maison »
• La non disponibilité a un coût
– Chiffre d’affaire …
– Coût en temps
– Salaires d’employés …
#JSS2013
Mesurer la haute disponibilité
#JSS2013
Cause de non disponibilité
Coupure de service planifiée
• Création / Reconstruction d’index non cluster : éventuellement pas de modifications
sur la table
• Création / Reconstruction d’index cluster : éventuellement pas de lecture et
modifications sur la table
• Changement de matériel, application de Service Packs
Coupure de service non planifiée
• Perte du Datacenter (électricité, réseau, catastrophe naturelle, incendie)
• Perte du serveur (alimentation, CPU, mémoire, réseau, OS crash)
• Problème disque (corruption d’I/O, panne contrôleur disque, panne disque, panne
carte RAID)
Ne pas confondre PCA et PRA
• HA et DR …
#JSS2013
Définition d’une stratégie
Granularité
RPO
RTO
•Chiffre d’affaire
•Salaires
•Datacenter -> Instance -> Groupe de bases -> Base > Table -> Traitement
•Coordination des dépendances
• Perte maximale de données autorisée
• Durée maximale de non disponibilité
autorisée
Période ouvrée
• 24 H / 24 , 7 J /7
• Entre 8h00 et 18h00 les jours ouvrés …
En cas de panne
• Même niveau de performance requis ?
• Dégradation acceptable ?
Stratégie
Quantifier
l’indisponibilité
#JSS2013
• Des questions
–
–
–
–
Pourquoi la haute disponibilité
La non disponibilité
Définition d’une stratégie
Problèmes et limitations
• Les solutions
– Des plus anciennes aux plus récentes
#JSS2013
Cluster de basculement SQL
Terminologie
• Cluster, nœud, quorum, SAN, LUN, groupe
de ressources, dépendance, instance virtuelle
Technologie éprouvée
• Couche cluster Windows
#JSS2013
Avantages du FCI
Tolérance de panne
• Matérielle, logicielle
Instance virtuelle
• Adresse IP et Nom réseau virtuels
Granularité
• Instance (donc agent SQL …)
#JSS2013
Points remarquables
Windows 2012
SQL 2012
Windows 2012 R2
SQL 2014
• Quorum dynamique
• TempDB locale
• Témoin dynamique
• Data sur disque CSV
#JSS2013
Démo
• Ajout d’une instance sur disque CSV
#JSS2013
Inconvénients de la solution
Défaillance du système disque
• SPOF
Répartition de charge impossible
• Un seul nœud actif à la fois
Coût
• Cartes, switch, fibres, SAN …
Durée de recovery
• Nombre de bases
Granularité
• Protection de niveau instance
#JSS2013
GEO Cluster
• != Multi subnet failover cluster
• Résolution SPOF disque
• Solutions constructeur
– EMC, HP, Unisys
• Solutions logicielles
– DoubleTake, DataKeeper (Démo à suivre)
• Solutions SQL Server
– Database mirroring, log shipping, réplication
– Groupes de disponibilité
#JSS2013
Démo
• Ajout d’un disque cluster SIOS DataKeeper
#JSS2013
Outsiders
Database Mirroring
Log Shipping
Réplication (transactionnelle)
#JSS2013
L’union fait la force
• Prises indépendamment elles ne présentent que peu d’avantages
par rapport aux solutions ‘reines’.
FCI
Database
Mirroring
Virtualisation
Log
Shipping
Availability
Groups
Réplication
(?)
• Mais si on les combine toutes les trois ?
#JSS2013
Exemple DBM + LS + Réplication
Données
ouvertes
pour DSS
Secours
dormant
Réplication
Database Mirroring
Log Shipping
.trn
.trn
.trn
.trn
Reporting
Refresh -8h
contre les
erreurs
humaines
#JSS2013
Démo
• Exemple d’une topologie combinée
#JSS2013
Intérêts de la solution
Perte de la machine principale, perte du
stockage local, problème OS, corruption…
• On bascule sur le miroir
• Qui est aussi paramétré pour reprendre le rôle d’éditeur
et de source du LS
Moins d’indisponibilité sur les plages de
maintenance.
#JSS2013
Réplication vs réplicas readonly, avantages
Volumétrie:
• On n’est pas obligé de dupliquer toute la volumétrie
Indexes DSS:
• On peut créer des indexes custom DSS sur les bases abonnées
Store & forward
• Perte de la connexion avec l’abonné, la base distribution joue le rôle de tampon. Pas d’impact sur le journal de transactions
primaire.
Coût:
• Pas besoin d’avoir toutes les instances en édition Enterprise.
Scale-out
• En ajoutant des abonnés, pas de limitation à 2 réplicas.
Contrainte AD:
• Moins d’adhérence avec un domaine
#JSS2013
Inconvénients de la solution
Réactivité:
• Pas de bascule automatisée (sauf avec witness)
DBM et reporting?
• db snapshot pas très pratique quand même
Complexité
• Plusieurs systèmes à maintenir au lieu d’un seul.
Point d’entrée unique:
• Pas de détection d’intention pour la lecture seule (ApplicationIntent)
Conflits en mise à jour:
• L’abonné est ouvert en lecture /écriture donc pas de garde-fou contre le conflit en mise à jour.
Paramétrage manuel :
• La bascule est transparente pour la réplication, mais pas pour le log shipping (paramétrage manuel).
#JSS2013
SQL Server AlwaysOn
Terminologie
• Groupe de disponibilités, réplicas, cluster, nœud,
quorum, stockage asymétrique, réplication
synchrone et asynchrone
Technologie éprouvée
• Couche cluster Windows, mirroring ++
#JSS2013
Avantages des groupes de disponibilité
Tolérance de panne
• Matérielle, logicielle, corruption physique des données
Connexion unique via point d’accès client (listener)
• Adresse IP et Nom réseau virtuel
Granularité
• Groupe de base de données
#JSS2013
Avantages des groupes de disponibilité
Rentabilisation des serveurs secondaires standby
• Répartition de charge avec utilisation en lecture seule en temps réel, sauvegardes
Stockage
• Indépendance vis-à-vis d’un stockage partagé,
• Stockage asymétrique avec disaster recovery sur site distant
Complexité
• Une seule fonctionnalité pour gérer la haute disponibilité et les situations de
désastre
#JSS2013
Points remarquables
Windows 2012
SQL 2012
Windows 2012 R2
SQL 2014
• Quorum dynamique
• 4 réplicas secondaires
• Quorum amélioré (témoin dynamique, résilience du quorum, arbitrage des votes)
• Support CSV
• Déploiement de cluster sans dépendance d’objets dans l’active directory
• 8 réplicas secondaires + plus forte intégration avec Azure + support Hekaton
#JSS2013
Démo
DSS
Standby
Backups
Réplica synchrone
Réplication
asynchrone
Réplication
synchrone
#JSS2013
Démo
• Exemple d’une topologie AlwaysOn avec
Windows Server 2012 et SQL14
#JSS2013
Inconvénients de la solution
Coût
• Nécessite une édition Enterprise de SQL Server 2012 avec licence par cœur logique
• Chaque serveur secondaire actif (backup ou lecture seule) doit être licencié
Limite du nombre de réplicas synchrones
• Limite à 3 réplicas
Lecture / écriture sur un seul point d’entrée
• Pas de possibilité d’avoir plusieurs réplicas primaires en même temps
Répartition de charge en lecture seule impossible via les listeners
• L’algorithme de redirection des connexions en intention de lecture seule sont toujours redirigés vers le même réplica
Paramétrage
• Certains paramétrages s’effectuent depuis la GUI alors que d’autres ne sont disponibles que par T-SQL ou PowerShell
Monitoring
• Pas forcément évident en utilisant les divers axes de troubleshooting en natif avec SQL Server
• Pas de solution réelle de monitoring fournie en natif
#JSS2013
Virtualisation
Flexibilité
• Live storage migration
• Live migration
• MàJ hyperviseur
• Mémoire dynamique
• Redimensionnement VHDX
HA
• Live migration
• Storage live migration
• Host cluster
• Guest cluster
• Peu ou pas de coupure de service
• Scénario supporté (KB956893)
DR
• Hyper-V replica (30 secs, 5 mins, 15 mins))
• Attention compatibilité avec autres solutions
#JSS2013
Virtualisation
Exploitation
• Rapidité déploiement
• Export et clonage de VM à chaud
• Cluster Aware Updating
Performance
•
•
•
•
•
Quasi similaire (6% – 7%)
VHDX secteurs 4KB, max 64 TB
Storage tiering
Storage QoS
Offloaded Data Transfer (ODX)
#JSS2013
Demo – Shared VHDX
• Si le temps le permet …
#JSS2013
Questions / Réponses
Merci à tous pour votre présence.
#JSS2013
#JSS2013
#JSS2013
Rappels : haute disponibilité
• Définition basique
– Etre capable d’accéder à une donnée lorsque l’on en a
besoin dans un laps de temps acceptable !
• BD point central dans le SI
– Sharepoint, sites Web de paris ou commerce en ligne
– Progiciels (RH, Compta, production, CRM)
– Logiciels « maison »
• La non disponibilité a un coût
– Chiffre d’affaire …
– Salaires d’employés …
#JSS2013
Définition d’une stratégie
Granularité
RPO
RTO
•Chiffre d’affaire
•Salaires
•Datacenter -> Instance -> Groupe de bases -> Base -> Table ->
Traitement
•Coordination des dépendances
• Perte maximale de données autorisée
• Durée maximale de non disponibilité
autorisée
Période ouvrée
• 24 H / 24 , 7 J /7
• Entre 8h00 et 18h00 les jours ouvrés …
En cas de panne
• Même niveau de performance requis ?
• Dégradation acceptable ?
Stratégie
Quantifier
l’indisponibilité
#JSS2013
Mesurer la disponibilité
• Les « neufs »
#JSS2013
Des fonctionnalités
Table
Database
Infrastructure
Online index Operations
Fast Recovery
Instant File Initialization
Online LOB index Operations
Partial Database Availability
Auto page repair
Table Partitioning
Online piecemeal restore
Hot-add CPU / Memory
Database Snapshot
Resource Governor
#JSS2013
Des solutions connues
•
•
•
•
•
•
Log Shipping
Failover Cluster
Database Mirroring
Réplication
Windows Azure SQL Databases / Federation
Virtualisation
– On Premise (Hyper-V)
– Off Premise (Windows Azure)
#JSS2013