Currently I am working on integration of DRBD with a clustering SW different
>from 'heartbeat'. However, there seems to be a general problem with cluster
integration.
One of the benefits of a cluster is that you have a central intelligence,
which knows about the state of all resources. Depending on that it can be
decide which resource gets active. Status of the resources can be gathered
by probing or capturing events.
The problem with DRBD is that the intelligence about the state is
distributed to the two nodes. In practice you read the state from each nodes
proc filesystem. On the other hand there is some administrative dependency
between these two instances. E.g. you may not switch one instance to primary
if the other one already is primary.
The specific problem I am faced with is that in case of a graceful failover,
the clustering software switches the active node to secondary. After
execution of the appropriate 'drbdsetup /dev/nb0 secondary' command, the
former standby node is switched to primary with the 'drbdsetup /dev/nb0
primary' command. The problem is that these commands are not synchronously
applied to the other node.
This means when switching a node to secondary the other local DRBD still
assumes the other node is primary, which can lead to a Primary/Primary
situation. If this happens the other node is forced into a Standalone state,
which is not what we wanted.
One solution for that can be to provide some kind of synchronous state
transition, which notifies the caller if the other node got the information
as well.
I appreciate your feedback :-)
/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 <mailto:Wolfram.Weyer@force.de>
http://www.forcecomputers.com <http://www.forcecomputers.com/>
=======================================================================
>from 'heartbeat'. However, there seems to be a general problem with cluster
integration.
One of the benefits of a cluster is that you have a central intelligence,
which knows about the state of all resources. Depending on that it can be
decide which resource gets active. Status of the resources can be gathered
by probing or capturing events.
The problem with DRBD is that the intelligence about the state is
distributed to the two nodes. In practice you read the state from each nodes
proc filesystem. On the other hand there is some administrative dependency
between these two instances. E.g. you may not switch one instance to primary
if the other one already is primary.
The specific problem I am faced with is that in case of a graceful failover,
the clustering software switches the active node to secondary. After
execution of the appropriate 'drbdsetup /dev/nb0 secondary' command, the
former standby node is switched to primary with the 'drbdsetup /dev/nb0
primary' command. The problem is that these commands are not synchronously
applied to the other node.
This means when switching a node to secondary the other local DRBD still
assumes the other node is primary, which can lead to a Primary/Primary
situation. If this happens the other node is forced into a Standalone state,
which is not what we wanted.
One solution for that can be to provide some kind of synchronous state
transition, which notifies the caller if the other node got the information
as well.
I appreciate your feedback :-)
/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 <mailto:Wolfram.Weyer@force.de>
http://www.forcecomputers.com <http://www.forcecomputers.com/>
=======================================================================