布尔什沃德

修改提前预留。

概要

brsvmod [-o | -on] [-d "描述"] [-u "user_name ... " | " user_group ... " ] [-nosusp | -nonsuspn] [-q "queue_name ..." | -qn] [-E pre_ar_script | -En] [-Et pre_ar_time | -Etn] [-Ep post_ar_script | -Epn] [-Ept post_ar_time | -Eptn] [[-b begin_time | [+|-]minutes] [-e end_time | [+|-]minutes]] | [[-t time_window] 保留标识
brsvmod addhost {-n number_unit -R "res_req" [-m "host_name... | host_group... ]} }| {["-n number_unit ] -m "host_name...| host_group... }" -f 预约 ID
brsvmod adduser -u "user_name ... " |"user_group ... " 保留标识
brsvmod disable {-td "begin_date-end_date" | }[ ] -tn-freservation_ID
brsvmod rmhost {-n number_unit [-m "host_name... | host_group... ]}}| {["-n number_unit ] -m "host_name...| host_group... }" 保留标识
brsvmod rmuser -u "user_name ... " |"user_group ... "] 保留标识
brsvmod {-h | -V}

描述

重要说明:

缺省情况下,此命令只能由 LSF 管理员或 root 用户使用。

替换先前创建的提前预留选项值,扩展或减少预留时间窗口,或者添加或除去由 reservation_ID指定的提前预留的预留主机。 对于重现预留,可以禁用指定的预留实例。

管理员和 root 用户可以修改任何预留。 lsb.resources 文件的 ResourceReservation 部分中列出的用户只能修改他们自己创建的预留。

通过指定 brsvadd中的选项,可以使用新值覆盖用户,用户组或时间窗口的原始值。 将保留从已关闭 (缺省值) 更改为使用 -o 选项打开,或从openclosed使用 -on 选项。 您还可以使用子命令 adduserrmuser 来添加或除去分配给高级预留的用户和用户组。

选项 -n-m-R 必须与子命令 addhostrmhost配合使用。 这些选项允许从原始值添加或除去。

仅在 disable 子命令中允许使用 -td-tn 选项。

所有子命令都是互斥的。 时间窗口选项 -b-e-t 在任何子命令中都无效。

不能修改活动预留的开始时间。

brsvmod 命令不支持 reservation_ID@cluster_name 表示法用于远程集群上的提前预留,或者 user_name@cluster_name 表示法用于远程用户的预留。

必须满足 -n 选项的 number_unit 需求。 -m-R 选项提供用于处理的候选列表,并且仅当列表中没有有效的主机时才会触发错误。 例如,以下选项需要三个插槽:
-n 3 -m "host1 host2"
LSF 尝试从 host1中找到尽可能多的插槽。 如果 host1上没有三个插槽,那么 LSF 会尝试从 host2中查找其余插槽。 处理请求时,将从列表中除去没有可用插槽的主机。

如果不使用 brsvsub 命令来创建动态调度的预留,那么可以手动将时间窗口添加到使用 brsvadd -p 选项创建的预留占位符。 使用 brsvmod -b begin_time -e end_time reservation_ID 命令。

要向占位符添加资源,请使用 brsvmod addhost 命令。

  • 缺省情况下,占位符预留是一次性预留。 无法将占位符更改为重现预留。
  • 当预留到期时,将清除具有时间窗口的占位符预留。

子命令(S)

addhost {-n number_unit -R "res_req " [-m "host_name... | host_group..."]}| {[-n number_unit ] -m "host_name...| host_group..."} [-f] reservation_ID
将主机上的主机和插槽添加到原始预留分配中。 这些主机可以是集群的本地主机,也可以是从远程集群租赁的主机。

添加不带 -n 选项的主机将保留主机上尚未由其他预留预留的所有可用主机或插槽。 不能单独使用 -n 。 可以从使用 -n 选项指定的主机列表中指定要添加的插槽数。 如果列表中未指定任何主机组,那么可以单独使用 -m 选项。 如果指定 -R 选项,那么还必须指定 -n 选项。

指定的单元 (插槽或主机) 数必须小于或等于主机或主机本身的可用插槽数。

限制: 只能将主机 (使用 -m 选项) 添加到系统预留。 无法将插槽 (使用 -n 选项) 添加到系统预留。
adduser -u "user_name ...| user_group ..." 保留标识
将用户和用户组添加到高级预留。
禁用 {-td "开始日期-结束日期" | -tn}[-f] 预约 ID
禁用重复提前预留的指定时间段或实例。 start_dateend_date 表示禁用预留的时间段的开始日期和结束日期。 这些时间段必须采用下列其中一种格式:
  • yyyy:mm:dd-yyyy:mm:dd
  • mm:dd-mm:dd -假定当前年份
  • dd-dd -假定当前月份和年份

开始日期必须与结束日期相同或早于结束日期。

如果在指定日期禁用了预留,那么该预留在该日期不会变为活动状态,并且在预留时间范围内保持不活动状态。 非重现预留能够在时间范围内使用重现预留的时段。 -tn 选项是一个快捷方式,用于在预留时间窗口的下一个实例的开始日期禁用预留; 即,将来最接近的开始实例。 如果在这一天禁用了预留,那么将拒绝修改请求。

例如,对于从周三 9 AM 到周五晚上 10 点的时间窗口的每周预留,如果当前日期是周一,那么运行带有 -tn 选项的命令将禁用本周的周三到周五的预留。 但是,如果当前日期是星期四,那么将在下一周的星期三到星期五禁用预留。 如果是星期三,那么是在当前周禁用还是在随后一周禁用取决于是否传递实例的开始时间。 如果没有,那么将在当前周中禁用预留,否则将禁用下一周的预留。

在周一运行带有 -tn 选项的 disable 命令两次尝试在本周禁用两次。 第二次运行无效,但由于已禁用指定的预留实例而被拒绝。

在某个时间段内禁用预留后,无法将其启用; 即,已禁用的时间段保持固定。 在禁用预留之前,系统会提示您确认是否继续禁用预留。 使用 -f 选项以静默方式强制命令运行而不提示确认; 例如,允许从脚本中自动禁用预留。

rmhost {-n number_unit [-m "host_name... | host_group..."]}| {[-n number_unit ]-m "host_name...| host_group..."} 保留标识
从原始预留分配中除去主机或主机上的插槽。 必须指定 -n-m 选项。 使用 -n 选项来指定要释放的主机数或要从保留主机释放的插槽数。 除去没有 -n 选项的主机将释放主机上的所有主机或保留的空闲插槽。 指定的单元 (插槽或主机) 数必须小于或等于主机的可用主机或插槽数。

只能从系统预留中除去整个主机。

可移除的插槽或主机数取决于在预留处于活动状态时可用的插槽数。 在处于活动状态的一次性预留和重复预留中, rmhost 子命令无法除去超过主机上空闲的插槽数。 如果要从预留中移除更多槽,那么必须等到正在运行的作业完成或预留处于不活动状态。

rmuser -u "user_name ...| user_group ..." 保留标识
从提前预留中除去用户和用户组。

选项

-nosusp | -nosuspn
如果指定了 LSF ,那么当第一个高级预留作业启动时,将不再暂挂在高级预留主机上运行的非高级预留作业。 非高级预留作业将继续运行,并且在资源可用之前不会启动高级预留作业。 这将确保不会过度落实资源。 如果指定了 -nosuspn 选项,那么 LSF 将在第一个高级预留作业启动时暂挂在高级预留主机上运行的非高级预留作业。

仅当提前预留处于不活动状态且不在预时间段内时,此标志才对用户提前预留有效。

-o
将已关闭的提前预留更改为打开,或取消已打开的预留。

如果预留处于打开状态,那么预留中的所有作业都将成为正常作业,在预留窗口关闭时不会终止。 -on 选项在预留到期时关闭。 当预留更改为已关闭时,将终止已打开预留的运行作业。 如果预留更改为打开,那么将除去已关闭预留的运行作业的终止时间。 运行作业的终止时间由 mbatchd 守护程序设置,但由 sbatchd 守护程序检查。 终止时间是基于 管理 主机的绝对时间,因此集群中的所有主机都必须与 管理 主机上的本地时间同步。 如果 sbatchd 守护程序和 mbatchd 守护程序未同步,那么可能不会在正确的时间发生终止。

-b begin_time | [+ | - ]minutes
替换一次性预留的开始时间,或者提供当前开始时间的偏移量 (以分钟为单位)。
限制: 不能修改活动预留的开始时间。
开始时间采用以下格式:
[[[year:]month:]day:]hour:minute
开始时间具有以下范围:
Year
1900 年之后的任何年份 (YYYY)。
Month
1-12 (MM)。
日期(月)
1-31 (dd)。
Hour
0-23 (hh).
Minute
0-59 (mm).
年,月和日是可选的。 必须至少指定 hour:minute:
  • 假定三个字段为 day:hour:minute
  • 假定四个字段为 month:day:hour:minute
  • 五个字段是 year:month:day:hour:minute

如果未指定日期,那么 LSF 将采用当前日期。 如果未指定月份,那么 LSF 将采用当前月份。 如果指定年份,那么必须指定月份。

偏移量以分钟为单位,是前缀为 +-的整数。 例如, -b+5 移动开始时间 5 分钟后, -b-5 移动开始时间 5 分钟前。

修改后的开始时间的时间值 (-b 选项) 必须使用与结束时间的时间值相同的语法 (-e 选项)。 开始时间必须早于结束时间的时间值。 开始时间不能早于当前时间。

-d "描述 "
替换或设置预留的描述。 描述必须以双引号文本字符串形式提供。 最大长度为 512 个字符。
-E pre_ar_script | -En
替换为创建高级预留而运行的脚本的绝对文件路径。 -En 选项将除去脚本,以便不运行任何脚本。 如果创建者不是 root 用户或 LSF 管理员,那么创建者的用户组应该是 LSF 或队列管理员,以便此预脚本可以对其他用户的作业执行操作。 必须在 lsf.conf 文件中指定 LSB_START_EBROKERD=YLSF 才能运行脚本。
注: 对于 UNIX 和 Linux,文件路径最多可以包含 4094 个字符,对于 Windows ,最多可以包含 255 个字符,包括目录和文件名。
以下环境变量可供在脚本中使用:
AR_名称
提前预留的名称。
AR队列列表
可以在此高级预留中运行其作业的队列的列表。
AR_HOST_LIST
此提前预留中的主机列表。 即使提前预留未使用主机上的所有插槽,也会报告主机。
AR_START_TIME
此提前预留的开始时间为 UTC 时间戳记。
增强现实结束时间
此提前预留的结束时间 (UTC 时间戳记)。
AR_JOBIDS
当前正在此高级预留的主机上运行的作业的作业标识。
AR_CREATOR
创建此提前预留的用户的名称。
Ar_所有者
此提前预留的所有者的名称。

除非使用 -Et 选项设置了预时间,否则脚本将在提前预留的开始时间运行,然后在开始时间减去指定的预时间后运行。 如果在运行脚本之前修改了脚本,那么将在脚本开始时运行脚本的最新版本。

更改 AR_END_TIME 时,如果指定的 runlimit 超过 AR 的结束时间,那么不应分派暂挂作业。

该脚本可以使用 bpost 命令来通知作业所有者该作业已被该脚本终止。 该脚本还可以创建自己的日志,并向提前预留的创建者和所有者发送通知。 LSF 不会根据脚本的成功或失败执行任何特定操作,并且没有与此脚本关联的超时时间段或操作。

如果在脚本运行时提前预留或作业的条件发生更改 (例如,使用 brsvmodbmod 命令) ,那么不会通知脚本,并且不会更改环境变量。 脚本负责处理这些更改。 此外,运行脚本后,如果使用 brsvmodbmod 命令更改了高级预留或作业本身,那么无法撤销对作业执行的任何终止或重新排队操作。

-Ep post_ar_script | -Epn
替换到期时作为高级预留的创建者运行的脚本的绝对文件路径。 -En 选项将除去脚本,以便不运行任何脚本。 如果创建者不是 root 用户或 LSF 管理员,那么创建者的用户组应该是 LSF 或队列管理员,以便此发布脚本可以对其他用户的作业执行操作。 必须在 lsf.conf 文件中指定 LSB_START_EBROKERD=YLSF 才能运行脚本。
注: 对于 UNIX 和 Linux,文件路径最多可以包含 4094 个字符,对于 Windows ,最多可以包含 255 个字符,包括目录和文件名。
以下环境变量可供在脚本中使用:
AR_名称
提前预留的名称。
AR队列列表
可以在此高级预留中运行其作业的队列的列表。
AR_HOST_LIST
此提前预留中的主机列表。 即使提前预留未使用主机上的所有插槽,也会报告主机。
AR_START_TIME
此提前预留的开始时间为 UTC 时间戳记。
增强现实结束时间
此提前预留的结束时间 (UTC 时间戳记)。
AR_JOBIDS
当前正在此高级预留的主机上运行的作业的作业标识。
AR_CREATOR
创建此提前预留的用户的名称。
Ar_所有者
此提前预留的所有者的名称。

除非使用 -Ept 选项设置了预时间,否则脚本将在提前预留的到期时间运行,然后脚本将在到期时间减去指定的预时间后运行。 如果在运行脚本之前修改了脚本,那么将在脚本开始时运行脚本的最新版本。

更改 AR_END_TIME 时,如果指定的 runlimit 超过 AR 的结束时间,那么不应分派暂挂作业。

该脚本可以使用 bpost 命令来通知作业所有者该作业已被该脚本终止。 该脚本还可以创建自己的日志,并向提前预留的创建者和所有者发送通知。 LSF 不会根据脚本的成功或失败执行任何特定操作,并且没有与此脚本关联的超时时间段或操作。

如果在脚本运行时提前预留或作业的条件发生更改 (例如,使用 brsvmodbmod 命令) ,那么不会通知脚本,并且不会更改环境变量。 脚本负责处理这些更改。 此外,运行脚本后,如果使用 brsvmodbmod 命令更改了高级预留或作业本身,那么无法撤销对作业执行的任何终止或重新排队操作。

-Ept post_ar_time | -Eptn
更改 LSF 的提前预留到期前运行后脚本的时间量 (以分钟计) (由 -Ep 选项指定)。 如果未启用 -Ep 选项,那么将忽略 -Ept 选项。

如果指定 -Eptn 选项,那么将在提前预留的到期时间运行 post-script

-Et pre_ar_script | -Etn
更改 LSF 的提前预留开始之前的时间量 (以分钟为单位) ,以运行预脚本 (由 -E 选项指定) 并停止向提前预留主机分派新作业。

如果未启用 -E 选项,那么指定 -Et 选项意味着 LSF 将停止在未运行预脚本的情况下在预时间将作业分派到此提前预留的主机。

如果指定 -Etn 选项,那么将在高级预留的开始时间运行预脚本

-e end_time | [+ | - ]minutes
替换一次性预留的结束时间,或者提供当前结束时间的偏移量 (以分钟为单位)。

通过为结束时间提供正偏移量,可以延长预留的持续时间,以便预留中的作业可以运行更长时间。 使用负值缩小预留会提前终止正在运行的作业。

结束时间采用以下格式:
[[[year:]month:]day:]hour:minute
结束时间具有以下范围:
Year
1900 年之后的任何年份 (YYYY)。
Month
1-12 (MM)。
日期(月)
1-31 (dd)。
Hour
0-23 (hh).
Minute
0-59 (mm).
年,月和日是可选的。 必须至少指定 hour:minute:
  • 假定三个字段为 day:hour:minute
  • 假定四个字段为 month:day:hour:minute
  • 五个字段是 year:month:day:hour:minute

如果未指定日期,那么 LSF 将采用当前日期。 如果未指定月份,那么 LSF 将采用当前月份。 如果指定年份,那么必须指定月份。

结束时间 (-e 选项) 的时间值必须使用与 (-b 选项) 的时间值相同的语法。 结束时间必须晚于开始时间的时间值。

-f
根据指定的资源需求动态选择主机 (-R/-m 选项)。
注: 如果定义了 lsb.params 中的 AR_AVAILABLE_STATUS ,那么在 AR 创建中首选具有该状态的主机。
-m "host_name...| host_group..."
更改保留了使用 -n 选项指定的作业槽或主机数的主机列表。 在提交作业时, LSF 按指定顺序使用主机。

如果还使用 -R 选项指定资源需求字符串,那么不需要 -m 选项。

这些主机可以是集群的本地主机,也可以是从远程集群租赁的主机。

-n 数量单位
更改要保留的作业插槽数或主机数 (基于 brsvadd -unit slot | host 命令指定的单元)。 number_unit 变量必须小于或等于由 -m-R 选项为保留选择的主机的实际插槽数。

如果还为系统指定了预留,请将 -n 选项与 -s 选项配合使用。 不需要 -n 选项。

-q "queue_name ..."| -qn
更改允许其作业在提前预留主机上运行的队列,即使作业的运行限制大于提前预留开始前的时间量也是如此。 -qn 选项将除去允许的队列列表。
-R "res_req "
根据指定的资源需求更改预留的主机选择。 仅保留满足资源需求表达式的主机。 -R 选项接受任何有效的资源需求字符串,但只有 selectsame 字符串生效。

如果还指定了带有 -m 选项的主机列表,那么不需要 -R 选项。

有关资源需求字符串的更多信息,请参阅指定资源需求

-t 时间窗口
将时间窗口替换为新的时间窗口,以转移重复预留。 无法修改具有当前活动实例的重现预留的开始时间。
要指定时间窗口,请指定两个时间值。 用连字符 (-) 分隔时间值,其间没有空格:
time_window = begin_time-end_time
时间按以下格式指定:
[day:]hour[:minute]
其中,所有字段都是具有以下范围的数字:
星期几
0-6 (0 是星期日)。
Hour
0-23
Minute
0-59
指定时间窗口:
  • hour-hour
  • hour:minute-hour:minute
  • day:hour:minute-day:hour:minute

分钟的缺省值为 0 (小时)。 日期的缺省值是一周中的每一天。

必须至少指定小时。 星期几和分钟是可选的。 开始时间值和结束时间值必须使用相同的语法。 如果未指定分钟,那么 LSF 将采用小时的前一分钟 (:00)。 如果未指定日期,那么 LSF 将采用一周中的每一天。 如果指定日期,那么还必须指定分钟。

LSF 管理员可以通过在预留窗口关闭之前更改将预留与 bmod -t 命令配合使用的作业的终止时间,防止在预留到期时终止正在运行的作业。

当作业开始运行时,保留的运行限制将设置为作业运行限制 (如果指定) ,队列运行限制 (如果指定) 或时间窗口持续时间的最小值。

-u "user_name...| user_group ..."
替换能够向预留提交作业的用户或组的列表。 替换用户或组的列表不会影响当前正在运行的作业。

由原始用户或组提交到预留的作业仍属于预留并作为预先预留作业进行调度,但从预留中除去的用户或组中新提交的作业不能再使用预留。

-u "user_name ... | user_group ..." 选项不支持对远程集群上的提前预留使用 @cluster 表示法。

-h

打印命令用法并退出。

-V

打印 LSF 发行版并退出。

示例

以下命令将主机添加到现有预留。
brsvmod addhost -m hostB user1#0
Reservation user1#0 is modified
以下示例将禁用 2008 年 1 月 1 到 1 月 6 (含) 之间的提前预留。
brsvmod disable {-td "2008:01:01-2008:01:06"}

另请参阅

brsvadd, brsvdel, brsvs, lsb.resources