如果無法在用戶端 VM 或執行個體上掛接或連線至 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 執行個體和用戶端執行個體位於相同的虛擬私有雲網路。比較下列指令的輸出內容:
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指令的輸出內容相符。檢查虛擬私有雲網路的防火牆規則和路由設定,確保這些規則和設定允許用戶端執行個體與 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,您必須在用戶端 VM 上設定 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 VM 上掛接 Lustre 失敗
如果 VM 有多個網路介面控制器 (NIC),且 Managed Lustre 執行個體位於連線至次要 NIC 的 VPC (例如 eth1),則掛接執行個體可能會失敗。如要解決這個問題,請按照指示使用次要 NIC 掛接。
無法從 172.17.0.0/16 子網路範圍連線
IP 位址位於 172.17.0.0/16 子網路範圍的 Compute Engine 和 GKE 用戶端,無法掛接 Managed Lustre 執行個體。
無法從對等互連專案存取 Managed Lustre
如果用戶端 VM 或 GKE 叢集位於對等互連的虛擬私有雲網路中,且無法連線至 Managed Lustre 執行個體,請確認下列事項:
- Network Connectivity Center (NCC) 路由:單獨使用虛擬私有雲對等互連,無法將流量轉送至 Managed Lustre 使用的私人服務存取連線。如要在對等互連的虛擬私有雲網路之間建立連線,您必須透過 Network Connectivity Center (NCC) 連線至這兩個網路。
- 防火牆規則:請確認主機虛擬私有雲網路和對等互連虛擬私有雲網路中的防火牆規則,允許用戶端子網路與執行個體分配到的 IP 範圍 (
$CIDR_BLOCK) 之間,透過通訊埠988和6988傳輸 TCP 流量。
如需逐步設定操作說明和 gcloud 指令,請參閱「設定虛擬私有雲網路」。
受防護的 VM (安全啟動) 無法掛接
Managed Lustre 無法掛接至受防護的 VM。在安全啟動環境中嘗試載入 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
在 toolbox 中使用 apt 套件管理工具安裝 sosreport 套件:
sudo toolbox
sudo apt install sosreport -y
將 sosreport 封存檔附加到客服案件。
如要進一步瞭解 sosreport 公用程式,請參閱「使用 sosreport 收集偵錯資訊」。