-
Notifications
You must be signed in to change notification settings - Fork 173
DNS_master_slave_support
Table of Contents
- Background
- Basic Idea
- External User Interface
- Internal Implementation
- Documentation Change
- Other Design Considerations
This requirement is from the scenario where the users want to use xcat SN as DNS failover, but current xcat DNS structure can not support it because current SN acts as DNS forwarding/caching server, so when MN goes down, SN can not be working independently. See more details in the following defect: https://sourceforge.net/p/xcat/bugs/3863/
Using DDNS master/slave configuration can meet this requirement, after making corresponding configuration on DNS master/slave(/etc/named.conf), the master allows to transfer DNS zones to the DNS slaves, it means when DNS records are updated dynamically(for example, makedns is issued), the auto-sync will be done between the master and slaves without xcat's involvement. So this can make sure DNS records synced between MN and SNs, even MN goes down, SNs can be working for name resolution.
- add to the servicenode.nameserver attribute an additional valid value, 2, that means make it a slave dns (a value of 1 will still mean a forwarding dns).
- makedsn -n can check to see if there are any SNs defined in the servicenode table with nameserver=2, and if so, add them to MN's named.conf.
- if they add their SN definitions in the db after they initially ran makedns -n, then they need to run makedns -n again after adding the SNs.
- for the config of named.conf on the SN, it can still be done by AAsn.pm when xcatd starts on the SN.
This setting(servicenode.nameserver=2) only impacts the behavior of "makedns -n" to generate a different /etc/named.conf supporting dns master/slave mode, "makedns " or "makedns -d " can just keep the current logic to update DNS records on MN(DNS master), then named will be responsible to transfer/sync them to slaves.
The code change in ddns.pm impacts /etc/named.conf on MN(dns master).
Modify the logic for /etc/named.conf generation, get servicenode.nameserver value, if it's 2, indicates servicenode.node(can be noderange or nodegroup) should be set as dns slave, generate /etc/named.conf as below (only list the difference here).
7,9d6 < allow-transfer {; ;...}; < notify yes; < also-notify {; ;...}; 45d41 <
=== AAsn.pm ===
The code change in AAsn.pm impacts /etc/named.conf on SNs(dns slaves), we need to add a new subroutine(for example make_named_conf_slave()) to generate /etc/named.conf with dns slave mode.
In subroutine setup_DNS(), get all the SNs with servicenode.nameserver=2, if I'm in the list(my hostname should be my xcat nodename as known by the management node), then call make_named_conf_slave(), otherwise, keep the current logic($XCATROOT/sbin/makenamed.conf).
The key points in /etc/named.conf on dns slaves are:
options { allow-transfer {none;}; };
zone "xx.xx" in { type slave; masters {<master_IP>; }; file "db.xx.xx"; };
Since there is user interface change for this implementation, so the documentation
[Cluster_Name_Resolution] needs to be updated accordingly.
Need to add comments in the Schema.pm file for the servicenode table ( nameserver attribute) for this new setting, so it will show up on man servicenode.
- '''Required reviewers''': xCAT ALL
- '''Required approvers''': Bruce Potter
- '''Database schema changes''': N/A
- '''Affect on other components''': N/A
- '''External interface changes, documentation, and usability issues''': Yes
- '''Packaging, installation, dependencies''': N/A
- '''Portability and platforms (HW/SW) supported''': N/A
- '''Performance and scaling considerations''': N/A
- '''Migration and coexistence''': Yes
- '''Serviceability''': N/A
- '''Security''': N/A
- '''NLS and accessibility''': N/A
- '''Invention protection''': N/A
- Nov 13, 2024: xCAT 2.17 released.
- Mar 08, 2023: xCAT 2.16.5 released.
- Jun 20, 2022: xCAT 2.16.4 released.
- Nov 17, 2021: xCAT 2.16.3 released.
- May 25, 2021: xCAT 2.16.2 released.
- Nov 06, 2020: xCAT 2.16.1 released.
- Jun 17, 2020: xCAT 2.16 released.
- Mar 06, 2020: xCAT 2.15.1 released.
- Nov 11, 2019: xCAT 2.15 released.
- Mar 29, 2019: xCAT 2.14.6 released.
- Dec 07, 2018: xCAT 2.14.5 released.
- Oct 19, 2018: xCAT 2.14.4 released.
- Aug 24, 2018: xCAT 2.14.3 released.
- Jul 13, 2018: xCAT 2.14.2 released.
- Jun 01, 2018: xCAT 2.14.1 released.
- Apr 20, 2018: xCAT 2.14 released.
- Mar 14, 2018: xCAT 2.13.11 released.
- Jan 26, 2018: xCAT 2.13.10 released.
- Dec 18, 2017: xCAT 2.13.9 released.
- Nov 03, 2017: xCAT 2.13.8 released.
- Sep 22, 2017: xCAT 2.13.7 released.
- Aug 10, 2017: xCAT 2.13.6 released.
- Jun 30, 2017: xCAT 2.13.5 released.
- May 19, 2017: xCAT 2.13.4 released.
- Apr 14, 2017: xCAT 2.13.3 released.
- Feb 24, 2017: xCAT 2.13.2 released.
- Jan 13, 2017: xCAT 2.13.1 released.
- Dec 09, 2016: xCAT 2.13 released.
- Dec 06, 2016: xCAT 2.9.4 (AIX only) released.
- Nov 11, 2016: xCAT 2.12.4 released.
- Sep 30, 2016: xCAT 2.12.3 released.
- Aug 19, 2016: xCAT 2.12.2 released.
- Jul 08, 2016: xCAT 2.12.1 released.
- May 20, 2016: xCAT 2.12 released.
- Apr 22, 2016: xCAT 2.11.1 released.
- Mar 11, 2016: xCAT 2.9.3 (AIX only) released.
- Dec 11, 2015: xCAT 2.11 released.
- Nov 11, 2015: xCAT 2.9.2 (AIX only) released.
- Jul 30, 2015: xCAT 2.10 released.
- Jul 30, 2015: xCAT migrates from sourceforge to github
- Jun 26, 2015: xCAT 2.7.9 released.
- Mar 20, 2015: xCAT 2.9.1 released.
- Dec 12, 2014: xCAT 2.9 released.
- Sep 5, 2014: xCAT 2.8.5 released.
- May 23, 2014: xCAT 2.8.4 released.
- Jan 24, 2014: xCAT 2.7.8 released.
- Nov 15, 2013: xCAT 2.8.3 released.
- Jun 26, 2013: xCAT 2.8.2 released.
- May 17, 2013: xCAT 2.7.7 released.
- May 10, 2013: xCAT 2.8.1 released.
- Feb 28, 2013: xCAT 2.8 released.
- Nov 30, 2012: xCAT 2.7.6 released.
- Oct 29, 2012: xCAT 2.7.5 released.
- Aug 27, 2012: xCAT 2.7.4 released.
- Jun 22, 2012: xCAT 2.7.3 released.
- May 25, 2012: xCAT 2.7.2 released.
- Apr 20, 2012: xCAT 2.7.1 released.
- Mar 19, 2012: xCAT 2.7 released.
- Mar 15, 2012: xCAT 2.6.11 released.
- Jan 23, 2012: xCAT 2.6.10 released.
- Nov 15, 2011: xCAT 2.6.9 released.
- Sep 30, 2011: xCAT 2.6.8 released.
- Aug 26, 2011: xCAT 2.6.6 released.
- May 20, 2011: xCAT 2.6 released.
- Feb 14, 2011: Watson plays on Jeopardy and is managed by xCAT!
- xCAT OS And Hw Support Matrix
- Oct 22, 2010: xCAT 2.5 released.
- Apr 30, 2010: xCAT 2.4 is released.
- Oct 31, 2009: xCAT 2.3 released. xCAT's 10 year anniversary!
- Apr 16, 2009: xCAT 2.2 released.
- Oct 31, 2008: xCAT 2.1 released.
- Sep 12, 2008: Support for xCAT 2 can now be purchased!
- June 9, 2008: xCAT breaths life into (at the time) the fastest supercomputer on the planet
- May 30, 2008: xCAT 2.0 for Linux officially released!
- Oct 31, 2007: IBM open sources xCAT 2.0 to allow collaboration among all of the xCAT users.
- Oct 31, 1999: xCAT 1.0 is born!
xCAT started out as a project in IBM developed by Egan Ford. It was quickly adopted by customers and IBM manufacturing sites to rapidly deploy clusters.