Migration from one failover pair to two pairs; strategy, questions

Nick Urbanik nicku at nicku.org
Fri Jan 18 21:24:39 UTC 2008


Dear Folks,

I am writing code to migrate one ISC DHCP failover pair to two
failover pairs.  I want to state my plan, and ask some questions that
some of you may be able to answer.

MIGRATION PLAN:
===============

To migrate from one pair to two pairs, I propose the following.  Note:
primary, secondary, primary-a, primary-b, secondary-a, secondary-b are
hostnames identifying individual server machines.

The names "set", "seta" and "setb" are the failover peer identifiers
used in failover peer statements in /etc/dhcpd.conf.

1. Start with one failover pair, with one global failover peer
    statement for failover peer identifier "set" in each
    /etc/dhcpd.conf

  +---------+                           +---------+
  | +-----+ |                           | +-----+ |
  | | set | | <-----------------------> | | set | |
  | +-----+ |                           | +-----+ |
  +---------+                           +---------+
  primary                               secondary

2. 2 global failover peer statements in each /etc/dhcpd.conf, two
    machines still in one failover pair.  shared-network declarations
    containing pools where all pools withing one shared network are
    assigned to one of "seta" or "setb" failover peer.

  +---------+                           +---------+
  | +-----+ |                           | +-----+ |
  | |seta | | <-----------------------> | |seta | |
  | +-----+ |                           | +-----+ |
  | +-----+ |                           | +-----+ |
  | |setb | | <-----------------------> | |setb | |
  | +-----+ |                           | +-----+ |
  +---------+                           +---------+
  primary-a                             secondary-a

3. Two global failover peer statements in each /etc/dhcpd.conf,
    introduce one more machine secondary-b.

    Leases transferred from primary-a to secondary-b with failover peer
    name "setb" to secondary-b using failover protocol.  secondary-b
    begins with an empty leases file.

                                        +---------+
                                        | +-----+ |
                            /---------> | |seta | |
                           /            | +-----+ |
  +---------+             /             | +-----+ |
  | +-----+ |            /              | |setb | |
  | |seta | | <---------/               | +-----+ |
  | +-----+ |                           +---------+
  | +-----+ |                           secondary-a
  | |setb | | <----------
  | +-----+ |            \              +---------+
  +---------+             \             | +-----+ |
  primary-a                \----------> | |setb | |
                                        | +-----+ |
                                        +---------+
				       secondary-b

4. One failover peer statement in each /etc/dhcpd.conf.
    leases transferred from secondary-b with failover peer name setb
    to primary-b using failover protocol.   primary-b begins with empty
    leases file.

  +---------+                           +---------+
  | +-----+ |                           | +-----+ |
  | |seta | | <-----------------------> | |seta | |
  | +-----+ |                           | +-----+ |
  +---------+                           +---------+
  primary-a                             secondary-a

  +---------+                           +---------+
  | +-----+ |                           | +-----+ |
  | |seta | | <-----------------------> | |setb | |
  | +-----+ |                           | +-----+ |
  +---------+                           +---------+
  primary-b                             secondary-b


Note: 4. is the final aim of the migration; steps 2, 3 are transitions
between the current situation 1. to the new situation 4.

QUESTIONS:
==========

1. Can I create two global failover peer statements in /etc/dhcpd.conf
    like this (for step 3. above, on primary-a):
failover peer "seta" {
         primary;
         address primary-a;
         port 520;
         peer address secondary-a;
         peer port 520;
         max-response-delay 60;
         max-unacked-updates 10;
         mclt 3600;
         split 128;
         load balance max seconds 3;
}
failover peer "setb" {
         primary;
         address primary-a;
         port 520;
         peer address secondary-b;
         peer port 520;
         max-response-delay 60;
         max-unacked-updates 10;
         mclt 3600;
         split 128;
         load balance max seconds 3;
}

2. Can anyone suggest a better/simpler migration strategy?  Most
    important aim is to avoid any outage.
--
Nick Urbanik   RHCE         http://nicku.org        nicku at nicku.org
GPG: 7FFA CDC7 5A77 0558 DC7A 790A 16DF EC5B BB9D 2C24 ID: BB9D2C24
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <https://lists.isc.org/pipermail/dhcp-users/attachments/20080119/38820e44/attachment.bin>


More information about the dhcp-users mailing list