IBM Books

Administration Guide


Defining startup and shutdown sequence files

Relationships between nodes must be defined in the /etc/cstartSeq and /etc/cshutSeq files. You define groups of nodes in these files. Nodes in the same group are started up or shut down concurrently. You also define the order in which groups of nodes are processed. Sequencing files can contain nodes from any and all system partitions; sequencing rules are applied without regard to system partitions. Groups without specified sequencing relationships are started up concurrently. Nodes not listed in /etc/cstartSeq might be started up concurrently with any other nodes. Nodes not listed in /etc/cshutSeq might be shut down concurrently with any other nodes.

The sequencing of special subsystems is handled similarly. Subsystems and groups of subsystems are defined in the /etc/subsysSeq file. Subsystems without specified sequencing relationships are shut down concurrently. Subsystems must be defined in this file. If they are not defined, they are not invoked during shutdown.

Planning for concurrent startup and shutdown

It's important that you allow the cstartup and cshutdown commands to do as much work as possible concurrently. This ensures optimal performance when starting up and shutting down a system with many nodes and/or subsystems. There are potentially two levels of coordinated concurrent operations:

They are coordinated such that you can specify that one group must wait for the completion of some other specific groups before being started up or shut down.

Format rules for sequence files

A line in /etc/cstartSeq, /etc/cshutSeq, and /etc/subsysSeq can be one of the following:

The lines can be in any order. Each node must be assigned to a group if you wish to control its sequencing.

A group or node name cannot contain a blank, comma, new line, tab, greater than (>), colon (:), parentheses (), or pound (#) character. Case is significant in node and group names.

Testing your sequence files

You can verify that the /etc/cstartSeq file has the correct format without powering on or resetting any nodes by specifying:

cstartup -k ALL

The -k flag tells cstartup not to reset any nodes, just check the sequence file. If the sequence file is correct, you'll get the following message:

cstartup: No circular dependencies were detected

Verify that the /etc/cshutSeq and /etc/subsysSeq files have the correct format without shutting down any nodes by specifying:

cshutdown -kF ALL

The -k flag tells cshutdown not to shutdown any nodes, just check the sequence file. The -F flag tells cshutdown not to issue any messages to users.

Getting started: Capturing the default sequences

An easy way to create your /etc/cstartSeq and /etc/cshutSeq files is to capture the default group definitions and sequencing relationships that are based on the boot-install server information in the System Data Repository. You can then add to or modify them as required for your installation.

To create the default /etc/cstartSeq file, use the command:

seqfile -b > /etc/cstartSeq

The -b flag tells seqfile to include boot-install relationships, which are important only during system startup.

To create the default /etc/cshutSeq file, use the command:

seqfile > /etc/cshutSeq

After you've created the default files, you can edit them to reflect sequencing relationships based on other aspects of your installation's configuration.

Sample startup file /etc/cstartSeq

Here is a simple file for sequencing startup:

ServerA > ClientsOfA
ServerA: node2
ClientsOfA: node3, node4, node5, node6

The line ServerA: node2 defines node 2 as the group ServerA. The line ClientsOfA: node3, node4, node5, node6 defines nodes 3 through 6 as a group that can be started up concurrently. The sequence line ServerA > ClientsOfA says that ServerA must be completely started up before starting up the nodes that are clients of server A (nodes 3 through 6).

This sample file is slightly more complex:

groupA > groupB
groupA > (groupF, groupE) > groupD > groupC
groupD > groupG
groupA: node0  #node0 is the node that node1-node7 depend on.
groupB: node1
groupC: node2
groupD: node4
groupE: node5
groupF: node6, node7
groupG: node3

The line groupA > ( groupF, groupE )  > groupD > groupC says to start up groupA. When groupA is up, concurrently start up groupF and groupE. After they are up, start up groupD. Finally, when groupD is up, start up groupC. The line groupA > groupB says that groupB depends on groupA, but can be started concurrently with groupE and groupF. No other groups have dependencies on groupB.

If your command line specifies a node but omits another that is listed in your /etc/cstartSeq or /etc/cshutSeq files as its leading node, the sequencing rules still apply unless overridden by the -X flag.

Sample shutdown file /etc/cshutSeq

Here is one of the sample startup sequence files, interpreted now as a shutdown file:

ServerA > ClientsOfA
ServerA: node2
ClientsOfA: node3, node4, node5, node6

The line ClientsOfA: node3, node4, node5, node6 defines nodes 3 through 6 as a group that can be shut down concurrently. The line ServerA: node2 defines node2 as the group (of one node) called ServerA. The line ServerA > ClientsOfA says that the nodes that are clients of server A (nodes 3 through 6) can be shut down concurrently, but must be shut down before node2 in group ServerA.

Sample subsystem file /etc/subsysSeq

A sample file for subsystem shutdown could be:

ssgroupA: /full/pathname/subsystemA
ssgroupB: /local/subsystemB, /local/subsystemC
ssgroupA > ssgroupB

The line ssgroupA: /full/pathname/subsystemA defines the group ssgroupA, consisting of the single subsystem invoked by the /full/pathname/subsystemA command. The line ssgroupB: /local/subsystemB, /local/subsystemC defines a group consisting of the two subsystems /local/subsystemB and /local/subsystemC.

The line ssgroupA > ssgroupB says to first notify ssgroupB before nodes are shut down. When both subsystems in ssgroupB have returned, then notify the single subsystem in ssgroupA.


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]