PDA

Bekijk Volledige Versie : PowerDNS replication



mvwilderen
26/04/07, 13:30
Hi all,

Ik zit te twijfelen tussen 2 mogelijke setups. Wie heeft er ervaring met een van beide, of heeft ervaring met wellicht alle twee de mogelijkhen.

Setup 1:
ns1.abc.nl
PowerDNS (master) met mySQL backend (master)

ns2.abc.nl
PowerDNS (master) met mySQL backend (Slave)

mySQL doet replication.



Setup 2:
ns1.abc.nl
PowerDNS (master) met mySQL backend (master)

ns2.abc.nl
PowerDNS (slave) met mySQL backend (master)

PowerDNS doet replication



De keuze die ik moet maken, en dus ook meteen de vraag hier is, mysql de replication laten afhandelen, of PowerDNS de replication laten afhandelen.


Note:
- Het zelfde gaat straks op voor ns3.abc.nl
- abc.nl is slechts een voorbeeld.

TotallyHosted
26/04/07, 13:36
Ik weet niet of het nog steeds het geval is, maar in de PowerDNS handleiding stond altijd dat je het beter door MySQL kon laten doen.

Wij werken hier inmiddels al minstens een jaar mee en het werkt perfect. Setup1 dus wat ons betreft.

Thijs
26/04/07, 13:50
Hoezo wil je NS2 als master laten werken ?

Je kunt toch gewoon een slave instellen ?

MySQL replicatie lijkt me wat ver gaa als PowerDNS het zelf ook kan.

mvwilderen
26/04/07, 13:55
@Thijs,

NS1 en NS2 zijn identiek, alleen de database is master-slave.

Ik heb het nu aangepast in mijn FP.

Thijs
26/04/07, 14:29
@Thijs,

NS1 en NS2 zijn identiek, alleen de database is master-slave.

Ik heb het nu aangepast in mijn FP.

Ja en ? Snap je dan wel de functie van een Master en Slave DNS ?

Je moet PowerDNS het gewoon laten regelen, je wil echt geen MySQL replicatie hiervoor.

Je zou namelijk ook Bind kunnen laten functioneren als slave, dit doet de DNS software ook zelf.

Je haalt je wat veel op de hals zo denk ik.

host3000
26/04/07, 14:36
@Thijs,

NS1 en NS2 zijn identiek, alleen de database is master-slave.

Ik heb het nu aangepast in mijn FP.

Je bedoelt dat het dezelfde fysieke machine is?


Laat de dns (bind, powerdns whatever) gewoon op alle IP's luisteren. Je hebt ook geen slave nodig...Dus gewoon één versie van dns en één database....

mvwilderen
26/04/07, 14:38
@Host3000, Nee het zijn 2 verschillende machines.


Je moet PowerDNS het gewoon laten regelen, je wil echt geen MySQL replicatie hiervoor.

Waarom niet ?

groenleer
26/04/07, 14:58
Omdat MySQL clusteren (Een master/slave setup) wat specifieke kennis vereist.

mind
26/04/07, 15:42
Ik zou voor optie 1 gaan... Gebruik ik zelf ook al enige jaren en werkt probleemloos.

Het grootste voordeel is dat alle aanpassingen bijna real-time over de diverse servers verdeeld worden (3 in mijn geval). Nadeel is mischien dat je even het hoofdstuk over replicatie in de mysql doc moet lezen ;)

wv-
26/04/07, 15:43
Native replication is the default, unless other operation is specifically configured. Native replication basically means that PDNS will not send out DNS update notifications, nor will react to them. PDNS assumes that the backend is taking care of replication unaided.

MySQL replication has proven to be very robust and well suited, even over transatlantic connections between badly peering ISPs. Other PDNS users employ Oracle replication which also works very well.

To use native replication, configure your backend storage to do the replication and do not configure PDNS to do so.


Gewoon MySQL replicatie doen dus, als het binnen de mogelijkheden ligt.

mvwilderen
26/04/07, 16:26
Gewoon MySQL replicatie doen dus, als het binnen de mogelijkheden ligt.

MySQL replicatie is geen probleem, heb ik ook al werkend op een test server hier.

PowerDNS met MySQL replicatie wordt het.

Bedankt voor de informatie van iedereen !

wonko
27/04/07, 07:45
wij doen pdns + mysql replication ook al jaren, nog geen enkel probleem mee gehad.

Wido
27/04/07, 07:52
MySQL replicatie voor PowerDNS gebruik ik nu al meer dan 3 jaar, werkt prima :)

Komto
27/04/07, 08:16
wij gebruiken het ook, werkt eigenlijk prima ;)

beenske
27/04/07, 09:08
Ik zou ook voor setup1 kiezen.

Greetz

mvwilderen
27/04/07, 09:15
Nog even 1 vraag, welke versie van mysql gebruiken jullie ?

De 4 serie of al de 5 serie ?

Bedankt zover voor de goede reacties.

Wido
27/04/07, 09:15
Ik heb het met zowel MySQL 4 gedraaid, maar tegenwoordig is het allemaal MySQL 5.0.22 (Ubuntu Dapper).

Ik raad je wel aan je replicatie met een volledig lege database op te zetten, waarna je zodra de replicatie up is, je de tabellen gaat aanmaken en de data gaat inladen.

beenske
27/04/07, 14:16
ik heb 4.1 draaien

Sander-
27/04/07, 14:49
Wido, doen jullie master-master of master-slave?

Thijs
27/04/07, 15:27
Wido, doen jullie master-master of master-slave?

Waarom zou je Master/Master willen ?

Freakingme
27/04/07, 20:40
ik wil geen topic hijacken, maar ik heb nu al even op internet zitten zoeken, maar kan niet niet echt vinden wat de voordelen van pdns zijn tov bind, iemand die hier een link van heeft?

Thijs
27/04/07, 22:06
ik wil geen topic hijacken, maar ik heb nu al even op internet zitten zoeken, maar kan niet niet echt vinden wat de voordelen van pdns zijn tov bind, iemand die hier een link van heeft?

De MySQL backend is erg flexibel maar kan ook een probleem zijn.

Het beste is gewoon bind met een interface waar een DB achter hangt welke de zonefiles aanmaakt met een script.

Je DNS server is dan niet afhankelijk van een database om goed te kunnen functioneren, alleen om te vullen.

Wido
28/04/07, 10:26
Jij zegt het beste, maar dat ben ik niet met je eens.

Jij vind het misschien het beste, maar dat vindt niet iedereen.

PimEffting
28/04/07, 19:04
Heb met beide configuraties ervaringen.
Het opzetten van de MySQL replicatie kan even lastig zijn als je het nog nooit hebt gedaan, daarna werkt het echter als een tiet!

Replicatie op DNS niveau heeft toch wat meer haken en ogen.

h4f
08/05/07, 06:03
ik wil geen topic hijacken, maar ik heb nu al even op internet zitten zoeken, maar kan niet niet echt vinden wat de voordelen van pdns zijn tov bind, iemand die hier een link van heeft?

PDNS is er voorgemaakt om een database als storage te gebruiken, dit heeft als voordeel dat het beheersbaarder is als ook dat je zelf makkelijk een webenabled toepassing kunt maken voor het beheer.

Bind maakt standaard gebruik van zonefiles, als je maar een paar domeinnamen hebt is het nog wel te overzien, maar als je 1000 domeinnamen hebt, en je wilt van allen de TTL verhogen (b.v. om dns traffic/resouce verbruik te verlagen), dan moet je gaan scripten of te wel veel gekloot waarmee je fouten kan maken etc.. Ook moet je per zone een entry aanmaken in de bind config files, één typo kan er voor zorgen dat bind weigert op te starten.

Verder vermoed ik (niet onderzocht) dat BIND bij heel veel domeinen ( > 100.000?) erg traag zal zijn. Ten eerste moet je bind restarten indien je 1 zone file aanpast, dus alle andere domeinen hebben hier last van, de snelheid van de files afhankelijk is van file subsystem, waaraan weinig te tunen valt. En de resources in gebruik hoger zullen liggen dan bij de MySQL/Powerdns combinate.
Door de database storage van de zonefile, kun je per zonefile (dus niet per item in een zonefile, ivm update van serial etc..) wijzigingen doorvoeren, zonder dat je dns deamon/service hoeft te herstarten. Verder kun je aan MySQL veel tunen zodat het altijd sneller zal zijn dan iets (groots) lezen, sorteren en verwerken vanaf disk.

Overigens deel ik niet de mening van anderen dat je MySQL moet laten repliceren.
En wel om twee redenen niet:
Je maakt iets simpels onnodig veel complexer, indien je slechts 1 MySQL server gebruikt dan heb je een single point of failure, gebruik je er twee dan moeten ze op kunnen connecten (security issue, zit je op de één kun je op de ander) de replicatie gaat wel goed, maar mocht één van de twee ooit eens voor langeretijd plat gaan (of door data corruptie) dan ben je erg lang kwijt aan troubleshooten.

Ten tweede je moet uit security overweging een dualvendor policy hanteren, waarbij je voor de zelfde toepassing verschillende producten gebruikt, bind als slave update zichzelf en vergt amper configuratie. Als door een security issue één van de twee niet gebruikt kan worden tot dat er een patch uit is, kun je tenminste die tijd overbruggen.

Bijkomend voordeel is (wat verstandig is) een dedicated bind-slave server op je goedkoopste hardware kunt laten draaien (afgeschreven hardware b.v.), als je die hardend (ook SSH er vanaf of op zijn minst gefilterd) hoef je er niet naar om te kijken, zodra uit je monitoring blijkt dat de server dood is kun je hem vervangen.

Overigens één tip maak na meerdere wijzigingen alijd een backup van je Mysql database, niets is irritanter dan dat je straks wat datatypisten moet inhuren om een paar duizend mutaties in te kloppen vanaf papieren mutatie logfiles. (voorzover bedrijven hier mutatie logs bewaren)