在 PCS 集群上配置 Slurm CLI 过滤器插件 AWS - AWS PC

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 PCS 集群上配置 Slurm CLI 过滤器插件 AWS

在创建新的 AWS PCS 集群时配置 CLI 筛选插件。您可以使用更新 API 或控制台在现有集群上启用或禁用 CLI 筛选插件,而无需重新创建集群。

先决条件

在配置 CLI 筛选器插件之前,请完成以下任务:

  • 编写并测试实现 CLI 过滤器插件 API 的 Lua 脚本

  • 准确命名你的 Lua 脚本 cli_filter.lua

  • 选择一种将脚本部署到所有集群实例(AMI、S3 或文件系统)的方法

  • 确认你使用的是 Slurm 版本 24.11 或更高版本

在新集群上启用 CLI 筛选插件

AWS PCS console
  1. 打开 AWS PCS 控制台,网址为https://console.aws.amazon.com/pcs/

  2. 在导航窗格中,选择集群

  3. 选择创建集群

  4. 选择 Slurm 的有效版本(版本 24.11 或更高版本)。

  5. 在 “日程安排器设置” 下,展开 “其他调度程序设置”。

  6. 添加新的 Slurm 自定义设置,参数名称设置为CliFilterPlugins参数值设置为。cli_filter/lua

  7. 完成剩余的集群配置,然后选择创建集群

AWS PCS API

在调用 CreateCluster API 操作时提供slurmCustomSettings配置。将 to CliFilterPluginsparameterName to 设置parameterValuecli_filter/lua。有关更多信息,请参阅 AWS PCS API 参考CreateCluster中的。

以下示例使用调 AWS CLI 用 CreateCluster API 操作。自定义设置CliFilterPlugins=cli_filter/lua启用 CLI 过滤器插件。

aws pcs create-cluster --cluster-name cluster-name \ --scheduler type=SLURM,version=24.11 \ --size SMALL \ --networking subnetIds=cluster-subnet-id,securityGroupIds=cluster-security-group-id \ --slurm-configuration \ 'slurmCustomSettings=[{parameterName=CliFilterPlugins,parameterValue="cli_filter/lua"}]'

部署 CLI 过滤器插件脚本

将 CLI 过滤器插件脚本部署到您的集群
  1. 确保计算节点组中所有 AMIs 使用的 Slurm 都通过 AWS PCS Slurm 安装程序安装 Slurm。

    注意

    如果您对所有计算节点组使用 AWS PCS 示例 AMI,请跳过此步骤。Slurm 已经安装好了。

  2. 将您的cli_filter.lua脚本部署到/etc/aws/pcs/scheduler/slurm-<version>/cli_filter.lua集群中的所有实例。

    例如,对于 Slurm 版本 24.11:

    /etc/aws/pcs/scheduler/slurm-24.11/cli_filter.lua
  3. 使用准备好的启动所有登录和计算节点 AMIs。

  4. 测试作业提交以验证 CLI 过滤器插件是否正确执行。

在现有集群上启用或禁用 CLI 筛选插件

无需重建基础架构,即可在现有集群上启用或禁用 CLI 筛选器插件。有关更多信息,请参阅 在 AWS PCS 中更新集群

AWS PCS console
  1. 打开 AWS PCS 控制台,网址为https://console.aws.amazon.com/pcs/

  2. 在导航窗格中,选择集群

  3. 选择要更新的集群。

  4. 选择编辑操作

  5. 在 “编辑集群” 页面的 “其他调度程序设置” 下:

    • 启用 CLI 过滤器插件:添加新的 Slurm 自定义设置,参数名称设置为CliFilterPlugins参数值设置为。cli_filter/lua

    • 要禁用 CLI 过滤器插件,请执行以下操作:删除现有CliFilterPlugins设置。

  6. 选择更新集群以提交更改。

  7. 监控集群状态,在更新过程中显示为 “正在更新”,更新完成后显示为 “活动”。

AWS PCS API

使用 UpdateCluster API 操作启用或禁用 CLI 过滤器插件。有关更多信息,请参阅 AWS PCS API 参考UpdateCluster中的。

要在现有集群上启用 CLI 筛选插件,请执行以下操作:

aws pcs update-cluster --cluster-identifier my-cluster \ --slurm-configuration \ 'slurmCustomSettings=[{parameterName=CliFilterPlugins,parameterValue="cli_filter/lua"}]'

要在现有集群上禁用 CLI 过滤器插件,请执行以下操作:

aws pcs update-cluster --cluster-identifier my-cluster \ --slurm-configuration \ 'slurmCustomSettings=[]'

预期结果

完成配置后:

  • 您的集群是在开启 CLI 筛选插件的情况下创建的

  • Job 提交会在到达 Slurm 控制器之前触发你的自定义验证逻辑

  • 不合规的任务会被拒绝,并显示您的自定义错误消息

  • 合规作业通过 Slurm 调度器正常进行

问题排查

任何节点上都缺少 CLI 过滤器插件脚本

症状:由于插件加载错误,Job 提交立即失败。

可能的原因:脚本未部署到所有实例,或者文件路径或名称不正确。

解决方案:验证脚本是否存在于所有登录和计算节点上的正确路径上,且文件名准确cli_filter.lua

CLI 过滤器插件配置无效

症状:集群创建失败并出现验证错误。

可能的原因:CliFilterPlugins参数未设置为cli_filter/lua格式。

分辨率:使用cli_filter/lua中的精确参数值slurmCustomSettings