本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
解决导致错误或失败的操作系统配置更改
更改 AWS ParallelCluster 节点的操作系统配置时,可能会出现各种问题,这些问题可能导致集群创建、更新或操作失败。本节提供有关识别和解决常见操作系统配置相关问题的指导。
常见操作系统配置问题
区域配置问题
最常见的操作系统配置问题之一与区域设置有关。如果你看到这样的错误:
cannot change locale (en_US.utf-8) because it has an invalid name
这通常发生在以下情况下:
-
yum安装过程不成功,区域设置处于不一致状态 -
用户过早终止了安装过程
-
本地化包丢失或损坏
如何诊断
-
检查你是否可以切换到 pcluster-admin 用户:
$su - pcluster-admin如果你看到类似的错误
cannot change locale...no such file or directory,这就确认了问题。 -
查看可用的地点:
$localedef --list如果返回空列表或不包含默认语言环境,则您的语言环境配置已损坏。
-
检查最后一条
yum命令:$yum history$yum history info #ID如果最后 ID 不包含
Return-Code: Success,则表明安装后脚本可能未成功运行。
解决方法
通过重新安装语言包来重建语言环境:
$sudo yum reinstall glibc-all-langpacks
重建后,运行以下命令验证问题是否已修复:
$su - pcluster-admin
如果未出现错误或警告,则问题已得到解决。
操作系统包冲突
安装自定义包或修改系统包时,可能会出现冲突,导致群集无法正常运行。
如何诊断
-
检查 chef-client 日志中是否存在与软件包相关的错误:
$less /var/log/chef-client.log -
在 cfn-init 日志中查找软件包依赖关系冲突:
$less /var/log/cfn-init.log
解决方法
-
如果特定软件包导致问题,请尝试重新安装它:
$sudo yum reinstall package-name -
对于依赖冲突,你可能需要删除冲突的软件包:
$sudo yum remove conflicting-package -
如果问题仍然存在,请考虑使用该
pcluster build-image命令创建预先安装所需软件包的自定义 AMI。有关更多信息,请参阅 AWS ParallelCluster AMI 自定义。
系统配置文件修改
修改关键系统配置文件可能会导致集群故障,尤其是当这些文件由管理时 AWS ParallelCluster。
如何诊断
-
检查 chef-client 日志中是否存在提及特定配置文件的错误:
$grep -i "config" /var/log/chef-client.log -
在配置文件中查找权限或语法错误:
$less /var/log/cfn-init.log
解决方法
-
将修改后的配置文件恢复到其原始状态:
$sudo cp /etc/file.conf.bak /etc/file.conf -
如果您需要持续更改系统配置文件,请使用自定义引导操作而不是直接修改文件:
HeadNode: CustomActions: OnNodeConfigured: Script: s3://bucket-name/config-script.sh有关更多信息,请参阅 自定义引导操作。
-
对于必须直接对系统文件进行的配置更改,请考虑创建自定义 AMI。有关更多信息,请参阅 AWS ParallelCluster AMI 自定义。
内核更新和兼容性问题
内核更新可能会导致某些 AWS 服务的兼容性问题,尤其是适用于 Lustre 的 Amazon FSx。
如何诊断
-
检查是否已应用内核更新:
$uname -r -
在日志中查找 Amazon FSx 挂载故障:
$grep -i "fsx" /var/log/chef-client.log
解决方法
-
对于 Ubuntu 22.04,请避免更新到最新的内核,因为该内核没有亚马逊 FSx 客户端。有关更多信息,请参阅 操作系统注意事项。
-
如果你已经更新了内核并遇到了问题,可以考虑降级到兼容的内核版本:
$sudo apt install linux-image-previous-version -
要进行永久内核自定义,请使用所需的特定内核版本创建自定义 AMI。有关更多信息,请参阅 AWS ParallelCluster AMI 自定义。
操作系统配置更改的最佳实践
为了最大限度地减少更改操作系统配置时出现的问题:
-
使用自定义引导操作:与其直接修改系统文件,
OnNodeStart不如使用OnNodeConfigured脚本以受控方式进行更改。有关更多信息,请参阅 自定义引导操作。 -
创建自定义 AMI:要对操作系统进行重大修改,请使用创建自定义 AMI,
pcluster build-image而不是对正在运行的实例进行更改。有关更多信息,请参阅 AWS ParallelCluster AMI 自定义。 -
首先测试更改:在将更改应用于生产集群之前,请在小型测试集群上对其进行测试以确保兼容性。
-
文档更改:跟踪为便于故障排除而做的所有操作系统配置更改。
-
备份配置文件:在修改任何系统配置文件之前,请创建备份:
$sudo cp /etc/file.conf /etc/file.conf.bak -
更改后检查日志:更改操作系统配置后,检查日志中是否存在任何错误:
$less /var/log/cfn-init.log$less /var/log/chef-client.log
通过遵循这些准则,您可以将操作系统配置更改导致集群故障的风险降至最低,并更有效地对出现的任何问题进行故障排除。