解决导致错误或故障的操作系统配置更改 - Amazon ParallelCluster
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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

对 Amazon 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。有关更多信息,请参阅 Amazon ParallelCluster AMI 自定义

修改系统配置文件

修改关键系统配置文件可能会导致群集故障,尤其是在这些文件由管理的情况下 Amazon 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。有关更多信息,请参阅 Amazon ParallelCluster AMI 自定义

内核更新和兼容性问题

内核更新可能会导致某些 Amazon 服务的兼容性问题,尤其是与 Amazon for Lustre 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。有关更多信息,请参阅 Amazon ParallelCluster AMI 自定义

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

要最大限度地减少更改操作系统配置时出现的问题,请执行以下操作:

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

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

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

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

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

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

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

通过遵循这些准则,您可以最大限度地降低操作系统配置更改导致群集故障的风险,并更有效地解决出现的任何问题。