クライアント接続のトラブルシューティング

クライアント 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 インスタンスとクライアント インスタンスが同じ 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 インスタンスで accept_port 6988 を使用するように LNet を構成する必要があります。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 固有のメッセージを検索するには、dmesg と組み合わせて grep を使用します。

dmesg | grep -i lustre

または、関連する可能性のある一般的なエラーを探すには:

dmesg | grep -i error

マルチ NIC VM で Lustre のマウントが失敗する

VM に複数のネットワーク インターフェース コントローラ(NIC)があり、Managed Lustre インスタンスがセカンダリ NIC(eth1 など)に接続された VPC 上にある場合、インスタンスのマウントが失敗することがあります。この問題を解決するには、セカンダリ NIC を使用してマウントする手順に沿って操作します。

172.17.0.0/16 サブネット範囲から接続できない

172.17.0.0/16 サブネット範囲の IP アドレスを持つ Compute Engine クライアントと GKE クライアントは、Managed Lustre インスタンスをマウントできません。

ピアリングされたプロジェクトから Managed Lustre にアクセスできない

ピアリングされた VPC ネットワーク内の VM から Managed Lustre インスタンスにアクセスするには、Network Connectivity Center(NCC)を使用する必要があります。NCC を使用すると、複数の VPC ネットワークとオンプレミス ネットワークを中央ハブに接続し、それらの間の接続を提供できます。

NCC の設定方法については、Network Connectivity Center のドキュメントをご覧ください。

Shielded VM(セキュアブート)でマウントが失敗する

Managed Lustre は Shielded 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 を使用してデバッグ情報を収集するをご覧ください。