Hi,

I wouldn't be able to sleep if I had to make sure to keep 5M zones
consistent with AXFR/IXFR.

Having a database with a tranaction-ids and where I can monitor "slave
seconds behind master" on the slaves makes my job doable.

I think I have not yet understood your concern about scaling horizontally.

Lets say your database size is 40GB. You buy 64GB RAM Servers with 16
cores, install Linux, MariaDB, PowerDNS. PowerDNS connects locally over
unix domain socket. Set MariaDB Page Cache to 40GB. Upon startup of
MariaDB a script is run to select everything, so that no query from pdns
triggers a physical IO. This setup will easily do 40k req/s.

If you have 12 locations with 4 servers each, you have potentially ~2M qps.

Cheers

Thomas

On 11/28/20 11:01 AM, Jianan Wang via Pdns-users wrote:
Hi Chris,

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:

(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?

(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?

(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?

(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.

Thanks for your help!
Jianan.

On Tue, Nov 17, 2020 at 10:11 PM Chris <m...@gbe0.com
<mailto:m...@gbe0.com>> wrote:

    Hi,

    The way I scale it out (this is scaled out to 12 locations currently):

    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.

    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.

    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.

    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.

    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.


    ------------------------------------------------------------------------
    *From:* Pdns-users <pdns-users-boun...@mailman.powerdns.com
    <mailto:pdns-users-boun...@mailman.powerdns.com>> on behalf of
    Jianan Wang via Pdns-users <pdns-users@mailman.powerdns.com
    <mailto:pdns-users@mailman.powerdns.com>>
    *Sent:* Wednesday, 18 November 2020 00:05
    *To:* pdns-users@mailman.powerdns.com
    <mailto:pdns-users@mailman.powerdns.com>
    <pdns-users@mailman.powerdns.com
    <mailto:pdns-users@mailman.powerdns.com>>
    *Subject:* Re: [Pdns-users] Question about Powerdns remote database
    backend best practices
    Hi Thomas,

    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?

    Thanks.
    Jianan.--
    Jianan Wang




--
Jianan Wang

_______________________________________________
Pdns-users mailing list
Pdns-users@mailman.powerdns.com
https://mailman.powerdns.com/mailman/listinfo/pdns-users

_______________________________________________
Pdns-users mailing list
Pdns-users@mailman.powerdns.com
https://mailman.powerdns.com/mailman/listinfo/pdns-users

Reply via email to