La base de données va se fragmenter au fil des insertions/suppressions d'éléments et le volume des données va devenir plus faible que l'espace disque consommé ( dans /var/lib/mongo ).
Après la version 3, MongoDB propose un nouveau moteur de stockage de données appelé WiredTiger, qui permet d'avoir de meilleures performances et un espace disque consommé plus faible avec moins de fragmentation et une compression de donnée.
Il y a 2 situations ou vous aurez à utiliser la procédure de migration de MMapV1 vers WiredTiger:
Vérifier que le type de moteur de stockage est bien MMapv1 à l'aide de la commande suivante :
mongo shinken --quiet --eval "print(db.serverStatus().storageEngine.name)" |
Le retour de la commande doit être MMapv1.
| Si le retour est wiredTiger, alors la base de données est déjà migrée et vous n'avez pas besoin de continuer cette procédure. |
La migration se fait à froid, avec MongoDB éteint. Shinken devra donc par conséquent être stoppé plus ou moins longtemps durant la migration.
Nous disposons de trois procédures qui permettent de s'adapter à chacun de vos besoins.
Le choix de la procédure se fera donc en fonction de vos contraintes, notamment sur la durée d'interruption de service de Shinken ou la possibilité d'avoir une machine tierce avec une installation Shinken.
Il est possible de migrer la base directement sur le serveur de production.
Afin de réduire le temps d'arrêt de Shinken, il est possible de migrer les données les plus volumineuses sur une machine tierce ( disposant d'une installation de Shinken ), permettant à Shinken de continuer à délivrer son service pendant la migration.
Cette procédure s'adresse aux installations utilisant un cluster MongoDB.
La méthode est plus rapide et le temps d'interruption de service se limite au temps d'intervention sur le nœud primaire du cluster.