Table of Contents
{{:Design Warning}}
This feature aims to capture the image from running node to create a stateless/statelite image. Currently it support Linux only.
Basic Idea
There're many available capture utility candidates, including cpio, tar, pax and afio. These utilites handle the files as the targets to be archieved and they are capable of excluding specific files and/or directories from the targets. They are even create a single archive which contains files from multiple file systems.
Note: the cpio utility was standardized in POSIX. 1-1988, and was dropped from the later version, starting with POSIX. 1-2001 due to its 8 GB filesize limit. The POSIX standardized pax utility can be used to read and write cpio archives instead.
-
In order to capture the Linux image, we need to specify one diskful Linux node.
-
We also need one file to contain the files excluded from the image, the files and directories in this file will be excluded.
-
The diskful Linux node should be managed by xCAT, because xdsh and xdcp are necessary.
-
Following the existing genimage code to generate stateless image:
/bin/find . ! -path './xxxx*' |cpio -H newc -o |gzip -c - > /tmp/rootimg.gz
-
Use the xdcp command to copy the rootimg.gz file from the specified diskful node to the MN.
-
Extract the contents of rootimg.gz to /install/netboot////rootimg
-
Run the command genimage
-
Run the packimage or liteimg command
-
Run the _nodeset osimage=
xCAT Interface
New xCAT command: capimage
capimage node [ -p|--profile <profile> ]
Requirements:
- The node here should be one diskful Linux node;
- -p is optional, the user can specify the profile name for the statelite/stateless image to be created; if not specified, the current profile attribute of the node will be used for the image to be created.
The files/direcotries to be excluded
Some files/directories should be excluded when capturing the diskful Linux image from the running node, or else capturing will be failed. In my investagation, the following directories should be excluded:
/tmp/
/proc/
/sys/
/dev/
/xcatpost/
/install/
The implementation
-
Parse the paramaters of the capimage command, get the node name and the profile name;
-
Build the command
/bin/find / ! -path './tmp*' ! -path './proc*' ! -path './sys*' ! -path './dev*' ! -path './xcatpost*' ! -path './install*' |cpio -H newc -o |gzip -c - > /tmp/rootimg.gz
-
Use xdsh and the command above to capture and generate the image on the specified diskful node.
-
Use xdcp to copy the /tmp/rootimg.gz file from the specified diskful node
-
Extract the contents of rootimg.gz to the /install/netboot////rootimg directory on MN.
-
Create the directories excluded when capturing the image
/tmp/ /proc/ /sys/ /dev/
The next steps will be documented.
- Run the genimage command
- Run the liteimg/packimage command
- Run the nodeset osimage=
Notes
It seems the root image captured from the diskful node requires many memory capabilities. For example, I captured the image from the diskful Linux node, which is installed by xCAT; then I tried to boot one LPAR with this image, but it always failed until I updated the memory capability to 5120MB. Here is output of the df -h command, you can see the usage of the memory in the stateless mode:
[root@945n02 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
test_ppc64 2.5G 2.3G 190M 93% /
tmpfs 2.5G 0 2.5G 0% /dev/shm
tmpfs 10M 192K 9.9M 2% /tmp
tmpfs 10M 0 10M 0% /var/tmp
News
- 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 Release Notes Summary
- xCAT OS And Hw Support Matrix
- xCAT Test Environment Summary
History
- 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.