jss2013 : haute disponibilité
TRANSCRIPT
#JSS2013
Les journées
SQL Server 2013
Un événement organisé par GUSS
#JSS2013
Les journées
SQL Server 2013
Un événement organisé par GUSS
Session Haute-disponibilitéChristophe LAPORTE
David BARBARIN
David BAFFALEUF
#JSS2013
Présentation
~ depuis 1997
6.5 <= SQL Server <= 2014
@conseilit
http://conseilit.wordpress.com/
Christophe LAPORTE
~ depuis 2002
7 <= SQL Server <= 2014
@mikedavem
http://blog.developpez.com/mikedavem
David BARBARIN
~ depuis 1999
7.0 <= SQL Server <= 2014
@dbaffaleuf
http://blog.capdata.fr
David BAFFALEUF
#JSS2013
Merci à nos sponsors
#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
Agenda
#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
• 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 …
Pourquoi la haute disponibilité
#JSS2013
Mesurer la haute disponibilité
#JSS2013
Cause de non disponibilité
• 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 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)
Coupure de service non planifiée
• HA et DR …
Ne pas confondre PCA et PRA
#JSS2013
Définition d’une stratégie
•Chiffre d’affaire
•SalairesQuantifier
l’indisponibilité
•Datacenter -> Instance -> Groupe de bases -> Base -
> Table -> Traitement
•Coordination des dépendances
Granularité
• Perte maximale de données autoriséeRPO
• Durée maximale de non disponibilité
autoriséeRTO
• 24 H / 24 , 7 J /7
• Entre 8h00 et 18h00 les jours ouvrés …Période ouvrée
• Même niveau de performance requis ?
• Dégradation acceptable ?En cas de panne
Str
até
gie
#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
Tolérance de panne
• Matérielle, logicielle
Instance virtuelle
• Adresse IP et Nom réseau virtuels
Granularité
• Instance (donc agent SQL …)
Avantages du FCI
#JSS2013
• Quorum dynamiqueWindows 2012
• TempDB localeSQL 2012
• Témoin dynamiqueWindows 2012 R2
• Data sur disque CSVSQL 2014
Points remarquables
#JSS2013
• Ajout d’une instance sur disque CSV
Démo
#JSS2013
Inconvénients de la solutionDé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
• != 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é
GEO Cluster
#JSS2013
• Ajout d’un disque cluster SIOS DataKeeper
Démo
#JSS2013
Database Mirroring
Log Shipping
Réplication (transactionnelle)
Outsiders
#JSS2013
• Prises indépendamment elles ne présentent que peu d’avantages
par rapport aux solutions ‘reines’.
• Mais si on les combine toutes les trois ?
L’union fait la force
FCI VirtualisationAvailability
Groups
Database
Mirroring
Log
Shipping
Réplication
(?)
#JSS2013
Exemple DBM + LS + Réplication
Réplication
Log Shipping
Database Mirroring
Reporting
Secours
dormant
Données
ouvertes
pour DSS
Refresh -8h
contre les
erreurs
humaines
.trn.trn.trn
.trn
#JSS2013
• Exemple d’une topologie combinée
Démo
#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 solutionRé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
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
Avantages des groupes de disponibilité
#JSS2013
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
Avantages des groupes de disponibilité
#JSS2013
• Quorum dynamiqueWindows 2012
• 4 réplicas secondairesSQL 2012
• 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 Windows 2012 R2
• 8 réplicas secondaires + plus forte intégration avec Azure + support HekatonSQL 2014
Points remarquables
#JSS2013
Démo
Réplication
asynchrone
Réplica synchrone
Standby
Backups
DSS
Réplication
synchrone
#JSS2013
• Exemple d’une topologie AlwaysOn avec
Windows Server 2012 et SQL14
Démo
#JSS2013
Inconvénients de la solutionCoû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
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
Virtualisation
#JSS2013
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)
Virtualisation
#JSS2013
• Si le temps le permet …
Demo – Shared VHDX
#JSS2013
Questions / Réponses
Merci à tous pour votre présence.
#JSS2013#JSS2013
#JSS2013
• 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 …
Rappels : haute disponibilité
#JSS2013
Définition d’une stratégie•Chiffre d’affaire
•SalairesQuantifier
l’indisponibilité
•Datacenter -> Instance -> Groupe de bases -> Base -> Table ->
Traitement
•Coordination des dépendancesGranularité
• Perte maximale de données autoriséeRPO
• Durée maximale de non disponibilité
autoriséeRTO
• 24 H / 24 , 7 J /7
• Entre 8h00 et 18h00 les jours ouvrés …Période ouvrée
• Même niveau de performance requis ?
• Dégradation acceptable ?En cas de panne
Str
até
gie
#JSS2013
• Les « neufs »
Mesurer la disponibilité
#JSS2013
Des fonctionnalités
Table
Online index Operations
Online LOB index Operations
Table Partitioning
Database
Fast Recovery
Partial Database Availability
Online piecemeal restore
Database Snapshot
Infrastructure
Instant File Initialization
Auto page repair
Hot-add CPU / Memory
Resource Governor
#JSS2013
• Log Shipping
• Failover Cluster
• Database Mirroring
• Réplication
• Windows Azure SQL Databases / Federation
• Virtualisation– On Premise (Hyper-V)
– Off Premise (Windows Azure)
Des solutions connues