1.1 Introduction :

xCAT refers to an Extreme Cloud Administration Toolkit. It is an open-source tool used to deploy and provision the bare metal servers and virtual machines. It also offers the total management linux clusters such as HPC clusters , Webfarms, online gaming infrastructure , clouds, data centers etc.

1.2 Challenge :

In any large clusters such as HPC installing or provisioning the cluster is a complicated task and doing everything manually will become more complicated. Hence, to overcome this problem xCAT grew out to be the most used tool for automation or provisioning  in the linux large clusters. By just deploying the xCAT in the cluster one can easily install or provision the large clusters and you don’t need  to install and configure each and every node manually.

1.3 Agenda :

The main purpose of deploying/installing xCAT in any cluster is ease of installing or provisioning the nodes  in the large cluster. Manually if you are installing 

a large number of nodes, you don’t have to install and configure on each and every node the whole process will be carried out by the xCAT.

1.4 Architecture :

1.5 Requirements:

1.5.1 Hardware Requirement :

Supported Hardware:

 x86_64, x86_64 KVM, x86_64 Esxi

 Memory required: 

For the small cluster size: 4-6 GB

For the medium cluster size: 6-8 GB

For the large cluster size: >16 GB

In our case we are using a small cluster with 4GB memory and CentOS-7 on x86_64 

1.5.2 Software Requirement :

 OS: CentOS , RHEL , SLES 

Packages : xCAT repository(xcat-core , xcat-dep)

xcat-core : http://xcat.org/files/xcat/repos/yum/2.16/xcat-core/

xcat-dep : http://xcat.org/files/xcat/repos/yum/2.16/xcat-dep/rh7/x86_64/ 

1.5.3 Network requirement : 

  In our case we are using 2 network interface for both the nodes :

   One for internet connectivity and other as static with IP’s for management node and for compute node.

1.6 Provider :

1.7 Dependency:

1.8 Installation: 

1.8.1 Configuration files :

1.  Add Host entry in /etc/hosts xcatmn.unixadmin.in xcatmn xcatcn.unixadmin.in xcatcn


management node : xcatmn.unixadmin.in 

compute node : xcatcn.unixadmin.in

   Both must be in the same subnet

2. Disable Selinux in /etc/selinux/config


3. Stop Firewall Service:

systemctl stop firewalld.service

systemctl disable firewalld.service

4. Start NTP Service:

systemctl start chronyd

systemctl enable chronyd

1.8.2 Prepare Management Node: 

1. Ensure that the node has CentOS-7 installed in it , and must have access to the internet.

2. Prepare a full DVD for OS provisioning. In our case we are using CentOS-7-x86_64-Everything-1908.   

3. Check whether the hostname is configured correctly by using the command hostname.

hostname xcatmn.unixadmin.in

4.  Set the node’s IP address to static to reduce the risk of node IP address being lost.

1.8.3 Install xcat :

Manual Install using Software Repositories:

xCAT mainly consists of two software packages: xcat-core and xcat-dep.

xcat-core is the main software package whereas xcat-dep is the dependency package.

For installing xCAT we need to first configure these two software repositories. 

  1. Create a  local repository for xcat-core and xcat-dep:
  2. xcat-core repository: 

Create a xCAT-core.repo  file in /etc/yum.repo.d/ as

   vim xCAT-core.repo 


   name= xCAT 2 Core packages





  1. xcat-dep repository:

     Create a xCAT-dep.repo file in /etc/yum.repo.d/ as

       vim xCAT-dep.repo 


name=xCAT 2 dependencies





  1.  Then install xCAT using yum 

yum install xCAT

 If this is the very first time xCAT has been installed, run the following command to set the environment variables.

source /etc/profile.d/xcat.sh

  1. Then start the xcatd service

systemctl start xcatd

systemctl enable xcatd

  1. Check the xcat version using the command

lsxcatd -a

Version 2.16 (git commit 7fc773bd8e82ff9270bd7832558422dd17e23e66, built Tue Jun 16 16:07:25 EDT 2020)

           This is a Management Node


  1.  Verify whether the xCAT database is being initialized using command

tabdump site

[root@xcatmn network-scripts]# tabdump site












1.9 Configuration : 

Configure the system password for the root users at the compute node, where specify XYZ as the password of your choice.  

chtab key=system passwd.username=root passwd.password=XYZ

Stage 1 : Add your first node xcatcn :


  1. Define the compute node xcatcn with ip and mac address as 00:0C:29:3B:65:9D

mkdef -t node xcatcn –template x86_64-template ip= mac=00:0C:29:3B:65:9D bmc= bmcusername=USERID bmcpassword=PASSW0RD

mkdef -t node xcatcn –template x86_64-template ip= mac=00:0c:29:45:3f:34 bmc= bmcusername=USERID bmcpassword=PASSW0RD

  1. Configure DNS:

makehosts xcatcn

  makedns -n

Stage 2 : Provision the node xcatcn :

  1. Configure DHCP:   

makedhcp -n

  1. Copy all the contents of the DVD iso into /install directory for OS provisioning as,

copycds CentOS-7-x86_64-Everything-1908.iso

By copycds command, the corresponding OS image will be generated automatically .

  1.  List the os image generated using the command 

lsdef -t osimage

centos7.7-x86_64-install-compute  (osimage)

centos7.7-x86_64-netboot-compute  (osimage)

centos7.7-x86_64-statelite-compute  (osimage)

  1. Check whether the management node is ready for provisioning using the command    

xcatprobe xcatmn

rinstall xcatcn osimage=centos7.7-x86_64-install-compute

1.10 Reference :

  1. https://xcat-docs.readthedocs.io/en/stable/guides/install-guides/yum/index.html
  2. https://xcat-docs.readthedocs.io/en/stable/guides/get-started/index.html 
  3. https://xcat-docs.readthedocs.io/en/stable/overview/index.html 


Be the first to comment on "xCAT"

Leave a comment

Your email address will not be published.