140 likes | 260 Views
Load-Balanced DNS. - Larry P. Schrof Motorola, Arlington Heights. A Note about DNS. DNS does not inherently support the notion of ordering RFC 1033 explicitly states that resource records are unordered. No global preference field for resource records. (MX RR’s support it, not many others do).
E N D
Load-Balanced DNS - Larry P. Schrof Motorola, Arlington Heights
A Note about DNS • DNS does not inherently support the notion of ordering • RFC 1033 explicitly states that resource records are unordered. • No global preference field for resource records. (MX RR’s support it, not many others do)
Ordering Example zsh[462]: nslookup -type=ns cig.mot.com cig.mot.com nameserver = koala.cig.mot.com cig.mot.com nameserver = motcig.cig.mot.com zsh[463]: nslookup -type=ns cig.mot.com cig.mot.com nameserver = motcig.cig.mot.com cig.mot.com nameserver = koala.cig.mot.com
Common Misconceptions • DNS Load-Balancing is NOT: • Providing multiple DNS servers to reduce the load on any individual DNS server • Returning multiple IP addresses to a query on a single hostname.
What Is Load Balancing? Load Balancing - The act of distributing the use of resources across multiple entities, such that the strain on any given entity in the group is roughly equal to that of the other entities in the group.
Why Load-Balancing Is Important • Assume you have a group of 10 identical, critical servers. Without load-balancing: • If a machine crashes or is unavailable, a denial of service can arise. • Adding a new machine requires notifying all of your users. • All of your users are logging into the machine named “cheetah”, and no one is using “snail”. • Users have to know names for all hosts in the pool. Or worse, they pick just one host and use it all the time.
Initial Motivation • Login servers unbalanced • Number of Users • Load • Each login server was a single point of failure • Current home server scheme promotes inconsistencies within the architecture.
What Does the User Do? Not much. DNS-Load balancing should operate “behind the scenes”. • A user wants to log into a compute server to run a few jobs. • The user types: rlogin comp.cig.mot.com • The user is automatically logged into the least loaded machine in the compute pool.
Alternatives Considered • LSFchooser • dtlogin • round-robin A records • lsnamed • The winner: lsnamed
lsnamed: a summary • Modified bind 8.1.2 source • Load-balancing configuration is done on the fly. No recompiling is necessary. • Unavailable hosts will not be returned • Metrics to determine ‘best host’ are configurable on a per-pool basis. • The best login host could be the one with the least users. The best compute host could be the one with the lowest load-average over the past 5 minutes.
Configuring • A new resource record, ‘MAGIC’, was created to support load-balancing... • login IN MAGIC login <EXPR> • login0 IN A 136.182.13.18 • ... • ... • man lsfintro for details on resource requirements. (<EXPR> above)
Requirements • A reliable, 24x7 production machine to run lsnamed. • Machine running lsnamed must be an LSF client. (See LSF documentation for details)
More Information • DNS-related RFC’s • 1032, 1033, 1034, 1035, 1183, 974, 920, 1536, 1591, 1713 • Bind: • http://www.isc.org/bind.html