uint32_t deterministic_public_ips;
uint32_t disable_when_unhealthy;
uint32_t reclock_ping_period;
+ uint32_t no_ip_failback;
};
/*
}
}
+ /* If we dont want ips to fail back after a node becomes healthy
+ again, we wont even try to reallocat the ip addresses so that
+ they are evenly spread out.
+ This can NOT be used at the same time as DeterministicIPs !
+ */
+ if (1 == ctdb->tunable.no_ip_failback) {
+ if (1 == ctdb->tunable.deterministic_public_ips) {
+ DEBUG(DEBUG_ERR, ("ERROR: You can not use 'DeterministicIPs' and 'NoIPFailback' at the same time\n"));
+ }
+ goto finished;
+ }
+
/* now, try to make sure the ip adresses are evenly distributed
across the node.
}
+ /* finished distributing the public addresses, now just send the
+ info out to the nodes
+ */
+finished:
/* at this point ->pnn is the node which will own each IP
or -1 if there is no node that can cover this ip
{ "EnableBans", 1, offsetof(struct ctdb_tunable, enable_bans) },
{ "DeterministicIPs", 1, offsetof(struct ctdb_tunable, deterministic_public_ips) },
{ "DisableWhenUnhealthy", 0, offsetof(struct ctdb_tunable, disable_when_unhealthy) },
- { "ReclockPingPeriod", 60, offsetof(struct ctdb_tunable, reclock_ping_period) },
+ { "ReclockPingPeriod", 60, offsetof(struct ctdb_tunable, reclock_ping_period) },
+ { "NoIPFailback", 0, offsetof(struct ctdb_tunable, no_ip_failback) },
};
/*