
When we want to deploy large numbers of nodes which have the same configuration, the simplest way is to clone. This means the user can customize and tweak one node’s configuration according to his needs. They can verify it’s proper operation, then make this node as template. They can capture an osimage from this template node, and deploy the rest of the nodes with this osimage quickly. xCat (2.8.2 and above) provides this feature which we call Sysclone to help you handle this scenario.
| xCAT version | OS | Tested Version | ARCH | Feature |
|---|---|---|---|---|
| 2.8.2 and later | Centos | 6.3 5.9 | x86_64 | Basic clone node |
| redhat | 6.4 5.9 | x86_64 | Basic clone node | |
| 2.8.3 and later | sles | 11.3 10.4 | x86_64 | Basic clone node |
| 2.8.5 and later | Centos | 6.3 | x86_64 | Add feature: update delta changes(has limitation) |
| redhat | 6.4 | x86_64 | Add feature: update delta changes(has limitation) | |
| sles | 11.3 | x86_64 | Add feature: update delta changes | |
| sles | 10.x | x86_64 | Not support any more |
This section describes how to install or configure a diskful node (we call it a golden-client), capture an osimage from the golden-client. That osimage from the golden-client can be used to install other nodes (called the target nodes).
How to configure xCAT Mgmt Node please refer to Install_xCAT_on_the_Management_Node.
For support Sysclone, we need to install the systemimager rpms on the golden-client.
Download the xcat-dep tarball which includes systemimager rpms. (You might already have the xcat-dep tarball on the mgmt node.)
Go to xcat-dep and get the latest xCAT dependency tarball. Copy the file to the management node and untar it in the appropriate sub-directory of /install/post/otherpkgs. For example:
(For RH/CentOS):
mkdir -p /install/post/otherpkgs/rhels6.3/x86_64/xcat
cd /install/post/otherpkgs/rhels6.3/x86_64/xcat
tar jxvf xcat-dep-*.tar.bz2
(For SLES):
mkdir -p /install/post/otherpkgs/sles11.3/x86_64/xcat
cd /install/post/otherpkgs/sles11.3/x86_64/xcat
tar jxvf xcat-dep-*.tar.bz2
The Golden Client is a regular node for xCAT. When you deploy golden client with xCAT, you just need add a few additional definitions to it's osimage, which will used to install in golden client.
For information on how to install a regular node, read this documentation :
Installing_Stateful_Linux_Nodes#Option_1:_Installing_Stateful_Nodes_Using_ISOs_or_DVDs.
For the osimage to support clone, add the sysclone otherpkglist file and otherpkgdir to osimage definition.
Then use updatenode to install the rpms. For example:
(For RH/Fedora/CentOS):
chdef -t osimage -o <osimage-name> otherpkglist=/opt/xcat/share/xcat/install \
/rh/sysclone.rhels6.x86_64.otherpkgs.pkglist
chdef -t osimage -o <osimage-name> -p otherpkgdir=/install/post/otherpkgs/rhels6.3/x86_64
updatenode <golden-cilent> -S
(For SLES):
chdef -t osimage -o <osimage-name> otherpkglist=/opt/xcat/share/xcat/install \
/sles/sysclone.sles11.x86_64.otherpkgs.pkglist
chdef -t osimage -o <osimage-name> -p otherpkgdir=/install/post/otherpkgs/sles11.3/x86_64
updatenode <golden-cilent> -S
On the Management node, use xCAT command imgcapture to capture an osimage from the golden-client.
imgcapture <golden-client> -t sysclone -o <mycomputeimage>
When imgcapture is run, it pulls the osimage from the golden-client, and creates the image files system and a corresponding osimage definition on the xcat management node. You can use this command to check the osimage attributes.
lsdef -t osimage <mycomputeimage>
The nodeset command configures the node for installation. rsetboot tells the node hardware to boot from the network for the next boot. Powering on the node using rpower starts the installation process:
nodeset <target-node> osimage=<mycomputeimage>
rsetboot <target-node> net
rpower <target-node> boot
If, at a later time, you need to make changes to the golden client (install new rpms, change config files, etc.), you can capture the changes and push them to the already cloned nodes without need to restart cloned nodes. This process will only transfer the deltas, so it will be much faster than the original cloning.
\[Limitation\]: In xcat2.8.5, this feature has limitation in redhat and centos. when your delta changes related bootloader, it would encounter error. This issue will be fixed in xcat higher version. So up to now, in redhat and centos, this feature just update files not related bootloader.
Update delta changes please follow below steps:
1.Make changes to your golden node (install new rpms, change config files, etc.).
2.From the mgmt node, capture the image using the same command as before. Assuming <myimagename> is an existing image, this will only sync the changes to the image on the Management node.</myimagename>
imgcapture <golden-client> -t sysclone -o <myimagename>
To synchronize the changes to your target nodes do the following:
3.1 If you are running xCAT 2.8.5 or later:
For the nodes you want to update with this updated golden image:
updatenode <target-node-range> -S
3.2 If you are running xCAT 2.8.4 or older:
For one of the nodes you want to update, test the update to see which files will be updated:
xdsh <target-node> -s 'si_updateclient --server <mgmtnode-ip> --dry-run --yes'
If it lists files and directories that you do not think should be updated, you need to add them to the exclude list in 3 places:
On the golden node: /etc/systemimager/updateclient.local.exclude
On the mgmt node: /install/sysclone/images/<myimagename>/etc/systemimager/updateclient.local.exclude
On all of the nodes to be updated: /etc/systemimager/updateclient.local.exclude</myimagename>
From the mgmt node, push the updates out to the other nodes:
xdsh <target-node-range> -s 'si_updateclient --server <mgmtnode-ip> --yes'