Configurer un équilibreur de charge Azure pour un VNN FCI - 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 conserve l’adresse IP du nom de réseau virtuel (VNN) utilisé par la ressource en cluster dans Azure.

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 instance de cluster de basculement avec Microsoft SQL Server sur des machines virtuelles Azure pour la haute disponibilité et la reprise d’activité (HADR).

Pour une autre option de connectivité pour SQL Server 2019 CU2 et versions ultérieures, envisagez plutôt un nom de réseau distribué (DNN). Un 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. Lorsque vous configurez un équilibreur de charge interne et ses règles, utilisez l’adresse IP de la FCI comme adresse IP front-end.

  • Externe : un équilibreur de charge externe peut router du trafic des ressources publiques vers des ressources internes. Lorsque vous configurez un équilibreur de charge externe, vous ne pouvez pas utiliser une adresse IP publique telle que l’adresse IP de la FCI.

    Pour utiliser un équilibreur de charge externe, allouez logiquement une adresse IP située dans le même sous-réseau que la FCI 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.

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. Choisissez 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 participent en tant que nœuds de cluster. Veillez à inclure toutes les machines virtuelles qui hébergeront l’infrastructure ICF.

    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é lors de la préparation de la machine virtuelle. 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 = "<SQL Server FCI 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 la ressource pour l’adresse IP de la FCI SQL Server. Dans Gestionnaire du cluster de basculement>Rôles, sous le rôle de l’instance de cluster de basculement SQL Server, 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 également de l’adresse IP de la FCI SQL Server. 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 probe que vous avez configuré dans le probe 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.

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é lors d’un basculement.

Utilisez PowerShell pour modifier les paramètres RegisterAllProvidersIp et HostRecordTTL :

Get-ClusterResource yourFCIname | Set-ClusterParameter RegisterAllProvidersIP 0  
Get-ClusterResource yourFCIname | 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 au paramètre MultiSubnetFailover 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 les fonctionnalités du cluster :

  1. Connectez-vous à l’un des nœuds de cluster SQL Server à l’aide du protocole RDP (Remote Desktop Protocol).
  2. Ouvrez le Gestionnaire du cluster de basculement. Sélectionnez Rôles. Notez le nœud qui possède le rôle de l’instance de cluster de basculement SQL Server.
  3. Cliquez avec le bouton droit sur le rôle de l’instance de cluster de basculement SQL Server.
  4. Sélectionnez Déplacer, puis sélectionnez Meilleur nœud possible.

Le Gestionnaire du cluster de basculement présente le rôle et ses ressources hors connexion. Ensuite, les ressources sont déplacées et remises en ligne sur l’autre nœud.

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 au nom FCI SQL Server.

Notes

Si nécessaire, vous pouvez télécharger SQL Server Management Studio.

Étapes suivantes

Pour en savoir plus, consultez :