排查客户端连接问题

如果在客户端虚拟机或实例上装载或连接到 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

如需从对等互连的 VPC 网络中的虚拟机访问 Managed Lustre 实例,您必须使用 Network Connectivity Center (NCC)。借助 NCC,您可以将多个 VPC 网络和本地网络连接到中央 hub,从而在它们之间提供连接。

如需了解如何设置 NCC,请参阅 Network Connectivity Center 文档

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

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

支持请求中要包含的信息

如果您无法解决装载失败问题,请先收集诊断信息,然后再创建支持请求。

运行 sosreport: 此实用程序会收集系统日志和配置信息,并生成压缩的 tarball:

sudo sosreport

sosreport 归档和 dmesg 中的任何相关输出附加到您的支持请求。