布尔斯夫加

添加提前预留。

概要

brsvadd [-o] [-f] [-d "描述"] [-N reservation_name] [-nosusp] [-q "queue_name ..."] [-E pre_ar_script] [-Et pre_ar_time] [-Ep post_ar_script [-Ept post_ar_time]]
{-u "用户名..." | -u " 用户组..."}
{[-unit slot] -n job_slot | -unit host -n number_hosts}
{-m "host_name ... " | "host_group ..." [-R "res_req"] |
[-m "host_name ... | " host_group ..."] -R "资源"请求
{-b 开始时间 -e 结束时间 | -t 时间窗口 }
brsvadd [-f] [-d "描述"] [-N reservation_name] [-q "queue_name ..."] [-E pre_ar_script] [-Et pre_ar_time] [-Ep post_ar_script [-Ept post_ar_time]]
-s | {-m "主机名... | 主机组..." [-R "资源请求"] |
[ "-m 主机名..." | -m " 主机组..."] -R "资源"请求
{-b 开始时间 -e 结束时间 | -t 时间窗口 }
brsvadd [-o] [-f] -p [-d "描述"] [-N reservation_name]
{-u "用户名..." | -u " 用户组..."}
[-unit slot | -unit host]
brsvadd {-h | -V}

描述

警告:

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

提前为用户或用户组保留指定时间段的作业槽或主机,或者用于系统维护目的。 将 -b-e 选项用于一次性预留,将 -t 选项用于重复预留。

要允许用户在没有管理员干预的情况下创建自己的提前预留,请在 lsb.resources 文件的 ResourceReservation 部分中配置提前预留策略。

只有管理员, root 用户或 ResourceReservation 部分中列出的用户才能为自己或任何其他用户或用户组添加预留。

提前预订的时间长度必须为 10 分钟或更长。

注:

如果提前预留与其他在 10 分钟时间段内开始或结束的提前预留重叠,那么可能会拒绝提前预留。

一天分为 144 期。 每段时间持续 10 分钟。 例如,0:0-0:10,0:10-0:20,最多23:50-24:00。如果预留的开始时间或结束时间在某个时间段的中间,那么 LSF 将保留整个时间段。 例如,如果一个预留从 1:22 开始,到 4:24 结束,那么将拒绝从 4:25 开始的预留请求,因为它在已预留的 4:20-4:30 时间段内。

选项

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

此标志仅对用户提前预留有效。

-o
创建开放式提前预留。 具有已打开的提前预留的作业仅在预留窗口期间具有提前预留属性。 在预留窗口关闭后,该作业将成为正常作业,不受终止限制。

打开的预留可防止在预留窗口太小时终止作业。 而是在预留窗口后暂挂作业并应用正常调度策略。

-p
在没有时间窗口或主机的情况下手动创建提前预留 占位符 ,以供动态调度的提前预留使用。 必须使用 -u 来定义使用预留的用户名或用户组。 brsvsub 命令会自动创建占位符并向预留提交作业。
-s
创建预留以供系统使用。 当预留处于活动状态时, LSF 不会将作业分派到指定的主机。

使用 -s 选项指定系统预留时,不需要使用 -n 选项指定要预留的作业槽数。

-b 开始时间
一次性预留的开始时间。 开始时间具有以下格式:
[[[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 选项的时间值必须使用与 -e 选项的时间值相同的语法。 它必须早于 -e 选项的时间值,并且不能早于当前时间。

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

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

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

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

-Ep post_ar_script
指定脚本的绝对文件路径,该脚本在到期时作为高级预留的创建者运行。 如果创建者不是 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 选项设置了预时间,否则脚本将在提前预留的到期时间运行,然后脚本将在到期时间减去指定的预时间后运行。 如果在运行脚本之前修改了脚本,那么将在脚本开始时运行脚本的最新版本。

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

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

-Ept post_ar_time
LSF 的提前预留到期前运行后脚本 (由 -Ep 选项指定) 的时间量 (以分钟为单位)。 如果在未指定 -Ep 选项的情况下指定此选项,那么将忽略此选项。
-埃特 ·普雷阿尔·泰姆
LSF 的提前预留开始前运行预脚本 (由 -E 选项指定) 和停止向提前预留主机分派新作业的时间量 (以分钟为单位)。

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

-e 结束时间
一次性预留的结束时间。 结束时间具有以下格式:
[[[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 选项的时间值相同的语法。 它必须晚于 -b 选项的时间值。

-f
根据指定的资源需求 (-R/-m 选项) 选择主机。
注: 如果定义了 lsb.params 中的 AR_AVAILABLE_STATUS ,那么在 AR 创建中首选具有该状态的主机。
-m " 主机名... | 主机组..."
列出用于提前预留请求的主机和主机组。 在提交作业时, LSF 将按指定顺序考虑主机。

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

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

-n <job_slots> 选项指定的插槽数或 -n <number_hosts> 选项指定的主机数必须小于或等于 -m 选项指定的实际主机数。

注: 使用 -m 选项指定多个主机进行提前预留时,可能不会选择某些主机进行提前预留 (例如,因为这些主机是互斥的,并且位于closed状态)。 如果已成功选择列表中的至少一个主机进行提前预留,那么 brsrvadd 命令将指示已成功创建提前预留。
-N 预订名称
指定 LSF 集群中唯一的用户定义的提前预留名称。 名称是由字母,数字字符,下划线和短划线组成的字符串。 名称必须以字母开头。 名称的最大长度为 40 个字符。
如果未指定用户定义的提前预留名称,那么 LSF 将创建具有以下格式的系统分配名称的预留:
user_name#sequence
在以下示例中, brsvadd 命令没有 -N 选项,因此将使用系统分配的名称创建预留 Reservation user2#0:
brsvadd -n 3 -m "hostA hostB" -u user2 -b 16:0 -e 17:0 -d "Production AR test"
Reservation user2#0 (Production AR test) is created

在以下示例中, brsvadd 命令在 -N 选项上指定名称 Production_AR ,因此将使用指定的名称创建预留:
brsvadd -n 2 -N Production_AR -m hostA -u user2 -b 16:0 -e 17:0 -d "Production AR test"
Reservation Production_AR (Production AR test) is created

如果作业已引用具有指定名称的预留,那么将返回错误消息:The specified reservation name is referenced by a job.

-n job_slotsnumber_hosts
要保留的作业插槽或主机 (由 -unit 选项指定) 的数目。 对于基于槽的提前预留 (brsvadd -unit slot) , -n 选项指定要预留的作业槽总数。 对于基于主机的提前预留 (brsvadd -unit host) , -n 选项指定要预留的主机总数。

job_slotnumber_hosts 值必须小于或等于 -m-R 选项选择的实际插槽数或主机数。

如果还指定预留以供系统与 -s 选项配合使用,那么不需要 -n

-q 队列名称..
指定允许其作业在高级预留主机上运行的队列,即使作业的运行限制大于提前预留开始前的时间量也是如此。
-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 表示法。

-unit [插槽 | 主机]
指定是针对多个插槽还是主机进行提前预留。 如果未指定 -unit 选项,那么缺省情况下,提前预留请求将使用槽单元。
brsvadd 命令一起使用时,无论您使用的是插槽还是主机单元,都需要以下选项:
  • 要使用 -n 选项保留的插槽或主机数。
  • 具有 -m 选项和/或 -R 选项的候选主机的列表。
  • 有权使用高级预留的用户或用户组,带有 -u 选项。
  • 预留的时间段,同时使用 -t-b 选项和 -e 选项。
-h
打印命令用法并退出。
-V
打印 LSF 发行版并退出。

示例

以下命令为主机上的 14 个作业槽创建一次性提前预留hostAhostB针对user1group1上午 6:00 到今天上午 8:00 之间:
brsvadd -unit slot -n 14 -m "hostA hostB" -u "user1 group1" -b 6:0 -e 8:0
Reservation "user1#0" is created
以下命令为四个主机创建提前预留,并且预留的主机至少有 16 个插槽:
brsvadd -unit host -n 4 -R "maxslots>=16"" -u "groupA groupB groupC" -b 3:0 -e 4:0
Reservation "groupA#0" is created
以下命令将为主机上的 1024 个作业槽创建开放式提前预留hostA用于用户user1在今天早上六点到八点之间
brsvadd -o -n 1024 -m hostA -u user1 -b 6:0 -e 8:0
Reservation "user1#0" is created

另请参阅

brsvdel, brsvmod, brsvs, lsb.resources