CN117632428A - 资源调度管理方法、装置、设备及存储介质 - Google Patents
资源调度管理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117632428A CN117632428A CN202311644353.0A CN202311644353A CN117632428A CN 117632428 A CN117632428 A CN 117632428A CN 202311644353 A CN202311644353 A CN 202311644353A CN 117632428 A CN117632428 A CN 117632428A
- Authority
- CN
- China
- Prior art keywords
- slurm
- isolation environment
- program
- job
- submitting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000007726 management method Methods 0.000 title claims abstract description 47
- 238000002955 isolation Methods 0.000 claims abstract description 243
- 238000000034 method Methods 0.000 claims description 38
- 230000015654 memory Effects 0.000 claims description 21
- 230000006378 damage Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 6
- 230000003993 interaction Effects 0.000 abstract description 14
- 230000000694 effects Effects 0.000 abstract description 3
- 238000012423 maintenance Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本申请涉及一种资源调度管理方法、装置、设备及存储介质,应用在资源调度管理领域,包括Linux平台接收到配置信息时,配置SLURM系统运行资源调度管理方法所需要的文件,配置信息包括预定义数据、提交工具、隔离环境引导程序与隔离环境建立程序;当Linux平台接收到提交SLURM作业的指令时,Linux平台调用提交工具将SLURM作业提交至SLURM系统,并将隔离环境引导程序插入到SLURM作业中;SLURM系统调用隔离环境建立程序,根据预定义数据建立隔离环境;SLURM系统调用隔离环境引导程序,将SLURM作业引导至隔离环境中,并执行SLURM作业。本申请具有的技术效果:作业运行在同一节点时有助于防范项目间的数据交互,提高数据安全性。
Description
技术领域
本申请涉及资源调度管理技术领域,尤其是涉及一种资源调度管理方法、装置、设备及存储介质。
背景技术
SLURM(Simple Linux Utility for Resource Management,Linux平台简单资源调度管理工具)是一种资源调度系统,可以调度Linux平台的硬件资源,以供各种应用软件运行。Linux文件系统权限分为用户(user)、组(group)和其他(other)权限,Linux系统下的数据会使用这种文件系统权限技术来限制用户的数据访问行为,一般会将同一个项目的用户加入到同一个组中,项目的数据只开放给这个组访问,以此方式来杜绝非项目用户对这些数据的访问。SLURM用户在通过SLURM系统申请资源时,必须指定一个SLURM Account,通常这个Account可以在业务层面对应为某个项目。应用软件通过SLURM申请的资源运行后,即为一个SLURM作业(SLURM Job)。SLURM作业包含一个或者多个运行程序。
EDA(Electronics Design Automation,电子设计自动化)软件是芯片设计中不可缺少的软件工具,相对其他软件,EDA工具在运行时需要更多的硬件资源,因此通常会配合资源调度软件一起运行,以便更高效合理地使用硬件资源。EDA软件在使用SLURM系统分配的资源运行后,即为一个SLURM作业(SLURM Job)。当多个SLURM作业(SLURM Job)被分配的资源属于同一个节点时,这些作业就可以利用一些公共路径(例如,/tmp)互相交互数据。
由于芯片设计的各项目所使用的技术等级不同,部分先进技术项目要求的数据安全性级别较高,因此这些安全级别较高的项目的数据不希望被其他项目的作业访问到;一般情况下,安全级别高的项目的数据会使用Linux文件系统权限技术来设置访问权限,只允许项目成员访问到此项目的数据。然而,在实际运行过程中,如果作业运行在同一节点就难以防范项目间的数据交互。
发明内容
为了有助于解决SLURM作业运行在同一节点就难以防范项目间的数据交互的问题,本申请提供一种资源调度管理方法、装置、设备及存储介质。
第一方面,本申请提供一种资源调度管理方法,采用如下的技术方案:所述方法基于Linux平台和SLURM系统,所述方法包括:
所述Linux平台接收到配置信息时,配置所述SLURM系统运行所述资源调度管理方法所需要的文件,所述配置信息包括预定义数据、提交工具、隔离环境引导程序与隔离环境建立程序;
当所述Linux平台接收到提交SLURM作业的指令时,所述Linux平台调用所述提交工具将所述SLURM作业提交至所述SLURM系统,并将所述隔离环境引导程序插入到所述SLURM作业中;
所述SLURM系统调用所述隔离环境建立程序,根据所述预定义数据建立隔离环境;
所述SLURM系统调用所述隔离环境引导程序,将所述SLURM作业引导至所述隔离环境中,并执行所述SLURM作业。
通过上述技术方案,结合配置SLURM系统运行资源调度管理方法所需要的文件完成建立隔离环境的准备工作,项目人员发出提交SLURM作业的指令,Linux平台接收到提交指令并进行相应的操作,SLURM系统调用隔离环境建立程序建立隔离环境,SLURM系统调用隔离环境引导程序,将用户提交的SLURM作业引导至隔离环境中运行至结束;通过建立隔离环境可以防范项目间的数据交互,使得即使使用同一个节点的资源运行,项目之间也是无法交换任何数据的,满足了项目的高数据安全性要求。
在一个具体的可实施方案中,所述SLURM系统包括SLURM Account,所述配置所述SLURM系统运行所述资源调度管理方法所需要的文件包括:
所述Linux平台建立文件目录并部署脚本文件,所述脚本文件包括提交工具、隔离环境建立程序与隔离环境销毁程序的脚本文件;
所述Linux平台编译并部署隔离环境引导程序;
所述Linux平台设置预定义数据与识别key,将所述预定义数据与所述SLURMAccount关联;
所述Linux平台创建所述SLURM系统运行时所需的配置文件。
通过上述技术方案,在Linux平台建立基本的文件目录以及SLURM系统建立隔离环境需要的脚本文件;事先设置好预定义数据并将预定义数据与SLURM Account关联,使得系统可以通过SLURM Account获取到预定义数据;识别key可以理解为识别环境的标识,通过设置识别key可以检测环境识别标识从而建立隔离环境。
在一个具体的可实施方案中,在所述所述SLURM系统调用所述隔离环境引导程序,将所述SLURM作业引导至所述隔离环境中,并执行所述SLURM作业之后,还包括:
所述SLURM系统调用所述隔离环境销毁程序判断所述SLURM作业是否执行结束;
若所述SLURM作业执行结束,则所述SLURM系统调用所述隔离环境销毁程序检测所述隔离环境是否存在;
若所述隔离环境存在,则所述SLURM系统调用所述隔离环境销毁程序卸载所述预定义数据并销毁所述隔离环境。
通过上述技术方案,在SLURM作业运行结束后,调用隔离环境销毁程序卸载预定义数据并销毁建立的隔离环境,可以保证数据的安全性,使得使用同一节点的资源运行无法进行数据交互;预定义数据自动卸载,可以减少运维成本和运维人员的负担;此外,每一次执行SLURM作业都是建立对应的隔离环境,SLURM作业执行结束后建立的隔离环境将不再存在,其他SLURM作业也无法使用该隔离环境;同时在SLURM作业运行结束后将隔离环境销毁可以减少资源的占用,节省资源空间。
在一个具体的可实施方案中,所述所述Linux平台调用所述提交工具将所述SLURM作业提交至所述SLURM系统,并将所述隔离环境引导程序插入到所述SLURM作业中包括:
所述Linux平台调用所述提交工具截获所述SLURM作业,并将所述隔离环境引导程序和所述识别key插入所述SLURM作业;
所述Linux平台调用所述提交工具检测所述SLURM作业提交命令是否为sbatch提交命令;
若所述SLURM作业提交命令为sbatch提交命令,则所述Linux平台调用所述提交工具插入sbatch适配程序。
通过上述技术方案,SLURM作业的提交命令sbatch只支持脚本执行,不支持二进制程序;调用提交工具截获并调整用户的提交的SLURM作业,如果检测到用户是使用sbatch提交的命令,会自动插入引导脚本,从而让sbatch支持所有可执行程序,提升了sbatch的可用性。
在一个具体的可实施方案中,所述SLURM系统包括SLURM用户,所述所述SLURM系统调用所述隔离环境建立程序,根据所述预定义数据建立隔离环境包括:
所述SLURM系统调用所述隔离环境建立程序检测所述识别key是否正确;
若所述识别key正确,则所述SLURM系统获取所述SLURM作业的所述SLURM用户和所述SLURM Account;
所述SLURM系统调用所述隔离环境建立程序,根据所述SLURM用户和所述SLURMAccount获取所述预定义数据;
所述SLURM系统调用所述隔离环境建立程序,根据所述预定义数据建立所述隔离环境,并将所述预定义数据挂载至所述隔离环境。
通过上述技术方案,通过检测识别key是否正确从而建立对应的隔离环境,可以保证隔离环境的安全性,数据在隔离环境中运行不会被其他项目访问到;此外,挂载数据不需要用户手动操作,可以减少运维成本和运维人员的负担,数据自动挂载功能实现了数据的按需访问,有效降低了存储的性能开销。
在一个具体的可实施方案中,所述所述Linux平台调用所述提交工具截获所述SLURM作业,并将所述隔离环境引导程序和所述识别key插入所述SLURM作业包括:
所述Linux平台调用所述提交工具获取所述SLURM作业和所述识别key;
所述Linux平台调用所述提交工具将所述SLURM作业进行分类,并将所述隔离环境引导程序和所述识别key插入所述SLURM作业;
所述Linux平台调用所述提交工具将所述SLURM作业、所述识别key和所述隔离环境引导程序提交至所述SLURM系统。
通过上述技术方案,结合调用提交工具获取项目人员提交的SLURM作业和建立的识别key,提交工具将获取的SLURM作业进行分类,可以分成用户需要运行的命令和参数以及SLURM系统的参数等,之后将隔离环境引导程序和识别key插入到SLURM作业中一起提交到SLURM系统,以便于后续SLURM系统调用隔离环境建立程序建立隔离环境供SLURM作业运行。
在一个具体的可实施方案中,所述所述SLURM系统调用所述隔离环境引导程序,将所述SLURM作业引导至所述隔离环境中包括:
所述SLURM系统调用所述隔离环境引导程序判断所述隔离环境是否存在;
若所述隔离环境存在,则所述SLURM系统调用所述隔离环境引导程序将所述SLURM作业执行环境chroot至隔离环境。
通过上述技术方案,由于SLURM系统不会自动将SLURM作业放置到建立好的隔离环境中执行,因此需要调用隔离环境引导程序将SLURM作业强制chroot到隔离环境中执行以保证数据的高安全性,chroot即Change Root,chroot操作即改变程序执行时所参考的根目录位置;通过将SLURM作业执行环境chroot至隔离环境以完成隔离运行的操作,使得提交的SLURM作业可以成功在建立好的隔离环境中运行,从而使得可以防范项目间的数据交互,提高数据安全性。
第二方面,本申请提供一种资源调度管理装置,采用如下技术方案:所述装置基于Linux平台和SLURM系统,所述装置包括:
所述Linux平台用于接收到配置信息时,配置所述SLURM系统运行所述资源调度管理方法所需要的文件,所述配置信息包括预定义数据、提交工具、隔离环境引导程序与隔离环境建立程序;
所述Linux平台还用于当接收到提交SLURM作业的指令时,所述Linux平台调用所述提交工具将所述SLURM作业提交至所述SLURM系统,并将所述隔离环境引导程序插入到所述SLURM作业中;
所述SLURM系统用于调用所述隔离环境建立程序,根据所述预定义数据建立隔离环境;
所述SLURM系统还用于调用所述隔离环境引导程序,将所述SLURM作业引导至所述隔离环境中,并执行所述SLURM作业。
第三方面,本申请提供一种计算机设备,采用如下技术方案:包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如上述任一种资源调度管理方法的计算机程序。
第四方面,本申请提供一种计算机可读存储介质,采用如下技术方案:存储有能够被处理器加载并执行上述任一种资源调度管理方法的计算机程序。
综上所述,本申请具有以下有益技术效果:
结合配置SLURM系统运行资源调度管理方法所需要的文件完成建立隔离环境的准备工作,项目人员发出提交SLURM作业的指令,Linux平台接收到提交指令并进行相应的操作,SLURM系统调用隔离环境建立程序建立隔离环境,SLURM系统调用隔离环境引导程序,将用户提交的SLURM作业引导至隔离环境中运行至结束;通过建立隔离环境可以防范项目间的数据交互,使得即使使用同一个节点的资源运行,项目之间也是无法交换任何数据的,满足了项目的高数据安全性要求。
附图说明
图1是本申请实施例中资源调度管理方法的流程图;
图2是本申请实施例中资源调度管理方法配置实施流程图;
图3是本申请实施例中资源调度管理方法完整的工作逻辑流程图;
图4是本申请实施例中隔离环境销毁程序销毁隔离环境的流程示意图;
图5是本申请实施例中隔离环境建立程序建立隔离环境的流程示意图;
图6是本申请实施例中提交工具提交SLURM作业的流程示意图;
图7是本申请实施例中隔离环境引导程序将SLURM作业引导至隔离环境中的流程示意图;
图8是本申请实施例中用于体现计算机设备的示意图。
具体实施方式
以下结合附图1-8对本申请作进一步详细说明。
本申请实施例公开一种资源调度管理方法,该方法基于Linux平台和SLURM系统,SLURM系统为资源调度管理工具,运行于Linux平台,可以调度Linux平台的硬件资源供各种应用软件运行。芯片设计的项目人员使用该方法可以在SLURM作业运行前建立好专属的隔离环境,之后将需要运行的SLURM作业引导至隔离环境中执行,对于有高数据安全性要求的项目可以保证数据的安全性。目前,数据安全级别高的项目的数据会使用Linux文件系统权限技术来设置访问权限,只允许项目成员访问到此项目的数据;然而,采用Linux文件系统权限技术在实际执行过程中,如果作业运行在同一节点就难以防范项目间的数据交互。为了有助于解决运行在同一节点的作业难以防范项目间的数据交互的问题,本申请提供一种资源调度管理方法。
参照图1,该方法包括以下步骤:
S10,Linux平台接收到配置信息时,配置SLURM系统运行资源调度管理方法所需要的文件,配置信息包括预定义数据、提交工具、隔离环境引导程序与隔离环境建立程序。
具体来说,项目人员会预先定义好一组数据,并设置好SLURM系统运行资源调度管理方法所需要的文件,包括提交工具、隔离环境引导程序与隔离环境建立程序等,之后项目人员将预先设置好的预定义数据、提交工具、隔离环境引导程序与隔离环境建立程序等配置信息传输至Linux平台,Linux平台接收到对应的配置信息配置好文件,使SLURM系统可以运行于Linux平台并能执行资源调度管理方法相关的程序以保证数据的高安全性。
S20,当Linux平台接收到提交SLURM作业的指令时,Linux平台调用提交工具将SLURM作业提交至SLURM系统,并将隔离环境引导程序插入到SLURM作业中。
具体来说,项目人员事先在Linux平台将需要的配置文件配置完成,之后项目人员根据实际需要启动提交SLURM作业的指令,Linux平台在接收到提交SLURM作业的指令后,调用提交工具将接收到的SLURM作业提交至SLURM系统;调用提交工具除了将SLURM作业提交至SLURM系统外,Linux平台调用提交工具将隔离环境引导程序插入到SLURM作业中。
S30,SLURM系统调用隔离环境建立程序,根据预定义数据建立隔离环境。
具体来说,项目人员将SLURM作业提交至SLURM系统后,SLURM系统会为接收到的SLURM作业分配运行所需要的资源,使得SLURM作业可以正常运行;之后SLURM系统会调用隔离环境建立程序,根据预定义数据建立隔离环境,隔离环境的建立可以有助于防范项目间的数据交互。
S40,SLURM系统调用隔离环境引导程序,将SLURM作业引导至隔离环境中,并执行SLURM作业。
具体来说,在SLURM系统中建立好隔离环境后,由于SLURM系统不会自动将SLURM作业放置到建立好的隔离环境中执行,因此需要调用隔离环境引导程序将SLURM作业引导至隔离环境中执行,从而可以达到隔离的目的,以防范在同一节点的项目间的数据交互,进而可以提高数据的安全性。
在本申请方案中,结合配置SLURM系统运行资源调度管理方法所需要的文件完成建立隔离环境的准备工作,项目人员发出提交SLURM作业的指令,Linux平台接收到提交指令并进行相应的操作,SLURM系统调用隔离环境建立程序建立隔离环境,SLURM系统调用隔离环境引导程序,将用户提交的SLURM作业引导至隔离环境中运行至结束;通过建立隔离环境可以防范项目间的数据交互,使得即使使用同一个节点的资源运行,项目之间也是无法交换任何数据的,满足了项目的高数据安全性要求。
在一个实施例中,参照图2,SLURM系统包括SLURM Account,配置SLURM系统运行资源调度管理方法所需要的文件可以被具体执行为:
首先,项目人员在Linux平台建立文件目录并部署脚本文件,部署的脚本文件包括提交工具、隔离环境建立程序与隔离环境销毁程序的脚本文件,提交工具用于提交SLURM作业至SLURM系统,隔离环境建立程序用于建立隔离环境,隔离环境销毁程序用于在SLURM作业执行完成后卸载数据并销毁隔离环境;建立的文件目录,例如,建立bin、etc、log、sbin等文件目录,文件目录用于存储部署好的脚本文件,以便于后续SLURM系统在运行时调用部署好的脚本文件;之后,在Linux平台编译并部署隔离环境引导程序,隔离环境引导程序用于将SLURM作业引导至隔离环境中运行;在配置文件时,项目人员事先设置好预定义数据和识别key,并将预定义数据与SLURM Account关联;设置的预定义数据包括数据集以及与数据对应的挂载点,识别key也即识别环境的标识,在建立隔离环境时,检测识别key以确定是否需要建立隔离环境,系统检测到识别key正确默认建立隔离环境,但项目人员也可以根据实际情况判断是否需要建立隔离环境,对应的设置识别key,从而可以增强设置的灵活性;之后,创建SLURM系统运行时所需的配置文件,包括配置sbatch提交命令的适配程序,配置提交工具的提交命令的路径和有效选项,配置隔离环境建立程序和隔离环境销毁程序的适配文件,配置运行环境和路径,例如,在用户路径中加入提交工具所在的路径,从而使SLURM作业可以在建立的隔离环境中运行。
在本申请方案中,在Linux平台建立基本的文件目录以及SLURM系统建立隔离环境需要的脚本文件;事先设置好预定义数据并将预定义数据与SLURM Account关联,使得系统可以通过SLURM Account获取到预定义数据;识别key可以理解为识别环境的标识,通过设置识别key可以检测环境识别标识从而建立隔离环境。
在一个实施例中,参照图3和图4,考虑到一个SLURM作业运行结束后,建立的专属的隔离环境不再执行下一个SLURM作业,若存在系统中会占用空间资源,因此在SLURM系统调用隔离环境引导程序,将SLURM作业引导至隔离环境中,并执行SLURM作业之后,还可以执行以下步骤:
首先,SLURM系统调用隔离环境销毁程序判断SLURM作业是否执行结束,若SLURM作业执行未结束,则继续执行SLURM作业;若SLURM作业执行结束,则SLURM系统调用隔离环境销毁程序检测隔离环境是否存在,若隔离环境存在,则SLURM系统调用隔离环境销毁程序卸载预定义数据并销毁隔离环境;若检测不到隔离环境的存在,则程序结束运行。需要说明的是,设置的预定义数据包括数据集以及与数据集对应的挂载点,因此卸载预定义数据包括卸载数据以及删除预定义数据对应的挂载点,在建立完成与预定义数据对应的隔离环境之后,需要将预定义数据挂载至隔离环境,因此在SLURM作业运行结束后,卸载数据时需要将挂载点一并删除;销毁隔离环境包括销毁隔离环境、隔离环境遗留数据以及目录文件。
在本申请方案中,在SLURM作业运行结束后,调用隔离环境销毁程序卸载预定义数据并销毁建立的隔离环境,可以保证数据的安全性,使得使用同一节点的资源运行无法进行数据交互;预定义数据自动卸载,可以减少运维成本和运维人员的负担;此外,每一次执行SLURM作业都是建立对应的隔离环境,SLURM作业执行结束后建立的隔离环境将不再存在,其他SLURM作业也无法使用该隔离环境;同时在SLURM作业运行结束后将隔离环境销毁可以减少资源的占用,节省资源空间。
在一个实施例中,参照图3,Linux平台调用提交工具将SLURM作业提交至SLURM系统,并将隔离环境引导程序插入到SLURM作业中可以被具体执行为:
首先,Linux平台调用提交工具截获项目人员提交的SLURM作业,并将隔离环境引导程序和识别key插入到SLURM作业中;之后,Linux平台调用提交工具检测SLURM作业提交命令是否为sbatch提交命令,若为sbatch提交命令,则Linux平台调用提交工具插入sbatch适配程序;在将SLURM作业提交至SLURM系统后,SLURM系统为SLURM作业分配运行所需的资源。
在本申请方案中,SLURM作业的提交命令sbatch只支持脚本执行,不支持二进制程序;调用提交工具截获并调整用户的提交的SLURM作业,如果检测到用户是使用sbatch提交的命令,会自动插入引导脚本,从而让sbatch支持所有可执行程序,提升了sbatch的可用性。
在一个实施例中,参照图3和图5,SLURM系统包括SLURM用户,SLURM系统调用隔离环境建立程序,根据预定义数据建立隔离环境可以被具体执行为:
首先,SLURM系统调用隔离环境建立程序检测识别key是否正确,若识别key正确,则SLURM系统获取SLURM作业的SLURM用户和SLURM Account;检测到识别key正确后,系统将默认建立隔离环境,但是项目人员也可以根据实际情况判断是否需要建立隔离环境从而设置对应的识别key,增强了使用的灵活性;之后,SLURM系统调用隔离环境建立程序,根据SLURM用户和SLURM Account获取预定义数据;获取预定义数据之后,SLURM系统调用隔离环境建立程序,根据获取的预定义数据建立专属的隔离环境,并将预定义数据挂载至建好的隔离环境中运行。参照图3,在建完隔离环境后,隔离环境建立程序需要退出后再继续执行后续步骤,若隔离环境建立程序的退出状态若为0,则表示程序正常退出,隔离环境成功建立,可继续执行引导程序;若退出状态若不为0,则表示异常退出,隔离环境建立失败,需重新执行建立隔离环境的步骤直至成功建立隔离环境。
在本申请方案中,通过检测识别key是否正确从而建立对应的隔离环境,可以保证隔离环境的安全性,数据在隔离环境中运行不会被其他项目访问到;此外,挂载数据不需要用户手动操作,可以减少运维成本和运维人员的负担,数据自动挂载功能实现了数据的按需访问,有效降低了存储的性能开销。
在一个实施例中,参照图6,Linux平台调用提交工具截获SLURM作业,并将隔离环境引导程序和识别key插入SLURM作业可以被具体执行为:
首先,Linux平台调用提交工具获取SLURM作业和识别key,之后,Linux平台调用提交工具将SLURM作业进行分类,并将隔离环境引导程序和识别key插入SLURM作业;SLURM系统的提交命令包括srun、sbatch和salloc三种类型,调用提交工具将SLURM作业进行分类具体可以为,检测项目人员调用的SLURM系统的提交命令是否为srun、sbatch和salloc三种类型中的一种,若是,则开始执行循环,通过遍历SLURM作业的输入参数,检测参数特征、有效选项等进行循环,将SLURM作业进行分类,分类可以分成用户需要运行的命令和参数以及SLURM系统的参数等;之后,Linux平台调用提交工具将SLURM作业、识别key和隔离环境引导程序提交至SLURM系统,SLURM系统为接收到的SLURM作业分配运行资源。
在本申请方案中,结合调用提交工具获取项目人员提交的SLURM作业和建立的识别key,提交工具将获取的SLURM作业进行分类,可以分成用户需要运行的命令和参数以及SLURM系统的参数等,之后将隔离环境引导程序和识别key插入到SLURM作业中一起提交到SLURM系统,以便于后续SLURM系统调用隔离环境建立程序建立隔离环境供SLURM作业运行。
在一个实施例中,参照图7,SLURM系统调用隔离环境引导程序,将SLURM作业引导至隔离环境中可以被具体执行为:
首先,SLURM系统调用隔离环境引导程序判断隔离环境是否存在,若隔离环境存在,则SLURM系统调用隔离环境引导程序将SLURM作业执行环境chroot至隔离环境,chroot即Change Root,chroot操作即改变程序执行时所参考的根目录位置;在将SLURM作业执行环境chroot至隔离环境之后,SLURM系统会进行对应的路径的设置,如,判断提交SLURM作业的路径是否存在,若存在,则变换当前路径为项目人员提交SLURM作业时所在的路径,之后切换程序运行身份为SLURM作业提交用户,若不存在,则直接切换程序运行身份为SLURM作业提交用户,从而可以尽可能保证默认行为和原执行环境保持一致。
在本申请方案中,由于SLURM系统不会自动将SLURM作业放置到建立好的隔离环境中执行,因此需要调用隔离环境引导程序将SLURM作业强制chroot到隔离环境中执行以保证数据的高安全性,chroot即Change Root,chroot操作即改变程序执行时所参考的根目录位置;通过将SLURM作业执行环境chroot至隔离环境以完成隔离运行的操作,使得提交的SLURM作业可以成功在建立好的隔离环境中运行,从而使得可以防范项目间的数据交互,提高数据安全性。
图1为一个实施例中资源调度管理方法的流程示意图。应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行;除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行;并且图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
基于上述方法,本申请实施例还公开一种资源调度管理装置,该装置包括:
Linux平台用于接收到配置信息时,配置SLURM系统运行资源调度管理方法所需要的文件,配置信息包括预定义数据、提交工具、隔离环境引导程序与隔离环境建立程序;
Linux平台还用于当接收到提交SLURM作业的指令时,Linux平台调用提交工具将SLURM作业提交至SLURM系统,并将隔离环境引导程序插入到SLURM作业中;
SLURM系统用于调用隔离环境建立程序,根据预定义数据建立隔离环境;
SLURM系统还用于调用隔离环境引导程序,将SLURM作业引导至隔离环境中,并执行SLURM作业。
在一个实施例中,SLURM系统包括SLURM Account,Linux平台用于建立文件目录并部署脚本文件,脚本文件包括提交工具、隔离环境建立程序与隔离环境销毁程序的脚本文件;Linux平台还用于编译并部署隔离环境引导程序;Linux平台还用于设置预定义数据与识别key,将预定义数据与SLURM Account关联;Linux平台还用于创建SLURM系统运行时所需的配置文件。
在一个实施例中,SLURM系统用于调用隔离环境销毁程序判断SLURM作业是否执行结束;若SLURM作业执行结束,则SLURM系统还用于调用隔离环境销毁程序检测隔离环境是否存在;若隔离环境存在,则SLURM系统还用于调用隔离环境销毁程序卸载预定义数据并销毁隔离环境。
在一个实施例中,Linux平台用于调用提交工具截获SLURM作业,并将隔离环境引导程序和识别key插入SLURM作业;Linux平台还用于调用提交工具检测SLURM作业提交命令是否为sbatch提交命令;若SLURM作业提交命令为sbatch提交命令,则Linux平台还用于调用提交工具插入sbatch适配程序。
在一个实施例中,SLURM系统包括SLURM用户,SLURM系统用于调用隔离环境建立程序检测识别key是否正确;若识别key正确,则SLURM系统还用于获取SLURM作业的SLURM用户和SLURM Account;SLURM系统还用于调用隔离环境建立程序,根据SLURM用户和SLURMAccount获取预定义数据;SLURM系统还用于调用隔离环境建立程序,根据预定义数据建立隔离环境,并将预定义数据挂载至隔离环境。
在一个实施例中,Linux平台用于调用提交工具获取SLURM作业和识别key;Linux平台还用于调用提交工具将SLURM作业进行分类,并将隔离环境引导程序和识别key插入SLURM作业;Linux平台还用于调用提交工具将SLURM作业、识别key和隔离环境引导程序提交至SLURM系统。
在一个实施例中,SLURM系统用于调用隔离环境引导程序判断隔离环境是否存在;若隔离环境存在,则SLURM系统还用于调用隔离环境引导程序将SLURM作业执行环境chroot至隔离环境。
本申请实施例提供的资源调度管理装置,可以应用于如上述实施例中提供的资源调度管理方法,相关细节参考上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
需要说明的是:本申请实施例中提供的资源调度管理装置在进行资源调度管理时,仅以上述各功能模块/功能单元的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块/功能单元完成,即将资源调度管理装置的内部结构划分成不同的功能模块/功能单元,以完成以上描述的全部或者部分功能。另外,上述方法实施例提供的资源调度管理方法的实施方式与本实施例提供的资源调度管理装置的实施方式属于同一构思,本实施例提供的资源调度管理装置的具体实现过程详见上述方法实施例,这里不再赘述。
本申请实施例还公开一种计算机设备。
具体来说,如图8所示,该计算机设备可以是桌上型计算机、笔记本电脑、掌上电脑以及云端服务器等计算机设备。该计算机设备可以包括,但不限于,处理器和存储器。其中,处理器和存储器可以通过总线或者其他方式连接。其中,处理器可以为中央处理器(CentralProcessingUnit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、图形处理器(GraphicsProcessingUnit,GPU)、嵌入式神经网络处理器(Neural-networkProcessingUnit,NPU)或者其他专用的深度学习协处理器、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请上述实施方式中的方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的方法。存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例还公开一种计算机可读存储介质。
具体来说,计算机可读存储介质用于存储计算机程序,计算机程序被处理器执行时,实现上述方法实施方式中的方法。本领域技术人员可以理解,实现本申请上述实施方式方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施方式的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器(FlashMemory)、硬盘(HardDiskDrive,缩写:HDD)或固态硬盘(Solid-StateDrive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
本具体实施例仅仅是对本发明的解释,其并不是对本发明的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本发明的权利要求范围内都受到专利法的保护。
Claims (10)
1.一种资源调度管理方法,其特征在于:所述方法基于Linux平台和SLURM系统,所述方法包括:
所述Linux平台接收到配置信息时,配置所述SLURM系统运行所述资源调度管理方法所需要的文件,所述配置信息包括预定义数据、提交工具、隔离环境引导程序与隔离环境建立程序;
当所述Linux平台接收到提交SLURM作业的指令时,所述Linux平台调用所述提交工具将所述SLURM作业提交至所述SLURM系统,并将所述隔离环境引导程序插入到所述SLURM作业中;
所述SLURM系统调用所述隔离环境建立程序,根据所述预定义数据建立隔离环境;
所述SLURM系统调用所述隔离环境引导程序,将所述SLURM作业引导至所述隔离环境中,并执行所述SLURM作业。
2.根据权利要求1所述的方法,其特征在于:所述SLURM系统包括SLURM Account,所述配置所述SLURM系统运行所述资源调度管理方法所需要的文件包括:
所述Linux平台建立文件目录并部署脚本文件,所述脚本文件包括提交工具、隔离环境建立程序与隔离环境销毁程序的脚本文件;
所述Linux平台编译并部署隔离环境引导程序;
所述Linux平台设置预定义数据与识别key,将所述预定义数据与所述SLURM Account关联;
所述Linux平台创建所述SLURM系统运行时所需的配置文件。
3.根据权利要求2所述的方法,其特征在于:在所述所述SLURM系统调用所述隔离环境引导程序,将所述SLURM作业引导至所述隔离环境中,并执行所述SLURM作业之后,还包括:
所述SLURM系统调用所述隔离环境销毁程序判断所述SLURM作业是否执行结束;
若所述SLURM作业执行结束,则所述SLURM系统调用所述隔离环境销毁程序检测所述隔离环境是否存在;
若所述隔离环境存在,则所述SLURM系统调用所述隔离环境销毁程序卸载所述预定义数据并销毁所述隔离环境。
4.根据权利要求1所述的方法,其特征在于:所述所述Linux平台调用所述提交工具将所述SLURM作业提交至所述SLURM系统,并将所述隔离环境引导程序插入到所述SLURM作业中包括:
所述Linux平台调用所述提交工具截获所述SLURM作业,并将所述隔离环境引导程序和所述识别key插入所述SLURM作业;
所述Linux平台调用所述提交工具检测所述SLURM作业提交命令是否为sbatch提交命令;
若所述SLURM作业提交命令为sbatch提交命令,则所述Linux平台调用所述提交工具插入sbatch适配程序。
5.根据权利要求2所述的方法,其特征在于:所述SLURM系统包括SLURM用户,所述所述SLURM系统调用所述隔离环境建立程序,根据所述预定义数据建立隔离环境包括:
所述SLURM系统调用所述隔离环境建立程序检测所述识别key是否正确;
若所述识别key正确,则所述SLURM系统获取所述SLURM作业的所述SLURM用户和所述SLURM Account;
所述SLURM系统调用所述隔离环境建立程序,根据所述SLURM用户和所述SLURMAccount获取所述预定义数据;
所述SLURM系统调用所述隔离环境建立程序,根据所述预定义数据建立所述隔离环境,并将所述预定义数据挂载至所述隔离环境。
6.根据权利要求4所述的方法,其特征在于:所述所述Linux平台调用所述提交工具截获所述SLURM作业,并将所述隔离环境引导程序和所述识别key插入所述SLURM作业包括:
所述Linux平台调用所述提交工具获取所述SLURM作业和所述识别key;
所述Linux平台调用所述提交工具将所述SLURM作业进行分类,并将所述隔离环境引导程序和所述识别key插入所述SLURM作业;
所述Linux平台调用所述提交工具将所述SLURM作业、所述识别key和所述隔离环境引导程序提交至所述SLURM系统。
7.根据权利要求2所述的方法,其特征在于:所述所述SLURM系统调用所述隔离环境引导程序,将所述SLURM作业引导至所述隔离环境中包括:
所述SLURM系统调用所述隔离环境引导程序判断所述隔离环境是否存在;
若所述隔离环境存在,则所述SLURM系统调用所述隔离环境引导程序将所述SLURM作业执行环境chroot至隔离环境。
8.一种资源调度管理装置,其特征在于:所述资源调度管理装置包括Linux平台和SLURM系统,所述装置包括:
所述Linux平台用于接收到配置信息时,配置所述SLURM系统运行所述资源调度管理方法所需要的文件,所述配置信息包括预定义数据、提交工具、隔离环境引导程序与隔离环境建立程序;
所述Linux平台还用于当接收到提交SLURM作业的指令时,所述Linux平台调用所述提交工具将所述SLURM作业提交至所述SLURM系统,并将所述隔离环境引导程序插入到所述SLURM作业中;
所述SLURM系统用于调用所述隔离环境建立程序,根据所述预定义数据建立隔离环境;
所述SLURM系统还用于调用所述隔离环境引导程序,将所述SLURM作业引导至所述隔离环境中,并执行所述SLURM作业。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如权利要求1至7中任一种方法的计算机程序。
10.一种计算机可读存储介质,其特征在于,存储有能够被处理器加载并执行如权利要求1至7中任一种方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311644353.0A CN117632428B (zh) | 2023-12-01 | 2023-12-01 | 资源调度管理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311644353.0A CN117632428B (zh) | 2023-12-01 | 2023-12-01 | 资源调度管理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117632428A true CN117632428A (zh) | 2024-03-01 |
CN117632428B CN117632428B (zh) | 2024-05-28 |
Family
ID=90033575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311644353.0A Active CN117632428B (zh) | 2023-12-01 | 2023-12-01 | 资源调度管理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117632428B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112882828A (zh) * | 2021-01-25 | 2021-06-01 | 北京大学 | 基于slurm作业调度系统的昇腾处理器管理和调度方法 |
CN113568758A (zh) * | 2021-09-23 | 2021-10-29 | 深圳市信润富联数字科技有限公司 | Gpu资源池化方法、系统、设备及计算机可读存储介质 |
CN114661436A (zh) * | 2022-03-02 | 2022-06-24 | 深圳北鲲云计算有限公司 | 云原生的作业调度方法、系统及存储介质 |
CN115794355A (zh) * | 2023-01-29 | 2023-03-14 | 中国空气动力研究与发展中心计算空气动力研究所 | 任务处理方法、装置、终端设备及存储介质 |
CN116029526A (zh) * | 2023-02-03 | 2023-04-28 | 北京联合伟世科技股份有限公司 | 一种实验资源的调度方法、装置、设备及存储介质 |
US20230289231A1 (en) * | 2022-03-11 | 2023-09-14 | International Business Machines Corporation | Resource utilization efficiency based job scheduling |
-
2023
- 2023-12-01 CN CN202311644353.0A patent/CN117632428B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112882828A (zh) * | 2021-01-25 | 2021-06-01 | 北京大学 | 基于slurm作业调度系统的昇腾处理器管理和调度方法 |
CN113568758A (zh) * | 2021-09-23 | 2021-10-29 | 深圳市信润富联数字科技有限公司 | Gpu资源池化方法、系统、设备及计算机可读存储介质 |
CN114661436A (zh) * | 2022-03-02 | 2022-06-24 | 深圳北鲲云计算有限公司 | 云原生的作业调度方法、系统及存储介质 |
US20230289231A1 (en) * | 2022-03-11 | 2023-09-14 | International Business Machines Corporation | Resource utilization efficiency based job scheduling |
CN115794355A (zh) * | 2023-01-29 | 2023-03-14 | 中国空气动力研究与发展中心计算空气动力研究所 | 任务处理方法、装置、终端设备及存储介质 |
CN116029526A (zh) * | 2023-02-03 | 2023-04-28 | 北京联合伟世科技股份有限公司 | 一种实验资源的调度方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117632428B (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10908887B2 (en) | Dynamic container deployment with parallel conditional layers | |
US9386079B2 (en) | Method and system of virtual desktop infrastructure deployment studio | |
US11221838B2 (en) | Hot update method, operating system, terminal device, system, and computer-readable storage medium for a system process | |
CN107896162B (zh) | 监控系统的部署方法、装置、计算机设备及存储介质 | |
US20160139949A1 (en) | Virtual machine resource management system and method thereof | |
CN103455352B (zh) | 部署应用软件的方法及应用软件部署装置 | |
CN110597531B (zh) | 分布式的模块升级方法、装置及存储介质 | |
US11016805B2 (en) | Programmatically applying labels to nodes in cluster orchestration platforms | |
US11171824B2 (en) | Configuration of computing devices via containers | |
CN110225078B (zh) | 一种应用服务更新方法、系统及终端设备 | |
CN105511936A (zh) | 测试系统、方法和装置 | |
CN111857951A (zh) | 容器化部署平台及部署方法 | |
US9098392B1 (en) | Systems and methods for changing fencing modes in clusters | |
CN110888834A (zh) | 一种pcie设备中fpga功能动态重构的方法及系统 | |
CN112600931B (zh) | 一种api网关部署方法及装置 | |
CN112214413B (zh) | 一种应用程序的测试方法、装置、设备及存储介质 | |
CN117632428B (zh) | 资源调度管理方法、装置、设备及存储介质 | |
CN111767126A (zh) | 分布式批量处理的系统和方法 | |
CN112564979B (zh) | 构建任务的执行方法、装置、计算机设备和存储介质 | |
US20230032581A1 (en) | Method and Apparatus for Processing Virtual Machine Component | |
CN114816662A (zh) | 应用于Kubernetes的容器编排方法和系统 | |
CN112052439A (zh) | 嵌入式系统的访问权限控制方法、控制装置及存储介质 | |
CN111767082A (zh) | 计算芯片启动方法、装置和计算机系统 | |
CN113726541B (zh) | 一种网元配置的方法、装置、电子设备和存储介质 | |
US11836523B2 (en) | Introspection of a containerized application in a runtime environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |