2 votes

Changer dynamiquement un cluster Cassandra à un nœud en un cluster à deux nœuds

Donc j'ai une application qui sera très dormante la plupart du temps mais qui aura besoin d'une forte augmentation de charge quelques jours par mois. Comme nous déployons sur EC2, je voudrais garder un seul serveur Cassandra actif la plupart du temps et ensuite, pendant les jours de forte charge, je voudrais mettre en place un autre serveur (avec plus de RAM et de CPU que le premier) pour aider à supporter la charge. Quelle est la meilleure façon de faire cela? Dois-je adopter une approche différente?

Quelques notes sur ce que j'ai l'intention de faire:

  • Mettre le nœud en service et le réparer immédiatement
  • Après la période de forte charge, retirer le nœud puissant
  • Utiliser le serveur toujours actif comme nœud seed

Ma principale question est de savoir comment faire en sorte que les nœuds partagent toutes les données, car je veux un facteur de réplication de 2 (de sorte que les deux nœuds aient toutes les données), mais cela ne fonctionnera pas tant qu'il n'y aura qu'un seul serveur. Devrais-je mettre en place 2 serveurs supplémentaires au lieu d'un seul?

1voto

brain99 Points 1762

Il semble que vous pouvez assez facilement changer le facteur de réplication.

Cela est également mentionné sur le wiki de Cassandra, où vous pouvez trouver des instructions pour augmenter ou réduire le facteur de réplication.

Cela signifie qu'il devrait être possible de faire ceci :

  • changer le facteur de réplication de 1 à 2
  • mettre en marche et réparer votre nœud burst afin qu'il reçoive une copie de toutes les données
  • ... travailler ...
  • désactiver le nœud burst
  • revenir au facteur de réplication de 2 à 1
  • exécuter le nettoyage

0voto

CraigJPerry Points 226

Changer le facteur de réplication à la volée ne fonctionne pas très bien dans mon expérience :-( Vous pouvez vous retrouver avec des désaccords de schéma, ce qui prend du temps à réparer, du moins pour moi.

Je réfléchis à voix haute mais une autre possibilité pourrait être (ajuster les délais en conséquence) :

  1. Augmentez la période de grâce du GC dans cassandra.yaml (cela détermine pendant combien de temps les pierres tombales restent en vie avant d'être supprimées du disque) à environ 30 jours
  2. Démarrez un deuxième nœud tous les 15 jours environ, que ce soit nécessaire ou non. Assurez-vous que ses données / journaux de validation, etc. sont conservés entre les exécutions. Cela signifie que vous démarrez plus rapidement lorsque vous avez besoin de démarrer le deuxième nœud
  3. avec plus de RAM et de CPU que le premier

Cassandra divise efficacement la charge de travail en fonction de la quantité de l'anneau dont chaque nœud est responsable. Il pourrait être plus facile d'avoir le 2ème nœud qui double la capacité du premier, ou d'ajouter 2 nœuds de la même taille que le premier, pour une division plus facile de l'anneau.

Cela nécessitera toujours une intervention manuelle avec nodetool lorsque vous abandonnez les nœuds, car les transferts de main inutiles rempliront inutilement le disque restant.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X