Cambio de Master caído en un Pool de XenServer
Uno de los defectos que le veo a los Pool de XenServer, es que dependen de que como mínimo uno de los hipervisores sea el Master, en el caso de que este se encuentre inaccesible el Pool deja de estar operativo, aunque las maquinas virtuales siguen funcionando perdemos las funcionalidades de HA, XenMotion, Multipathing e incluso pueden dejar de funcionar los Backups si estas usando XenOrchestra u otra utilidad.
Otro problema que encontramos, es la imposibilidad de conectar directamente al host con XenCenter o XenOrchestra, cuando lo intentamos nos aparecerá el siguiente mensaje
Server 'xxx' in in a pool. To connect to a pool, you must connect to the pool master. Do you want to connect to the pool master 'xxx.xxx.xxx.xxx'?Nos podemos en contrar con varias situaciones, a las cuales hay posibles soluciones
Pool de 2 hosts, solo nos queda el slave
Esta situación es la más sencilla de solucionar, pues tan solo hay que pasar el host restante a maestro, para ello nos conectamos mediante SSH al host y como root ejecutar:
xe pool-emergency-transition-to-masterEsta operación tarda un poco, cuando termina el host es el nuevo master del Pool y por lo tanto ya podemos acceder mediante XenCenter o XenOrchestra
Pool de 2 hosts, solo nos queda el slave pero el HA nos bloquea la operación anterior
En esta situación solo vamos a tener que desactivar el ha antes de pasar el host a master:
xe host-emergency-ha-disable
xe-toolstack-restart
xe pool-emergency-transition-to-masterPool con 2 o más hosts slave y el master esta ausente.
Aquí vamos a tener que ejecutar procesos distintos en los hosts, para el que queramos como master y los otros en slave
Nuevo host Master
xe host-emergency-ha-disable
xe-toolstack-restart
xe pool-emergency-transition-to-masterAhora tenemos que encontrar el ID del host que queremos usar como Master

Identificamos que por ejemplo, queremos el host 1127168, por lo que copiamos el uuid 4caa4603-8cfb-4b87-93ce-300a5d5e62cb
En los hosts Slave hay que ejecutar el cambio de master, también por SSH.
xe pool-designate-new-master host-uuid=4caa4603-8cfb-4b87-93ce-300a5d5e62cbY activamos el ha
xe pool-ha-enablePara verificar si un host es Slave o Master lo podemos ver en /etc/xensource/pool.conf
cat /etc/xensource/pool.conf
mastercat /etc/xensource/pool.conf
slave:xxx.xxx.xxx.xxxEn el master también podemos forzar que los otros hosts se conecten como Slave ejecutando
xe pool-recover-slaves