Configurer SQL Server sur Google Cloud Platform à l'aide de Cloud Volumes Service


Ce tutoriel explique comment configurer un environnement Google Cloud hautement résilient pour SQL Server installé sur un stockage de partage de fichiers SMB (Server Message Block) à l'aide de NetApp Cloud Volumes Service (CVS) pour Google Cloud.

Les groupes de disponibilité Always On (AG) de Microsoft SQL Server vous permettent de répliquer des bases de données sur plusieurs instances SQL Server Enterprise. Les instances traditionnelles SQL Server Always On nécessitent généralement que chaque nœud conserve une copie des données, ce qui peut rapidement devenir coûteux à mesure que les bases de données se développent. Par exemple, dans un déploiement traditionnel SQL Server Always On, si les bases de données ont une taille de 10 To, chaque instance dupliquée doit disposer d'au moins 10 To d'espace de stockage provisionné. L'un des avantages d'avoir un cluster de basculement Windows Server (WSFC) déployé pour SQL Server est que vous n'avez besoin que d'une seule copie des données, qui sont partagées entre les nœuds du cluster. Ainsi, l'exécution de SQL Server Always On dans une instance de cluster de basculement (FCI) sur un WSFC permet immédiatement de réduire les coûts en réduisant la quantité de stockage requise.

NetApp Cloud Volumes Service est une solution de stockage dans le cloud permettant d'exécuter des charges de travail SQL Server hautes performances en combinaison avec des instances Compute Engine. La base de données SQL Server sur SMB sur Cloud Volumes Service offre un niveau de résilience très élevé entre les instances Google Cloud et le service de stockage. Le basculement transparent SMB permet d'effectuer des opérations de maintenance sur Cloud Volumes Service sans interrompre la connectivité aux applications serveur qui stockent les données ou accèdent aux données sur les volumes SMB. Pour être compatible avec le basculement transparent SMB, Cloud Volumes Service est compatible avec l'option de partage de disponibilité continue (CA) SMB à utiliser avec les charges de travail SQL Server. Cela permet d'améliorer les performances, d'améliorer l'évolutivité et de réduire les coûts pour les instances uniques, les instances de cluster de basculement Always On et les déploiements de groupes de disponibilité Always On.

Cette page est destinée aux administrateurs de base de données NetApp Cloud Volumes Service et SQL Server chargés du déploiement de Microsoft SQL Server sur Google Cloud. Il suppose ce qui suit :

  • Vous connaissez les différents composants de la solution
  • Vous avez déjà déployé Active Directory sur Google Cloud

Objectifs

Ce tutoriel vise à atteindre les objectifs suivants:

  • Créer un volume Cloud Volumes Service pour SQL Server
  • Déployer un cluster de basculement Always On sur SMB sur Cloud Volumes Service

Coûts

Ce tutoriel utilise des composants facturables de Google Cloud, dont :

Utilisez le Simulateur de coût pour générer une estimation des coûts en fonction de votre utilisation prévue.

Avant de commencer

Pour ce tutoriel, vous avez besoin d'un projet Google Cloud. Vous pouvez en créer un ou sélectionner un projet existant :

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  3. Un domaine Active Directory existant comportant au moins un contrôleur de domaine. Vous pouvez créer un domaine Active Directory à l'aide du service Microsoft AD géré. Vous pouvez également déployer un environnement Active Directory personnalisé sur Compute Engine et configurer une zone de transfert DNS privée qui transmet les requêtes DNS aux contrôleurs de domaine.
  4. Un utilisateur Active Directory autorisé à rattacher des ordinateurs au domaine et à se connecter à l'aide du protocole RDP. Si vous utilisez le service Microsoft AD géré, vous pouvez vous servir de l'utilisateur setupadmin.
  5. Un projet Google Cloud et un VPC avec une connectivité aux contrôleurs de domaine Active Directory.
  6. Assurez-vous que l'API NetApp Cloud Volumes est activée pour votre projet Google Cloud.
  7. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

Préparer votre projet et votre réseau

Pour préparer votre projet Google Cloud et votre cloud privé virtuel (VPC) pour le déploiement de groupes de disponibilité Always On SQL Server, procédez comme suit:

  1. Dans la console Google Cloud, ouvrez Cloud Shell en cliquant sur le bouton Activer Cloud Shell Activez Cloud Shell..

    Accédez à la console Google Cloud.

  2. Initialisez les variables suivantes :

    VPC_NAME=VPC_NAME
    SUBNET_NAME=SUBNET_NAME
    

    Remplacez les éléments suivants :

    • VPC_NAME : nom de votre VPC
    • SUBNET_NAME : nom de votre sous-réseau
  3. Définissez votre ID de projet par défaut :

    gcloud config set project PROJECT_ID
    

    Remplacez PROJECT_ID par l'ID de votre projet Google Cloud.

  4. Définissez votre région par défaut :

    gcloud config set compute/region REGION
    

    Remplacez REGION par l'ID de la région dans laquelle vous souhaitez effectuer le déploiement.

  5. Définissez votre zone par défaut :

    gcloud config set compute/zone ZONE
    

    Remplacez ZONE par l'ID de la zone dans laquelle vous souhaitez effectuer le déploiement.

Créer SMB sur Cloud Volumes Service pour SQL Server

Pour créer un volume Cloud Volumes Service, vous devez créer une règle Active Directory, un accès aux services privés, un pool de stockage et un volume de stockage.

  1. Pour créer un nouvel accès au service privé, procédez comme suit:

    1. Dans la console Google Cloud, accédez à la page Réseaux VPC.

      Accéder au réseau VPC

    2. Cliquez sur le nom du réseau VPC que vous utiliserez.

    3. Cliquez sur l'onglet Accès aux services privés, puis sur Allouer une plage d'adresses IP.

      1. Saisissez un nom pour la plage d'adresses IP internes.
      2. Sélectionnez "Automatique", puis saisissez la valeur 24 pour la Longueur du préfixe.
      3. Cliquez sur le bouton Allouer.
    4. Cliquez sur l'onglet Connexions privées aux services, puis procédez comme suit:

      1. Cliquez sur le bouton Créer une connexion.
      2. Sélectionnez la plage d'adresses IP précédemment allouée dans le menu déroulant "Allocation attribuée".
      3. Cliquez sur le bouton Connexion.
  2. Pour créer une règle Active Directory, procédez comme suit:

    1. Dans la console Google Cloud, accédez à la page NetApp Volumes.

      Accéder à NetApp Volumes

    2. Dans le volet de navigation, cliquez sur Règles Active Directory dans la section Règles.

    3. Cliquez sur le bouton Créer.

    4. Spécifiez un nom pour la règle Active Directory.

    5. Dans le champ Région, sélectionnez la région disponible la plus proche de l'emplacement o�� les instances SQL Server seront hébergées.

    6. Dans la section Informations sur la connexion Active Directory, fournissez les informations suivantes:

      1. Nom du domaine
      2. Adresses du serveur DNS Active Directory
      3. Nom du site Active Directory
      4. Nom de l'unité organisationnelle
      5. Préfixe du nom NetBIOS
    7. Dans la section Identifiants Active Directory, indiquez les identifiants d'un utilisateur autorisé à joindre des ordinateurs au domaine spécifié.

    8. Dans la section Paramètres SMB, indiquez les opérateurs de sauvegarde et les utilisateurs avec droits concernant la sécurité, le cas échéant.

    9. Cliquez sur Créer pour terminer le processus de création d'une règle Active Directory.

  3. Pour créer un pool de stockage, procédez comme suit:

    1. Dans le volet de navigation, cliquez sur Pools de stockage dans la section Stockage.
    2. Cliquez sur le bouton Créer.
    3. Saisissez un nom pour le pool de stockage.
    4. Sous Emplacement, sélectionnez la région disponible la plus proche de l'emplacement où les instances SQL Server seront hébergées.
    5. Sélectionnez un niveau de service répondant aux performances de stockage attendues.
    6. Saisissez la capacité du pool de stockage. La capacité du pool de stockage définit la capacité totale de stockage pouvant être allouée à tous les volumes du pool.
    7. Dans la liste Réseau, sélectionnez le VPC dans lequel les instances SQL Server seront hébergées, comme suit :
      1. Cliquez sur le bouton Configurer la connexion.
      2. Sélectionnez la plage d'adresses IP réservée aux étapes précédentes, puis cliquez sur Continuer.
      3. Cliquez sur le bouton Créer une connexion.
    8. Dans la section Règle Active Directory, sélectionnez Attribuer une règle Active Directory au pool de stockage, puis sélectionnez la règle Active Directory créée à l'étape précédente.
    9. Cliquez sur le bouton Créer pour terminer la création d'un pool de stockage.
  4. Pour créer un nouveau volume de stockage, procédez comme suit:

    1. Dans le volet de navigation, cliquez sur Volumes sous la section Stockage.
    2. Cliquez sur le bouton Créer.
    3. Indiquez le nom du volume de stockage.
    4. Sous Détails du pool de stockage, cliquez sur Sélectionner le pool de stockage pour sélectionner le pool de stockage créé à l'étape précédente.
    5. Dans la section Détails du volume, fournissez les informations suivantes :
      1. Partager le nom
      2. Capacité du volume
    6. Dans la section Configuration de grande capacité, sélectionnez le protocole SMB.
    7. Dans la section Configuration pour le ou les protocoles sélectionnés, sélectionnez Activer la prise en charge du partage d'autorités de certification pour SQL Server, FSLogix.
    8. Cliquez sur le bouton Créer pour terminer la création d'un volume de stockage.

Créer des règles de pare-feu

Pour autoriser les clients à se connecter à SQL Server, autorisez la communication entre les nœuds du cluster de basculement Windows Server (WSFC), et pour autoriser l'équilibreur de charge à effectuer des vérifications d'état, vous devez créer plusieurs règles de pare-feu. Pour simplifier la création de ces règles de pare-feu, vous pouvez utiliser des tags réseau :

  • Le WSFC que vous utilisez est annoté avec le tag wsfc-node.
  • Tous les serveurs, y compris le témoin, sont annotés avec le tag wsfc.

Pour créer des règles de pare-feu qui utilisent ces tags réseau, procédez comme suit:

  1. Revenez à la session Cloud Shell que vous avez précédemment ouverte.
  2. Créez des règles de pare-feu pour les nœuds WSFC.

    SUBNET_CIDR=$(gcloud compute networks subnets describe $SUBNET_NAME --format=value\('ipCidrRange'\))
    
    gcloud compute firewall-rules create allow-all-between-wsfc-nodes \
      --direction=INGRESS \
      --action=allow \
      --rules=tcp,udp,icmp \
      --enable-logging \
      --source-tags=wsfc \
      --target-tags=wsfc \
      --network=$VPC_NAME \
      --priority 10000
    
    gcloud compute firewall-rules create allow-sql-to-wsfc-nodes \
      --direction=INGRESS \
      --action=allow \
      --rules=tcp:1433 \
      --enable-logging \
      --source-ranges=$SUBNET_CIDR \
      --target-tags=wsfc-node \
      --network=$VPC_NAME \
      --priority 10000
    
  3. Créez une règle de pare-feu qui autorise les vérifications d'état à partir des plages d'adresses IP des vérificateurs Google Cloud :

    gcloud compute firewall-rules create allow-health-check-to-wsfc-nodes \
      --direction=INGRESS \
      --action=allow \
      --rules=tcp \
      --source-ranges=130.211.0.0/22,35.191.0.0/16 \
      --target-tags=wsfc-node \
      --network=$VPC_NAME \
      --priority 10000
    

Créer des instances de VM

Vous allez maintenant déployer trois instances de VM pour le cluster de basculement.

Node-1 hébergera l'instance répliquée principale de la base de données SQL Server et node-2 hébergera l'instance répliquée secondaire. Les deux instances de VM doivent :

  • se trouver dans la même région afin qu'elles soient accessibles par un équilibreur de charge réseau passthrough interne ;
  • WSFC et SQL Server 2022 doivent être installés à l'aide de l'image payante SQL Server

  • avoir activé la compatibilité WSFC de Compute Engine.

Pour obtenir un nombre de votes majoritaire et atteindre un quorum pour le scénario de basculement, vous déployez une troisième instance de VM node-3 faisant office de témoin de partage de fichiers.

  1. Revenez à la session Cloud Shell que vous avez précédemment ouverte.
  2. Créez un script pour les nœuds WSFC. Le script installe la fonctionnalité Windows nécessaire et crée des règles de pare-feu pour WSFC et SQL Server :

    cat << "EOF" > specialize-node.ps1
    
    $ErrorActionPreference = "stop"
    
    # Install required Windows features
    Install-WindowsFeature Failover-Clustering -IncludeManagementTools
    Install-WindowsFeature RSAT-AD-PowerShell
    
    # Open firewall for WSFC
    netsh advfirewall firewall add rule name="Allow SQL Server health check" dir=in action=allow protocol=TCP localport=59997
    
    # Open firewall for SQL Server
    netsh advfirewall firewall add rule name="Allow SQL Server" dir=in action=allow protocol=TCP localport=1433
    
    # Open firewall for SQL Server replication
    netsh advfirewall firewall add rule name="Allow SQL Server replication" dir=in action=allow protocol=TCP localport=5022
    
    EOF
    
  3. Créez les instances de VM. Sur les deux VM qui servent de nœuds WSFC, associez un disque de données supplémentaire et activez le clustering de basculement Windows Server en définissant la clé de métadonnées enable-wsfc sur true :

    REGION=$(gcloud config get-value compute/region)
    PD_SIZE=200
    MACHINE_TYPE=n2-standard-8
    
    gcloud compute instances create node-1 \
      --zone $REGION-a \
      --machine-type $MACHINE_TYPE \
      --subnet $SUBNET_NAME \
      --image-family sql-ent-2022-win-2022 \
      --image-project windows-sql-cloud \
      --tags wsfc,wsfc-node \
      --boot-disk-size 50 \
      --boot-disk-type pd-ssd \
      --boot-disk-device-name "node-1" \
      --metadata enable-wsfc=true \
      --metadata-from-file=sysprep-specialize-script-ps1=specialize-node.ps1
    
    gcloud compute instances create node-2 \
      --zone $REGION-b \
      --machine-type $MACHINE_TYPE \
      --subnet $SUBNET_NAME \
      --image-family sql-ent-2022-win-2022 \
      --image-project windows-sql-cloud \
      --tags wsfc,wsfc-node \
      --boot-disk-size 50 \
      --boot-disk-type pd-ssd \
      --boot-disk-device-name "node-2" \
      --metadata enable-wsfc=true \
      --metadata-from-file=sysprep-specialize-script-ps1=specialize-node.ps1
    
    gcloud compute instances create "witness" \
      --zone $REGION-c \
      --machine-type n2-standard-2 \
      --subnet $SUBNET_NAME \
      --image-family=windows-2022 \
      --image-project=windows-cloud \
      --tags wsfc \
      --boot-disk-size 50 \
      --boot-disk-type pd-ssd \
      --metadata sysprep-specialize-script-ps1="add-windowsfeature FS-FileServer"
    
  4. Pour rattacher les trois instances de VM à Active Directory, procédez comme suit pour chacune d'entre elles :

    1. Surveillez le processus d'initialisation de la VM en consultant la sortie de son port série :

      gcloud compute instances tail-serial-port-output NAME
      

      Remplacez NAME par le nom de l'instance de VM.

      Attendez quelques minutes jusqu'à ce que la sortie Instance setup finished s'affiche, puis appuyez sur Ctrl+C. À ce stade, l'instance de VM est prête à être utilisée.

    2. Créez un nom d'utilisateur et un mot de passe pour l'instance de VM.

    3. Connectez-vous à la VM à l'aide du Bureau à distance en vous servant du nom d'utilisateur et du mot de passe créés à l'étape précédente.

    4. Effectuez un clic droit sur le bouton Start (Démarrer) (ou appuyez sur Win+X) et cliquez sur Windows PowerShell (Admin).

    5. Confirmez l'invite d'élévation en cliquant sur Yes (Oui).

    6. Associez l'instance de VM à votre domaine Active Directory et redémarrez-la:

      Add-Computer -Domain DOMAIN -Restart
      

      Remplacez DOMAIN par le nom DNS du domaine Active Directory.

      Attendez que l'instance de VM redémarre.

Attribuer des autorisations de stockage

Pour attribuer des autorisations au stockage de volume cloud, procédez comme suit:

  1. Dans la console Google Cloud, sélectionnez Cloud Volumes, puis le volume que vous venez de créer.

    Volume cloud

  2. Connectez-vous à node-1 à l'aide du Bureau à distance. Connectez-vous avec le compte utilisateur de votre domaine.

  3. Ouvrez l'Explorateur Windows et effectuez un clic droit sur Ce PC.

  4. Sélectionnez Mapper le lecteur réseau.

  5. Collez le chemin d'accès SMB copié dans le dossier.

    Volume cloud

  6. Au moment de la connexion, désactivez l'option "Reconnecter".

  7. Cliquez sur Terminer.

  8. Effectuez un clic droit sur le lecteur réseau mappé, puis sélectionnez Propriétés.

    Volume cloud

  9. Dans l'onglet Sécurité, cliquez sur Modifier.

  10. Supprimez tout le monde et ajoutez le programme d'installation de SQL Server et les comptes de service SQL Server avec des autorisations de contrôle total.

    Volume cloud

  11. Confirmez l'invite d'élévation en cliquant sur Yes (Oui).

Réserver des adresses IP de cluster

Réservez deux adresses IP statiques dans votre VPC, une pour l'adresse IP du cluster WSFC et une autre pour l'équilibreur de charge interne.

  1. Réservez une adresse IP statique pour l'équilibreur de charge interne et enregistrez l'adresse dans une nouvelle variable d'environnement nommée LOADBALANCER_ADDRESS :

    gcloud compute addresses create wsfc \
      --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \
      --subnet $SUBNET_NAME
    
    LOADBALANCER_ADDRESS=$(gcloud compute addresses describe wsfc \
      --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \
      --format=value\(address\)) && \
    echo "Load Balancer IP: $LOADBALANCER_ADDRESS"
    

    Notez l'adresse IP, car vous en aurez besoin plus tard.

  2. Réservez une autre adresse IP statique que vous utilisez comme adresse IP de cluster :

    gcloud compute addresses create wsfc-cluster \
      --subnet $SUBNET_NAME \
      --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) && \
    CLUSTER_ADDRESS=$(gcloud compute addresses describe wsfc-cluster \
      --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \
      --format=value\(address\)) && \
    echo "Cluster IP: $CLUSTER_ADDRESS"
    

    Notez l'adresse IP, car vous en aurez besoin plus tard.

Votre projet et votre VPC sont maintenant prêts pour le déploiement de WSFC et de SQL Server.

Créer un partage de fichiers témoin

Pour préparer witness à servir de témoin de partage de fichiers, créez un partage de fichiers et accordez à vous-même et aux deux nœuds WSFC l'autorisation d'accéder à ce partage :

  1. Connectez-vous à witness à l'aide du Bureau à distance. Connectez-vous avec le compte utilisateur de votre domaine.
  2. Effectuez un clic droit sur le bouton Start (Démarrer) (ou appuyez sur Win+X) et cliquez sur Windows PowerShell (Admin).
  3. Confirmez l'invite d'élévation en cliquant sur Yes (Oui).
  4. Créez le dossier témoin et partagez-le :

    New-Item "C:\QWitness" –type directory
    
    icacls C:\QWitness\ /grant 'node-1$:(OI)(CI)(M)'
    icacls C:\QWitness\ /grant 'node-2$:(OI)(CI)(M)'
    
    New-SmbShare `
      -Name QWitness `
      -Path "C:\QWitness" `
      -Description "SQL File Share Witness" `
      -FullAccess  $env:username,node-1$,node-2$
    

Déployer le cluster de basculement

Vous allez maintenant utiliser les instances de VM pour déployer WSFC et SQL Server.

Déployer WSFC

Vous êtes maintenant prêt à créer le cluster de basculement.

  1. Connectez-vous à node-1 à l'aide du Bureau à distance. Connectez-vous avec le compte utilisateur de votre domaine.
  2. Effectuez un clic droit sur le bouton Start (Démarrer) (ou appuyez sur Win+X) et cliquez sur Windows PowerShell (Admin).
  3. Confirmez l'invite d'élévation en cliquant sur Yes (Oui).
  4. Créez un cluster :

    New-Cluster `
      -Name windows-fci `
      -Node node-1,node-2 `
      -NoStorage `
      -StaticAddress CLUSTER_ADDRESS
    

    Remplacez CLUSTER_ADDRESS par l'adresse IP du cluster que vous avez créée précédemment.

  5. Revenez à la session PowerShell sur witness et accordez à l'objet ordinateur virtuel du cluster l'autorisation d'accéder au partage de fichiers :

    icacls C:\QWitness\ /grant 'windows-fci$:(OI)(CI)(M)'
    Grant-SmbShareAccess `
      -Name QWitness `
      -AccountName 'windows-fci$' `
      -AccessRight Full `
      -Force
    
  6. Revenez à la session PowerShell sur node-1 et configurez le cluster pour utiliser le partage de fichiers sur witness en tant que quorum de cluster :

    Set-ClusterQuorum -FileShareWitness \\witness\QWitness
    
  7. Vérifiez que le cluster a bien été créé :

    Test-Cluster
    

    Vous pouvez voir des avertissements pouvant être ignorés en toute sécurité :

    WARNING: System Configuration - Validate All Drivers Signed: The test reported some warnings..
    WARNING: Network - Validate Network Communication: The test reported some warnings..
    WARNING:
    Test Result:
    HadUnselectedTests, ClusterConditionallyApproved
    Testing has completed for the tests you selected. You should review the warnings in the Report.  A cluster solution is
    supported by Microsoft only if you run all cluster validation tests, and all tests succeed (with or without warnings).
    

    Vous pouvez également lancer le composant logiciel enfichable MMC du gestionnaire de cluster de basculement pour vérifier l'état du cluster en exécutant cluadmin.msc.

  8. Si vous utilisez le service AD géré, ajoutez le compte d'ordinateur utilisé par WSFC au groupe Cloud Service Domain Join Accounts pour pouvoir joindre des instances de VM au domaine :

    Add-ADGroupMember `
      -Identity "Cloud Service Domain Join Accounts" `
      -Members windows-fci$
    

Supprimer l'installation SQL Server par défaut

Vous allez maintenant supprimer l'installation SQL Server par défaut des deux nœuds et la remplacer par une nouvelle configuration FCI.

Pour chacun des deux nœuds WSFC, node-1 et node-2, procédez comme suit :

  1. Effectuez un clic droit sur le bouton Start (Démarrer) (ou appuyez sur Win+X) et cliquez sur Windows PowerShell (Admin).
  2. Confirmez l'invite d'élévation en cliquant sur Yes (Oui).
  3. Supprimez l'instance SQL Server par défaut.

    C:\sql_server_install\Setup.exe /Action=Uninstall /FEATURES=SQL,AS,IS,RS /INSTANCENAME=MSSQLSERVER /Q
    
  4. Supprimez le pilote Microsoft OLE :

    Get-Package -Name "Microsoft OLE*" | Uninstall-Package -Force
    
  5. Supprimez le pilote Microsoft ODBC :

    Get-Package -Name "Microsoft ODBC*" | Uninstall-Package -Force
    
  6. Redémarrez l'ordinateur :

    Restart-Computer
    
  7. Attendez que l'instance de VM redémarre.

Installer SQL Server FCI

Avant d'installer la nouvelle configuration FCI, vérifiez que node-1 est le nœud actif dans le cluster :

  1. Reconnectez-vous à node-1 en utilisant le bureau à distance, puis connectez-vous à l'aide de votre utilisateur de domaine.
  2. Effectuez un clic droit sur le bouton Démarrer (ou appuyez sur Win+X) et sélectionnez Exécuter.
  3. Saisissez cluadmin.msc et sélectionnez OK.
  4. Dans le volet de gauche, accédez à Gestionnaire du cluster de basculement > windows-fci, puis procédez comme suit:

    1. Vérifiez que le serveur hôte actuel est défini sur node-1.

    2. Si le serveur hôte actuel est défini sur node-2, faites un clic droit sur windows-fci dans le volet de gauche, puis sélectionnez Autres actions > Déplacer les ressources principales du cluster > Choisir nœud > node-1, puis cliquez sur OK.

Vous allez maintenant créer une installation de cluster de basculement SQL Server sur node-1 :

  1. Effectuez un clic droit sur le bouton Start (Démarrer) (ou appuyez sur Win+X) et cliquez sur Windows PowerShell (Admin).
  2. Confirmez l'invite d'élévation en cliquant sur Yes (Oui).

  3. Démarrez la configuration de SQL Server :

    & c:\sql_server_install\setup.exe
    
  4. Dans le menu de gauche, sélectionnez Installation.

  5. Sélectionnez Installation d'un nouveau cluster de basculement SQL Server.

  6. Sur la page Édition, saisissez la clé de produit, sélectionnez le type de licence logicielle, puis cliquez sur Suivant.

  7. Sur la page Conditions d'utilisation de la licence, lisez les conditions et, si vous les acceptez, cliquez sur Suivant.

  8. Sur la page Microsoft Update, cliquez sur Next (Suivant) pour lancer l'installation.

  9. Sur la page Installer les règles de cluster de basculement, un avertissement de type Avertissement de vérification du cluster MSCS et un pare-feu Windows s'affichent. Vous pouvez ignorer ces avertissements et cliquer sur Suivant.

  10. Sur la page Sélection des fonctionnalités, sélectionnez Services du moteur de base de données, puis cliquez sur Suivant.

  11. Sur la page Configuration de l'instance, saisissez sql comme nom de réseau, puis cliquez sur Suivant.

  12. Sur la page Groupe de ressources de cluster, vous pouvez ignorer les avertissements de qualification et cliquer sur Suivant.

  13. Sur la page Sélection du disque du cluster, cliquez sur Suivant.

  14. Sur la page Configuration du réseau de cluster, configurez les paramètres suivants, puis cliquez sur Suivant :

    • DHCP: vide
    • Adresse IP : saisissez l'adresse IP de l'équilibreur de charge interne.
  15. Sur la page Configuration du serveur, configurez les paramètres suivants pour l'agent SQL Server et le moteur de base de données SQL Server:

    • Nom du compte : DOMAIN\sql_server, où DOMAIN est le nom NetBIOS de votre domaine Active Directory.
    • Mot de passe: saisissez le mot de passe de l'utilisateur sql_server
  16. Sélectionnez l'onglet Classement, puis choisissez le classement que vous souhaitez utiliser. Cliquez ensuite sur Next (Suivant).

  17. Sur la page Configuration du moteur de base de données, sélectionnez Ajouter l'utilisateur actuel pour désigner l'utilisateur actuel comme administrateur SQL Server. Dans l'onglet Répertoires de données, saisissez le chemin d'accès SMB dans le champ Répertoire racine de données, puis sélectionnez Suivant. Une fenêtre de message s'affiche pour vous indiquer que le compte de service SQL Server dispose d'une autorisation de partage. Sélectionnez Oui pour continuer.

    Volume cloud

  18. Sur la page Prêt à l'installation, vérifiez les paramètres, puis sélectionnez Installer.

  19. Une fois l'installation terminée, sélectionnez Fermer.

Ajoutez maintenant node-2 au cluster de basculement SQL Server :

  1. Connectez-vous à node-2 en utilisant le bureau à distance, puis connectez-vous à l'aide de votre utilisateur de domaine.
  2. Effectuez un clic droit sur le bouton Start (Démarrer) (ou appuyez sur Win+X) et cliquez sur Windows PowerShell (Admin).
  3. Confirmez l'invite d'élévation en cliquant sur Yes (Oui).
  4. Démarrez la configuration de SQL Server :

    & c:\sql_server_install\setup.exe
    
  5. Dans le menu de gauche, sélectionnez Installation.

  6. Sélectionnez Ajouter un nœud à un cluster de basculement SQL Server.

  7. Suivez les instructions de l'assistant d'installation et acceptez les paramètres par défaut jusqu'à atteindre la page Comptes de service.

  8. Sur la page Comptes de service, saisissez le mot de passe que vous avez créé précédemment pour l'agent SQL Server et le moteur de base de données SQL Server. Sélectionnez ensuite Suivant.

  9. Sur la page Prêt à l'installation, vérifiez les paramètres, puis sélectionnez Installer.

  10. Une fois l'installation terminée, sélectionnez Fermer.

Configurer les vérifications d'état

Enfin, configurez le cluster pour exposer un point de terminaison de vérification d'état pouvant être utilisé par un équilibreur de charge interne :

  1. Revenez à la session PowerShell sur node-2.
  2. Initialisez une variable avec l'adresse IP de l'équilibreur de charge.

    $LoadBalancerIP = 'IP_ADDRESS'
    

    Remplacez IP_ADDRESS par l'adresse IP de l'adresse wsfc que vous avez réservée précédemment.

  3. Configurez le cluster de basculement pour qu'il réponde au service de vérification d'état :

    $SqlGroup = Get-ClusterGroup |
      Where-Object {$_.Name.StartsWith("SQL Server")}
    $SqlIpAddress = Get-ClusterResource |
      Where-Object {$_.Name.StartsWith("SQL IP Address")}
    
    $SqlIpAddress | Set-ClusterParameter -Multiple @{
     'Address'=$LoadBalancerIP;
     'ProbePort'= 59997;
     'SubnetMask'='255.255.255.255';
     'Network'= (Get-ClusterNetwork).Name;
     'EnableDhcp'=0; }
    
  4. Redémarrez la ressource de cluster :

    $SqlIpAddress | Stop-ClusterResource
    $SqlIpAddress | Start-ClusterResource
    
  5. Redémarrez le groupe de clusters :

    $SqlGroup | Stop-ClusterGroup
    $SqlGroup | Start-ClusterGroup
    

Créer un équilibreur de charge interne

Afin de fournir un point de terminaison unique aux clients SQL Server, vous allez maintenant déployer un équilibreur de charge interne qui utilise une vérification d'état garantissant que le trafic est dirigé vers le nœud actif de WSFC.

  1. Revenez à la session Cloud Shell que vous avez précédemment ouverte.
  2. Créez un groupe d'instances non géré, puis ajoutez-y les deux nœuds :

    REGION=$(gcloud config get-value compute/region)
    
    gcloud compute instance-groups unmanaged create wsfc-group-a \
      --zone $REGION-a
    gcloud compute instance-groups unmanaged add-instances wsfc-group-a \ 
      --zone $REGION-a --instances node-1
    
    gcloud compute instance-groups unmanaged create wsfc-group-b \
      --zone $REGION-b
    gcloud compute instance-groups unmanaged add-instances wsfc-group-b \ 
    --zone $REGION-b --instances node-2
    
  3. Créez une vérification d'état que l'équilibreur de charge peut utiliser pour déterminer quel est le nœud actif.

    gcloud compute health-checks create tcp wsfc-healthcheck \
      --check-interval="2s" \
      --healthy-threshold=1 \
      --unhealthy-threshold=2 \
      --port=59997 \
      --timeout="1s"
    

    La vérification de l'état sonde le port 59997, qui est le port que vous avez précédemment configuré en tant que ProbePort pour l'adresse IP du cluster WSFC.

  4. Créez un service de backend et ajoutez le groupe d'instances :

    gcloud compute backend-services create wsfc-backend \
      --load-balancing-scheme internal \
      --region $REGION \
      --health-checks wsfc-healthcheck \
      --protocol tcp
    
    gcloud compute backend-services add-backend wsfc-backend \
      --instance-group wsfc-group-a \
      --instance-group-zone $REGION-a \
      --region $REGION
    gcloud compute backend-services add-backend wsfc-backend \
      --instance-group wsfc-group-b \
      --instance-group-zone $REGION-b \
      --region $REGION
    
  5. Créez l'équilibreur de charge interne :

    gcloud compute forwarding-rules create wsfc-sql \
      --load-balancing-scheme internal \
      --address $LOADBALANCER_ADDRESS \
      --ports 1433 \
      --network $VPC_NAME \
      --subnet $SUBNET_NAME \
      --region $REGION \
      --backend-service wsfc-backend
    

Tester le cluster de basculement

Vous avez terminé l'installation du cluster de basculement, mais vous devez encore vérifier si le cluster fonctionne correctement.

Préparer un client

Créez une instance de VM que vous pouvez utiliser pour vous connecter au cluster de basculement :

  1. Revenez à la session Cloud Shell que vous avez précédemment ouverte.
  2. Créez une instance de VM.

    gcloud compute instances create sqlclient \
      --machine-type n2-standard-2 \
      --subnet $SUBNET_NAME \
      --image-family sql-ent-2022-win-2022 \
      --image-project windows-sql-cloud \
      --boot-disk-size 50 \
      --boot-disk-type pd-ssd
    
  3. Surveillez le processus d'initialisation de la VM en consultant la sortie de son port série :

    gcloud compute instances tail-serial-port-output sqlclient
    

    Attendez quelques minutes jusqu'à ce que la configuration de l'instance de sortie soit terminée, puis appuyez sur Ctrl+C. À ce stade, l'instance de VM est prête à être utilisée.

  4. Créez un nom d'utilisateur et un mot de passe pour l'instance de VM.

  5. Connectez-vous à la VM à l'aide du Bureau à distance en vous servant du nom d'utilisateur et du mot de passe créés à l'étape précédente.

  6. Effectuez un clic droit sur le bouton Start (Démarrer) (ou appuyez sur Win+X) et cliquez sur Windows PowerShell (Admin).

  7. Confirmez l'invite d'élévation en cliquant sur Yes (Oui).

  8. Rattachez l'instance de VM à votre domaine Active Directory:

    Add-Computer -Domain DOMAIN
    

    Remplacez DOMAIN par le nom DNS du domaine Active Directory.

  9. Redémarrez l'instance de VM.

    Restart-Computer
    

    Attendez que l'instance de VM redémarre.

Exécuter le test

Utilisez la VM sqlclient pour vérifier que vous pouvez vous connecter au cluster de basculement et vérifier que le basculement fonctionne correctement :

  1. Connectez-vous à sqlclient en utilisant le bureau à distance, puis connectez-vous à l'aide de votre utilisateur de domaine.
  2. Effectuez un clic droit sur le bouton Start (Démarrer) (ou appuyez sur Win+X) et cliquez sur Windows PowerShell.
  3. Connectez-vous au cluster SQL Server en utilisant son nom de réseau sql et interrogez la table dm_os_cluster_nodes :

    & "$env:ProgramFiles\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE" `
       -S sql -E -Q "SELECT * FROM sys.dm_os_cluster_nodes"
    

    Le résultat doit se présenter comme suit :

    NodeName                       status      status_description is_current_owner
    ------------------------------ ----------- ------------------ ----------------
    NODE-1                                   0 up                                1
    NODE-2                                   0 up                                0
    
    (2 rows affected)
    

    Notez que node-1 est le propriétaire actuel de la ressource de cluster de basculement SQL Server.

  4. Revenez à Cloud Shell et désactivez la VM node-1 pour tester le scénario de basculement :

    gcloud compute instances stop node-1
    
  5. Répétez la requête :

    & "$env:ProgramFiles\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE" `
       -S sql -E -Q "SELECT * FROM sys.dm_os_cluster_nodes"
    

    Vous devez à présent obtenir le résultat suivant :

    NodeName                       status      status_description is_current_owner
    ------------------------------ ----------- ------------------ ----------------
    NODE-1                                   1 down                              0
    NODE-2                                   0 up                                1
    
    (2 rows affected)
    

    Malgré la désactivation de node-1, la requête aboutit et indique que node-2 est désormais le propriétaire du cluster de basculement.

Nettoyer

Une fois le tutoriel terminé, vous pouvez procéder au nettoyage des ressources que vous avez créées afin qu'elles ne soient plus comptabilisées dans votre quota et qu'elles ne vous soient plus facturées. Dans les sections suivantes, nous allons voir comment supprimer ou désactiver ces ressources.

Supprimer le projet

Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.

Pour supprimer le projet :

  1. Dans la console Google Cloud, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.