SQL Server 2014 – Instance en cluster sur disque CSV

L’association SQL Server 2014 et Windows 2012 R2 semble promise à un bel avenir. Non seulement, le témoin dynamique apporte plus de simplicité dans la mise en place d’un cluster (plus trop de question à se poser concernant le Quorum), mais Windows 2012 R2 propose des améliorations concernant la prise en charge des machines virtuelles. J’avais brièvement listé quelques unes de ces fonctionnalités dans du billet d’introduction à Windows 2012 R2.

Je suis très régulièrement impliqué dans les projets de haute disponibilité. Egalement, je travaille énormément sur des environnements virtuels. Alors, quand Windows 2012 R2 propose de nouvelles fonctionnalités sur la prise en charge de cluster SQL Server dans un environnement virtuel, je me dois de tester tout cela.

Le cluster SQL Server (FCI) permet de protéger l’intégralité d’une instance SQL. Toutes les bases, y compris la base système sont protégées contre la perte d’un nœud. Le cluster de basculement repose sur un stockage partagé, un SAN (la NAS ne fonctionne pas dans ce cas là). Les volumes partagés devaient être présentés en iSCSI ou via des cartes fibres à tous les nœuds du cluster. En cas de bascule de l’instance, la réservation SCSI3 devait être transférée sur le nœud qui allait devenir actif. Ce qui pouvait prendre un certain temps en fonction du nombre de fichiers ouverts, du nombre de bases …

En environnement virtuel, on utilisait généralement des connexions iSCSI pour partager les volumes. Depuis l’arrivée de Windows 2012, Hyper-V propose dans la notion de carte fibre virtuelle permettant ainsi de profiter de l’infrastructure SAN mise à disposition des hôtes Hyper-V . Ces deux méthodes fonctionnent très bien, toutes ces solutions étant supportées, bien entendu.

Mais ça, c’était avant !

Windows 2012 R2 permet maintenant de partager un disque CSV entre plusieurs machines virtuelles ! Et SQL Server 2014 permet d’utiliser ce disque CSV pour héberger plusieurs instances SQL en cluster. Un volume peut donc maintenant être partagé entre plusieurs instances en cluster ! Et ça, c’est nouveau, en tous cas pour SQL Server.

Qu’est-ce que cela change ? Pas grand chose me direz vous (nous allons voir), mais pour bien des administrateurs, cela simplifiera l’installation.

Cela met un terme à la gestion des lettres, dont une seule était obligatoire par instance (il était possible d’utiliser les points de montage pour bénéficier de plusieurs volumes rattachés à une seule instance). Il était également possible de stocker tous les fichiers des bases de données sur un partage réseau (SMB 3), ce qui pouvait aussi nous affranchir de cette limite. Je vous avais proposé une configuration de ce type il y a quelques temps.

Le disque CSV (Clustered Shared Volume) a été introduit avec Windows 2008R2 afin de fournir un stockage commun pour tous les hôtes d’un cluster Hyper-V hébergeant des machines virtuelles. La règle générale d’un cluster (Share Nothing) est alors transgressée car chaque hôte peut accéder en lecture / écriture au volume. La réservation ne se fait plus au niveau du disque, mais au niveau du fichier. ce qui change tout, et permet d’ouvrir de nouvelles possibilités au niveau hébergement.

Ce nouveau type de volume allait dans le sens de la mobilité, car le temps de bascule d’une VM d’un hôte à l’autre s’en trouvait réduit. SQL Server va maintenant pouvoir bénéficier de ce mécanisme, et l’on pourra ainsi supporter davantage d’instances FCI sur des cluster Windows allant jusqu’à 64 nœuds. La mobilité des bases s’est améliorée grâce aux groupes de disponibilité, aux bases partiellement contenues, maintenant, ce sont les instances qui deviennent de plus en plus mobiles ouvrant de nouvelles perspectives en architecture de bases de données.

Il est déjà possible d’opter pour un réplica Always-ON sur une VM Azure. On sent ici poindre le début d’une infrastructure hybride de machines virtuelles avec des nœuds d’un cluster On-premise et d’autres dans le Cloud, utilisant les disques CSV pour le stockage des données. il ne manquera plus que la synchronisation des disques entre la copie sur Azure et votre Datacenter … Nous verrons bien ce que nous réserve l’avenir.

La mise en place d’une instance FCI sur disque CSV passe tout d’abord pas la création d’un disque CSV dans le cluster guest. Ne disposant pas de SAN fibre, je commence tout d’abord par créer une LUN sur mon target iSCSI Windows 2012.

imageimageimageimageimageimageimageimageimageimageimageimageimage

Opération terminée. Ensuite, sur chacun des nœuds de mon cluster (Blue1 et Blue2), j’ajoute ce volume, j’active l’initiateur iSCSI et me connecte à la cible iSCSI. J’ai déjà a plusieurs reprises abordé ce thème, je vous livre les captures d’écran brutes.

imageimageimageimage

Le disque est maintenant présenté aux deux nœuds. Il suffit de créer un volume (sur un premier nœud).

imageimageimageimageimageimageimageimageimageimage

Et de le mettre online sur le second nœud.

imageimage

On ajoute ensuite ce volume au stockage du cluster précédemment créé et le transformer en disque CSV. Il est éventuellement possible de renommer la ressource afin de refléter au mieux le nom du volume.

imageimageimageimage

Le disque CSV est à présent configuré.

image

Il est donc temps de passer à l’installation de SQL Server ….

imageimageimageimageimageimageimageimageimageimageimageimage

Le disque CSV est disponible :

imageimageimageimageimageimageimageimage

En fait, rien de bien particulier pour cette installation d’instance en cluster, même le choix du disque CSV est complètement transparent. Le fichier de configuration reflète également … l’absence de paramètre particulier !!!

image

L’ajout du second nœud dans le cluster n’étant qu’un formalité, je vous propose de le faire en ligne de commande.

SETUP /IACCEPTSQLSERVERLICENSETERMS /Q 
	/ACTION= AddNode 
	/INSTANCENAME="I1" 
	/AGTSVCACCOUNT="ConseilIT\SQLService" 
	/AGTSVCPASSWORD="************" 
	/SQLSVCACCOUNT= "ConseilIT\SQLService" 
	/SQLSVCPASSWORD="************"

image

Maintenant, que se passe t’il si l’on essaie d’ajouter une instance à ce cluster. Précédemment, le stockage n’était plus disponible, puisque incorporé dans le groupe de ressources de l’instance SQL.

imageimage

Le disque CSV est disponible pour créer la nouvelle instance :image

Un nouveau répertoire est simplement créé:imageimage

L’ajout du node dans le cluster étant une formalité, je passe sur les étapes.

On a ainsi pu construire un cluster 2 nœuds, supportant 2 instances virtuelles SQL Server avec seulement 1 disque partagé, configuré comme disque CSV.

Le disque affiche les répertoires liés aux deux instances. Chaque instance, à un instant T, est en cours d’exécution sur un seul des nœuds, alors que la ressource disque, elle, est indépendante et est hébergée sur n’importe lequel des nœuds.

image

On constate également, que le groupe de ressource ne comporte plus de ressource de type disque. Bien que Blue2 soit le propriétaire du volume CSV, Blue1 qui héberge l’instance I1 peut fonctionner sans problème, la réservation se faisant au niveau fichier.

imageimage

Bien qu’il n’y ait plus de dépendance au niveau du cluster entre le disque et le service SQL, tout n’est cependant pas permis. Par exemple, si vous essayez d’attacher une base dont les fichiers ne sont pas stockés sur un répertoire “lié” à l’instance, vous recevez un message vous informant qu’il subsiste quand même des dépendances :

/*————————
EXEC sp_attach_db @dbname = N’DemoDB’,
@filename1 = N’C:\ClusterStorage\Volume1\MSSQL11.I1\MSSQL\DATA\DemoDB.mdf’,
@filename2 = N’C:\ClusterStorage\Volume1\MSSQL11.I1\MSSQL\DATA\DemoDB_log.ldf’;
————————*/
Msg 5184, Level 16, State 2, Line 1
Cannot use file ‘C:\ClusterStorage\Volume1\MSSQL11.I1\MSSQL\DATA\DemoDB.mdf’ for clustered server. Only formatted files on which the cluster resource of the server has a dependency can be used. Either the disk resource containing the file is not present in the cluster group or the cluster resource of the Sql Server does not have a dependency on it.

Pour conclure, l’arrivée du disque CSV pour les cluster SQL Server en environnement virtuel est sans nul doute une nouveauté digne d’intérêt.

Jamais autant de solutions n’auront été proposées pour bénéficier d’une infrastructure de bases de données hautement disponible. Chacune de ces solutions a des raisons d’être. Environnement physique ou virtuel, hébergement on-premise, cloud ou hybride, stockage symétrique ou asymétrique, SAN, NAS ou DAS. Que ce soit au niveau Windows ou au niveau SQL Server, les multiples combinaisons de fonctionnalités offertes par ces produits  recèlent certainement celles qui vous convient !

Faites votre choix …

Si vous avez des questions ou si vous souhaitez un devis pour mettre en place une configuration de ce type, n’hésitez pas à me contacter.

A propos Christophe

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