Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
Hi,
I'm building a 2-node cluster, and I only have 1 node built at the moment.
I'm planning to use DRBD as a primary-primary shared storage device. When
I reboot the machine, the DRBD service starts, but it doesn't activate the
resource and create the /dev/drbd1 device node.
My config file is below:
global { usage-count no; }
common { syncer { rate 10M; } }
resource r0
{
protocol C;
net
{
cram-hmac-alg sha1;
shared-secret "password";
}
on server1
{
device /dev/drbd1;
disk /dev/sda6;
address 10.0.0.1:7789;
meta-disk internal;
}
on server2
{
device /dev/drbd1;
disk /dev/sda6;
address 10.0.0.1:7789;
meta-disk internal;
}
I am using GFS.
1) Would it come up correctly if both peers were available and accessible?
2) Is there a standard way of ensuring that if the 2nd node is not
accessible after some timeout (e.g. 10-30 seconds), the current node sets
the local instance as primary and create the device node?
3) Is there a sane way to handle the condition where both nodes come up
individually and only then the connection is restored? Obviously, the
disks would not be consistent, but they would both be working by that
point. Resyncing the BD underneath GFS would probably trash whichever
node's data is being overwritten. Is there a method available to prevent
this split-brain condition? One option I can see is to not sync. GFS would
ry to mount, notice the other node up but not using it's journal, and
cluster would end up fencing one node. It'd be a race on which one gets
fenced, but that isn't a huge problem.
But first I need to ensure that the local DRBD powers up even if the peer
isn't around. Is there a config option for that?
Thanks.
Gordan