如果在客户端虚拟机或实例上装载或连接到 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-networkgcloud 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 的消息,请结合使用 grep 和 dmesg:
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) 之间在端口988和6988上传输 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 收集调试信息。