Partager via


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 :

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 :

  1. Dans le portail Azure, accédez au groupe de ressources contenant les machines virtuelles.

  2. Sélectionnez Ajouter. Recherchez équilibreur de charge sur la Place de marché Azure. Sélectionnez Équilibreur de charge.

  3. Sélectionnez Create (Créer).

  4. 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.

    Capture d’écran du portail Azure qui montre la page des informations de base sur un équilibreur de charge.

  5. Sélectionner Suivant : Configuration d’adresse IP front-end.

  6. Sélectionnez + Ajouter une configuration IP front-end.

    Capture d’écran du portail Azure montrant le bouton qui permet d’ajouter une configuration IP front-end.

  7. 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.

    Capture d’écran du portail Azure qui montre la page de configuration d’une adresse IP front-end.

  8. Sélectionnez Ajouter pour créer l’adresse IP front-end.

  9. Sélectionnez Vérifier + créer pour créer l’équilibreur de charge.

Configurer un pool de back-ends

  1. 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.

  2. Sélectionnez Pools de back-ends, puis sélectionnez + Ajouter.

  3. Pour Nom, indiquez un nom pour le pool de back-ends.

  4. Pour Configuration du pool de back-ends, sélectionnez Carte réseau.

  5. Sélectionnez Ajouter pour associer le pool de back-ends au groupe à haute disponibilité contenant les machines virtuelles.

  6. 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.

  7. Sélectionnez Ajouter pour ajouter les machines virtuelles au pool de back-ends.

  8. Sélectionnez Enregistrer pour créer le pool de back-ends.

Configurer une sonde d’intégrité

  1. Dans le volet de l’équilibreur de charge, sélectionnez Sondes d’intégrité.

  2. 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.
  3. Sélectionnez Ajouter.

Définir les règles d’équilibrage de charge

  1. Dans le volet de l’équilibreur de charge, sélectionnez Règles d’équilibrage de charge.

  2. Sélectionnez Ajouter.

  3. 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é.
  4. 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ètre HostRecordTTL 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 :

  1. Ouvrez SQL Server Management Studio et connectez-vous à votre écouteur de groupe de disponibilité.
  2. Dans l’Explorateur d’objets, développez Groupe de disponibilité Always On.
  3. Cliquez avec le bouton droit sur le groupe de disponibilité et sélectionnez Basculement.
  4. 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 :