<div dir="ltr"><div>Hi Chris,</div><div><br></div><div>Thanks for your detailed explanation on the scaling plan for power dns deployment! It is very helpful from my current standing point, where we use mostly bind based solutions and replication is more through axfr/ixfr. Since it is pretty inspiring, I would like to follow up with some question if you would not mind:</div><div><br></div><div>(1)  Let's say you have master location A and B serving as writer, so it means location C, D's local regional zone will also be written into location A & B's dns instance? Sounds like the trade-off is between simplicity of management compared to write availability for non-master locations. Is the location you mentioned more like within a country or world-wide?</div><div><br></div><div>(2) In your deployment here, it seems like your authoritative servers are the ones being replicated, and you will have local resolvers pointing to them behind the dnslist pairs you mentioned, right?<br></div><div><br></div><div>(3) I bet managing 5 million zones will be a pretty complicated question, so just curious are you guys more a UI based management or git based management in this case?</div><div><br></div><div>(4) Is there any good practice to manage the mysql instance ip? Are you using lvs, vip style or ip anycast solution to point to master so it would be free of changes? Normally we use domain names so that changing ip of mysql instance will not impact all the services. However, since powerdns is relying on this database anyways, meaning we could only use ip or dns served by other instances.</div><div><br></div><div>Thanks for your help!</div><div>Jianan. </div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Nov 17, 2020 at 10:11 PM Chris <<a href="mailto:mail@gbe0.com">mail@gbe0.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">




<div dir="ltr">
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Hi,</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
The way I scale it out (this is scaled out to 12 locations currently):<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
We picked 2 of our large locations to act as master locations. These 2 different locations have an active/standby mariadb server cluster using corosync/drbd (so only 1 server in each location is master at a time). The two locations are setup as master/master
 (mysql replication). These are the servers for which all write changes are applied to. I only put them in two locations as this is much easier to manage and cuts down on replication problems.</div>
<br>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Each of the 12 locations we are in then has at least a pair of servers for PowerDNS. Each of these servers has their own individual copy of the MySQL DB; their copy is read only and they replicate it from the master servers. We only use MySQL to replicate the
 databases, we don't handle that at the DNS level (eg. axfr/ixfr). This way if the masters are taken offline (since they are only in two locations) at least DNS continues to work from the read only copy without changes. It would have to be a very bad day for
 all 4 master servers to do be dead anyway.<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Each of the 12 locations also has at least a pair of dnsdist frontends to accept queries from clients and direct it to the various PowerDNS backends.</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
There is a bit more to it (delayed slaves for DR purposes, different local/remote pools for dnsdist etc.) of course, but thats the basics.</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
We have over 5 million zones and over 40 million records (plus additional things like DNSSEC keys, metadata entries and so on) and so far this has scaled nicely for us.<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div>
<hr style="display:inline-block;width:98%">
<div id="gmail-m_-5854929710825699468divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" face="Calibri, sans-serif" color="#000000"><b>From:</b> Pdns-users <<a href="mailto:pdns-users-bounces@mailman.powerdns.com" target="_blank">pdns-users-bounces@mailman.powerdns.com</a>> on behalf of Jianan Wang via Pdns-users <<a href="mailto:pdns-users@mailman.powerdns.com" target="_blank">pdns-users@mailman.powerdns.com</a>><br>
<b>Sent:</b> Wednesday, 18 November 2020 00:05<br>
<b>To:</b> <a href="mailto:pdns-users@mailman.powerdns.com" target="_blank">pdns-users@mailman.powerdns.com</a> <<a href="mailto:pdns-users@mailman.powerdns.com" target="_blank">pdns-users@mailman.powerdns.com</a>><br>
<b>Subject:</b> Re: [Pdns-users] Question about Powerdns remote database backend best practices</font>
<div> </div>
</div>
<div><span style="font-family:UICTFontTextStyleBody;font-size:17px">Hi Thomas,</span><br style="font-family:UICTFontTextStyleBody;font-size:17px">
<span style="font-family:UICTFontTextStyleBody;font-size:17px"></span><br style="font-family:UICTFontTextStyleBody;font-size:17px">
<span style="font-family:UICTFontTextStyleBody;font-size:17px">Thanks for your response on this! IIUC, what you recommend is still having MySQL and PowerDNS created on one instance and scale the instance setup horizontally? If that’s the case, will the MySQL
 on the single node be bounded by its resources locally to scale when we have a lot of records?</span><br style="font-family:UICTFontTextStyleBody;font-size:17px">
<span style="font-family:UICTFontTextStyleBody;font-size:17px"></span><br style="font-family:UICTFontTextStyleBody;font-size:17px">
<span style="font-family:UICTFontTextStyleBody;font-size:17px">Thanks.</span><br style="font-family:UICTFontTextStyleBody;font-size:17px">
<span style="font-family:UICTFontTextStyleBody;font-size:17px">Jianan.</span>-- <br>
<div dir="ltr">Jianan Wang
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
</div>
</div>
</div>
</div>

</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature">Jianan Wang</div></div>