Configurer un équilibreur de charge Azure pour un écouteur VNN de groupe de disponibilité - SQL Server sur des machines virtuelles Azure
S’applique à : SQL Server sur la machine virtuelle Azure
Conseil
Il existe de nombreuses méthodes pour déployer un groupe de disponibilité. Simplifiez votre déploiement pour éviter d’utiliser un équilibreur de charge Azure ou un nom de réseau distribué (DNN) pour votre groupe de disponibilité Always On, et créez vos machines virtuelles SQL Server dans plusieurs sous-réseaux au sein du même réseau virtuel Azure. Si vous avez déjà créé votre groupe de disponibilité dans un seul sous-réseau, vous pouvez le migrer vers un environnement multi-sous-réseau.
Sur les machines virtuelles Azure, les clusters utilisent un équilibrage de charge pour conserver une adresse IP qui doit se trouver sur un nœud de cluster à la fois. Dans cette solution, l’équilibreur de charge contient l’adresse IP de l’écouteur de nom de réseau virtuel (VNN) pour le groupe de disponibilité Always On lorsque les machines virtuelles SQL Server se trouvent sur un sous-réseau unique.
Cet article vous apprend à configurer un équilibreur de charge à l’aide du service Azure Load Balancer. L’équilibreur de charge route le trafic vers votre écouteur de groupe de disponibilité avec SQL Server sur des machines virtuelles Azure pour la haute disponibilité et la reprise d’activité (HADR).
Pour une autre option de connectivité pour les clients qui sont sur SQL Server 2019 CU8 et versions ultérieures, envisagez plutôt un écouteur de nom de réseau distribué (DNN). Un écouteur DNN offre une configuration simplifiée et un basculement amélioré.
Prérequis
Avant d’effectuer les étapes décrites dans cet article, vous devez déjà disposer des éléments suivants :
- Avoir décidé qu’Azure Load Balancer est l’option de connectivité appropriée pour votre groupe de disponibilité.
- Avoir installé la version la plus récente de PowerShell.
Créer un équilibrage de charge
Vous pouvez créer l’un de ces types d’équilibreurs de charge :
Interne : un équilibreur de charge interne est accessible uniquement à partir de ressources privées internes au réseau. Quand vous configurez un équilibreur de charge interne et ses règles, utilisez la même adresse IP que l’écouteur de groupe de disponibilité pour l’adresse IP front-end.
Externe : un équilibreur de charge externe peut router du trafic des ressources publiques vers des ressources internes. Quand vous configurez un équilibreur de charge externe, vous ne pouvez pas utiliser la même adresse IP que celle de l’écouteur de groupe de disponibilité, car l’adresse IP de celui-ci ne peut pas être une adresse IP publique.
Pour utiliser un équilibreur de charge externe, allouez logiquement une adresse IP située dans le même sous-réseau que le groupe de disponibilité et qui n’est pas en conflit avec une autre adresse IP. Utilisez cette adresse comme adresse IP front-end pour les règles d’équilibrage de charge.
Important
Le 30 septembre 2025, la référence SKU De base d’Azure Load Balancer sera mise hors service. Pour plus d’informations, consultez l’annonce officielle. Si vous utilisez actuellement l’équilibreur de charge de base, effectuez une mise à niveau vers l’équilibreur de charge standard avant la date de mise hors service. Pour obtenir de l’aide, consultez Mettre à niveau l’équilibreur de charge.
Pour créer l’équilibrage de charge :
Dans le portail Azure, accédez au groupe de ressources contenant les machines virtuelles.
Sélectionnez Ajouter. Recherchez équilibreur de charge sur la Place de marché Azure. Sélectionnez Équilibreur de charge.
Sélectionnez Create (Créer).
Dans Créer un équilibreur de charge, sous l’onglet De base, configurez l’équilibreur de charge à l’aide des valeurs suivantes :
- Abonnement: Votre abonnement Azure.
- Groupe de ressources : Le groupe de ressources qui contient vos machines virtuelles.
- Name : Nom qui identifie l’équilibreur de charge.
- Région : L’emplacement Azure qui contient vos machines virtuelles.
- Référence SKU : Standard.
- Type : Public ou Interne. Un équilibreur de charge interne est disponible à partir du réseau virtuel. La plupart des applications Azure peuvent utiliser un équilibreur de charge interne. Si votre application doit accéder à SQL Server directement via Internet, utilisez un équilibrage de charge public.
- Niveau : Régional.
Sélectionner Suivant : Configuration d’adresse IP front-end.
Sélectionnez + Ajouter une configuration IP front-end.
Configurez l’adresse IP front-end avec les valeurs suivantes :
- Nom : nom qui identifie la configuration de l’adresse IP front-end
- Réseau virtuel : Le même réseau que les machines virtuelles.
- Sous-réseau : le même sous-réseau que les machines virtuelles.
- Affectation : Statique.
- Adresse IP : adresse IP que vous avez attribuée à la ressource réseau en cluster.
- Zone de disponibilité : zone de disponibilité facultative dans laquelle déployer votre adresse IP.
Sélectionnez Ajouter pour créer l’adresse IP front-end.
Sélectionnez Vérifier + créer pour créer l’équilibreur de charge.
Configurer un pool de back-ends
Revenez au groupe de ressources Azure contenant les machines virtuelles et recherchez le nouvel équilibrage de charge. Vous devrez peut-être actualiser l’affichage du groupe de ressources. Sélectionnez l’équilibreur de charge.
Sélectionnez Pools de back-ends, puis sélectionnez + Ajouter.
Pour Nom, indiquez un nom pour le pool de back-ends.
Pour Configuration du pool de back-ends, sélectionnez Carte réseau.
Sélectionnez Ajouter pour associer le pool de back-ends au groupe à haute disponibilité contenant les machines virtuelles.
Sous Machine virtuelle, choisissez les machines virtuelles qui participeront en tant que nœuds de cluster. Veillez à inclure toutes les machines virtuelles qui hébergeront le groupe de disponibilité.
Ajoutez uniquement l’adresse IP principale de chaque machine virtuelle. N’ajoutez pas d’adresses IP secondaires.
Sélectionnez Ajouter pour ajouter les machines virtuelles au pool de back-ends.
Sélectionnez Enregistrer pour créer le pool de back-ends.
Configurer une sonde d’intégrité
Dans le volet de l’équilibreur de charge, sélectionnez Sondes d’intégrité.
Dans le volet Ajouter une sonde d’intégrité, définissez les paramètres suivants :
- Name : Nom de la sonde d’intégrité.
- Protocole : TCP.
- Port : port que vous avez créé dans le pare-feu pour la sonde d’intégrité. Dans cet article, l’exemple utilise le port TCP 59999.
- Intervalle : 5 secondes.
Sélectionnez Ajouter.
Définir les règles d’équilibrage de charge
Dans le volet de l’équilibreur de charge, sélectionnez Règles d’équilibrage de charge.
Sélectionnez Ajouter.
Définissez ces paramètres :
- Nom : nom de la règle d’équilibrage de charge.
- Adresse IP front-end : adresse IP que vous avez définie lorsque vous avez configuré le front-end.
- Pool de back-ends : pool de back-ends qui contient les machines virtuelles ciblées pour l’équilibreur de charge.
- Ports HA : active l’équilibrage de charge sur tous les ports pour les protocoles TCP et UDP.
- Protocole : TCP.
- Port : Port TCP SQL Server. La valeur par défaut est 1433.
- Port principal : Même port que la valeur Port lorsque vous activez Adresse IP flottante (retour direct du serveur) .
- Sonde d’intégrité : La sonde d’intégrité que vous avez configurée précédemment.
- Persistance de session : Aucune.
- Délai d’inactivité (minutes) : 4.
- Adresse IP flottante (retour direct du serveur) : activé.
Sélectionnez Enregistrer.
Configurer une sonde de cluster
Définissez le paramètre de port de sonde de cluster dans PowerShell.
Mettez à jour les variables dans le script suivant avec des valeurs de votre environnement. Supprimez les crochets pointus (<
et >
) du script.
$ClusterNetworkName = "<Cluster Network Name>"
$IPResourceName = "<AG Listener IP Address Resource Name>"
$ILBIP = "<n.n.n.n>"
[int]$ProbePort = <nnnnn>
Import-Module FailoverClusters
Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ILBIP";"ProbePort"=$ProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
Le tableau ci-dessous décrit les valeurs que vous devez mettre à jour :
Variable | Valeur |
---|---|
ClusterNetworkName |
Nom du cluster de basculement Windows Server pour le réseau. Dans le Gestionnaire du cluster de basculement>Réseaux, cliquez avec le bouton droit sur le réseau et sélectionnez Propriétés. La valeur correcte est sous Nom dans l’onglet Général. |
IPResourceName |
Nom de ressource pour l’adresse IP de l’écouteur du groupe de disponibilité. Dans Gestionnaire du cluster de basculement>Rôles, sous le rôle du groupe de disponibilité, sous Nom du serveur, cliquez avec le bouton droit sur la ressource d’adresse IP, puis sélectionnez Propriétés. La valeur correcte est sous Nom dans l’onglet Général. |
ILBIP |
Adresse IP de l’équilibreur de charge interne. Cette adresse est configurée dans le portail Azure en tant qu’adresse front-end de l’équilibreur de charge interne. Il s’agit de la même adresse IP que celle de l’écouteur du groupe de disponibilité. Vous la trouverez dans le Gestionnaire du cluster de basculement, dans la page de propriétés où se trouve également le IPResourceName . |
ProbePort |
Port de sonde que vous avez configuré dans la sonde d’intégrité de l’équilibreur de charge. N’importe quel port TCP inutilisé est valide. |
SubnetMask |
Masque de sous-réseau pour le paramètre de cluster. Il doit s’agir de l’adresse de diffusion TCP/IP : 255.255.255.255 . |
Les modifications apportées ne prennent effet que lorsque la ressource d'adresses IP est mise hors connexion et remise en ligne. Effectuez un basculement du groupe de disponibilité pour que cette modification prenne effet. Après avoir défini la sonde du cluster, vous pouvez voir tous les paramètres de cluster dans PowerShell. Exécutez ce script :
Get-ClusterResource $IPResourceName | Get-ClusterParameter
Modifier la chaîne de connexion
Pour les clients qui le prennent en charge, ajoutez MultiSubnetFailover=True
à la chaîne de connexion. Bien que l’option de connexion MultiSubnetFailover
ne soit pas obligatoire, elle offre l’avantage d’un basculement de sous-réseau plus rapide. Cela est dû au fait que le pilote client essaie d’ouvrir un socket TCP pour chaque adresse IP en parallèle. Le pilote client attend que la première adresse IP réponde avec succès. Après la réponse, le pilote client utilise cette adresse IP pour la connexion.
Si votre client ne prend pas en charge le paramètre MultiSubnetFailover
, vous pouvez modifier les paramètres RegisterAllProvidersIP
et HostRecordTTL
afin de prévenir les retards de connectivité après un basculement.
Utilisez PowerShell pour modifier les paramètres RegisterAllProvidersIp
et HostRecordTTL
:
Get-ClusterResource yourListenerName | Set-ClusterParameter RegisterAllProvidersIP 0
Get-ClusterResource yourListenerName|Set-ClusterParameter HostRecordTTL 300
Pour plus d’informations, consultez la documentation sur le délai d’expiration de connexion de l’écouteur dans SQL Server.
Conseil
- Affectez la valeur
true
àMultiSubnetFailover parameter
dans la chaîne de connexion, même pour les solutions HADR qui ne couvrent qu’un seul sous-réseau. Ce paramètre prend en charge l’étendue future des sous-réseaux sans qu’il soit nécessaire de mettre à jour les chaînes de connexion. - Par défaut, le service DNS en cluster du cache des clients enregistre pendant 20 minutes. En réduisant
HostRecordTTL
, vous réduisez la durée de vie (TTL) de l’enregistrement mis en cache. Les clients hérités peuvent ensuite se reconnecter plus rapidement. En soi, la réduction du paramètreHostRecordTTL
est susceptible d’accroître le trafic vers les serveurs DNS.
Test de basculement
Testez le basculement de la ressource en cluster pour valider le fonctionnement du cluster :
- Ouvrez SQL Server Management Studio et connectez-vous à votre écouteur de groupe de disponibilité.
- Dans l’Explorateur d’objets, développez Groupe de disponibilité Always On.
- Cliquez avec le bouton droit sur le groupe de disponibilité et sélectionnez Basculement.
- Suivez les invites de l’Assistant pour basculer le groupe de disponibilité sur un réplica secondaire.
Le basculement a lieu lorsque les réplicas changent de rôle et sont synchronisés.
Tester la connectivité
Pour tester la connectivité, connectez-vous à une autre machine virtuelle sur le même réseau virtuel. Ouvrez SQL Server Management Studio et connectez-vous à l’écouteur du groupe de disponibilité.
Notes
Si nécessaire, vous pouvez télécharger SQL Server Management Studio.
Étapes suivantes
Une fois le VNN créé, envisagez d’optimiser les paramètres de cluster pour les machines virtuelles SQL Server.
Pour en savoir plus, consultez :