排查客户端连接问题

如果在客户端虚拟机或实例上装载或连接到 Managed Lustre 文件系统时遇到问题,请按照以下步骤诊断问题。

验证 Managed Lustre 实例是否可访问

首先,确保您的客户端实例可以访问您的 Managed Lustre 实例:

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

如果 ping 失败,请执行以下操作:

  • 确保您的 Managed Lustre 实例和客户端实例位于同一 VPC 网络中。比较以下命令的输出:

    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)'
    

    输出如下所示:

    https://www.googleapis.com/compute/v1/projects/my-project/global/networks/my-network
    projects/my-project/global/networks/my-network
    

    gcloud compute instances describe 命令的输出以 https://www.googleapis.com/compute/v1/ 为前缀;该字符串后面的所有内容都必须与 gcloud lustre instances describe 命令的输出匹配。

  • 检查 VPC 网络的防火墙规则和路由配置,确保它们允许客户端实例与 Managed Lustre 实例之间的流量。

检查 LNet 接受端口(旧版实例)

虽然 --gke-support-enabled 标志已废弃,并且在创建新的 Managed Lustre 实例时不再需要,但您可能拥有使用此标志创建的现有旧版实例。

如果您要连接到启用了 GKE 支持 的旧版实例,则必须在所有客户端 Compute Engine 实例 上配置 LNet,以使用 accept_port 6988。请参阅 gke-support-enabled 实例配置 LNet

如需确定现有实例是否使用此旧版标志进行了配置,请运行以下命令:

gcloud lustre instances describe INSTANCE_NAME \
  --location=LOCATION | grep gkeSupportEnabled

如果该命令返回 gkeSupportEnabled: true,则必须在客户端虚拟机上配置 LNet。

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 的消息,请结合使用 grepdmesg

dmesg | grep -i lustre

或者,如需查找可能相关的更一般的错误,请执行以下操作:

dmesg | grep -i error

在多 NIC 虚拟机上装载 Lustre 失败

当虚拟机具有多个网络接口控制器 (NIC),并且 Managed Lustre 实例位于连接到辅助 NIC(例如 eth1)的 VPC 上时,装载该实例可能会失败。如需解决此问题, 请按照说明使用辅助 NIC 进行装载

无法从 172.17.0.0/16 子网范围进行连接

IP 地址位于 172.17.0.0/16 子网范围内的 Compute Engine 和 GKE 客户端无法装载 Managed Lustre 实例。

无法从对等互连的项目访问 Managed Lustre

如果您的客户端虚拟机或 GKE 集群位于对等互连的 VPC 网络中,并且无法连接到您的 Managed Lustre 实例,请验证以下内容:

  • Network Connectivity Center (NCC) 路由: 仅 VPC 对等互连不会将流量路由到 Managed Lustre 使用的专用服务访问通道连接。如需跨对等互连的 VPC 网络进行连接,您 必须通过 Network Connectivity Center (NCC) 连接这两个网络。
  • 防火墙规则: 确保主机 VPC 网络 和对等互连的 VPC 网络中的防火墙规则允许客户端子网与实例的分配 IP 范围 ($CIDR_BLOCK) 之间在端口 9886988 上传输 TCP 流量。

如需查看分步设置说明和 gcloud 命令,请参阅 配置 VPC 网络

在安全强化型虚拟机(安全启动)上装载失败

Managed Lustre 无法装载在 安全强化型虚拟机上。尝试在安全启动环境中加载 Lustre 内核模块会失败,并显示以下错误: ERROR: could not insert 'lustre': Required key not available.

在支持请求中提供的信息

如果您无法解决装载失败问题,请先收集诊断信息,然后再创建支持请求。您必须具有对客户端机器的 SSH 访问权限,才能运行本部分中的命令。

sosreport 实用程序会收集系统日志和配置信息,并生成压缩的 tar 文件。

如需生成 sosreport,请通过 SSH 连接到客户端机器。然后运行以下命令:

sudo sos report --all-logs --batch --tmp-dir=/var

如果找不到该命令,请执行以下操作:

Rocky Linux 和 RHEL

使用 dnf 软件包管理器安装 sos 软件包:

sudo dnf install -y sos

Ubuntu

使用 apt 软件包管理器安装 sosreport 软件包:

sudo apt update
sudo apt install -y sosreport

Container-Optimized OS

使用工具箱中的 apt 软件包管理器安装 sosreport 软件包:

sudo toolbox
sudo apt install sosreport -y

sosreport 归档文件附加到您的支持请求中。

如需详细了解 sosreport 实用程序,请参阅 使用 sosreport 收集调试信息