round robin DNS en high availability

Pagina: 1
Acties:
  • 222 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ga een website laten draaien over 3 (FreeBSD) servers met apache als webserver. Ik laad de load distributen (niet balancen, dat weet ik) d.m.v. Round Robin in mijn DNS server (BIND).

Nu is mijn vraag of er een oplossing is voor het probleem dat als 1 van de 3 servers nu down gaat 1/3 van het verkeer toch daarheen gestuurd zal worden.

Ik las in deze Dynamic DNS en failover vraag thread dit:
Round Robin DNS - IP-load-balancing (dit houdt in dat u een domeinnaam op twee verschillende IP adresen kunt instellen. In het geval dat er ooit problemen zijn met uw website, zal het systeem automatisch overschakelen naar het alternatieve IP-adres).
Daar zitten naar mijn mening twee fouten in en dat zijn volgens mij nou net de dingen die je zou willen hebben en die RR DNS nou net niet biedt en dat is ten eerste dat RR DNS geen load balancing biedt, maar zoals ik eerder al zei distributing en ten tweede, wat dus mijn probleem is, dat het systeem juist netjes de traffic naar de server zal blijven sturen die down is.

Ik weet al (of denk te weten) dat je dit niet via DNS kunt oplossen, maar is er een andere oplossing?

Ik weet dat een load balancer een oplossing zou zijn hiervoor, maar dat is helaas geen optie (om meerdere redenen, maar een daarvan is NIET dat ik per se de goedkoopste oplossing wil).

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik begrijp overigens dat een lage ttl instellen en vervolgens de server die niet werkt uit je DNS halen als er iets mis gaat een oplossing is, maar ik doel natuurlijk meer op een geautomatiseerde oplossing.

Het is een site met meer dan 200.000 unieke (merendeel amerikaanse) bezoekers per dag, dus het is redelijk belangrijk dat het snel opgelost wordt als er iets fout is.

Acties:
  • 0 Henk 'm!

  • dajappie
  • Registratie: Januari 2005
  • Nu online
Ben wel benieuwd wat je argument tegen een loadbalancer is eerlijk gezegd... twee van die dingen in failover lost veel op maar goed.

Ook al draai je BSD kijk eens op http://www.linux-ha.org/, je kan daarmee machines elkaar in de gaten laten houden en indien nodig het IP en dacht ik zelfs fake MAC-adres over laten nemen als er eentje platgaat. Nog nooit zelf gedaan maar klinkt interessant.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ben wel benieuwd wat je argument tegen een loadbalancer is eerlijk gezegd... twee van die dingen in failover lost veel op maar goed.
Ik heb er geen argumenten tegen, alleen maar voor. Het probleem is dat mijn servers in de USA staan en fysiek ook nog eens kilometers uit elkaar. De host heeft wel load balanced clusters maar weer niet met BSD (en dat is voor mij een grote min, omdat ik altijd met BSD werk). Vandaar.

Wat ik eigenlijk ook wel wil weten of het wel klopt wat ik zeg. Blijft RR DNS traffic naar de server sturen die down is. Ik lees daar nu opeens nog een tegenstrijdig bericht over.

Ik lees dit (van loadbalancing.net):
(over RR DNS) it sends a packet to the first designated server and if the server doesn't respond (because it is busy or down), it sends the packet to the next designated server, and so on until it begins again at the first server.
En ik lees dit (van onjava.com):
Disadvantages RR DNS: No support for high availability. Consider a cluster of n nodes. If a node goes down, then every nth request to the DNS server directs you to the dead node.
Dus wat is het nou zou ik dan zeggen. Werkt het nou wel of niet?

Acties:
  • 0 Henk 'm!

  • dajappie
  • Registratie: Januari 2005
  • Nu online
Even aangenomen dat we het over Bind hebben, die doet bij mijn weten niks om te kijken of een server up-and-running is, zie ook ISC's website zelf http://www.isc.org/index.pl?/sw/bind/docs/bind-load-bal.php. Round robin werkt in dit geval dus niet, tenzij je hele korte TTL's gebruikt en zelf elke keer je zonefile aanpast. Geen idee of (alle) client resolvers slim genoeg zijn om na een mislukt request zelf de andere A-records te gaan proberen, ik lees daar heel verschillende dingen over, zou er niet van uitgaan.

EDIT: Zie ook eens de Bind mailinglist archives op Round Robin http://marc.theaimsgroup....w=2&r=2&s=round+robin&q=b

[ Voor 25% gewijzigd door dajappie op 19-02-2005 18:52 ]


Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Verwijderd schreef op zaterdag 19 februari 2005 @ 18:21:
[...]

Ik heb er geen argumenten tegen, alleen maar voor. Het probleem is dat mijn servers in de USA staan en fysiek ook nog eens kilometers uit elkaar. De host heeft wel load balanced clusters maar weer niet met BSD (en dat is voor mij een grote min, omdat ik altijd met BSD werk). Vandaar.

Wat ik eigenlijk ook wel wil weten of het wel klopt wat ik zeg. Blijft RR DNS traffic naar de server sturen die down is. Ik lees daar nu opeens nog een tegenstrijdig bericht over.

Ik lees dit (van loadbalancing.net):

[...]


En ik lees dit (van onjava.com):

[...]


Dus wat is het nou zou ik dan zeggen. Werkt het nou wel of niet?
Allebei. Het ligt namelijk aan de applicatie. Sommige applicaties zijn slim en proberen de volgende host als de eerste 't niet doet. Andere apps zijn dat niet en kappen er meteen mee.

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Okay, dus al met al samengevat. Wil je zeker zijn van high availability als je round robin dns gebruikt moet je een script hebben dat checked of de verschillende services op de verschillende servers nog up zijn. Als dit niet zo is zou je je dns aan kunnen passen met behulp van nsupdate oid (script gestuurd bedoel ik dan natuurlijk). Dat klinkt al met al toch best te doen. Niet ideaal, maar toch wel werkbaar.

Als er iemand nog andere oplossingen heeft hoor ik het graag.

Acties:
  • 0 Henk 'm!

  • JackBol
  • Registratie: Maart 2000
  • Niet online

JackBol

Security is not an option!

ik heb net net even getest op mijn bind 9.2.1 server, en deze geeft ook gewoon het ip adres van een niet bestaande host terug aan de dns client...

De actuele opbrengst van mijn Tibber Homevolt


Acties:
  • 0 Henk 'm!

  • dajappie
  • Registratie: Januari 2005
  • Nu online
Verwijderd schreef op zaterdag 19 februari 2005 @ 19:36:
Okay, dus al met al samengevat. Wil je zeker zijn van high availability als je round robin dns gebruikt moet je een script hebben dat checked of de verschillende services op de verschillende servers nog up zijn. Als dit niet zo is zou je je dns aan kunnen passen met behulp van nsupdate oid (script gestuurd bedoel ik dan natuurlijk). Dat klinkt al met al toch best te doen. Niet ideaal, maar toch wel werkbaar.
Een mooie, gratis uitvoering hiervan zou zijn via Nagios http://www.nagios.org/ of Big Brother http://www.bb4.org/ om de servicechecks uit te voeren, via een simpel scriptje in geval van falen kan je dan een database-gebaseerde PowerDNS http://www.powerdns.com/ (extreem goede Bind-vervanging) direct je zonefile(s) aanpassen.

Acties:
  • 0 Henk 'm!

Verwijderd

Een goede load balancer detecteert idd zelf of een ip bereikbaar is of niet, round robin dns doet dat zeker niet. Deze loadbalancer hoeft niet persee in het zelfde netwerk / rack te hangen als de servers zelf maar zou je ook ergens anders kunnen plaatsen.

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op zaterdag 19 februari 2005 @ 19:36:
Okay, dus al met al samengevat. Wil je zeker zijn van high availability als je round robin dns gebruikt moet je een script hebben dat checked of de verschillende services op de verschillende servers nog up zijn. Als dit niet zo is zou je je dns aan kunnen passen met behulp van nsupdate oid (script gestuurd bedoel ik dan natuurlijk). Dat klinkt al met al toch best te doen. Niet ideaal, maar toch wel werkbaar.

Als er iemand nog andere oplossingen heeft hoor ik het graag.
nee niet werkbaar. wil je loadbalancing dan is roundrobin ok. wil je high availability dan zal je een andere oplossing moeten vinden.

Het probleem is hier niet de dns aanpassing, maar caching van dns servers waar je geen controle over hebt... (en nee een kleine ttl is geen oplossing daarvoor)
Pagina: 1