亚马逊云科技精选博客
我们使用机器学习技术将英文博客翻译为简体中文。您可以点击导航栏中的“中文(简体)”切换到英文版本。
在 亚马逊云科技 ParallelCluster 中引入
如果你是基于 Slurm 的 HPC 集群的用户,你很可能使用登录节点与集群进行交互。 它是您访问集群海量计算资源的门户。你可能已经使用它来浏览文件、提交作业(并对其进行检查)和编译代码。
你也可以使用头节点来做所有这些事情,但是当企业或实验室中的多个用户共享一个集群时,有人在头节点上编译他们的代码可能会阻碍其他用户尝试提交作业,或者只是做自己的工作。一些 亚马逊云科技 ParallelCluster 客户已经通过为其用户手动创建登录节点来绕过这一限制,但这涉及许多未记录的步骤,迫使他们的管理员了解 ParallelCluster 的内部情况。
因此,我们很高兴地宣布,亚马逊云科技 ParallelCluster 3.7 现在支持开箱即用地向您的集群添加登录节点。在这篇文章中,我们将向您展示为集群进行此设置的示例,并重点介绍一些用于调整体验的更重要的可调选项。
亚马逊云科技 ParallelCluster 登录节点入门
登录节点的指定方式与计算节点类似:作为 “节点池”,在本例中具有单一用途。您可以指定一个登录节点池,其中包含您想要为集群配置的任意数量的实例。
如果你想在不先设计集群 的情况下试用此功能并探索其工作原理 ,你可以使用 HPC Recipes Lib
或者,您可以按照此处的步骤来增强手头的现有配置文件,在新集群上启用登录节点,或者对现有集群进行更新。
步骤 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。你可以在
第 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 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