How to save the running state of a node to a new software image

    

Okay, you've logged into a node, installed packages and have gotten it to just the perfect state. Now you want to save the running state of this node back a new Bright Cluster Manager software image. Good plan: it will save you a lot of time moving forward. This article shows how to do that using the Bright Cluster Management Shell (CMSH). Of course this can also be done using the CMGUI, but that's a different "how-to" article.

Let's get started.


The node I've customized is "atom01". To start off with I have the following two software images:

[root@atom-head1 cloud]# ls -l /cm/images
total 8
dr-xr-xr-x 27 root root 4096 Sep 25 00:42 cuda42
dr-xr-xr-x 27 root root 4096 Sep 25 00:42 default-image

First we'll create a new image (you can also clone an existing image).

[atom-head1->softwareimage]% add tweaked-image
[atom-head1->softwareimage*[tweaked-image*]]% clear kernelversion
[atom-head1->softwareimage*[tweaked-image*]]% commit
[atom-head1->softwareimage[tweaked-image]]% device

My new image has been created.

[atom-head1->softwareimage[tweaked-image]]% !ls -l /cm/images
total 12
dr-xr-xr-x 27 root root 4096 Sep 25 00:42 cuda42
dr-xr-xr-x 27 root root 4096 Sep 25 00:42 default-image
drwxr-xr-x  2 root root 4096 Dec  5 11:01 tweaked-image

Now let's grab the image.

[atom-head1->device]% grabimage -i tweaked-image -w atom01
[atom-head1->device]%
Wed Dec  5 11:04:23 2012 [notice] atom-head1: Provisioning started:
sending atom01:/ to atom-head1:/cm/images/tweaked-image, mode GRABNEW,
dry run = no
Wed Dec  5 11:06:48 2012 [notice] atom-head1: Provisioning completed:
sent atom01:/ to atom-head1:/cm/images/tweaked-image, mode GRABNEW, dry
run = no
grabimage -i tweaked-image -w atom01 [ COMPLETED ]

Your next step

Assign the tweaked-image to a node category and reboot a node in that node category to try your new image. You may need to tweak the exclude list.

In device mode, you can see the exclude list using 'get excludelistgrab', or you can modify it
using 'set excludelistgrab'.


[atom-head1->device]% category
[atom-head1->category]% use default
[atom-head1->category[default]]% get excludelistgrab

We're done.

High Performance Computing eBook