xCAT Management Node Migration

This document describes how to migrate xCAT Management node to a new node. The following example describes a typical scenario, this example is verified on redhat7.3.

  1. Initially, the first xcat management node is active, and the second node is passive.
  2. Backup all useful xCAT data from xCAT Management node to back-up server at regular intervals.
  3. When the first xCAT management node is broken, use backup to restore original xCAT data to the second node with the same host name and ip.

Backup Old xCAT Management Node

Backup xCAT management node data to backup server:

1.1 Backup xCAT important files and directories:

  1. Get installdir from site table, backup installdir directory, in this case, back up install directory:

    lsdef -t site  clustersite -i installdir
        Object name: clustersite
  2. Backup these two xCAT directories:



    Backing up ~/.xcat is for all users who have xCAT client certs.

  3. If there are customized files and directories for otherpkgdir, pkgdir, pkglist or template in some osimage definitions, backup these files and directories. for example:

    lsdef -t osimage customized_rhels7.4-x86_64-install-compute -i otherpkgdir,pkgdir,pkglist,template
        Object name: customized_rhels7.4-x86_64-install-compute

1.2 Backup ssh related files:


1.3 Backup host files:


1.4 Backup yum resource files:


1.5 Backup conserver conf files:


1.6 Backup DNS related files:


1.7 Backup dhcp files:


1.8 Backup apache:


1.9 Backup tftp files:


1.10 Backup NTP configure file:


1.11 Backup database configure files (optional):

  • [PostgreSQL]


1.12 Backup NFS (optional):


1.13 (optional)

Besides the files mentioned above, there may be some additional customization files and production files that need to be backup, depending on your local unique requirements. Here are some example files that can be considered:


1.14 Backup the xCAT database tables for the current configuration, using command:

dumpxCATdb -p <your_backup_dir>

1.15 Save all installed xCAT RPM names into a file:

rpm -qa|grep -i xCAT > xcat_rpm_names

1.16 (Optional) Find customization made to files installed from packages, backup these files. For example

rpm -q --verify -a conserver-xcat
rpm -q --verify -a xCAT-server
rpm -q --verify -a syslinux-xcat
rpm -q --verify -a xCAT-client
rpm -q --verify -a xCAT

Restore xCAT management node

2.1 Power off old xCAT management server before configuring new xCAT management server

2.2 Configure new xCAT management server using the same ip and hostname as old xCAT management server. Configure the same additional network for hardware management network if needed, for example, bmc network or hmc network. xCAT management server setup refer to Prepare the Management Node

2.3 Overwrite files/directories methioned in above 1.2, 1.3, 1.4 from backup server to new xCAT management server

2.4 Download xcat-core and xcat-dep tar ball, then install xCAT in new xCAT management server, refer to install xCAT

2.5 Use rpm -qa|grep -i xCAT to list all xCAT RPMs in new xCAT management node, compare these RPMs base name with those in xcat_rpm_names from above 1.15. If some RPMs are missing, use yum install <rpm_package_basename> to install missing RPMs.

2.6 If use MySQL/MariaDB/PostgreSQL, migrate xCAT to use MySQL/MariaDB/PostgreSQL refer to Configure a Database

2.7 To restore the xCAT database

  1. Restore xCAT database from the /dbbackup/db directory without auditlog and eventlog, enter:

    restorexCATdb -p /dbbackup/db
  2. Restore the xCAT database including auditlog and eventlog from the /dbbackup/db directory, enter:

    restorexCATdb -a -p /dbbackup/db
  3. (optinal) Overwrite files in above 1.11, restart PostgreSQL:

    service postgresql restart

2.8 Overwrite remaining files/directories methioned in above 1.1, 1.5, 1.6, 1.7, 1.8, 1.9, 1.10, 1.12; If needed, check if files exist based on above 1.13 and 1.16.

2.9 Verify xCAT:

tabdump site

2.10 Restart named, use nslookup to check DNS:

service named restart
nslookup <cn1>

2.11 Restart conserver, use rcons to check console:

service conserver restart
rcons <cn1>

2.12 Configure DHCP:

makedhcp -n
makedhcp -a

2.13 Restart httpd for REST API, for more information refer to Rest API:

service httpd restart