Groupes de disponibilité et disaster recovery

Vous le savez probablement, une des fonctionnalité phare de SQL Server 2012 (aka Denali) est AlwaysON.

Mais AlwaysOn n’est qu’une “marque” regroupant les technologies de haute disponibilité dans SQL Server, à savoir le FCI, ou Fail Over Cluster Instance, et les groupes de disponibilité.

J’ai pour ma part énormément communiqué sur ces fonctionnalités de haute disponibilité, que ce soit lors des Techdays (2012, 2013, 2014) , des Journées SQL Server, ou sur ce blog(Création d’un groupe de disponibilité, plusieurs groupes de disponibilité, Ajout d’un nœud à un Groupe de disponibilité).

Mais, au final, peu de littérature sur le Disaster Recovery, le “vrai”. Imaginez un scénario dans lequel vous disposez de 2 Datacenter. Le principal héberge deux réplica de votre groupe de disponibilité, pour le PCA, alors que le second Datacenter, lui, n’est là que pour pallier à une défaillance “majeure” puisque l’on perdrait 2 nœuds sur 3 dans le cluster, le PRA.  Voilà donc le décors planté.

Je ne vais pas vous abreuver une fois de plus de copies d’écran sur la création du cluster ou bien l’installation de SQL Server, l’activation de la fonctionnalité HADRON si la mise en haute disponibilité d’une base au sein d’un groupe de disponibilité.

Bref, partons du principe que les 3 nœuds sont configurés et opérationnels au sein du cluster. Node1 et Node2 dans le Datacenter principal et Node3 dans le Datacenter secondaire.

image

Le groupe de disponibilité est lui aussi configuré et opérationnel.

image

image

Tant qu’a bien faire les choses, il est possible de ne pas attribuer de vote à un nœud du cluster qui ne sert qu’au Disaster Recovery.

(Get-ClusterNode Node3).NodeWeight = 0

image

Le témoin dynamique fonctionne ici parfaitement pour “équilibrer” les votes au sein du cluster afin d’avoir un nombre de votes impair et disposer d’un quorum.

Et là, c’est le drame. Perte totale, et durable, du Datacenter principal. Les ouragans passent, les avions tombent, les pelleteuses arrachent des fibres, bref autant d’histoires connues. Mais, par chance, ou plutôt parce qu’un architecte a pensé au Disaster Recovery, le Datacenter secondaire comporte un minimum de serveur lié à l’infrastructure (AD, DNS).

Il suffit alors de stopper le service cluster, un simple Stop-Service ou bien via le gestionnaire de services Windows, qui doit être théoriquement en méforme.

Ensuite, nous allons redémarrer le cluster en forçant le quorum, a n’utiliser bien sur que dans ce genre de cas extrêmes.

$node = "Node3"
Start-ClusterNode -Name $node -FixQuorum

image

Quelques instants plus tard, le cluster est de nouveau en vie (on peut à présent lancer la console de gestion du cluster pour s’en assurer).

image

Cependant, d’un point de vue groupe de disponibilité, tout n’est pas terminé car le groupe de ressource est OFFLINE.

image

Il suffit alors de forcer la bascule du groupe de disponibilité, en autorisant la perte éventuelle de données (vous pouvez également le faire en T-SQL) :

Switch-SqlAvailabilityGroup `
   -Path SQLSERVER:\Sql\Node3\Default\AvailabilityGroups\AgDemo `
   -AllowDataLoss -Force

image

Et le groupe de disponibilité redevient ONLINE, prêt pour redémarrage des applications.

image

A compter de ce moment là, la solution n’est plus hautement disponible (il faudrait juste ajouter un second nœud dans le Datacenter secondaire. Mais la production (d’un point de vue service SQL) a pu reprendre.

Lorsque la Datacenter principal sera de nouveau opérationnel, les serveurs vont rejoindre le cluster, sans action de votre part.

image

Mais d’un point de vue bases de données, le groupe de disponibilité n’est repassé en mode synchronisé car le mouvement de données est alors suspendu.

image

Un simple “Resume Data Movement” et les bases vont progressivement se resynchroniser avec le serveur de Disaster Recovery.

image

Pour au final disposer de nouveau de bases de données en haute disponibilité

image

Libre à vous ensuite de refaire des bascules pour remettre les bases sur les serveurs principaux …

Si vous avez des questions ou si vous souhaitez mettre en œuvre une solution de HA/DR SQL Server, en environnement physique ou virtuel, n’hésitez pas, contactez moi !

Happy DR

A propos Christophe

Consultant SQL Server Formateur certifié Microsoft MVP SQL Server MCM SQL Server 2008
Cet article, publié dans SQL Server, Windows, est tagué , , . Ajoutez ce permalien à vos favoris.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s