JSS2013 : Haute disponibilité

42
#JSS2013 Les journées SQL Server 2013 Un événement organisé par GUSS

Transcript of JSS2013 : Haute disponibilité

Page 1: JSS2013 : Haute disponibilité

#JSS2013

Les journées

SQL Server 2013

Un événement organisé par GUSS

Page 2: JSS2013 : Haute disponibilité

#JSS2013

Les journées

SQL Server 2013

Un événement organisé par GUSS

Session Haute-disponibilitéChristophe LAPORTE

David BARBARIN

David BAFFALEUF

Page 3: JSS2013 : Haute disponibilité

#JSS2013

Présentation

~ depuis 1997

6.5 <= SQL Server <= 2014

@conseilit

[email protected]

http://conseilit.wordpress.com/

Christophe LAPORTE

~ depuis 2002

7 <= SQL Server <= 2014

@mikedavem

[email protected]

http://blog.developpez.com/mikedavem

David BARBARIN

~ depuis 1999

7.0 <= SQL Server <= 2014

@dbaffaleuf

[email protected]

http://blog.capdata.fr

David BAFFALEUF

Page 4: JSS2013 : Haute disponibilité

#JSS2013

Merci à nos sponsors

Page 5: JSS2013 : Haute disponibilité

#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

Page 6: JSS2013 : Haute disponibilité

#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

Page 7: JSS2013 : Haute disponibilité

#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é

Page 8: JSS2013 : Haute disponibilité

#JSS2013

Mesurer la haute disponibilité

Page 9: JSS2013 : 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

Page 10: JSS2013 : 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é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

Page 11: JSS2013 : Haute disponibilité

#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

Page 12: JSS2013 : Haute disponibilité

#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

Page 13: JSS2013 : Haute disponibilité

#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

Page 14: JSS2013 : Haute disponibilité

#JSS2013

• Quorum dynamiqueWindows 2012

• TempDB localeSQL 2012

• Témoin dynamiqueWindows 2012 R2

• Data sur disque CSVSQL 2014

Points remarquables

Page 15: JSS2013 : Haute disponibilité

#JSS2013

• Ajout d’une instance sur disque CSV

Démo

Page 16: JSS2013 : Haute disponibilité

#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

Page 17: JSS2013 : Haute disponibilité

#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

Page 18: JSS2013 : Haute disponibilité

#JSS2013

• Ajout d’un disque cluster SIOS DataKeeper

Démo

Page 19: JSS2013 : Haute disponibilité

#JSS2013

Database Mirroring

Log Shipping

Réplication (transactionnelle)

Outsiders

Page 20: JSS2013 : Haute disponibilité

#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

(?)

Page 21: JSS2013 : Haute disponibilité

#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

Page 22: JSS2013 : Haute disponibilité

#JSS2013

• Exemple d’une topologie combinée

Démo

Page 23: JSS2013 : Haute disponibilité

#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.

Page 24: JSS2013 : Haute disponibilité

#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

Page 25: JSS2013 : Haute disponibilité

#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).

Page 26: JSS2013 : Haute disponibilité

#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 ++

Page 27: JSS2013 : Haute disponibilité

#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é

Page 28: JSS2013 : Haute 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é

Page 29: JSS2013 : Haute 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

Page 30: JSS2013 : Haute disponibilité

#JSS2013

Démo

Réplication

asynchrone

Réplica synchrone

Standby

Backups

DSS

Réplication

synchrone

Page 31: JSS2013 : Haute disponibilité

#JSS2013

• Exemple d’une topologie AlwaysOn avec

Windows Server 2012 et SQL14

Démo

Page 32: JSS2013 : Haute disponibilité

#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

Page 33: JSS2013 : Haute disponibilité

#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

Page 34: JSS2013 : Haute disponibilité

#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

Page 35: JSS2013 : Haute disponibilité

#JSS2013

• Si le temps le permet …

Demo – Shared VHDX

Page 36: JSS2013 : Haute disponibilité

#JSS2013

Questions / Réponses

Merci à tous pour votre présence.

Page 37: JSS2013 : Haute disponibilité

#JSS2013#JSS2013

Page 38: JSS2013 : Haute disponibilité

#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é

Page 39: JSS2013 : 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

Page 40: JSS2013 : Haute disponibilité

#JSS2013

• Les « neufs »

Mesurer la disponibilité

Page 41: JSS2013 : Haute 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

Page 42: JSS2013 : Haute disponibilité

#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