LSF实践专题(18):资源高级预留功能(Advanced Reservation)

文章介绍了LSF中的AdvancedReservation功能,一种用于在集群负载大时保证重要任务资源独占的预留系统。通过brsvadd、brsvmod和brsvdel命令创建、修改和删除AR,以及如何通过时间窗口控制资源使用。
摘要由CSDN通过智能技术生成

目录

简单创建一个AR

查看AR的信息

AR的基本功能演示

更多的AR创建参数

删除AR

总结


在集群负载比较大的时候,有时候管理员还要保证某些重要部门能够为一些早已计划好的重要事件拥有一些独享资源,保证这些计算任务不被其他负载影响。

LSF中有一种Advanced Reservation功能可以满足这种需求,我们来看一下。

Advanced Reservation是用于计算节点上的一种提前预留方案,他会根据要求将列出的满足需求的计算节点设置一个保护,让普通的作业不会调度到这些节点上运行,只允许特殊的作业才能使用这些节点。

不同于之前介绍的调度策略,Advanced Reservation是通过brsvadd,brsvmod, brsvdel命令来创建、修改和删除的,通过命令brsvs则可以查看当前存在的Advanced Reservation。每一个Advanced Reservation都需要指定一个active时间段,超过这个时间段以后,对应计算节点就可以被普通作业正常使用。为了方便描述,后面本文会用AR来代表Advanced Reservation。

简单创建一个AR

我们先看一个最简单的例子,来对AR的使用有一个简单了解。

图片

上面这个例子中,我们通过brsvadd命令,成功创建了一个AR, 命令中的几个参数作用如下:

-m:指定要在哪些节点上创建AR。

-u:创建的AR可以由哪些用户或者用户群组使用。

-n:AR有两种类型,以host为单位或者是以slot为单位。默认是以slot为单位,这时-n表示这个AR中包含多少个slot;如果是以host为单位,-n就表示这个AR包含多少个host,此时整个host所有的资源都在这个AR中。

-b:AR开始的时间,可以用例子中的HH:MM的格式,也可以在前面加上年月日。

-e:AR结束的时间,格式与开始时间相同。

-N:为这个AR指定一个名字,这个可以省略,系统会自动命名,但是自己指定的名字可以更加清晰。

查看AR的信息

创建成功之后,我们也可以通过brsvmod命令对AR的属性进行修改,参数和brsvadd一样,只要最后加上要修改的AR的名字就可以。

通过brsvs命令,我们可以检查现有的AR。

图片

brsvs命令会显示出AR的基本信息,因为我们创建时指定的是-n 4,并且默认是slot为单位,所以这个AR中的NCPUS就是0/4,斜线前面的0表示当前这个AR中有多少个slot已经被使用,现在没有任何作业使用,所以是0。 

TIME_WINDOW则显示当前AR的有效时间范围,因为我们创建AR时只指定了小时和分钟,所以LSF会自动把当前的日期补上,以月/日/时/分的格式显示出来。

RSV_HOSTS则表示当前AR设置在了哪些host节点上,每个节点总共有多少slot,以及当前使用了多少slot。

需要注意的是,NCPUS显示的是整个AR的信息,RSV_HOSTS则显示的是AR中每个host节点的信息。

下面我们再来看一下brsvs -l的输出。

图片

通过brsvs -l命令可以显示出AR更加详细的信息,包括当前的状态(Reservation Status),如果当前系统时间在AR的TIME_WINDOW范围内,状态就是Active,反之就是Inactive。Creater表示AR的创建者。

Reservation Type有两种,分别是OPEN和CLOSED,他们的区别是:在CLOSED模式下,当AR的TIME_WINDOW结束时,仍然没有完成的AR下的作业会被杀掉,而如果是OPEN模式,这些未完成的作业会被suspend,然后作为普通的作业(非AR作业)被调度并尝试恢复运行(resume)。AR默认是CLOSED模式,如果想指定为OPEN模式,可以在创建AR时,给brsvadd命令后增加选项-o。

因为我们创建AR时未指定unit type,所以默认是Slot模式(Resource Unit: Slot)。

AR的基本功能演示

1、非AR用户的作业

我们等到AR的TIME_WINDOW生效,再次观察brsvs -l,可以看到这时的Reservation Status变成了Active。

图片

通过bhosts命令,我们看到当前节点共有32个slot,我们分配了4个给slotAR1。

图片

我们以一个不在用户群组ug1的用户,提交一个作业<851>,通过-n选项要求32个slot。

图片

作业<851>不能运行,因为虽然当前集群内有32个slot,但是其中4个预留给了slotAR1。

我们通过bmod命令更改作业<851>,将slot的需求改为28个。

图片

更改成28个slot后,作业<851>成功运行。

接下来将作业<851>杀掉,我们以用户tadmin1提交一个-n 32的作业<853>,作为用户群组ug1的成员,用户tadmin1的作业可以运行吗?

图片

答案仍然是否,因为作业<853>的提交者虽然属于群组ug1,但是并没有将这个作业提交到slotAR1中。

那么如何让作业使用AR中的资源呢?

2、将作业提交到AR中

首先提交作业的用户必须属于AR指定的用户或者群组,然后在bsub命令中使用-U来指定AR的名字。如果提交者不是AR中指定的用户也不属于AR指定的用户群组,LSF会提示没有权限,并且拒绝。

非AR用户示例:

图片

AR用户示例:

图片

同时,我们用bmod命令将作业<853>的-n需求改成28。

图片

作业<853>和<854>都成功运行起来,其中,<853>是使用AR外的28个slot运行的,而<854>是通过AR中的4个slot运行的。这时,我们通过brsvs -l可以看到AR对应的信息。

图片

在brsvs -l的输出中,我们看到NCPUS和RSV_HOSTS中slot使用情况都变成了4/4,表示AR中的4个slot都属于被使用状态。

同时,输出信息中多了一个RUN  Jobs,这里会列出当前提交到这个AR里的所有作业,我们看到作业<854>被列在了这里。

更多的AR创建参数

上面我们创建的AR是slot类型的,如果想创建host类型的,我们通过-unit host来指定就可以。

图片

host类型的AR,会以host为单位进行划分,所以-n代表的就是需要的host数量,我们用的是-n 1,表示只需要一个host。

这次我们没有用-m来指定需要的host名字,而是用-R来代替,-R的使用方法和提交作业时的-R类似,但是只需要用其中的select和order功能,LSF会根据-R的需求,从当前的集群中选出符合要求的节点,并从这些节点中选出数量满足-n需求的节点数量,来创建AR。

另外,我们这次也没有用-b和-e选项来指定AR的开始和结束时间,而是用-t来指定了一个时间范围作为AR的active时间范围。这种方式是等效的,但是还有一些特殊方式的应用,比如,如果我们需要指定一个AR,让它每天或者每周固定时间处于激活状态,我们可以通过-t来指定。在HH:MM前面加两个数字段表示MM:DD:HH:MM,月/日/时/分,但是如果只加一个数字段,就表示WeekDay:HH:MM,星期几/时/分。其中,1-6表示从星期一到星期六,0表示星期天。例如-t 2:05:00-2:08:00,就表示每周二的5点到8点,-t 6:23:30-0:22:00,就表示每周六晚上11点半到周日晚上10点。

图片

通过brsvs -l命令,我们可以看到Resource Unit:Host,表示-unit host的类型指定成功。

我们加入了一个host节点,这个host上所有的资源都被加入了这个AR,所以我们看到NCPUS和RSV_HOSTS显示0/32,表示这个host节点上的32个slot都属于当前的AR。

删除AR

如果指定的时间段不是周期性的,这种AR在时间窗口过了以后,LSF会自动将它删除。如果AR的时间窗口还没有到或者没有结束,或者对于周期性的AR,我们可以通过brsvdel命令将其删除,只需要提供AR的名字即可。

图片

总结

Advanced Reservation其实是一种系统级资源预留,它和我们之前介绍过的作业的resource reservation很像,区别在于,作业的resource reservation是将资源预留给某个正在pending 的作业,阻止其他同队列或者优先级更低的队列中的作业占用这些资源,以便让这个作业能够更早的运行起来;Advanced Reservation则是将资源预留给这个AR,仅供提交到这个AR中的作业使用,保证这些作业能更快运行起来。

我们可以为一些高优先级的部门或者项目预留时间窗口,让他们能够独享一部分计算资源,或者我们也可以用这个特性,预留出一部分节点,让某个时间段内,没有任何作业能够使用这些节点,从而在这个时间段内对这些节点做一些系统维护之类的工作。

欢迎关注下方微信公众号【HPC常青园】,共同交流HPC集群管理经验和最佳实践。如果您有关于HPC集群的具体需求,欢迎邮件沟通交流:hpc@ivyent.cn。

HPC常青园

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ivyent

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值