Mon premier problème est que je ne sais pas comment puis-je manuellement promouvoir l'esclave en maître ?
Vous pouvez indiquer à l'une des machines de se rétrograder de MASTER à SLAVE en faisant :
killall -USR2 ucarp
sur le MAÎTRE.
J'utilise keepalived et je ne connais pas grand-chose à ucarp mais j'ai toujours juste désactivé les interfaces master. Cela oblige l'esclave à prendre le relais. Si je veux faire de l'esclave le maître, je le reconfigure et redémarre le service. Je reconfigure ensuite l'ancien maître en esclave, redémarre le service et active les interfaces.
Le texte entre guillemets suivant peut aider à expliquer ce que fait le paramètre advskew.
"advskew :ce paramètre facultatif spécifie de combien de biais l'advbase lors de l'envoi d'annonces CARP. En manipulant advskew, l'hôte CARP maître peut être choisi. Plus le nombre est élevé, moins l'hôte sera préféré lors du choix d'un maître. La valeur par défaut est 0. Les valeurs acceptables vont de 0 à 254." - http://www.openbsd.org/faq/pf/carp.html
"... pour calculer le temps jusqu'à ce qu'un nœud CARP pense qu'il est le maître, calculez 3 * (advbase + (advskew / 255))" - http://kerneltrap.org/node/5607
Donc, si vous avez trois hôtes, un maître et deux esclaves et que les esclaves sont configurés comme ceci :
esclave1 - 3 * 1 + (10 / 255) =3,117 secondes
esclave2 - 3 * 1 + (20 / 255) =3,235 secondes
Ensuite, slave1 deviendra toujours maître avant slave2 car il annonce plus souvent. Si, pour une raison quelconque, l'esclave 1 est en panne, l'esclave 2 deviendra le maître.