Configurer un écouteur externe pour des groupes de disponibilité sur des machines virtuelles Azure SQL Server
Cette rubrique explique comment configurer un écouteur pour un groupe de disponibilité Always On accessible en externe sur Internet. Il est possible d’associer l’ adresse IP virtuelle publique du service cloud à l’écouteur.
Important
Azure a deux modèles de déploiement différents pour créer et utiliser des ressources : Resource Manager et classique. Cet article traite du modèle de déploiement classique. Pour la plupart des nouveaux déploiements, Microsoft recommande d’utiliser le modèle Resource Manager.
Votre groupe de disponibilité peut contenir des réplicas locaux uniquement, Azure uniquement, ou locaux et Azure pour les configurations hybrides. Les réplicas Azure peuvent se trouver dans une même région ou dans plusieurs régions grâce à plusieurs réseaux virtuels. Les étapes suivantes supposent que vous avez déjà configuré un groupe de disponibilité, mais pas un écouteur.
Instructions et limitations pour les écouteurs externes
Notez que les instructions suivantes s’appliquent pour l’écouteur du groupe de disponibilité dans Azure lorsque vous effectuez un déploiement à l’aide de l’adresse IP virtuelle publique du service cloud :
- L'écouteur du groupe de disponibilité est pris en charge sur Windows Server 2008 R2, Windows Server 2012 et Windows Server 2012 R2.
- L'application cliente doit se trouver dans un service cloud différent de celui qui contient vos machines virtuelles de groupe de disponibilité. Azure ne prend pas en charge le retour direct du serveur avec un client et un serveur se trouvant dans le même service cloud.
- Par défaut, les étapes décrites dans cet article montrent comment configurer un écouteur pour utiliser l'adresse IP virtuelle (VIP) du service cloud. Toutefois, il est possible de réserver et de créer plusieurs adresses IP virtuelles pour votre service cloud. Cela vous permet d'utiliser les étapes dans cet article pour créer plusieurs écouteurs associés à une adresse IP virtuelle différente. Pour plus d'informations sur la création de plusieurs adresses IP virtuelles, consultez la section Plusieurs adresses IP virtuelles par service cloud.
- Si vous créez un écouteur pour un environnement hybride, le réseau local doit disposer de la connectivité à l'Internet public en plus du VPN de site à site avec le réseau virtuel Azure. Dans le sous-réseau Azure, l'écouteur du groupe de disponibilité est accessible uniquement par l'adresse IP publique du service cloud respectif.
- La création d’un écouteur externe dans un service cloud dans lequel vous avez également un écouteur interne n'est pas prise en charge avec l'équilibrage de charge interne.
Déterminer l'accessibilité de l'écouteur
Il est important de savoir qu’il existe deux manières de configurer un écouteur de groupe de disponibilité dans Azure. Ces méthodes diffèrent dans le type d’équilibrage de charge Azure que vous utilisez lorsque vous créez l’écouteur. Le tableau suivant décrit ces différences :
Type d’équilibrage de charge | Implémentation | Contexte d'utilisation : |
---|---|---|
Externe | Utilise l’adresse IP virtuelle publique du service cloud qui héberge les machines virtuelles. | Vous devez accéder à l’écouteur en dehors du réseau virtuel, notamment depuis Internet. |
Interne | Utilise un équilibrage de charge interne avec une adresse privée pour l’écouteur. | Vous ne pouvez accéder à l’écouteur qu’à partir du même réseau virtuel. Cet accès inclut un réseau privé virtuel de site à site dans des scénarios hybrides. |
Important
Pour un écouteur qui utilise l’adresse IP virtuelle publique du service cloud (équilibrage de charge externe), tant que le client, l’écouteur et les bases de données se trouvent dans la même région Azure, aucuns frais de sortie ne vous seront facturés. Sinon, les données retournées par l’écouteur sont considérées comme une sortie et facturées au taux de transfert de données normal.
Un équilibrage de charge interne ne peut être configuré que dans des réseaux virtuels à portée régionale. Les réseaux virtuels existants qui ont été configurés pour un groupe d’affinités ne peuvent pas utiliser un équilibrage de charge interne. Pour plus d’informations, voir Présentation de l’équilibrage de charge interne.
Cet article se concentre sur la création d’un écouteur qui utilise un équilibrage de charge externe. Si vous souhaitez un écouteur qui est privé sur votre réseau virtuel, consultez la version de cet article qui explique comment configurer un écouteur avec équilibrage de charge interne
Créer des points de terminaison de machine virtuelle à charge équilibrée avec retour direct du serveur
L'équilibrage de charge externe utilise l'adresse IP virtuelle publique du service cloud qui héberge vos machines virtuelles. Par conséquent, vous n'avez besoin créer ou configurer l'équilibrage de charge dans ce cas.
Vous devez créer un point de terminaison avec équilibrage de charge pour chaque machine virtuelle qui héberge un réplica Azure. Si vous avez des réplicas dans plusieurs régions, chaque réplica de cette région doit se trouver dans le même service cloud sur le même réseau virtuel. La création de réplicas de groupe de disponibilité couvrant plusieurs régions Azure nécessite de configurer plusieurs réseaux virtuels. Pour plus d'informations sur la configuration de la connectivité de réseau virtuel intersites, consultez Configuration de la connectivité de réseau virtuel à réseau virtuel.
Dans le portail Azure, accédez à chaque machine virtuelle hébergeant un réplica et consultez les détails.
Cliquez sur l'onglet Points de terminaison de chacune des machines virtuelles.
Vérifiez que le Nom et le Port public du point de terminaison de l'écouteur ne sont pas déjà utilisés. Dans l'exemple ci-dessous, le nom est « MyEndpoint » et le port est « 1433 ».
Sur votre client local, téléchargez et installez le dernier module PowerShell.
Démarrez Azure PowerShell. Une nouvelle session PowerShell s'ouvre avec les modules d'administration Azure chargés.
Exécutez Get-AzurePublishSettingsFile. Cette applet de commande vous dirige vers un navigateur de façon à télécharger un fichier de paramètres de publication dans un répertoire local. Vous serez peut-être invité à entrer les informations d'identification de connexion de votre abonnement Azure.
Exécutez la commande Import-AzurePublishSettingsFile avec le chemin d'accès du fichier de paramètres de publication que vous avez téléchargé :
Import-AzurePublishSettingsFile -PublishSettingsFile <PublishSettingsFilePath>
Une fois le fichier de paramètres de publication importé, vous pouvez gérer votre abonnement Azure dans la session PowerShell.
Copiez le script PowerShell ci-dessous dans un éditeur de texte et définissez des valeurs de variables adaptées à votre environnement (des valeurs par défaut ont été affectées à certains paramètres). Notez que, si votre groupe de disponibilité s'étend sur plusieurs régions Azure, vous devez exécuter le script une fois dans chaque centre de données pour le service cloud et les nœuds qui se trouvent dans ce centre de données.
# Define variables $ServiceName = "<MyCloudService>" # the name of the cloud service that contains the availability group nodes $AGNodes = "<VM1>","<VM2>","<VM3>" # all availability group nodes containing replicas in the same cloud service, separated by commas # 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 "ListenerEndpoint" -Protocol "TCP" -PublicPort 1433 -LocalPort 1433 -LBSetName "ListenerEndpointLB" -ProbePort 59999 -ProbeProtocol "TCP" -DirectServerReturn $true | Update-AzureVM }
Après avoir défini les variables, copiez le script de l'éditeur de texte dans votre session Azure PowerShell pour l'exécuter. Si l'invite affiche >>, appuyez sur Entrée pour vous assurer que le script s'exécute.
Vérifiez que KB2854082 est installé le cas échéant
Ensuite, si des serveurs du cluster exécutent Windows Server 2008 R2 ou Windows Server 2012, vous devez vérifier que le correctif logiciel KB2854082 est installé sur chacun des serveurs locaux ou des machines virtuelles Azure qui font partie du cluster. Ce correctif logiciel doit également être installé sur tout serveur ou une machine virtuelle faisant partie du cluster, mais pas du groupe de disponibilité.
Dans la session Bureau à distance, téléchargez KB2854082 dans un répertoire local pour chacun des nœuds du cluster. Ensuite, installez le correctif logiciel sur chaque nœud du cluster séquentiellement. Si le service de cluster est en cours d'exécution sur le nœud de cluster, le serveur est redémarré à la fin de l'installation du correctif.
Avertissement
L’arrêt du service de cluster ou le redémarrage du serveur affecte l’intégrité du quorum de votre cluster et le groupe de disponibilité et peut entraîner la mise hors connexion du cluster. Pour assurer la haute disponibilité de votre cluster lors de l'installation, vérifiez que :
- L’intégrité du quorum du cluster est optimale.
- Avant d’installer le correctif logiciel sur un nœud, tous les nœuds du cluster sont en ligne.
- Avant d’installer le correctif logiciel sur un autre nœud du cluster, autorisez l’installation complète du correctif logiciel sur un nœud, redémarrage complet du serveur inclus.
Ouvrez les ports de pare-feu dans des nœuds de groupe de disponibilité
Au cours de cette étape, vous allez créer une règle de pare-feu pour ouvrir le port de la sonde du point de terminaison à charge équilibrée (59999, comme indiqué précédemment) et une autre règle pour ouvrir le port de l’écouteur de groupe de disponibilité. Comme vous avez créé le point de terminaison à charge équilibrée sur les machines virtuelles qui contiennent des réplicas du groupe de disponibilité, vous devez ouvrir le port de la sonde et le port de l’écouteur sur les machines virtuelles respectives.
Sur les machines virtuelles hébergeant les réplicas, démarrez le Pare-feu Windows avec fonctions avancées de sécurité.
Cliquez avec le bouton droit sur Règles de trafic entrant, puis cliquez sur Nouvelle règle.
Dans la page Type de règle, sélectionnez Port, puis cliquez sur Suivant.
Dans la page Protocole et ports, sélectionnez TCP, tapez 59999 dans la zone Ports locaux spécifiques, puis cliquez sur Suivant.
Dans la page Action, sélectionnez Autoriser la connexion, puis cliquez sur Suivant.
Dans la page Profil, acceptez les paramètres par défaut puis cliquez sur Suivant.
Dans la zone de texte Nom de la page Nom, spécifiez un nom pour la règle, comme Port de la sonde d’écouteur toujours actif, puis cliquez sur Terminer.
Répétez les étapes précédentes pour le port de l’écouteur de groupe de disponibilité (comme spécifié précédemment à l’aide du paramètre $EndpointPort du script), puis indiquez un nom de règle approprié, tel que Port de l’écouteur toujours actif.
Créer l'écouteur de groupe de disponibilité
Créez l’écouteur de groupe de disponibilité en deux étapes. Tout d’abord, créez la ressource de cluster de point d’accès client et configurez les dépendances. Ensuite, configurez les ressources de cluster avec PowerShell.
Créez le point d’accès client et configurez les dépendances de cluster
Dans cette étape, vous créez manuellement l’écouteur du groupe de disponibilité dans le Gestionnaire du cluster de basculement et dans SQL Server Management Studio.
Ouvrez le Gestionnaire du cluster de basculement à partir du nœud qui héberge le réplica principal.
Sélectionnez le nœud Réseaux, puis notez le nom de réseau du cluster. Ce nom est utilisé dans la variable $ClusterNetworkName dans le script PowerShell.
Développez le nom du cluster, puis cliquez sur Rôles.
Dans le volet Rôles, cliquez avec le bouton droit sur le nom du groupe de disponibilité, puis sélectionnez Ajouter une ressource>Point d’accès client.
Dans la zone Nom, créez un nom pour ce nouvel écouteur, cliquez à deux reprises sur Suivant, puis cliquez sur Terminer.
Ne mettez pas l'écouteur ou la ressource en ligne à ce stade.Cliquez sur l’onglet Ressources, puis développez le point d’accès client vous venez de créer. La ressource d’adresse IP de chaque réseau de cluster dans votre cluster est affichée. S’il s’agit d’une solution basée uniquement sur Azure, une seule ressource d’adresse IP est affichée.
Effectuez l'une des opérations suivantes :
Pour configurer une solution hybride :
a. Cliquez avec le bouton droit sur la ressource d’adresse IP qui correspond à votre sous-réseau local, puis sélectionnez Propriétés. Notez le nom de l’adresse IP et le nom du réseau.
b. Sélectionnez Adresse IP statique, affectez une adresse IP inutilisée, puis cliquez sur OK.
Pour configurer une solution basée uniquement sur Azure :
a. Cliquez avec le bouton droit sur la ressource d’adresse IP qui correspond à votre sous-réseau Azure, puis sélectionnez Propriétés.
Notes
Si la mise en ligne de l’écouteur échoue par la suite en raison d’un conflit avec l’adresse IP sélectionnée par DHCP, vous pouvez configurer une adresse IP statique valide dans cette fenêtre de propriétés.
b. Dans la même fenêtre de propriétés Adresse IP, modifiez le Nom de l'adresse IP.
Ce nom est utilisé dans la variable $IPResourceName du script PowerShell. Si votre solution couvre plusieurs réseaux virtuels Azure, répétez cette étape pour chaque ressource IP.
Configurez les ressources de cluster dans PowerShell
Pour l'équilibrage de charge externe, vous devrez obtenir l'adresse IP virtuelle publique du service cloud qui contient vos réplicas. Connectez-vous au portail Azure. Accédez au service cloud qui contient les machines virtuelles de votre groupe de disponibilité. Ouvrez le Tableau de bord.
Notez l'adresse affichée sous Adresse IP virtuelle (VIP) publique. Si votre solution couvre des réseaux virtuels, répétez cette étape pour chaque service cloud contenant une machine virtuelle qui héberge un réplica.
Copiez le script PowerShell ci-dessous dans un éditeur de texte sur l'une des machines virtuelles et définissez les variables sur les valeurs notées précédemment.
# Define variables $ClusterNetworkName = "<ClusterNetworkName>" # the cluster network name (Use Get-ClusterNetwork on Windows Server 2012 of higher to find the name) $IPResourceName = "<IPResourceName>" # the IP Address resource name $CloudServiceIP = "<X.X.X.X>" # Public Virtual IP (VIP) address of your cloud service Import-Module FailoverClusters # If you are using Windows Server 2012 or higher, use the Get-Cluster Resource command. If you are using Windows Server 2008 R2, use the cluster res command. Both commands are commented out. Choose the one applicable to your environment and remove the # at the beginning of the line to convert the comment to an executable line of code. # Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$CloudServiceIP";"ProbePort"="59999";"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"OverrideAddressMatch"=1;"EnableDhcp"=0} # cluster res $IPResourceName /priv enabledhcp=0 overrideaddressmatch=1 address=$CloudServiceIP probeport=59999 subnetmask=255.255.255.255
Une fois les variables définies, ouvrez une fenêtre Windows PowerShell avec élévation de privilèges, puis copiez le script de l'éditeur de texte et collez-le dans votre session Azure PowerShell pour l'exécuter. Si l'invite affiche >>, appuyez sur Entrée pour vous assurer que le script s'exécute.
Répétez cette procédure sur chaque machine virtuelle. Ce script configure la ressource Adresse IP avec l'adresse IP du service cloud et définit d'autres paramètres, tels que le port de la sonde. Lorsque la ressource d'adresse IP est mise en ligne, elle peut ensuite répondre à l'interrogation sur le port de la sonde du point de terminaison à équilibrage de charge créé précédemment dans ce didacticiel.
Mettre l'écouteur en ligne
Dans le Gestionnaire du cluster de basculement, développez les Rôles, puis mettez votre groupe de disponibilité en surbrillance.
Dans l’onglet Ressources, cliquez avec le bouton droit sur le nom de l’écouteur, puis cliquez sur Propriétés.
Cliquez sur l'onglet Dépendances . Si plusieurs ressources sont répertoriées, vérifiez que les adresses IP ont des dépendances OR (et non des dépendances AND).
Cliquez sur OK.
Cliquez avec le bouton droit sur le nom de l’écouteur, puis cliquez sur Mettre en ligne.
Lorsque l’écouteur est en ligne, dans l’onglet Ressources, cliquez avec le bouton droit sur le groupe de disponibilité, puis cliquez sur Propriétés.
Créez une dépendance sur la ressource de nom de l’écouteur (pas le nom de ressources d’adresse IP), puis cliquez sur OK.
Démarrez SQL Server Management Studio, puis connectez-vous au réplica principal.
Accédez auxécouteurs degroupes><de disponibilité haute disponibilité AlwaysOn AvailabilityGroupName>>.>
Le nom de l’écouteur que vous avez créé dans le Gestionnaire du cluster de basculement doit être affiché.Cliquez avec le bouton droit sur le nom de l’écouteur puis cliquez sur Propriétés.
Dans la zone Port, spécifiez le numéro de port pour l’écouteur du groupe de disponibilité à l’aide de l’élément $EndpointPort utilisé précédemment (dans ce didacticiel, la valeur par défaut était 1433), puis cliquez sur OK.
Éléments de suivi
Une fois que vous avez créé l’écouteur de groupe de disponibilité, il peut être nécessaire d’ajuster les paramètres de cluster RegisterAllProvidersIP et HostRecordTTL pour la ressource de l’écouteur. Ces paramètres peuvent réduire le délai de reconnexion après un basculement, ce qui peut empêcher des délais d’expiration de la connexion. Pour plus d’informations sur ces paramètres et voir des exemples de code, consultez la rubrique Créer ou configurer un écouteur de groupe de disponibilité.
Tester l'écouteur du groupe de disponibilité (au sein du même réseau virtuel)
Au cours de cette étape, vous allez tester l’écouteur de groupe de disponibilité à l’aide d’une application cliente s’exécutant sur le même réseau.
La connectivité client présente les exigences suivantes :
- Les connexions client à l’écouteur doivent provenir de machines résidant dans un service cloud autre que celui qui héberge les réplicas de disponibilité AlwaysOn.
- Si les réplicas Always On figurent dans des sous-réseaux distincts, les clients doivent spécifier MultisubnetFailover=True dans la chaîne de connexion. Cette condition entraîne des tentatives parallèles de connexion aux réplicas dans les différents sous-réseaux. Ce scénario inclut un déploiement de groupe de disponibilité AlwaysOn dans plusieurs régions.
Par exemple, vous pouvez vous connecter à l’écouteur à partir de l’une des machines virtuelles du même réseau virtuel Azure (mais n’hébergeant pas de réplica). Un moyen simple d’effectuer ce test consiste à connecter SQL Server Management Studio à l’écouteur de groupe de disponibilité. Une autre méthode simple consiste à exécuter SQLCMD.exe, comme suit :
sqlcmd -S "<ListenerName>,<EndpointPort>" -d "<DatabaseName>" -Q "select @@servername, db_name()" -l 15
Notes
Si la valeur EndpointPort est définie sur 1433, vous n’êtes pas tenu de la spécifier dans l’appel. L’appel précédent suppose également que la machine cliente est associée au même domaine et que l’appelant a reçu des autorisations pour la base de données à l’aide de l’authentification Windows.
Lorsque vous testez l’écouteur, procédez au basculement du groupe de disponibilité pour vérifier que les clients peuvent se connecter à l’écouteur d’un basculement à un autre.
Tester l'écouteur du groupe de disponibilité (sur Internet)
Pour accéder à l’écouteur à l’extérieur du réseau virtuel, vous devez utiliser l’équilibrage de charge externe/public (décrit dans cette rubrique) et non l’équilibrage de charge interne, qui est accessible uniquement au sein du même réseau virtuel. Dans la chaîne de connexion, vous spécifiez le nom du service cloud. Par exemple, si vous avez un service cloud nommé mycloudservice, l’instruction sqlcmd se présente comme suit :
sqlcmd -S "mycloudservice.cloudapp.net,<EndpointPort>" -d "<DatabaseName>" -U "<LoginId>" -P "<Password>" -Q "select @@servername, db_name()" -l 15
Contrairement à l'exemple précédent, l'authentification SQL est nécessaire, car l'appelant ne peut pas utiliser l'authentification Windows sur internet. Pour plus d’informations, voir Always On Availability Group in Azure VM: Client Connectivity Scenarios(Groupes de disponibilité Always On dans Azure VM : scénarios de connectivité client). Lorsque vous utilisez l'authentification SQL, veillez à créer la même connexion sur les deux réplicas. Pour plus d’informations sur la résolution des problèmes de connexions avec des groupes de disponibilité, consultez la rubrique Comment mapper des connexions ou utiliser des utilisateurs de base de données SQL à relation contenant-contenu pour se connecter à d’autres réplicas et mapper aux bases de données de disponibilité.
Si les réplicas Always On figurent dans des sous-réseaux distincts, les clients doivent spécifier MultisubnetFailover=True dans la chaîne de connexion. Cela entraîne des tentatives parallèles de connexion aux réplicas dans les différents sous-réseaux. Notez que ce scénario inclut un déploiement de groupe de disponibilité Always On dans plusieurs régions.
Étapes suivantes
Outre la connexion automatique des clients au réplica principal, un écouteur peut servir à rediriger des charges de travail en lecture seule vers des réplicas secondaires. Cette utilisation peut améliorer les performances et l’évolutivité de votre solution globale. Pour plus d’informations, voir Use ReadIntent Routing with Azure Always On availability group listener (Utiliser le routage ReadIntent avec l’écouteur de groupe de disponibilité Azure AlwaysOn).
Notes
Pour obtenir des conseils de dépannage sur les écouteurs Azure, voir Troubleshooting availability group listener in Azure (Dépannage de l’écouteur de groupe de disponibilité dans Azure) dans le blog de l’équipe de support AlwaysOn.
Pour en savoir plus sur l’utilisation de SQL Server dans Azure, voir SQL Server sur les machines virtuelles.