NIM groups are essentially lists of machines and resources. Groups can be used in NIM operations to simplify repetitive administrative tasks.
Machine groups are used to represent collections of machines of similar types. The machine types in a group must all be the same (for example, standalone, diskless, or dataless), because some NIM operations are restricted to certain target types. The first member added to a group determines the type of machine the group can contain. By having multiple machines defined as members of a single group, you can perform a single operation on all machines by specifying the group as the target. NIM iterates through the list of machines in the group, and performs the operation on each member, in turn.
Group members can be excluded from NIM group operations by marking them for exclusion before performing the operation. Excluding a member marks the member list in the group representation, so NIM skips the member when it iterates through the list. Excluding a member does not change the definition of the client in the NIM database. For information on marking group members for inclusion and exclusion, see Including and Excluding Group Members from Operations on the Group.
Machines can be added or removed from groups, as well as be members of multiple groups. When all members of a group are removed, the group definition in the NIM database is automatically deleted. For information on adding and removing group members, see Adding New Members to Machine Groups and Removing Members from Machine Groups.
The command line syntax for defining a machine group is:
nim -o define -t mac_group -a Attribute=Value ... \ MachineGroupName
where the following attributes are optional:
Operations performed on machine groups are, by default, performed asynchronously on the non-excluded members of the group. NIM does not wait for an operation to complete on one group member before initiating the operation on the next member. When performing operations asynchronously, it is not possible for NIM to display all the output as it occurs on each client. Therefore, you should use the lsnim command to check the states of the group members to determine how far, and how successfully, the operations have executed. If errors do occur, the log files on client machines can be viewed using the NIM showlog operation.
To change the behavior of NIM group operations from asynchronous to synchronous, use the async=no attribute when running the nim command.
The number of machines permitted in a machine group is not explicitly limited by NIM. However, the following factors limit the number for practical reasons:
Operation being Performed | Operations that are not resource-intensive (such as the maint or showlog operations) may be performed on a group containing any number of machines. Operations that are resource-intensive (such as cust or bos_inst) are limited by the throughput of the network, the disk access throughput of the installation servers, and the platform type of servers. |
NFS Export Limitations | The maximum number of hosts to which a file or directory may be exported with root permissions is limited by NFS to 256. Also, the length of a line in an exports file has an upper limit which could determine the maximum number of machines permitted in a group. See Increasing the Number of Hosts to Which NIM May NFS-Export a Resource for details on how to increase the number of machines to which a resource may be allocated. |
Resource groups are used to represent collections of NIM resources. A resource group can contain multiple installp_bundle and script resources, and one resource from each of the other types. If a resource group is allocated or specified for use in a NIM operation, all applicable resources in the group are allocated to the target. The use of resource groups can save NIM administrators from having to repeatedly specify the same set of resources individually, when the allocation of a single resource group would suffice.
The command line syntax for defining a resource group is:
nim -o define -t res_group -a default=Value \ -a ResourceType=ResourceName ... ResourceGroupName
where the following attributes are optional:
The allocation of individual resource group members can be overridden by specifying additional resource attributes for the members to be changed.
For example, the resource group, res_grp1, contains the spot1, lpp_source1, bosinst_data1, script1, and resolv_conf1 resources. To use the resource group to perform an rte bos_inst operation on client1, but using no bosinst_data resource, and using resolv_conf2 instead of resolv_conf1, use the following command:
nim -o bos_inst -a source=rte -a group=res_group1 \ -a bosinst_data= -a resolve_conf=resolv_conf2 client1
A resource group can be specified as the default set of resources to use for all NIM operations. This is done by setting the master's default_res attribute to the name of the resource group that will be the default. When a default resource group is defined, the applicable member resources will always be automatically allocated during NIM operations, unless they are specifically overridden.
To set the default resource group to res_group1, enter:
nim -o change -a default_res=res_group1 master
nim -o change -a default=yes res_group1
To stop using a default resource group, enter:
nim -o change -a default_res= master
nim -o change -a default=no res_group1