Perte des données lors d'un ajout de serveur

60 views
Skip to first unread message

Rémi Montagu

unread,
Apr 4, 2012, 4:01:26 AM4/4/12
to elastics...@googlegroups.com
Bonjour,

Hier j'ai eu la désagréable expérience d'avoir perdu mes index lorsque j'ai voulu ajouter un serveur a ma configuration.

J'avais un serveur unique qui contenait une version de ES "parfaite".
J'ai installé ES sur un autre serveur. J'ai modifié la configuration et ajouté la ligne suivante:
discovery.zen.ping.unicast.hosts: ["ip.de.lautre.serveur"]
J'ai ajouté cette même ligne en changeant l'adresse IP et j'ai restart les deux serveurs ES.
Je m'attendais a un transfert des données, des index, des mappings du serveur initial vers l'autre serveur mais rien ne s'est fait. Au contraire, mon dossier data est devenu vide et j'ai du tout recommencer.

Maintenant, presque tout remarche. La seule chose qui ne marche pas c'est quand je veux voir le document directement depuis son url (monip:9200/index/type/id), une fois sur deux j'ai le message suivant:
{"error":"NullPointerException[null]","status":500}

J'aimerais savoir comment vous avez géré ce cas de multiserveur. Je pensais vraiment que ce genre de soucis n'arriverais pas.

Cordialement.

da...@pilato.fr

unread,
Apr 4, 2012, 4:11:18 AM4/4/12
to elastics...@googlegroups.com

Hum. Etrange ça.

 

Ca ressemble au cas où les deux noeuds du cluster ont démarré sans se voir l'un et l'autre.

Du coup, le noeud 2 qui ne contenait rien disait : j'ai la bonne conf et si un autre noeud arrive, je vais lui envoyer.

L'autre aussi mais visiblement c'est le noeud 2 qui a gagné.

 

Tu as conservé tes logs ?

 

Si oui, tu devrais voir justement si par hasard le deuxième noeud n'aurait pas été élu comme maître ("elected as master" je crois).

 

Le noeud 1 tournait bien avant le démarrage du noeud 2 ?

Avais-tu relancé le noeud 1 avec la nouvelle conf ?

 

David.

 

 

--
---
Vous pouvez également poster et consulter les réponses en anglais sur le groupe Elasticsearch https://groups.google.com/group/elasticsearch
 
Si vous avez également posté votre question sur la mailing list elasti...@googlegroups.com, merci d'indiquer ici le lien vers cette discussion pour faciliter le suivi.
 
Twitter : @ElasticsearchFR https://twitter.com/#!/ElasticsearchFR
Site web (English) : http://www.elasticsearch.org/

 


--
David Pilato
http://dev.david.pilato.fr/
Twitter : @dadoonet

Rémi Montagu

unread,
Apr 4, 2012, 5:05:44 AM4/4/12
to elastics...@googlegroups.com, da...@pilato.fr
Tu as tout a fait raison David, en regardant les logs du deuxième serveur, on voit (elected_as_master).
Comment il faut faire alors pour ajouter un autre serveur?
1 - Je change la configuration des serveurs actuellement en route pour ajouter la future IP du nouveau serveur qui n'a jamais été lancé.
2 - Je restart tout les serveurs actifs pour qu'il prennent cette nouvelle adresse IP.
3 - Je change la configuration du nouveau serveur pour ajouter les adresses IP des autres serveurs.
4 - Je start mon new serveur.
Tu as déjà fais cela?

Le nœud 1 marchais très bien avant. J'avais changer son fichier de configuration et je l'avais restart.
Par contre, j'avais aussi start l'autre serveur dans son coin pour voir si ma conf de base marchais. J'aurais peu être pas du le faire -_-

Les deux serveurs sont en:
node.master: true
node.data: true
C'est peu être ça aussi?

Merci de ta réponse.

da...@pilato.fr

unread,
Apr 4, 2012, 5:17:50 AM4/4/12
to elastics...@googlegroups.com

Oui je pense que la bonne pratique est d'abord de faire en sorte que les noeuds en Production aient d'abord leur conf bien à jour avant d'ajouter des nouveaux noeuds.

Le restart de chaque noeud doit vraiment se faire un par un. Il faut ensuite laisser le temps à ton cluster de repasser en état Green avant de stopper les autres noeuds et redémarrer. Il faut laisser la réplication se faire correctement.

 

Non, je ne l'ai pas encore fait (en PROD j'entends) car pour le moment j'ai uniquement deux noeuds en PROD (et je dirais qu'ils sont payés à rien faire - je ne sais pas si j'atteins les 1% de CPU utilisé !) ;-)

 

Par contre, c'est troublant que les deux noeuds soient forcés en node.master ! Tu ne devrais pas je pense mettre cette option et laisser faire par défaut.

Je pense que ton problème vient vraiment de là !

 

node.data : true, c'est aussi par défaut. Pas la peine de le préciser.

 

David.

 

discovery.zen.ping.unicast. hosts: ["ip.de.lautre.serveur"]
J'ai ajouté cette même ligne en changeant l'adresse IP et j'ai restart les deux serveurs ES.
Je m'attendais a un transfert des données, des index, des mappings du serveur initial vers l'autre serveur mais rien ne s'est fait. Au contraire, mon dossier data est devenu vide et j'ai du tout recommencer.

Maintenant, presque tout remarche. La seule chose qui ne marche pas c'est quand je veux voir le document directement depuis son url (monip:9200/index/type/id), une fois sur deux j'ai le message suivant:
           {"error":" NullPointerException[null]"," status":500}
           

J'aimerais savoir comment vous avez géré ce cas de multiserveur. Je pensais vraiment que ce genre de soucis n'arriverais pas.

Cordialement.

 

--
---
Vous pouvez également poster et consulter les réponses en anglais sur le groupe Elasticsearch https://groups.google.com/ group/elasticsearch
 
Si vous avez également posté votre question sur la mailing list elasti...@googlegroups.com , merci d'indiquer ici le lien vers cette discussion pour faciliter le suivi.
 
Twitter : @ElasticsearchFR https://twitter.com/#!/ ElasticsearchFR
Site web (English) : http://www.elasticsearch.org/


--
David Pilato
http://dev.david.pilato.fr/
Twitter : @dadoonet

 

 

--
---
Vous pouvez également poster et consulter les réponses en anglais sur le groupe Elasticsearch https://groups.google.com/group/elasticsearch
 
Si vous avez également posté votre question sur la mailing list elasti...@googlegroups.com, merci d'indiquer ici le lien vers cette discussion pour faciliter le suivi.
 
Twitter : @ElasticsearchFR https://twitter.com/#!/ElasticsearchFR
Site web (English) : http://www.elasticsearch.org/

benjamin leviant

unread,
Apr 4, 2012, 7:28:40 AM4/4/12
to elastics...@googlegroups.com
Salut,

pour info la configuration "node.master : true" ne force pas le mode master, mais autorise simplement le nœud à être élu master.

A+

Benjamin

Rémi Montagu

unread,
Apr 4, 2012, 7:58:25 AM4/4/12
to elastics...@googlegroups.com
Merci de vos aides.

Elasticsearch FR

unread,
Apr 4, 2012, 7:58:46 AM4/4/12
to elastics...@googlegroups.com
Merci pour cette information.
Me suis fait avoir là ;-)

David ;-)
Twitter : @dadoonet / @elasticsearchfr
Reply all
Reply to author
Forward
0 new messages