bconf

Submits live reconfiguration requests, updating configuration settings in active memory without restarting daemons.

Synopsis

bconf action object_type=object_name "value_pair[;value_pair...]"] [-c "comment"] [-f]
bconf hist [-l|-w] [-o object_type] [-u user_name] [-T time_period] [-a action] [-f config_file] [history_file]
bconf disable
bconf -h [action [object_type]]
bconf -V

Action synopsis

addmember usergroup | hostgroup | queue | limit | gpool=object_name "value_pair[;value_pair ...]" [-c "comment"]
rmmember usergroup | hostgroup | queue | limit | gpool=object_name "value_pair[;value_pair ...]" [-c "comment"]
update user | usergroup | host | hostgroup | queue | limit | gpool=object_name "value_pair[;value_pair ...]" [-c "comment"]
create usergroup | limit=object_name "value_pair[;value_pair ...]" [-c "comment"]
delete usergroup | limit=object_name "value_pair[;value_pair ...]" [-c "comment"] [-f]
add host=object_name "value_pair[;value_pair ...]" [-c "comment"]

Description

bconf is enabled when LSF_LIVE_CONFDIR is defined in lsf.conf.

bconf allows configuration changes without restarting LSF or any daemons. Changes are made in active LSF memory, and updated configuration files are written to the directory defined by parameter LSF_LIVE_CONFDIR. Original configuration files are not changed. However, LSF will reload any files found in LSF_LIVE_CONFDIR during restart or reconfiguration in place of permanent configuration files.

Configuration changes made using bconf cannot be rolled back. Undo unwanted configuration changes by undoing configuration changes with reverse bconf requests or by manually removing or replacing configuration files in LSF_LIVE_CONFDIR before restart or reconfiguration.

The first bconf command executed after restart or reconfiguration backs up the files that were loaded into memory. All files that bconf can change are backed up in LSF_LIVE_CONFDIR as *.bak files. The backup files always represent the configuration before any bconf commands were executed.

Only cluster administrators can run all bconf commands. All users can run bconf hist queries. All bconf requests must be made from static servers. All configuration files should be free from warning messages when running badmin reconfig before enabling live reconfiguration, and multiple sections in configuration files should be merged where possible. It is recommended that the order of sections and the syntax used in the configuration file templates be maintained in all configuration files used with live reconfiguration.

User group administrators with usershares rights can:
  • Adjust user shares

User group administrators with full rights can:
  • Adjust both user shares and group members

  • Delete the user group

  • Create new user groups

User group administrators with full rights can only add a user group member to the user group if they also have full rights for the member user group. User group administrators adding a new user group through bconf create are automatically added to GROUP_ADMIN with full rights for the new user group.

Important:

Remove LSF_LIVE_CONFDIR configuration files or merge files into LSF_CONFDIR before upgrading LSF or applying patches to LSF.

bconf supports common configuration changes; not all configuration changes can be made using bconf. When using time-based configuration, changes to global configuration are changed globally, and changes to configuration for the active time window are changed only for the time window.

Configuration files changed by bconf:

  • lsb.resources

  • lsb.queues

  • lsb.users

  • lsb.hosts

  • lsf.cluster.clustername

  • lsb.serviceclasses

Important:

Making manual changes to the configuration files above while bconf is enabled automatically disables this feature and further live reconfiguration requests will be rejected.

bconf makes changes to objects, or configuration blocks enclosed in Begin and End statements in the configuration files. One bconf request can affect several configured objects. For example, deleting a user group that appears in the configuration for a limit and a queue also changes the limit and queue configuration, and returns the following confirmation messages:

bconf delete usergroup=ug1
bconf: Request to delete usergroup <ug1> impacts the following:
    <USERS> in limit <limit1>
    <USERS FAIRSHARE > in queue <big_mem_queue>
Are you sure you want to delete usergroup <ug1> (y/n)?

The API corresponding to the bconf command is lsb_liveconfig. See the LSF API Reference for details.

Subcommands and options

action object_type=object_name "value_pair[;value_pair...]"] [-c "comment"] [-f]

action is the requested action supported by live reconfiguration. It can be one of: addmember, rmmember, update, create, add, delete.

  • addmember: Adds a member to the group or list of an existing key (field) in an object, or updates the value of an existing member.

    Cannot be used with reserved words such as all, excluded elements such as ~user1 or !host1, or members defined by regular expressions such as hostA[01-10] or hostA*.

    When used with an existing member, the value of the member is updated within the object.

  • rmmember: Removes a member from the group or list of an existing key (field) in an object.

    Groups and lists cannot have all members removed (except USER_SHARES), be left only containing reserved words such as others, all, or allremote, or be left only containing excluded members.

    Cannot be used with reserved words such as all, excluded elements such as ~user1 or !host1, or members defined by regular expressions such as hostA[01-10] or hostA*. Hosts added using badmin hghostadd cannot be removed with bconf rmmember.

  • update: Updates by replacing the old value with the new value, or adding the field if it is not already configured.

    Use update usergroup=group_name or update hostgroup=group_name to reload an egroup.

  • create: Creates a new object.

  • add: Adds a new host.

  • delete: Deletes an existing object.

    A user group cannot be deleted if it contains running or pending jobs (run busers to check), appears in a MultiCluster UserMap section in lsb.users or is DEFAULT_USER_GROUP defined in lsb.params. Deleted user groups are counted towards the maximum allowed number of user groups until the next restart or reconfig command is run, and may still show in busers output.

object_type is any block (BeginSection… EndSection) in a configuration file changed by a bconf request. An object includes a type and identity (or name) and has attributes called keys, which are fields defined in the object section of the file. The object_type can be one of: user, usergroup, host, hostgroup, queue, limit, gpool. Not all actions apply to all object types.

  • user can be used with:

    • action update

    • value_pair keywords in lsb.users: MAX_JOBS, JL/P, MAX_PEND_JOBS

  • usergroup can be used with:

    • action addmember, rmmember, update, create, delete

    • value_pair keywords in lsb.users: MAX_JOBS, JL/P, MAX_PEND_JOBS, GROUP_MEMBER, USER_SHARES, GROUP_ADMIN

  • host can be used with:

    • action update, add

    • value_pair keywords in lsb.hosts: MXJ, JL/U, EXIT_RATE, io, it, ls, mem, pg, r15s, r1m, r15m, swp, tmp, ut

    • value_pair keywords in lsf.cluster.clustername: model, type, resources

  • hostgroup can be used with:

    • action addmember, rmmember, update

    • value_pair keywords in lsb.hosts: GROUP_MEMBER

  • queue can be used with:

    • action addmember, rmmember, update

    • value_pair keywords in lsb.queues: UJOB_LIMIT, PJOB_LIMIT, QJOB_LIMIT, HJOB_LIMIT, FAIRSHARE

  • limit can be used with:

    • action addmember, rmmember, update, create, delete

    • value_pair keywords in lsb.resources: QUEUES, PER_QUEUE, USERS, PER_USER, HOSTS, PER_HOST, PROJECTS, PER_PROJECT, SLOTS, SLOTS_PER_PROCESSOR, MEM, TMP, SWP, JOBS, RESOURCE

  • gpool can be used with:

    • action addmember, rmmember, update

    • value_pair keywords in lsb.resources: DISTRIBUTION

object_name is the name of the existing object, or object being created.

value_pair is the key (object attribute) and allowed values used in a bconf request. It is of the form keyword=value, using the same keywords and syntax as in LSF configuration files. Not all LSF configuration keywords can be used with all actions.

Use a semicolon to separate multiple value_pair entries. Reset keywords to default values using ’-’ or ’()’, as applies to the keyword in the LSF configuration files.

For more information about allowed actions, objects, and keywords, use the help command bconf -h action object.

Examples:

bconf -h addmember hostgroup
bconf addmember hostgroup=hgroupA "GROUP_MEMBER = host1"
bconf rmmember hostgroup=hgroupA "GROUP_MEMBER=host1 host2"
bconf update host=host1 "MXJ=10; JL/U=5"
bconf create usergroup=groupA "GROUP_MEMBER=(elaine tina toby); USER_SHARES=([elaine,10] 
[default,5]); MAX_JOBS=500; MAX_PEND_JOBS=10000"
bconf rmmember queue=normal "FAIRSHARE=USER_SHARES[[joe, 10]]"
-c "comment"

Logs the text of comment as an administrator comment in liveconf.hist. The maximum length of the comment string is 512 characters. Embed comment in double quotes, and do not include the new line character ’\n’.

-f

Disables interaction and forces bconf delete requests to proceed without confirmation. Only applies to the delete action.

hist [-l|-w] [-o object_type] [-u user_name] [-T time_period] [-a action] [-f config_file] [history_file]

Queries the bconf history file liveconf.hist located under $LSB_SHAREDIR/cluster_name/logdir, or queries history_file if specified. Displayed output is filtered by the specified criteria. By default only bconf requests made by the current user are displayed.

-l

Long display format

-w

Wide display format

-o object_type

Displays entries including the object_type specified, where object_type is one of: user, usergroup, host, hostgroup, queue, limit, gpool

-u user_name

Displays entries for requests made by the user specified. To display bconf request from all users specify -u all.

-T time_period

Displays entries within the specified time period. For syntax, see "Time Interval Format" in the bhist command reference.

-a action

Displays entries including the action specified, where action is one of: addmember, rmmember, update, create, add, delete.

-f config_file

Displays entries including the config_file specified, where config_file is one of: lsb.resources, lsb.queues, lsb.users, lsb.hosts, lsf.cluster.clustername, or lsb.serviceclasses.

history_file

Displays entries from the specified history file. By default, the history file is liveconf.hist.

disable

Blocks all bconf requests until the next reconfiguration or restart of daemons using badmin reconfig, badmin mbdrestart, or lsadmin reconfig (for manual changes to lsf.cluster file). Use the disable option before making manual changes to the configuration files to ensure that you are editing files corresponding to the current configuration. Note that only the primary cluster administrator can disable live reconfiguration.

-h [action [object_type]]

Prints command usage to stderr and exits. Use for more information about allowed actions, objects, and the keywords that can be used with each object type.

bconf -h action lists allowed object types for the action specified.

bconf -h action object_type lists allowed value pairs for the action and object_type specified. The -h option can be omitted if the action object-type are both specified.

-V

Prints LSF release version to stderr and exits.

bconf hist default output

bconf hist displays bconf events in shortened form, without comments or details of affected objects. Column content is truncated as required and marked with ’*’.

TIME

Time of bconf request.

OBJECT

The type of object specified.

NAME

The name of the object specified.

ACTION

Action performed on the object.

USER

User who made the bconf request.

IMPACTED_OBJ

All objects changed as a result of the bconf request.

For example:

bconf hist -u all
TIME                 OBJECT    NAME   ACTION   USER   IMPACTED_OBJ 
Nov 9 15:19:50 2010  limit     aaa    create   ellen  limit=aaa 
Nov 9 15:19:46 2010  limit     aaa    update   leyang limit=aaa 
Nov 9 15:19:37 2010  usergroup ug1    delete   ellen  queue=normal owners* 
                                                      limit=bbb
                                                      usergroupr=ug1
Nov 9 15:19:28 2010  queue     normal update   leyang queue=normal 
Nov 9 15:19:10 2010  host      host1  update   ellen  host=host1 

bconf hist wide output (-w)

Wide output displays the same columns, but without truncating column contents.

bconf hist -w
TIME                 OBJECT    NAME    ACTION   USER     IMPACTED_OBJ 
Nov  9 15:19:50 2011 limit     aaa     create   ellen    limit=aaa 
Nov  9 15:19:46 2011 limit     aaa     update   leyang   limit=aaa 
Nov  9 15:19:37 2011 usergroup ug1     delete   ellen    queue=normal owners q1 q2 q3; limit=bbb; 
usergroup=ug1

bconf hist long output (-l)

Long output displays all details of the requested bconf events, including the new value of each impacted object. Names of changed configuration files are included. For example:

bconf hist -l
Mon Nov 18 15:19:45 2009: Limit <aaa> created by user <admin1> with requested values 
<PER_HOST=all; RESOURCE=[A,5]; USERS=ug1 ug2 ug3> and comments <This is an example of a create
 action on a limit object named aaa.>
Changes made:
Limit <aaa> created in lsb.resources with <PER_HOST=all; RESOURCE=[A,5]; USERS=ug1 ug2 ug3>
---------------------------------------------------------
Mon Nov 18 15:19:45 2009: Usergroup <ug1> deleted by user <admin1> with comments <This is an 
example of a delete action on a usergroup object named ug1.>
Changes made:
Usergroup <ug1> deleted in lsb.users
Limit <aaa> updated in lsb.resources with <USERS=ug2>
Queue <owners> updated in lsb.queues with <USERS=ug2 ug3>
---------------------------------------------------------
Mon Nov 18 15:19:45 2009: Queue <q1> updated by user <admin2> with requested values 
<FAIRSHARE=USERSHARE[[ellen, 2]];QJOB_LIMIT=10> and comments <This is an example of an update
 action on a queue object named q1.>
Changes made:
Queue <q1> updated in lsb.queues with <QJOB_LIMIT=10>
---------------------------------------------------------
Mon Nov 18 15:19:45 2009: Limit <aaa> member added by user <admin2> with requested values 
<USERS=julie> and comments <This is an example of an addmember action on a limit object named 
aaa.>
Changes made:
Limit <aaa> updated in lsb.resources with <USERS=ellen user4 julie>
---------------------------------------------------------
Wed Jul 28 17:16:28 2010: Host <host78> added by user <usr9> with requested value <mem=500/100>
Changes made:
Host <host78> added in <lsf.cluster.x123> with <hostname=host78>
Host <host78> added in <lsb.hosts> with <HOST_NAME=host78; MXJ=!; mem=500/100>
---------------------------------------------------------
Wed Jul 28 17:17:08 2010: Host <host78> updated by user <usr9> with requested value <mem=500/100>
Changes made:
Host <host78> updated in <lsb.hosts> with <mem=500/100>

Diagnostics

The exit code is 0 if command executed properly; otherwise the exit code is negative and indicates the number of key-value pairs containing errors.

See also

lsb.queues, lsb.hosts, lsb.resources, lsb.users, lsf.cluster, lsf.conf