I have examined the interface to the heartbeat software and found it quite
rudimentary. In the case heartbeat needs to activate or deactivate a
resource a simple 'drdbsetup primary' or 'drbdsetup secondary' is issued.
There is no code that checks about the actual status of drbd, which means
that in cases that are not mainstream it is most likely that you get in some
kind of curious condition. This code works as long as you are running simple
"reset this node", "switch off that node" scenarios. However real life is
more complex. Several times during my testing I e.g. found both nodes
primary, one node in state WFConnection the other one as StandAlone.
In our next integration step we would like to integrate DRBD into a
commercial HighAvailability framework that allows to handle more complex
situations. Easy operations like graceful failover of DRBD devices should be
possible and the status of the local resources (like DRBD) should be
monitored.
However I see some difficulties to control DRBD from two nodes because there
definitely is some dependency regarding the state.
Is there any state-diagram that shows the different states and transitions
regarding the strings shown in /proc/drbd?
Is there any recommended procedure to do a graceful failover? Should it be
done from both sides issueing the appropriate 'drbdsetup secondary' and
'drbdsetup primary' commands or is it better to do everything from the new
active node using the 'secondary_remote' feature.
Has anyone else experiences with integrating DRBD with other HA software
beside 'heartbeat'?
/Wolfram
=======================================================================
Wolfram Weyer FORCE COMPUTERS GmbH
Staff Engineer - Systems Engineering A Solectron Subsidiary
phone: +49 89 60814-523 Street: Prof.-Messerschmitt-Str. 1
fax: +49 89 60814-112 City: D-85579 Neubiberg/Muenchen
mailto:Wolfram.Weyer@example.com http://www.forcecomputers.com
=======================================================================
rudimentary. In the case heartbeat needs to activate or deactivate a
resource a simple 'drdbsetup primary' or 'drbdsetup secondary' is issued.
There is no code that checks about the actual status of drbd, which means
that in cases that are not mainstream it is most likely that you get in some
kind of curious condition. This code works as long as you are running simple
"reset this node", "switch off that node" scenarios. However real life is
more complex. Several times during my testing I e.g. found both nodes
primary, one node in state WFConnection the other one as StandAlone.
In our next integration step we would like to integrate DRBD into a
commercial HighAvailability framework that allows to handle more complex
situations. Easy operations like graceful failover of DRBD devices should be
possible and the status of the local resources (like DRBD) should be
monitored.
However I see some difficulties to control DRBD from two nodes because there
definitely is some dependency regarding the state.
Is there any state-diagram that shows the different states and transitions
regarding the strings shown in /proc/drbd?
Is there any recommended procedure to do a graceful failover? Should it be
done from both sides issueing the appropriate 'drbdsetup secondary' and
'drbdsetup primary' commands or is it better to do everything from the new
active node using the 'secondary_remote' feature.
Has anyone else experiences with integrating DRBD with other HA software
beside 'heartbeat'?
/Wolfram
=======================================================================
Wolfram Weyer FORCE COMPUTERS GmbH
Staff Engineer - Systems Engineering A Solectron Subsidiary
phone: +49 89 60814-523 Street: Prof.-Messerschmitt-Str. 1
fax: +49 89 60814-112 City: D-85579 Neubiberg/Muenchen
mailto:Wolfram.Weyer@example.com http://www.forcecomputers.com
=======================================================================