在 亚马逊云科技 ParallelCluster 中引入

Introducing login nodes in AWS ParallelCluster如果你是基于 Slurm 的 HPC 集群的用户,你很可能使用登录节点与集群进行交互。 它是您访问集群海量计算资源的门户。你可能已经使用它来浏览文件、提交作业(并对其进行检查)和编译代码。

你也可以使用头节点来做所有这些事情,但是当企业或实验室中的多个用户共享一个集群时,有人在头节点上编译他们的代码可能会阻碍其他用户尝试提交作业,或者只是做自己的工作。一些 亚马逊云科技 ParallelCluster 客户已经通过为其用户手动创建登录节点来绕过这一限制,但这涉及许多未记录的步骤,迫使他们的管理员了解 ParallelCluster 的内部情况。

因此,我们很高兴地宣布,亚马逊云科技 ParallelCluster 3.7 现在支持开箱即用地向您的集群添加登录节点。在这篇文章中,我们将向您展示为集群进行此设置的示例,并重点介绍一些用于调整体验的更重要的可调选项。

亚马逊云科技 ParallelCluster 登录节点入门

登录节点的指定方式与计算节点类似:作为 “节点池”,在本例中具有单一用途。您可以指定一个登录节点池,其中包含您想要为集群配置的任意数量的实例。

如果你想在不先设计集群 的情况下试用此功能并探索其工作原理 ,你可以使用 HPC Recipes Lib rary 中的 一键启动堆栈 (这是我们在本频道 最近的一篇文章 中描述的 超级有用的 资源)。

或者,您可以按照此处的步骤来增强手头的现有配置文件,在新集群上启用登录节点,或者对现有集群进行更新。

步骤 1:使用登录节点配置 ParallelCluster

首先,确保你使用的是 ParallelCluster 3.7.0。(或更高版本),它引入了这个新功能。然后,您可以使用登录节点创建新集群或更新现有集群。

启用登录节点首先要在描述您的 ParallelCluster 的 YAML 配置文件中对其进行配置。 您可以随时使用 pclust er-describe 命令检索正在运行的集群的 YAML 配置(我们的文档中 有一个示例)。

当你将 ComputeResources 定义为 SlurmQueues 的一部分时 ,你指定了实例类型、安全组和其他几个细节。

登录节点也是如此,你现在在一个名为 Login Nodes 的新部分中定义这些参数。还有一些登录节点独有的设置,例如: 计数 ,它指定节点的数量;以及 GraceTime Period ,它允许您在 ParallelCluster 计划停止节点时 为已登录的用户设置 倒计时器。 所有选项都在我们的 LoginNodes 文档 中。

以下代码片段(您可以将其添加到配置文件的末尾)显示如何设置具有三个登录节点的集群,作为名为 CfdCluster 的池的一部分, 该池充当用户登录和提交集群上的流体动力学作业的前门。

LoginNodes:
   Pools:
    - Name: CFDCluster
      Count: 3  # Specify the number of login nodes you need
      InstanceType: t2.micro  # Choose an appropriate instance type
      Ssh:
         KeyName: CFSClusterKey # The key pair setup in your AWS account
      Networking: 
        SubnetId: 
          - subnet-XXXXXXXXX  # Specify the subnet for your login nodes
        SecurityGroups:
          - sg-XXXXXXXXX  # security groups your EC2 Login nodes will be within

您可以根据自己的要求自定义设置,包括实例类型、子网和安全组。您可以指定一些其他设置,例如 IAM 角色和策略以及其他安全组。如果您希望对用户登录时的体验更加自信(例如,向他们提供编译器或许可调试器的访问权限),也可以定义自定义 AMI。你可以在 关于登录节点属性的 ParallelCluster文档 中找到所有这些细节。

第 2 步:更新您的集群

编辑完 ParallelCluster 配置文件后,就可以更新正在运行的集群或创建新的集群了。

如果您要使用登录节点设置 新集群 ,请将此命令与包含您的设置的配置文件一起使用:

pcluster create-cluster —cluster-configuration your_config_file_name —cluster-name your_cluster_name

如果你要更新 现有集群 ,那就是:

pcluster update-cluster --cluster-configuration your_config_file_name --cluster-name your_cluster_name

当然,将 您的_config_file_name替换为配置文件的名称,将您的_ cluster _name替换为集群 的名称。

第 3 步:访问您的登录节点

集群准备就绪后,具有适当权限的用户可以使用 SSH 访问登录节点。但是首先他们需要找到他们想要连接的节点的地址。

登录节点使用网络负载均衡器(这是弹性负载均衡器的一项功能)的单一连接地址配置的,该地址是专门为登录节点池配置的。确切的地址取决于您在 LoginNodes 池配置中指定的子网类型。所有连接请求均由网络负载均衡器使用 循环路由 进行管理。

要检索为访问登录节点而配置的单个连接的地址,可以运行 pcluster descri be-cluster 命令。

pcluster describe-cluster --cluster-name your_cluster_name

此命令还将提供有关登录节点 状态 的更多信息。以下是它为我们的登录节点返回的内容示例:

"loginNodes": 
{ "status": "active", 
  "address": "8af2145440569xyz.us-east-1.amazonaws.com", 
  "scheme": "internet-facing|internal", 
  "healthyNodes": 3, 
  "unhealthyNodes": 0 },

现在只需简单地向那个地址发送Ssh'ing即可:

ssh username@8af2145440569xyz.us-east-1.amazonaws.com

用户可以提交和管理作业,他们也可以访问集群使用的任何共享存储,因此他们可以管理文件并查看作业的输出。

你会注意到,desc ribe-cluster 的 输出还为你提供了一些有关登录节点状态和运行状况的信息。通过使用 pcluster describe-cluster-instances 命令,将节点类型指定为 LoginNodes,您可以获得有关池中各个登录节点的状态、IP 地址和启动时间的更精细的信息:

pcluster describe-cluster-instances --node-type LoginNode --cluster-name your_cluster_name

有关这方面的 更多信息,请查看我们的 文档

控制登录节点的数量

配置完成后,您的登录节点将继续运行,直到您将其从池中删除。

添加和移除登录节点

在池中添加和删除登录节点非常简单。您可以将 ParallelCluster YAML 文件中 LoginNodes 配置的计数参数设置为所需的数字。然后,像以前一样使用 pcluster u pdate-cluster 命令 更新正在运行的集群配置:

pcluster update-cluster --cluster-configuration your_config_file_name --cluster-name your_cluster_name

要删除所有登录节点,您只需将 C ount 设置 为 0 并更新集群即可。

终止登录节点时为用户设置宽限时间消息

当您使用我们刚才描述的 计数 参数从池中删除登录节点时,ParallelCluster 将终止为其提供支持的 Amazon EC2 实例。在节点终止期间,登录的用户将在其 SSH 窗口中收到终端通知,提醒他们即将关闭。该消息将指定宽限期,在此期间,除了来自集群默认用户的连接外,不允许任何新连接。该消息可由集群管理员从头节点进行自定义,也可以通过编辑 /opt/parallelcluster/shared_login_nodes / loginmgtd_config.json 文件从登录节点进行自定义。默认情况下,如下所示:

{
  "termination_script_path": "/opt/parallelcluster/shared_login_nodes/loginmgtd_on_termination.sh",
  "termination_message": "The system will be terminated within 10 minutes.",
  "gracetime_period": "10"
}

结论

亚马逊云科技 ParallelCluster 3.7 引入了登录节点,这是一种强大而灵活的管理访问权限的方法,可以更仔细地定义 HPC 集群用户的用户体验。

通过在专用登录节点池中分配交互式用户会话,您可以提高集群的性能,扩展可供最终用户使用的工具,并简化每个人的数据访问。通过谨慎的配置和管理,登录节点可以成为基于云的 HPC 基础架构不可或缺的一部分,从而为您的组织实现高效和可扩展的计算。

如果您想立即开始,可以使用 HPC Recipes Lib rary 中的 一键启动堆栈 来快速启动完整的测试环境,稍后可以对其进行自定义(或删除)。这来自 HPC Recipe Lib rary, 它可以帮助您快速实现功能丰富、 可靠的 HPC 部署,无论您从哪里开始,都能随时运行各种工作负载。