so that the ips get spread out evenly.
*/
static int find_takeover_node(struct ctdb_context *ctdb,
- struct ctdb_node_map *nodemap, uint32_t mask,
+ struct ctdb_node_map *nodemap,
struct ctdb_public_ip_list *ip,
struct ctdb_public_ip_list *all_ips)
{
*/
static void basic_allocate_unassigned(struct ctdb_context *ctdb,
struct ctdb_node_map *nodemap,
- uint32_t mask,
struct ctdb_public_ip_list *all_ips)
{
struct ctdb_public_ip_list *tmp_ip;
*/
for (tmp_ip=all_ips;tmp_ip;tmp_ip=tmp_ip->next) {
if (tmp_ip->pnn == -1) {
- if (find_takeover_node(ctdb, nodemap, mask, tmp_ip, all_ips)) {
+ if (find_takeover_node(ctdb, nodemap, tmp_ip, all_ips)) {
DEBUG(DEBUG_WARNING,("Failed to find node to cover ip %s\n",
ctdb_addr_to_str(&tmp_ip->addr)));
}
*/
static void basic_failback(struct ctdb_context *ctdb,
struct ctdb_node_map *nodemap,
- uint32_t mask,
struct ctdb_public_ip_list *all_ips,
int num_ips)
{
/* Reassign one of maxnode's VNNs */
for (tmp=all_ips;tmp;tmp=tmp->next) {
if (tmp->pnn == maxnode) {
- (void)find_takeover_node(ctdb, nodemap, mask, tmp, all_ips);
+ (void)find_takeover_node(ctdb, nodemap, tmp, all_ips);
retries++;
goto try_again;;
}
* the IP/node combination that will cost the least.
*/
static void lcp2_allocate_unassigned(struct ctdb_context *ctdb,
- struct ctdb_node_map *nodemap,
- uint32_t mask,
- struct ctdb_public_ip_list *all_ips,
- uint32_t *lcp2_imbalances)
+ struct ctdb_node_map *nodemap,
+ struct ctdb_public_ip_list *all_ips,
+ uint32_t *lcp2_imbalances)
{
struct ctdb_public_ip_list *tmp_ip;
int dstnode;
*/
static void lcp2_failback(struct ctdb_context *ctdb,
struct ctdb_node_map *nodemap,
- uint32_t mask,
struct ctdb_public_ip_list *all_ips,
uint32_t *lcp2_imbalances,
bool *newly_healthy)
static void unassign_unsuitable_ips(struct ctdb_context *ctdb,
struct ctdb_node_map *nodemap,
- struct ctdb_public_ip_list *all_ips,
- uint32_t mask)
+ struct ctdb_public_ip_list *all_ips)
{
struct ctdb_public_ip_list *tmp_ip;
static void ip_alloc_deterministic_ips(struct ctdb_context *ctdb,
struct ctdb_node_map *nodemap,
- struct ctdb_public_ip_list *all_ips,
- uint32_t mask)
+ struct ctdb_public_ip_list *all_ips)
{
struct ctdb_public_ip_list *tmp_ip;
int i;
DEBUG(DEBUG_WARNING, ("WARNING: 'NoIPFailback' set but ignored - incompatible with 'DeterministicIPs\n"));
}
- unassign_unsuitable_ips(ctdb, nodemap, all_ips, mask);
+ unassign_unsuitable_ips(ctdb, nodemap, all_ips);
- basic_allocate_unassigned(ctdb, nodemap, mask, all_ips);
+ basic_allocate_unassigned(ctdb, nodemap, all_ips);
/* No failback here! */
}
static void ip_alloc_nondeterministic_ips(struct ctdb_context *ctdb,
struct ctdb_node_map *nodemap,
- struct ctdb_public_ip_list *all_ips,
- uint32_t mask)
+ struct ctdb_public_ip_list *all_ips)
{
/* This should be pushed down into basic_failback. */
struct ctdb_public_ip_list *tmp_ip;
num_ips++;
}
- unassign_unsuitable_ips(ctdb, nodemap, all_ips, mask);
+ unassign_unsuitable_ips(ctdb, nodemap, all_ips);
- basic_allocate_unassigned(ctdb, nodemap, mask, all_ips);
+ basic_allocate_unassigned(ctdb, nodemap, all_ips);
/* If we don't want IPs to fail back then don't rebalance IPs. */
if (1 == ctdb->tunable.no_ip_failback) {
/* Now, try to make sure the ip adresses are evenly distributed
across the nodes.
*/
- basic_failback(ctdb, nodemap, mask, all_ips, num_ips);
+ basic_failback(ctdb, nodemap, all_ips, num_ips);
}
static void ip_alloc_lcp2(struct ctdb_context *ctdb,
TALLOC_CTX *tmp_ctx = talloc_new(ctdb);
- unassign_unsuitable_ips(ctdb, nodemap, all_ips, mask);
+ unassign_unsuitable_ips(ctdb, nodemap, all_ips);
lcp2_init(tmp_ctx, nodemap, mask, all_ips, &lcp2_imbalances, &newly_healthy);
- lcp2_allocate_unassigned(ctdb, nodemap, mask, all_ips, lcp2_imbalances);
+ lcp2_allocate_unassigned(ctdb, nodemap, all_ips, lcp2_imbalances);
/* If we don't want IPs to fail back then don't rebalance IPs. */
if (1 == ctdb->tunable.no_ip_failback) {
/* Now, try to make sure the ip adresses are evenly distributed
across the nodes.
*/
- lcp2_failback(ctdb, nodemap, mask, all_ips, lcp2_imbalances, newly_healthy);
+ lcp2_failback(ctdb, nodemap, all_ips, lcp2_imbalances, newly_healthy);
finished:
talloc_free(tmp_ctx);
if (1 == ctdb->tunable.lcp2_public_ip_assignment) {
ip_alloc_lcp2(ctdb, nodemap, *all_ips_p, mask);
} else if (1 == ctdb->tunable.deterministic_public_ips) {
- ip_alloc_deterministic_ips(ctdb, nodemap, *all_ips_p, mask);
+ ip_alloc_deterministic_ips(ctdb, nodemap, *all_ips_p);
} else {
- ip_alloc_nondeterministic_ips(ctdb, nodemap, *all_ips_p, mask);
+ ip_alloc_nondeterministic_ips(ctdb, nodemap, *all_ips_p);
}
/* at this point ->pnn is the node which will own each IP