=head1 NAME B - Prime the xCAT database using naming conventions specified in a config file. =head1 SYNOPSIS B [B<-s|--stanzas> I] [B<--yesreallydeletenodes>] I B [B<-?> | B<-h> | B<--help> | B<-v> | B<--version>] =head1 DESCRIPTION The B command reads the specified config file that contains general information about the cluster being set up, and naming conventions and IP addresses that you want to use. It then defines the basic objects in the xCAT database representing this cluster configuration. The B command prepares the database for the step of discovering the hardware that is connected to the service and cluster networks. The typical steps of setting up a system p cluster are: =over 3 =item * Install the xCAT software on the management node =item * Create the cluster config file and run xcatsetup =item * Put hardware control passwords in the ppchcp or ppcdirect database table =item * Run the discovery commands (lsslp, mkhwconn, rspconfig) as described in the System P Hardware Management cookbook. =item * Configure and start the services using makehosts, makedns, makedhcp, mkconserver.cf, etc. =item * Create the images that should be installed or booted on the nodes =item * Run nodeset and rpower/rnetboot to boot up the nodes. =back The B command is intended as a quick way to fill out the database for a cluster that has very regular naming patterns. The only thing it does is fill in database attributes. If your cluster does not follow consistent naming patterns, or has some other special configuration, you should define attribute values manually instead of using B. The cluster config file is meant to be an easy way to prime the database; it is not meant to be a long living file that you update as the cluster changes. If you do want to run xcatsetup again at a later time, because, for example, you added a lot of nodes, you should put the total list of nodes in the config file, not just the new ones. This is because xcatsetup uses some regular expressions for groups (e.g. frame, cec, compute) that would be calculated incorrectly if the config file told xcatsetup about only the new nodes. Speaking of regular expressions, xcatsetup creates some pretty complicated regular expressions in the database. These are useful because they keep most of the tables small, even for large clusters. But if you want to tweak them, they may be hard to understand. If after running xcatsetup, you want to convert your database to use individual rows for every node, you can do the following: lsdef -z all >tmp.stanza cat tmp.stanza | chdef -z If you want to delete all of the nodes that xcatsetup created, and start over, use L and give it all of the ranges specified in the config file. =head2 Restrictions =over 3 =item * The B command has only been implemented and tested for system p servers so far. =item * Redundant BPAs and FSPs are not yet supported. =item * Hostname ranges must start with 1 (or 01, etc.). I.e. use node01-node80, instead of node03-node83. =back =head2 Configuration File The B is organized in stanza format and supports the keywords in the sample file below. Comment lines begin with "#". Stanzas can be ommitted if you do not want to define that type of object. The only hostname formats supported are those in this sample file, although you can change the base text and the numbers. For example, hmc1-hmc3 could be changed to hwmgmt01-hwmgmt12. The hostnames specified must sort correctly. I.e. use node01-node80, instead of node1-node80. xcat-site: domain = cluster.com # currently only direct fsp control is supported use-direct-fsp-control = 1 # ISR network topology. For example, one of the following: 128D, 64D, 32D, 16D, 8D, 4D, 2D, 1D topology = 32D xcat-hmcs: hostname-range = hmc1-hmc3 starting-ip = 10.201.1.1 xcat-frames: # these are the connections to the BPCs hostname-range = bpc1-bpc6 starting-ip = 10.202.1.1 num-frames-per-hmc = 2 # this lists which serial numbers go with which frame numbers vpd-file = vpd.stanza xcat-cecs: # these are the connections to the FSPs. Either form of hostname is supported. #hostname-range = cec01-cec60 hostname-range = f[1-6]c[01-10] # If you use the frame/cec hostname scheme above, but do not have a consistent # number of cecs in each frame, xcat can delete the cecs that do not get # supernode numbers assigned to them. delete-unused-cecs = 1 starting-ip = 10.203.1.1 # lists the HFI supernode numbers for each group of cecs in each frame supernode-list = supernodelist.txt xcat-building-blocks: num-frames-per-bb = 2 num-cecs-per-bb = 20 xcat-lpars: num-lpars-per-cec = 8 xcat-service-nodes: num-service-nodes-per-bb = 2 # which cecs within the bldg block that the SNs are located in cec-positions-in-bb = 1,20 # this is for the ethernet NIC on each SN hostname-range = sn1-sn6 starting-ip = 10.200.1.1 # this value is the same format as the hosts.otherinterfaces attribute except # the IP addresses are starting IP addresses otherinterfaces = -hf0:10.10.1.1,-hf1:10.11.1.1,-hf2:10.12.1.1,-hf3:10.13.1.1,-ml0:10.14.1.1 xcat-storage-nodes: num-storage-nodes-per-bb = 3 # which cecs within the bldg block that the storage nodes are located in cec-positions-in-bb = 5,10,15 hostname-range = stor01-stor09 starting-ip = 10.20.1.1 aliases = -hf0 otherinterfaces = -hf1:10.21.1.1,-hf2:10.22.1.1,-hf3:10.23.1.1,-ml0:10.24.1.1 xcat-compute-nodes: hostname-range = n001-n465 starting-ip = 10.30.1.1 aliases = -hf0 # ml0 is for aix. For linux, use bond0 instead. otherinterfaces = -hf1:10.31.1.1,-hf2:10.32.1.1,-hf3:10.33.1.1,-ml0:10.34.1.1 =head2 VPD File for Frames The B specifies the following vpd table attributes for the BPCs (frame power supplies): node, serial, mtm, side. Use the same stanza format that accepted by the L command, as documented in L. The purpose of this file is to enable xCAT to match up BPCs found through L discovery with the database objects created by B. All of the BPCs in the cluster must be specified (A-side only). Here is a sample file: bpc01: objtype=node serial=99200G1 mtm=9A00-100 side=A bpc02: objtype=node serial=99200D1 mtm=9A00-100 side=A =head2 Supernode Numbers for CECs The B file lists what supernode numbers should be given to each CEC in each frame. Here is a sample file: bpc01: 0, 1, 16 bpc02: 17, 32 bpc03: 33, 48, 49 bpc04: 64 , 65, 80 bpc05: 81, 96 bpc06: 97(1), 112(1), 113(1) The name before the colon is the node name of the frame BPC. The numbers after the colon are the supernode numbers to assign to the groups of CECs in that frame from bottom to top. Each supernode contains 4 CECs, unless it is immediately followed by "(#)", in which case the number in parenthesis indicates how many CECs are in this supernode. =head2 Database Attributes Written The following lists which database attributes are filled in as a result of each stanza. Note that depending on the values in the stanza, some attributes might not be filled in. =over 15 =item B site table: domain, nameservers, topology =item B site table: ea_primary_hmc, ea_backup_hmc nodelist table: node, groups (all HMCs (hmc) ) hosts table: node, ip ppc table: node, comments nodetype table: node, nodetype =item B nodelist table: node, groups (all frames (frame) ) hosts table: node, ip ppc table: node, id, hcp nodetype table: node, nodetype nodehm table: node, mgt vpd table: node, serial, mtm, side =item B nodelist table: node, groups (all CECs (cec), all CECs in a frame (cec) ) hosts table: node, ip ppc table: node, supernode, hcp, id, parent nodetype table: node, nodetype nodehm table: node, mgt nodegroup table: groupname, grouptype, members, wherevals (all nodes in a CEC (nodes) ) nodepos: rack, u =item B site table: sharedtftp ppc table: node, parent (for frame) =item B nodelist table: node, groups (all service nodes (service), all service nodes in a BB (bbservice) ) hosts table: node, ip, hostnames, otherinterfaces ppc table: node, id, hcp, parent nodetype table: node, nodetype, arch nodehm table: node, mgt, cons noderes table: netboot servicenode table: node, nameserver, dhcpserver, tftpserver, nfsserver, conserver, monserver, ftpserver, nimserver, ipforward nodegroup table: groupname, grouptype, members, wherevals (all nodes under a service node (nodes) ) nodepos: rack, u =item B nodelist table: node, groups (all storage nodes (storage), all storage nodes in a BB (bbstorage) ) hosts table: node, ip, hostnames, otherinterfaces ppc table: node, id, hcp, parent nodetype table: node, nodetype, arch nodehm table: node, mgt, cons noderes table: netboot, xcatmaster, servicenode nodepos: rack, u =item B nodelist table: node, groups (all compute nodes (compute) ) hosts table: node, ip, hostnames, otherinterfaces ppc table: node, id, hcp, parent nodetype table: node, nodetype, arch nodehm table: node, mgt, cons noderes table: netboot, xcatmaster, servicenode nodepos: rack, u =item B postscripts: postscripts =back =head1 OPTIONS =over 10 =item B<-s|--stanzas> I A comma-separated list of stanza names that B should process in the configuration file. If not specified, it will process all the stanzas that start with 'xcat' and some other stanzas that give xCAT hints about how to set up the HPC products. This option should only be specified if you have already run B earlier with the stanzas that occur before this in the configuration file. Otherwise, objects will be created that refer back to other objects that do not exist in the database. =item B<-v|--version> Command Version. =item B<-?|-h|--help> Display usage message. =item B<--yesreallydeletenodes> Delete the nodes represented in the cluster config file, instead of creating them. This is useful if your first attempt with the cluster config file wasn't quite right and you want to start over. But use this option with extreme caution, because it will potentially delete a lot of nodes. If the only thing you have done so far in your database is add nodes by running B, then it is safe to use this option to start over. If you have made other changes to your database, you should first back it up using L before using this option. =back =head1 RETURN VALUE 0 The command completed successfully. 1 An error has occurred. =head1 FILES /opt/xcat/sbin/xcatsetup =head1 SEE ALSO L, L, L, L, L, L