Effectuer le scaling d'un déploiement de VM

Pour gérer le trafic de base de données fluctuant ou stocker davantage de partitions, vous pouvez ajuster le nombre de nœuds de serveur dans votre environnement de machine virtuelle. Suivez ces procédures pour gérer les déploiements de VM.

Avant de commencer

Pour mettre à l'échelle votre déploiement de VM, procédez comme suit :

Nous vous recommandons d'effectuer un scaling vertical jusqu'à 32 Go de mémoire par serveur avant d'ajouter d'autres serveurs pour effectuer un scaling horizontal.

Ajouter des serveurs racine

Pour ajouter un serveur racine à un déploiement de VM, procédez comme suit :

  1. Démarrez un nouveau serveur dans une nouvelle VM d'une zone existante. Initialisez le serveur en utilisant la commande spanner start. L'exemple suivant démarre un serveur racine :

    spanner start \
      --root \
      --server-address=HOSTNAME \
      --zone=ZONE \
      --base-dir=BASE_DIR
    

    Remplacez les éléments suivants :

    • HOSTNAME : nom de domaine complet (FQDN) ou nom d'hôte résolvable de la nouvelle VM (par exemple, new-root-server.example.com).
    • ZONE : zone cible, par exemple us-central1-a.
    • BASE_DIR : chemin d'accès au répertoire dans lequel les données sont stockées (par exemple, /spanner).
  2. Ajoutez le serveur au déploiement existant. Enregistrez le nouveau serveur racine auprès du déploiement principal. Assurez-vous que les arguments de nom d'hôte et de port correspondent aux paramètres utilisés dans la commande spanner start, et spécifiez la zone à attribuer au serveur racine.

    spanner deployment servers create SERVER_ENDPOINT \
      --zone=ZONE \
      --deployment-endpoint=ENDPOINT
    

    Remplacez les éléments suivants :

    • SERVER_ENDPOINT : adresse du nouveau serveur racine, par exemple new-root-server.example.com:15000.
    • ZONE : zone cible, par exemple us-central1-a.
    • ENDPOINT : point de terminaison de votre déploiement principal, par exemple my-spanner-deployment:15000.

    La commande spanner deployment servers create lance une opération de longue durée pour ajouter le serveur au déploiement. Les opérations de longue durée peuvent prendre un temps considérable. Pour en savoir plus, consultez Gérer et observer les opérations de longue durée dans la documentation Spanner.

  3. Vérifiez que le serveur a rejoint le déploiement. Listez les serveurs pour vérifier que le serveur a été enregistré et qu'il est passé à l'état Ready :

    spanner deployment servers list \
      --zone=ZONE \
      --deployment-endpoint=ENDPOINT
    

Ajouter des serveurs non root

Pour ajouter un serveur non racine, démarrez le processus spanner sur une VM et configurez-le pour qu'il se connecte à un ou plusieurs serveurs racines du cluster afin de rejoindre le déploiement.

Cet exemple démarre un serveur non racine et l'ajoute au déploiement :

spanner start \
  --server-address=HOSTNAME \
  --join-servers=JOIN_SERVERS \
  --zone=ZONE \
  --base-dir=BASE_DIR

Remplacez les éléments suivants :

  • HOSTNAME : nom d'hôte de la nouvelle VM (par exemple, new-non-root-server.example.com).
  • JOIN_SERVERS : liste d'adresses de point de terminaison de serveur racine existantes, séparées par une virgule (par exemple, root-server1.example.com:15000).
  • ZONE : nom de la zone, par exemple us-central1-a.
  • BASE_DIR : chemin d'accès au répertoire dans lequel les données sont stockées (par exemple, /spanner).

Supprimer des serveurs

Suivez la même procédure pour supprimer un serveur racine ou non racine. Si vous supprimez un serveur racine, assurez-vous de conserver un nombre impair de serveurs racine au total dans le déploiement (entre 1 et 9).

Pour mettre hors service un serveur de VM, procédez comme suit :

  1. Supprimez le serveur du déploiement :

    spanner deployment servers delete SERVER_ENDPOINT \
      --zone=ZONE \
      --deployment-endpoint=ENDPOINT
    

    Remplacez les éléments suivants :

    • SERVER_ENDPOINT : adresse du serveur à supprimer, par exemple server-to-remove:15000.
    • ZONE : zone contenant le serveur (par exemple, us-central1-a).
    • ENDPOINT : point de terminaison de votre déploiement principal, par exemple my-spanner-deployment:15000.
  2. Attendez que le transfert des données soit terminé. Le temps nécessaire pour déplacer une partition dépend de la taille du datastore hébergé sur le serveur. Surveillez l'état du serveur jusqu'à ce qu'il ne figure plus dans le résultat :

    spanner deployment servers list \
      --zone=ZONE \
      --deployment-endpoint=ENDPOINT
    
  3. Éteignez le processus du serveur. Connectez-vous à la VM et arrêtez le processus spanner.

    Pour éviter la corruption des données ou l'enregistrement de mises à jour conflictuelles par des serveurs déconnectés, ne redémarrez pas le processus spanner sur cette VM en utilisant le même base_dir sans d'abord supprimer les anciens dossiers de données.

Étapes suivantes