=head1 NAME

B<snmove> - Change xCAT compute nodes to use a different xCAT service node.

=head1 SYNOPSIS

B<snmove> I<noderange> [B<-d>|B<--dest> I<sn2>] [B<-D>|B<--destn> I<sn2n>] [B<-i>|B<--ignorenodes>] [B<-P>|B<--postscripts> I<script1,script2...>|I<all>]

B<snmove> B<-s>|B<--source> I<sn1> [B<-S>|B<--sourcen> I<sn1n>] [B<-d>|B<--dest> I<sn2>] [B<-D>|B<--destn> I<sn2n>] [B<-i>|B<--ignorenodes>] [B<-P>|B<--postscripts> I<script1,script2...>|I<all>]

B<snmove> [B<-h>|B<--help>|B<-v>|B<--version>]

=head1 DESCRIPTION

The B<snmove> command moves a node or nodes from one service node to
another.

The use of backup service nodes in an xCAT hierarchical cluster can
help improve the overall reliability, availability, and serviceability
of the cluster.

Before you run the B<snmove> command it is assumed that the backup
service node has been configured properly to manage the new node
or nodes. (See the xCAT document named
"Using xCAT Service Nodes with AIX" for information on how to set
up backup AIX service nodes.).

The B<snmove> command can use the information stored in the xCAT
database or information passed in on the command line to determine
the current service node and the backup service node.

To specify the primary and backup service nodes you can set the
"servicenode" attribute of the node definitions.

The B<servicenode> attribute is the hostname of the xCAT service node
as it is known by the management node. The B<xcatmaster> attribute
is the hostname of the xCAT service node as known by the node.
The B<servicenode> attribute should be set to a comma-separated list
so that the primary service node is first and the backup service
node is second.  The B<xcatmaster> attribute must be set to the
hostname of the primary service node as it is known by the node.

When the B<snmove> command is run it modifies the xCAT database to
switch the the primary server to the backup server.

It will also check the other services that are being used for the
node (tftpserver, monserver, nfsserver, conserver), and if they were set 
to the original service node they will be changed to point to the backup
service node. 

If the -i option is specified, the nodes themselves will not be modified.

If the -i option is NOT specified then the nodes will be modified as follows:

=over 3

=item 1.

The B<syslog> postscript will be run.

=item 2.

The B<setupntp> script will be run IF it was included in the nodes postscript list.

=item 3.

The B<mkresolvconf> script will be run IF it was included in the nodes postscript list.

=item 4.

The default gateway will be switched to the backup service node if B<networks.gateway=<xcatmaster>>.

=item 5.

If it is an AIX diskful node then the B<niminit> command will be run so that it will recognize the new service node as it's NIM master.

=back

Note: You can also run other postscripts useing -P option if needed.

When the B<snmove> command is executed the new service node must be running but
the original service node may be down.

Note: On a Linux cluster, for NFS statelite nodes that do not use external NFS server, if the original service node is down, the nodes it manages will be down too. You must run nodeset command and then reboot the nodes after running snmove. For stateless nodes and RAMDisk statelite nodes, the nodes will be up even if the original service node is down. However, make sure to run nodeset command if you decide to reboot the nodes later.   

=head1 OPTIONS

=over 10

=item B<-s|--source>

Specifies the hostname of the current (source) service node sa known by (facing) the management node.  

=item B<-S|--sourcen>

Specifies the hostname of the current service node adapter as known by (facing) the nodes.

=item B<-d|--dest>

Specifies the hostname of the new destination service node as known by (facing) the management node. 

=item B<-D|--destn>

Specifies the hostname of the destination service node as known by (facing) the nodes.

=item B<-i|--ignorenodes>

No modifications will be made on the nodes. If not specified, several xCAT postscripts will be run on the nodes to complete the switch to the new service node.

=item B<-P|--postscripts>

Specifies a list of extra postscripts to be run on the nodes after the nodes are moved over to the new serive node. If 'all' is specified, all the postscripts defined in the postscripts table will be run for the nodes. The specified postscripts must be stored under /install/postscripts directory. 

=item B<-h|--help>

Display usage message.

=item B<-v|--version>

Command Version.

=back

=head1 EXAMPLES

=over 3

=item 1.

Move the nodes contained in group "group1" to the service node named "xcatsn02".

B<snmove group1 -d xcatsn02 -D xcatsn02-eth1>

=item 2.

Move all the nodes that use service node xcatsn01 to service node xcatsn02.

B<snmove -s xcatsn01 -S xcatsn01-eth1 -d xcatsn02 -D xcatsn02-eth1>

=item 3.

Move any nodes that have sn1 as their primary server to the backup service node set in the xCAT node definition.

B<snmove -s sn1>

=item 4.

Move all the nodes in the xCAT group named "nodegroup1" to their backup SNs.

B<snmove nodegroup1>

=item 5.

Move all the nodes in xCAT group "sngroup1" to the SN named "xcatsn2".

B<snmove sngroup1 -d xcatsn2>

=item 6.

Move all the nodes in xCAT group "sngroup1" to the SN named "xcatsn2" and run extra postscripts.

B<snmove sngroup1 -d xcatsn2 -P test1>

=item 7.

Move all the nodes in xCAT group "sngroup1" to the SN named "xcatsn2" and do not run anything on the nodes.

B<snmove sngroup1 -d xcatsn2 -i>

=back

=head1 FILES

/opt/xcat/sbin/snmove

=head1 SEE ALSO

L<noderange(3)|noderange.3>

