View a markdown version of this page

解决导致错误或失败的操作系统配置更改 - AWS ParallelCluster

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

解决导致错误或失败的操作系统配置更改

更改 AWS ParallelCluster 节点的操作系统配置时,可能会出现各种问题,这些问题可能导致集群创建、更新或操作失败。本节提供有关识别和解决常见操作系统配置相关问题的指导。

常见操作系统配置问题

区域配置问题

最常见的操作系统配置问题之一与区域设置有关。如果你看到这样的错误:

cannot change locale (en_US.utf-8) because it has an invalid name

这通常发生在以下情况下:

  • yum安装过程不成功,区域设置处于不一致状态

  • 用户过早终止了安装过程

  • 本地化包丢失或损坏

如何诊断

  1. 检查你是否可以切换到 pcluster-admin 用户:

    $ su - pcluster-admin

    如果你看到类似的错误cannot change locale...no such file or directory,这就确认了问题。

  2. 查看可用的地点:

    $ localedef --list

    如果返回空列表或不包含默认语言环境,则您的语言环境配置已损坏。

  3. 检查最后一条yum命令:

    $ yum history $ yum history info #ID

    如果最后 ID 不包含Return-Code: Success,则表明安装后脚本可能未成功运行。

解决方法

通过重新安装语言包来重建语言环境:

$ sudo yum reinstall glibc-all-langpacks

重建后,运行以下命令验证问题是否已修复:

$ su - pcluster-admin

如果未出现错误或警告,则问题已得到解决。

操作系统包冲突

安装自定义包或修改系统包时,可能会出现冲突,导致群集无法正常运行。

如何诊断

  1. 检查 chef-client 日志中是否存在与软件包相关的错误:

    $ less /var/log/chef-client.log
  2. 在 cfn-init 日志中查找软件包依赖关系冲突:

    $ less /var/log/cfn-init.log

解决方法

  1. 如果特定软件包导致问题,请尝试重新安装它:

    $ sudo yum reinstall package-name
  2. 对于依赖冲突,你可能需要删除冲突的软件包:

    $ sudo yum remove conflicting-package
  3. 如果问题仍然存在,请考虑使用该pcluster build-image命令创建预先安装所需软件包的自定义 AMI。有关更多信息,请参阅 AWS ParallelCluster AMI 自定义

系统配置文件修改

修改关键系统配置文件可能会导致集群故障,尤其是当这些文件由管理时 AWS ParallelCluster。

如何诊断

  1. 检查 chef-client 日志中是否存在提及特定配置文件的错误:

    $ grep -i "config" /var/log/chef-client.log
  2. 在配置文件中查找权限或语法错误:

    $ less /var/log/cfn-init.log

解决方法

  1. 将修改后的配置文件恢复到其原始状态:

    $ sudo cp /etc/file.conf.bak /etc/file.conf
  2. 如果您需要持续更改系统配置文件,请使用自定义引导操作而不是直接修改文件:

    HeadNode: CustomActions: OnNodeConfigured: Script: s3://bucket-name/config-script.sh

    有关更多信息,请参阅 自定义引导操作

  3. 对于必须直接对系统文件进行的配置更改,请考虑创建自定义 AMI。有关更多信息,请参阅 AWS ParallelCluster AMI 自定义

内核更新和兼容性问题

内核更新可能会导致某些 AWS 服务的兼容性问题,尤其是适用于 Lustre 的 Amazon FSx。

如何诊断

  1. 检查是否已应用内核更新:

    $ uname -r
  2. 在日志中查找 Amazon FSx 挂载故障:

    $ grep -i "fsx" /var/log/chef-client.log

解决方法

  1. 对于 Ubuntu 22.04,请避免更新到最新的内核,因为该内核没有亚马逊 FSx 客户端。有关更多信息,请参阅 操作系统注意事项

  2. 如果你已经更新了内核并遇到了问题,可以考虑降级到兼容的内核版本:

    $ sudo apt install linux-image-previous-version
  3. 要进行永久内核自定义,请使用所需的特定内核版本创建自定义 AMI。有关更多信息,请参阅 AWS ParallelCluster AMI 自定义

操作系统配置更改的最佳实践

为了最大限度地减少更改操作系统配置时出现的问题:

  1. 使用自定义引导操作:与其直接修改系统文件,OnNodeStart不如使用OnNodeConfigured脚本以受控方式进行更改。有关更多信息,请参阅 自定义引导操作

  2. 创建自定义 AMI:要对操作系统进行重大修改,请使用创建自定义 AMI,pcluster build-image而不是对正在运行的实例进行更改。有关更多信息,请参阅 AWS ParallelCluster AMI 自定义

  3. 首先测试更改:在将更改应用于生产集群之前,请在小型测试集群上对其进行测试以确保兼容性。

  4. 文档更改:跟踪为便于故障排除而做的所有操作系统配置更改。

  5. 备份配置文件:在修改任何系统配置文件之前,请创建备份:

    $ sudo cp /etc/file.conf /etc/file.conf.bak
  6. 更改后检查日志:更改操作系统配置后,检查日志中是否存在任何错误:

    $ less /var/log/cfn-init.log $ less /var/log/chef-client.log

通过遵循这些准则,您可以将操作系统配置更改导致集群故障的风险降至最低,并更有效地对出现的任何问题进行故障排除。