SQL Server 2014 : AlwaysON Availability Group dans Azure (Partie 5)

 

Voici le cinquième article consacré à la mise en place d’une solution SQL Server 2014 AlwayON Availability Group dans Azure. Les articles sont découpés selon le plan suivant :

Ce billet va traiter de la cinquième partie, “Création du listener”. Pour rappel, à la fin de cette première série d’articles, nous aurons l’architecture suivante :

image_thumb111

 

 

Création du listener

Maintenant que nous avons créé notre groupe de disponibilité, nous allons créer le « listener », afin de permettre une redirection automatique de nos applications vers le serveur primaire.

Ouverture des points de terminaisons (endpoints)

Dans un premier temps, il est nécessaire de créer un point de terminaison pour toutes les machines virtuelles contenant un réplica SQL server.

A partir du portail azure, vérifiez les points de terminaisons déjà présents de vos machines virtuelles.

image

Installation du module PowerShell pour Azure

Si le module PowerShell pour Azure est déjà installé, vous pouvez passer cette étape.

Sur un poste client, téléchargez et installez Azure PowerShell version de juin 2013 ou ultérieure

clip_image002

Exécutez le programme téléchargé. Cliquez sur le bouton « Install ».

clip_image003

Cliquez sur le bouton « I Accept ».

clip_image004

Cliquez sur « Finish ».

clip_image005

Ouverture des points de terminaisons

Démarrer un éditeur PowerShell. Pour cet exemple, j’ai utilisé PowerShell ISE

image

L’éditeur de script intégré se lance. Il faut d’abord récupérer le fichier publishsettings, qui contient les informations de votre compte Azure.

Copiez et exécutez la commande ci-dessous

  • # récupération du fichier PublishSettings
  • Get-AzurePublishSettingsFile

clip_image007

Vous êtes alors redirigé vers le portail Azure. Connectez-vous avec votre compte.

clip_image008

Le fichier « publishsettings » est prêt à être téléchargé. Sauvegardez-le sur votre disque dur.

clip_image009

Nous allons maintenant importer le fichier « publishsettings ». Copiez et exécutez la commande ci-dessous :

  • # Import du fichier PublishSettings
  • Import-AzurePublishSettingsFile -PublishSettingsFile "C:\Users\franmer\Documents\PowerShell\PublishSettings\Franmer_credentials.publishsettings"

clip_image010

Nous allons maintenant créer les points de terminaisons. Copiez, modifiez et exécutez le script PowerShell ci-dessous :

  • # Création des end points
  • $AGNodes = "A-FranmerSQL1","A-FranmerSQL2","A-FranmerSQL3","A-FranmerSQL4" # all availability group nodes should be included, separated by commas
  • $ServiceName = "demosqlao" # the name of the cloud service that contains the availability group nodes
  • $EndpointName = "SQLAOEndpoint" # name of the endpoint
  • $EndpointPort = "55569" # public port to use for the endpoint
  • # Configure a load balanced endpoint for each node in $AGNodes, with direct server return enabled
  • ForEach ($node in $AGNodes)
  • {
  • Get-AzureVM -ServiceName $ServiceName -Name $node | Add-AzureEndpoint -Name $EndpointName -Protocol "TCP" -PublicPort $EndpointPort -LocalPort $EndpointPort -LBSetName "$EndpointName-LB" -ProbePort 59999 -ProbeProtocol "TCP" -DirectServerReturn $true | Update-AzureVM
  • }

clip_image011

Après avoir exécuté le script, vous devez voir apparaître le point de terminaison dans votre portail Azure.

clip_image012

Dans notre exemple nous avons rajoutez 2 ports : 59999 et 55569.

Le port 59999 est le port de la sonde du point de terminaison à charge équilibré.

Le port 55569 est le port du « listener » du groupe de disponibilité.

Ces 2 ports doivent être ouverts sur toutes les machines du cluster. Soit vous le faîte manuellement sur toutes les machines soit vous créez une règle au niveau de votre domaine contrôleur (chose que l’on a fait dans cet exemple, voir l’article de la partie 2).

Installation d’un correctif sur les machines en Windows 2008 R2 et 2012 :

Pour toutes les machines appartenant au cluster, installez le correctif KB2854082 https://support.microsoft.com/kb/2854082 si les systèmes d’exploitation sont Windows 2008 R2 ou Windows 2012.

Création du « Listener »

Nous allons maintenant créer le listener afin de permettre une redirection automatique vers le serveur SQL actif.

Paramétrage du « Failover Cluster »

Sur une des machines du cluster (par exemple SQL1), à partir du « Server Manager », dans le menu « Tools », cliquez sur « Failover Cluster Manager ».

clip_image013

Dans la fenêtre  « Failover Cluster Manager », dans la partie gauche sélectionnez« Roles ».

Dans la partie centrale, faîtes un clic droit sur votre nom de groupe de disponibilité.

Dans le menu contextuel, sélectionnez « Add Resource » puis « Client Access Point ».

image

Dans la partie « Client Access Point », donnez un nom réseau.

Cliquez sur « Next ».

clip_image015

Dans la partie confirmation, cliquez sur « Next »

clip_image016

Dans la partie « Summary » , cliquez sur « Finish ».

clip_image017

De retour dans la fenêtre « Failover Cluster Manager », vous devez voir apparaître le point d’accès (franmerlistener dans cet exemple) dans la partie centrale de la fenêtre.

En bas de la fenêtre, cliquez sur l’onglet « Resources ».

image

Cliquez sur le « plus » à gauche du nom du point d’accès.

Faîtes un clic droit sur le nom du réseau qui doit commencer par « IP adress : … ».

Dans le menu contextuel, cliquez sur « Properties » .

image

La fenêtre « IP Adress :…. » s’ouvre.

Dans le champ « Name », donnez un nom à votre réseau et mémorisez le. Vous allez en avoir besoin dans une des étapes suivantes.

Cliquez sur « Ok ».

clip_image020

Connectez-vous sur votre portail Azure. Sur la partie gauche du portail, cliquez sur « Services de Cloud ».

Cliquez sur le service de Cloud créé pour notre exemple, puis cliquez sur « Tableau de bord ».

Depuis le tableau de bord, notez l’adresse IP qui se trouve à droite sous « Adresse IP virtuelle (VIP) publique ».

image

Après avoir noté le nom de notre réseau et l’adresse publique de notre service de Cloud, nous allons compléter le script ci-dessous.

# Define variables

$ClusterNetworkName = "FranmerCluster" # the cluster network name

$IPResourceName = "FranmerNetwork" # the IP Address resource name

$CloudServiceIP = "23.100.52.115" # IP address of your cloud service

Import-Module FailoverClusters

Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple

@ {"Address"="$CloudServiceIP";"ProbePort"="59999";SubnetMask="255.255.255.255";"Network"="$ClusterNetworkName";"OverrideAddressMatch"=1;"EnableDhcp"=0}

Une fois le script complété, copiez le (dans ISE par exemple) et exécutez-le.

clip_image022

Ce script a pour fonction de modifier la ressource réseau du cluster. Ci-dessous une copie d’écran de ma fenêtre de gestion du cluster. On remarque que la ressource réseau est maintenant liée à notre service de Cloud.

Faîtes un clic droit sur « IP Adress : … », et sélectionnez « Properties ».

image

Dans la fenêtre properties, vous remarquez que le bouton radio « static IP Adress » est sélectionné et que l’adresse indiquée est celle de votre service de Cloud.

Cliquez sur « Ok ».

clip_image024

Faîtes maintenant un clic droit sur le nom de votre listener. Dans le menu contextuel, sélectionnez « Bring Online ».

image

Vous devez obtenir quelque chose de similaire à ma copie d’écran ci-dessous :

clip_image026

Toujours dans l’onglet « Resources », Cliquez sur le nom de votre groupe de disponibilité est cliquez sur « Properties ».

image

Dans la fenêtre « Properties » , cliquez sur l’onglet « Dependencies ».

Dans la liste déroulante, sélectionnez le nom du listener créé précédemment.

Cliquez sur « Ok ».

image

Finalisation de la création du listener avec Management studio

Nous allons finaliser l’installation du listener avec SQL Server Management Studio.

Connectez-vous à un de vos serveurs SQL intégré au cluster (Dans mon cas SQL1).

Sous « AlwaysOn High Availability »/ « Availability Group » / « FranmerAG » (Le nom de votre groupe de disponibilité) / « Availability Group Listener » .

clip_image029

Faîtes un clic droit sur votre Listener. Dans le menu contextuel, sélectionnez « Properties ».

clip_image030

Dans la fenêtre « Availability Group Listener Properties », dans le champ « Port », renseignez le port que vous avez défini précédemment via le script PowerShell.

Dans notre exemple c’est le port 55569.

Cliquez sur « Ok ».

clip_image031

Dans le prochain et dernier article de cette série, nous aborderons le test de la bascule AlwaysON .

Franck Mercier

Pour tester Windows Server 2012 R2, Windows 8, SQL Server 2014 et Power BI, vous pouvez télécharger gratuitement une version d’évaluation :

Windows Server 2012 R2:

SQL Server 2014 :

Power BI :

Testez Azure gratuitement pendant un mois :