[ClusterLabs Developers] migrate-to and migrate-from for moving Master/Slave roles ?

Jehan-Guillaume de Rorthais jgdr at dalibo.com
Wed Nov 25 19:52:06 EST 2015


Hi guys,

While working on our pgsqlms agent[1], we are now studying how to control all
the steps of a switchover process from the resource agent. 

The tricky part here is the 2nd step of a successful swithover with PostgreSQL
(9.3+):
  (1) shutdown the master first
  (2) make sure the designated slave received **everything** from the old master
  (3) promote the designated slave as master
  (4) start the old master as slave

As far as we understand Pacemaker, migrate-to and migrate-from capabilities
allows to distinguish if we are moving a resource because of a failure or for a
controlled switchover situation. Unfortunately, these capabilities are ignored
for cloned and multi-state resources...

Because of this restriction, we currently don't know from the resource agent
code if we should check the designated slave received everything from the old
master (controlled switchover) or not (we lost the master). In case of
controlled switchover, if the designated slave did not received everything from
the master, we must abort the switchover.

A workaround we could imagine would be to set a special cluster attribute
manually (using crm_attribute) to signal the agent we are going to make a
controlled switchover.

But I bet the cleaner way would be to use migrate-to and migrate-from
capabilities. Did we miss something about them? Is there some plan to support
moving a Master/Slave role using migrate-to and migrate-from at some point? Any
other proposal? ideas?

[1] see "multistate" folder in https://github.com/dalibo/pgsql-resource-agent

Regards,
-- 
Jehan-Guillaume de Rorthais
Dalibo




More information about the Developers mailing list