Aller au contenu

Mise en place d'un cluster de shards MongoDB#

Architecture d'un cluster de shards#

  • Composants principaux : shards, serveurs de configuration (config servers) et routeurs (mongos)
  • Shards : stockent des sous-ensembles de données partitionnées (chunks)
  • Config servers : stockent les métadonnées du cluster et la répartition des chunks
  • Mongos : routeur de requêtes entre les applications et les shards

Configuration des serveurs de configuration (config servers)#

  • Utiliser MongoDB en mode replica set pour les config servers (3 minimum)
  • Lancer les serveurs de configuration avec l'option --configsvr (exemple : mongod --configsvr --replSet --dbpath --port )
  • Configurer le replica set des config servers avec rs.initiate() dans le shell mongo
  • Utiliser les commandes rs.add() et rs.status() pour gérer les membres du replica set

Configuration des routeurs (mongos)#

  • Lancer les instances mongos avec l'option --configdb (exemple : mongos --configdb / --port )
  • Plusieurs instances mongos pour la répartition de charge et la tolérance de panne
  • Les applications se connectent aux instances mongos, qui gèrent le routage des requêtes vers les shards appropriés

Ajout de shards au cluster#

  • Préparer les shards comme replica sets
  • Ajouter les shards au cluster avec la commande sh.addShard() dans le shell mongo connecté à une instance mongos (exemple : sh.addShard("/"))
  • Utiliser sh.status() pour vérifier l'ajout des shards et les informations sur le cluster
  • Activer le sharding pour une base de données avec sh.enableSharding("")
  • Choisir et configurer une shard key pour une collection avec sh.shardCollection()

Monitoring d'un cluster de shards#

  • Utiliser des outils de supervision intégrés tels que mongotop et mongostat
  • Utiliser MongoDB Cloud Manager ou MongoDB Ops Manager pour la surveillance et la gestion du cluster
  • Configurer des alertes pour détecter les problèmes de performance, d'équilibrage ou de capacité
  • Vérifier régulièrement les logs de MongoDB et les rapports de diagnostic pour identifier les problèmes