Partager via


Effectuer un scale-out avec des clusters élastiques

Cet article fournit des instructions pas à pas pour effectuer des opérations de mise à l’échelle horizontale pour votre cluster élastique serveur flexible Azure Database pour PostgreSQL.

Les clusters élastiques Azure Database pour PostgreSQL offrent une mise à l’échelle horizontale en ajoutant davantage de nœuds Worker à votre cluster. Lorsque vous mettez à l’échelle votre cluster élastique PostgreSQL, vous pouvez gérer la croissance en donnant à votre base de données plus de ressources ou plus de nœuds pour le traitement des requêtes parallèles. Vous obtenez tous ces avantages avec un temps d’arrêt minimal et une gestion intégrée de la partition.

Méthodes d'extensibilité horizontale

Utilisez l’une des méthodes permettant d’ajouter des nœuds Worker à votre cluster élastique, notamment le portail Azure, l’interface de ligne de commande Azure ou l’automatisation par le biais de modèles et d’API ARM, en fonction de vos besoins en matière de flux de travail et d’automatisation. Les sections suivantes fournissent des instructions étape par étape pour le portail et l'interface de ligne de commande, expliquant le rééquilibrage après la mise à l'échelle.

Utilisation du portail Azure :

  1. Ouvrez la ressource : dans le portail Azure, accédez à votre cluster élastique Azure Database pour PostgreSQL - Serveur flexible.

  2. Accédez à Calcul + Stockage : sous la section Paramètres, sélectionnez Calcul + stockage. Cette page affiche la configuration actuelle des nœuds de votre cluster.

    Capture d’écran montrant la page Vue d’ensemble d’un cluster élastique.

  3. Ajuster le nombre de nœuds : recherchez le champ Nombre de nœuds. Augmentez le nombre total de nœuds souhaité (entre 2 et 20 pour la plupart des clusters en disponibilité générale). Par exemple, pour doubler un cluster de quatre nœuds à huit nœuds, augmentez le curseur à 8. Azure provisionne des nœuds Worker supplémentaires pour atteindre ce nombre.

    Capture d’écran montrant comment sélectionner la page Calcul + stockage.

  4. Appliquer les modifications : sélectionnez Enregistrer. Confirmez l’opération de scale-out lorsque vous y êtes invité. Azure commence à ajouter des nœuds à votre cluster. Cette opération est effectuée en ligne et n’interrompt généralement pas les connexions ou requêtes existantes. Le déploiement peut prendre quelques minutes. Vous pouvez surveiller la progression dans les notifications du portail. Une fois terminé, le nombre de nœuds de votre cluster reflète la nouvelle valeur.

Note

Vous devez déclencher explicitement le processus de rééquilibrage des partitions en arrière-plan pour autoriser la redistribution des données sur tous vos nœuds. Cette opération n’implique aucun temps d’arrêt pour les lectures et les écritures.

Rééquilibrage

Après avoir ajouté des nœuds à votre cluster, toutes les nouvelles modifications de données ou les tables distribuées nouvellement ajoutées utilisent tous les nœuds disponibles. Les partitions de données existantes restent là où elles sont jusqu’à ce qu’elles soient redistribuées. Le rééquilibrage en ligne garantit que les lectures et les écritures de l’application continuent avec une interruption minimale pendant le déplacement des données.

Lorsque vous effectuez un scale-out de votre cluster élastique, le rééquilibrage de votre cluster garantit que vos données existantes sont entièrement distribuées et que votre base de données utilise tous les nœuds disponibles. Utilisez la fonction citus_rebalance_start pour démarrer le processus de rééquilibrage. Cette opération distribue uniformément les données existantes sur tous les nœuds.

SELECT citus_rebalance_start();

Rééquilibrage parallèle

L’opération de rééquilibrage par défaut exécute plusieurs déplacements de segments dans un ordre séquentiel. Dans certains cas, vous préférerez peut-être rééquilibrer plus rapidement au détriment de l’utilisation de ressources supplémentaires telles que le calcul, la mémoire et la bande passante réseau. Dans ces situations, vous pouvez configurer une opération de rééquilibrage pour effectuer de nombreux déplacements de fragments en parallèle.

Le paramètre citus.max_background_task_executors_per_node permet aux tâches telles que le rééquilibrage des partitions de fonctionner en parallèle. Vous pouvez augmenter la valeur par défaut (1) comme vous le souhaitez pour améliorer le parallélisme.

ALTER SYSTEM SET citus.max_background_task_executors_per_node = 2;
SELECT pg_reload_conf();

En outre, vous pouvez configurer la fonction citus_rebalance_start pour rééquilibrer les partitions en fonction de différentes stratégies pour mieux correspondre à votre charge de travail de base de données. Maintenant que vous avez ajouté des exécuteurs de tâches en arrière-plan supplémentaires, voici un exemple de rééquilibrage des partitions à l’aide de travailleurs parallèles :

SELECT citus_rebalance_start(parallel_transfer_colocated_shards := true, parallel_transfer_reference_tables := true);

Considérations

Surveillez votre cluster après la mise à l’échelle : vérifiez l’utilisation du processeur, l’utilisation de la mémoire et la consommation d’E/S sur les graphiques de surveillance du portail Azure pour votre cluster élastique. Après une opération de scale-out, vérifiez que l’ajout de nœuds reflète les améliorations des métriques pour le débit et les temps de réponse, en fonction de votre charge de travail. Ajustez davantage si nécessaire.

La mise à l’échelle d’un cluster élastique influe linéairement sur les coûts en fonction des ressources. L’ajout de nœuds multiplie les coûts de calcul et de stockage par le nombre de nœuds. Par exemple, un cluster à quatre nœuds avec deux vCores coûte environ quatre fois plus cher qu’un serveur à deux vCore unique, car vous exécutez quatre serveurs. Passez toujours en revue l’impact de la tarification dans le portail. Le coût estimé est mis à jour sur le portail Azure lorsque vous modifiez la configuration avant d’économiser pour vous assurer qu’elle répond à votre budget.

Haute disponibilité : si votre cluster dispose d’une haute disponibilité redondante interzone activée, les opérations de mise à l’échelle approvisionnent également des ressources de secours pour les nouveaux nœuds. Le service Azure gère cela automatiquement. Attendez-vous à ce que le scale-out prenne légèrement plus de temps, car il configure des réplicas de haute disponibilité pour chaque nœud ajouté. Les caractéristiques du processus et du temps d'arrêt restent presque identiques, multipliées pour les paires principales et de secours.

Réplicas en lecture : si votre cluster est configuré pour utiliser des réplicas en lecture, vous devez suivre un ordre spécifique d’opérations lors de l’ajout de nœuds à votre cluster. Tout d’abord, ajoutez le nombre de nœuds à votre cluster principal et enregistrez vos modifications. Une fois l’opération terminée, apportez la modification correspondante à votre environnement de réplica en lecture et enregistrez les modifications. Vos nouveaux nœuds sur votre cluster principal ne sont pas éligibles pour les opérations de cluster tant que les environnements de réplica principal et de lecture ne sont pas mis à jour et synchronisés.

Note

La possibilité de supprimer des nœuds d’un cluster élastique (scale-in) n’est pas encore disponible.

En utilisant les techniques de mise à l’échelle précédentes, les clusters élastiques Azure Database pour PostgreSQL vous donnent la possibilité de démarrer petit et de développer votre base de données en toute transparence à mesure que la demande augmente. Vous obtenez la simplicité d’un point de terminaison unique avec la puissance de l’infrastructure Postgres distribuée. Continuez à surveiller la documentation d’Azure pour connaître les dernières mises à jour sur les fonctionnalités des clusters élastiques et les meilleures pratiques pour la mise à l’échelle.