从客户端机器或 GKE 集群装载或连接到 Managed Lustre 文件系统时,如果遇到问题,请按照以下步骤诊断问题。
验证 Managed Lustre 实例是否可访问
验证是否可以从客户端环境访问 Managed Lustre 实例。
如需直接使用 lctl ping 测试可达性,您需要通过 SSH 访问客户端机器或 GKE Standard 节点:
sudo lctl ping IP_ADDRESS@tcp
如需获取 IP_ADDRESS 的值,请参阅获取实例。
成功的 ping 会返回类似于以下内容的响应:
12345-0@lo
12345-10.115.0.3@tcp
如果 ping 失败,则会返回以下内容:
failed to ping 10.115.0.3@tcp: Input/output error
GKE Autopilot 会阻止节点 SSH 访问,从而阻止直接使用 lctl ping。
如果 ping 失败,或者您从 Autopilot 集群诊断连接,请执行以下操作:
确保您的 Managed Lustre 实例和客户端机器或 GKE 集群位于同一 VPC 网络中。
对于 Compute Engine 客户端机器,请比较以下命令的输出:
gcloud compute instances describe VM_NAME \ --zone=VM_ZONE \ --format='get(networkInterfaces[0].network)' gcloud lustre instances describe INSTANCE_NAME \ --location=ZONE --format='get(network)'对于 GKE 集群,请比较以下命令的输出:
gcloud container clusters describe CLUSTER_NAME \ --location=LOCATION \ --format='get(networkConfig.network)' gcloud lustre instances describe INSTANCE_NAME \ --location=ZONE --format='get(network)'gcloud compute instances describe和gcloud container clusters describe命令的输出带有https://www.googleapis.com/compute/v1/前缀;该字符串后面的所有内容都必须与gcloud lustre instances describe命令的输出匹配。查看 VPC 网络防火墙规则和路由配置,确保它们允许客户端子网与 Managed Lustre 实例之间传输流量。
检查旧实例的 LNet 接受端口
虽然 --gke-support-enabled 标志已弃用,并且在创建新的 Managed Lustre 实例时不再需要,但您可能仍有使用此标志创建的旧实例。
如果您连接到已启用 GKE 支持的旧版实例,请将 LNet 或 CSI 驱动程序配置为使用端口 6988:
对于 Compute Engine 客户端机器,请将 LNet 配置为使用
accept_port对于 GKE 集群,请使用
--enable-legacy-lustre-port标志启用 CSI 驱动程序。请参阅 Lustre 通信端口。
如需确定现有实例是否配置了此旧版标志,请运行以下命令:
gcloud lustre instances describe INSTANCE_NAME \
--location=LOCATION | grep gkeSupportEnabled
如果该命令返回 gkeSupportEnabled: true,则您必须在客户端机器上配置 LNet,或在 GKE 集群上启用旧版端口标志。
Ubuntu 内核版本与 Lustre 客户端不匹配
对于运行 Ubuntu 的 Compute Engine 实例,Ubuntu 内核版本必须与 Lustre 客户端软件包的特定版本匹配。如果 Lustre 客户端工具出现故障,请检查您的 Compute Engine 实例是否已自动升级到较新的内核。
如需查看内核版本,请运行以下命令:
uname -r
响应如下所示:
6.8.0-1029-gcp
如需检查 Lustre 客户端软件包版本,请执行以下操作:
dpkg -l | grep -i lustre
响应如下所示:
ii lustre-client-modules-6.8.0-1029-gcp 2.14.0-ddn198-1 amd64 Lustre Linux kernel module (kernel 6.8.0-1029-gcp)
ii lustre-client-utils 2.14.0-ddn198-1 amd64 Userspace utilities for the Lustre filesystem (client)
如果两个命令列出的内核版本不一致,您必须重新安装 Lustre 客户端软件包。
检查 dmesg 是否存在 Lustre 错误
许多 Lustre 警告和错误都会记录到 Linux 内核环形缓冲区。dmesg 命令会输出内核环形缓冲区。
如需搜索 Lustre 专属消息,请将 grep 与 dmesg 结合使用:
dmesg | grep -i lustre
或者,如需查找可能相关的更常见错误,请运行以下命令:
dmesg | grep -i error
在多 NIC 客户端机器上装载 Lustre 失败
如果客户端机器有多个网络接口控制器,并且 Managed Lustre 实例位于连接到辅助 NIC(例如 eth1)的 VPC 网络上,则装载该实例可能会失败。如需解决此问题,请按照使用辅助 NIC 装载中的说明操作。
无法从 172.17.0.0/16 子网范围进行连接
IP 地址在 172.17.0.0/16 子网范围内的 Compute Engine 客户端机器和 GKE 集群无法装载 Managed Lustre 实例。对于 GKE,请确保节点子网、Pod 地址范围和 Service 地址范围不与 172.17.0.0/16 重叠。
无法从对等互连项目访问 Managed Lustre
如果您的客户端机器或 GKE 集群位于对等互连的 VPC 网络中,并且无法连接到 Managed Lustre 实例,请验证以下内容:
仅 VPC 对等互连不会将流量路由到 Managed Lustre 使用的专用服务访问通道连接。如需跨对等互连 VPC 网络进行连接,请通过 Network Connectivity Center 连接这两个网络。
确保主机 VPC 网络和对等互连 VPC 网络中的防火墙规则都允许客户端子网与实例的已分配 IP 地址范围之间通过端口
988和6988传输 TCP 流量。
如需查看分步设置说明和 gcloud 命令,请参阅配置 VPC 网络。
在启用了安全启动的安全强化型虚拟机上装载失败
Managed Lustre 无法装载到启用了安全启动的客户端机器(例如安全强化型虚拟机)上。尝试在安全启动环境中加载 Lustre 内核模块失败,并显示以下错误:ERROR: could not insert 'lustre': Required key not available.
支持请求中应包含的信息
如果您无法解决装载失败问题,请先收集诊断信息,然后再创建支持请求。使用 sosreport 生成诊断日志需要通过 SSH 访问客户端机器或节点。
Compute Engine 和 GKE Standard 节点
对于启用了 SSH 访问权限的 Compute Engine 客户端机器和 GKE Standard 节点,请使用 sosreport 实用程序收集诊断日志。sosreport 实用程序会收集系统日志和配置信息,并生成压缩归档文件。
安装 sosreport
如需验证是否已安装 sosreport 软件包并包含 Lustre 支持,请通过 SSH 连接到客户端机器并运行以下命令:
sudo sos report --list-plugins | grep lustre
如果找不到该命令,或者该命令未返回任何输出,请为您的操作系统安装或更新 sosreport:
Rocky Linux 和 RHEL
使用 dnf 软件包管理器安装 sos 软件包:
sudo dnf install -y sos
Ubuntu
Ubuntu 客户端机器需要 snap 中 latest/edge 渠道的 sosreport 才能收集 Lustre 诊断信息。使用 apt 安装的软件包不包含 Lustre 插件。
如果之前使用 apt 安装了 sosreport 的早期版本,请先移除该软件包:
sudo apt remove -y sosreport
使用 snap 安装 sosreport:
sudo snap install sosreport --classic --channel=latest/edge
Container-Optimized OS
在 toolbox 中使用 apt 软件包管理器安装 sosreport 软件包:
sudo toolbox
sudo apt install sosreport -y
生成报告
如需生成 sosreport,请运行以下命令:
sudo sos report --all-logs --batch --tmp-dir=/var
将 sosreport 归档文件附加到您的支持请求中。
如需详细了解 sosreport 实用程序,请参阅使用 sosreport 收集调试信息。
GKE Autopilot 集群
GKE Autopilot 会阻止对节点的 SSH 访问,并限制特权调试容器。您无法在 Autopilot 节点上或从工作负载容器内运行 sosreport。
如果您在 Autopilot 集群上遇到装载失败,请与 Cloud Customer Care 联系以获取帮助。
如需详细了解如何诊断 GKE 卷错误,请参阅排查 Managed Lustre CSI 驱动程序问题。