我正在设计一个头节点,其主要功能是向 Torque/Maui 调度程序提交作业,次要功能是运行测试作业。不幸的是,大多数集群硬件选择指南都是在 2000~2004 年编写的,如今大多已不适用。我能够轻松决定硬件配置的大部分部分(例如基于互连的 NIC),但我不知道如何选择 HDD/内存/处理器。
HDD:由于我使用的是网络存储,我是否正确地认为 HDD 的大小/类型(SSD 与主轴)几乎无关紧要,因为它们只需要满足典型启动驱动器的要求?
内存:假设测试作业不占用大量内存,那么在头节点上拥有大量内存是否有任何性能优势?作业调度似乎不占用大量内存。如果不是,那么根据什么经验法则来决定我需要多少内存?
处理器:如果将测试作业排除在外,处理器拥有更多核心或更高时钟频率是否有任何优势?我认为该作业调度不是计算密集型的,并且很难从更快的处理器或并行性中获益。
冗余:如何避免头节点成为 SPOF?通过拥有 2 个或更多头节点?我是否让冗余头节点完全处于被动状态(未使用)——否则,我想尝试从死头节点恢复会非常混乱?头节点之间的异构性(不同的硬件规格)是否可以接受?是否需要对头节点上的启动驱动器进行 RAID 镜像?
答案1
尽管这个问题是7年前提出的,但我还是觉得有义务回答,因为我相信这是一个好问题,而且考虑到如今HPC的普及程度,这个问题非常有意义。
HDD。7 年前的答案是 HDD 没问题,因为您的网络存储很可能是 1gb 以太网。如今,这取决于您的网络。HDD 的写入速度约为 1.4gb/s,这对于 1gbE 来说很好,但如果您的网络是无限带宽(低端为 25gb/s)或甚至是 10gbE(现在非常便宜),那就完全浪费了。您可能需要 SSD(写入速度约为 4gb/s),但只有当您拥有网络带宽和足够的预算时,m.2 ssd(25gb/s)才是首选。总的来说,只要您不将大量数据传输到计算节点或网络存储(例如,如果您进行 AI 训练),那么您可以使用 1gbE 的 HDD。
内存。假设没有恶意或缺乏经验的用户在头节点上运行作业,那么您唯一要考虑的就是您预计同时使用该机器的用户数量(即不是总用户数)。我估计每 4 个用户至少需要 8GB同时用户。另外,我假设您的内存是 ECC。
处理器。不,您完全正确。只要您不是国家研究实验室或其他拥有大量用户的情况,那么配备 16GB ECC 内存的 4 核英特尔 i3 处理器就可以打造便宜、快速且可靠的头节点。
RAID,加上使用 rsync 之类的工具进行定期备份。头节点崩溃带来的不便多于灾难。假设用户数据在网络存储中,头节点将不包含任何关键数据。头节点可以轻松重建,但这并不意味着您应该忽略冗余。