Skip to content

Commit

Permalink
doc: Add docs about looking up Monitors through DNS
Browse files Browse the repository at this point in the history
Signed-off-by: Wido den Hollander <wido@42on.com>
  • Loading branch information
wido committed Sep 6, 2016
1 parent 537cbb3 commit 623db28
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 0 deletions.
2 changes: 2 additions & 0 deletions doc/rados/configuration/mon-config-ref.rst
Expand Up @@ -228,6 +228,7 @@ the monitors. However, if you decide to change the monitor's IP address, you
must follow a specific procedure. See `Changing a Monitor's IP Address`_ for
details.

Monitors can also be found by clients using DNS SRV records. See `Monitor lookup through DNS`_ for details.

Cluster ID
----------
Expand Down Expand Up @@ -854,6 +855,7 @@ Miscellaneous
.. _Monitor Keyrings: ../../../dev/mon-bootstrap#secret-keys
.. _Ceph configuration file: ../ceph-conf/#monitors
.. _Network Configuration Reference: ../network-config-ref
.. _Monitor lookup through DNS: ../mon-lookup-dns
.. _ACID: http://en.wikipedia.org/wiki/ACID
.. _Adding/Removing a Monitor: ../../operations/add-or-rm-mons
.. _Add/Remove a Monitor (ceph-deploy): ../../deployment/ceph-deploy-mon
Expand Down
46 changes: 46 additions & 0 deletions doc/rados/configuration/mon-lookup-dns.rst
@@ -0,0 +1,46 @@
===============================
Looking op Monitors through DNS
===============================

Since version 11.0.0 RADOS supports looking up Monitors through DNS.

This way daemons and clients do not require a *mon host* configuration directive in their ceph.conf configuration file.

Using DNS SRV TCP records clients are able to look up the monitors.

This allows for less configuration on clients and monitors. Using a DNS update clients and daemons can be made aware of changes in the monitor topology.

By default clients and daemons will look for the TCP service called *ceph-mon* which is configured by the *mon_dns_srv_name* configuration directive.

Example
-------
When the DNS search domain is set to *example.com* a DNS zone file might contain the following elements.

First, create records for the Monitors, either IPv4 (A) or IPv6 (AAAA).

::

mon1.example.com. AAAA 2001:db8::100
mon2.example.com. AAAA 2001:db8::200
mon3.example.com. AAAA 2001:db8::300

::

mon1.example.com. A 192.168.0.1
mon2.example.com. A 192.168.0.2
mon3.example.com. A 192.168.0.3


With those records now existing we can create the SRV TCP records with the name *ceph-mon* pointing to the three Monitors.

::

_ceph-mon._tcp.example.com. 60 IN SRV 10 60 6789 mon1.example.com.
_ceph-mon._tcp.example.com. 60 IN SRV 10 60 6789 mon2.example.com.
_ceph-mon._tcp.example.com. 60 IN SRV 10 60 6789 mon3.example.com.

In this case the Monitors are running on port *6789*.

The current implementation in clients and daemons does *not* honor nor respect the weight or priority set in SRV records.

All records returned will be treated equally in a Round Robin fashion.

0 comments on commit 623db28

Please sign in to comment.