Compute Engine クライアントの Dynamic Kernel Module Support(DKMS)

組織でカスタム カーネルを使用している場合や、特定の環境 構成が必要な場合は、 標準の Lustre パッケージと互換性がない可能性があります。

このような場合、Managed Lustre は Dynamic Kernel Module Support(DKMS)をサポートします。DKMS は、ソースコードがメインのカーネルツリーの外にある Linux カーネル モジュールを管理するために使用されるフレームワークです。そのコア機能は、新しいカーネルがインストールされたときにこれらのモジュールを自動的に再ビルドしてインストールし、手動で介入することなく互換性を確保することです。

ほとんどのユーザーにとって、プリビルドのカーネル モジュールは推奨されるインストール パスですが、DKMS はカスタム Linux カーネルを使用するユーザー向けの代替手段を提供します。

考慮事項

Managed Lustre クライアントに Dynamic Kernel Module Support(DKMS)を使用することは、カスタム カーネルとの互換性を必要とし、クライアント側の問題を独自に管理する準備ができている上級ユーザーを対象としています。プリビルド モジュールとは異なり、DKMS では完全なコンパイラ ツールチェーンと特定のカーネル ヘッダーをインストールする必要があるため、システムのセキュリティ攻撃対象領域とディスク使用量が増加します。また、モジュールはオンデマンドでコンパイルされるため、クライアント VM の起動時間が大幅に長くなることと、カーネルの更新中にコンパイルが失敗する可能性があることを考慮する必要があります。

対応プラットフォーム

Managed Lustre は、次の DKMS クライアント パッケージをサポートしています。

要件

DKMS を使用するには、システムに次のものが含まれている必要があります。

  • カーネル モジュールのコンパイルに必要なすべてのコンパイラ パッケージ。これはディストリビューション固有です。

  • 特定のカーネルのヘッダー。カスタム カーネルの場合は、DKMS サービスをヘッダーの場所に手動で指定する必要があります。

Shielded VM では DKMS はサポートされていません。

DKMS とヘッダーをインストールする

Managed Lustre DKMS パッケージをインストールする前に、dkms パッケージとシステムに適した Linux カーネル ヘッダーをインストールする必要があります。 カーネル ヘッダーのバージョンは、実行しているカーネルのバージョンと完全に一致している必要があります。

標準の Ubuntu カーネルの場合

Ubuntu が提供する標準カーネルを使用している場合は、通常、次のコマンドを実行して必要なパッケージをインストールできます。

sudo apt update
sudo apt install dkms linux-headers-$(uname -r)

非標準またはカスタム カーネルの場合

カスタム カーネルを使用している場合は、正しいカーネル ヘッダーを取得してインストールする必要があります。

カスタム カーネルのヘッダーをインストールするプロセスは、そのソースによって異なります。次を行う必要があります。

  • OS ベンダーのドキュメントを参照する: ベンダーがカーネル ヘッダー用の特定のパッケージまたはリポジトリを提供している場合があります。
  • ソースからビルドする: カーネルを自分でコンパイルした場合は、カーネル ソースツリーからヘッダーをビルドしてインストールする必要があります。

カスタム ヘッダーの場所

DKMS は、カーネル ヘッダーがディレクトリ /usr/src/linux-headers-$(uname -r) にあることを想定しています。 uname -r コマンドを実行してカーネル バージョン文字列を取得し、パスを作成します。例: /usr/src/linux-headers-5.15.0-101-generic

カーネル ヘッダーが想定される場所にインストールされていない場合は、カスタム ヘッダー ディレクトリから DKMS が想定する場所へのシンボリック リンクを作成して、DKMS サービスをその場所に手動で指定する必要があります。

たとえば、ヘッダーが /opt/custom-kernel/headers/ にある場合は、次のコマンドを実行します。

sudo ln -s /opt/custom-kernel/headers/ /usr/src/linux-headers-$(uname -r)

正しいカーネル ヘッダーが適切にインストールされ、DKMS からアクセスできることを確認する必要があります。ヘッダーが見つからない場合、DKMS パッケージは Lustre カーネル モジュールのビルドに失敗します。

Managed Lustre DKMS パッケージをインストールする

Managed Lustre DKMS パッケージをインストールする手順は次のとおりです。

リポジトリへのアクセスを構成する

DKMS クライアント パッケージは、Artifact Registry の lustre-client-modules-dkms プロジェクトでホストされています。

Artifact Registry からインストールするように VM を構成する手順は次のとおりです。

Ubuntu 22.04 LTS

  1. Apt リポジトリの署名鍵をインストールします。

    curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg \
      | sudo gpg --dearmor -o /usr/share/keyrings/google-cloud.gpg
    curl -fsSL https://us-apt.pkg.dev/doc/repo-signing-key.gpg \
      | sudo gpg --dearmor -o /usr/share/keyrings/lustre-client.gpg
    
  2. Artifact Registry パッケージにアクセスするように VM を構成します。

    echo 'deb [signed-by=/usr/share/keyrings/google-cloud.gpg] http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' \
      | sudo tee /etc/apt/sources.list.d/artifact-registry.list
    
  3. Apt を更新して apt-transport-artifact-registry パッケージをインストールします。

    sudo apt update && sudo apt install apt-transport-artifact-registry
    
  4. リポジトリからパッケージを取得するように Apt を構成します。

    echo "deb [signed-by=/usr/share/keyrings/lustre-client.gpg] ar+https://us-apt.pkg.dev/projects/lustre-client-modules-dkms lustre-client-ubuntu-jammy main" \
      | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    
  5. リポジトリのソースを更新します。

    sudo apt update
    

    コマンドがエラーを返した場合は、すべての Cloud API への完全アクセスを許可するアクセス スコープで Compute Engine VM が作成されていることを確認してください。 詳細については、Compute Engine インスタンスへのアクセス権の付与 をご覧ください。

これらのコマンドの詳細については、Artifact Registry ドキュメント: Debian パッケージをインストールするように VM を構成するをご覧ください。

Ubuntu 24.04 LTS

  1. Apt リポジトリの署名鍵をインストールします。

    curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg \
      | sudo gpg --dearmor -o /usr/share/keyrings/google-cloud.gpg
    curl -fsSL https://us-apt.pkg.dev/doc/repo-signing-key.gpg \
      | sudo gpg --dearmor -o /usr/share/keyrings/lustre-client.gpg
    
  2. Artifact Registry パッケージにアクセスするように VM を構成します。

    echo 'deb [signed-by=/usr/share/keyrings/google-cloud.gpg] http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' \
      | sudo tee /etc/apt/sources.list.d/artifact-registry.list
    
  3. Apt を更新して apt-transport-artifact-registry パッケージをインストールします。

    sudo apt update && sudo apt install apt-transport-artifact-registry
    
  4. リポジトリからパッケージを取得するように Apt を構成します。

    echo "deb [signed-by=/usr/share/keyrings/lustre-client.gpg] ar+https://us-apt.pkg.dev/projects/lustre-client-modules-dkms lustre-client-ubuntu-noble main" \
      | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    
  5. リポジトリのソースを更新します。

    sudo apt update
    

    コマンドがエラーを返した場合は、すべての Cloud API への完全アクセスを許可するアクセス スコープで Compute Engine VM が作成されていることを確認してください。 詳細については、Compute Engine インスタンスへのアクセス権の付与 をご覧ください。

これらのコマンドの詳細については、Artifact Registry ドキュメント: Debian パッケージをインストールするように VM を構成するをご覧ください。

Lustre クライアント パッケージをインストールする

手順に沿って Lustre クライアント パッケージをインストールします。

Ubuntu 22.04 LTS

次のコマンドを実行します。

sudo apt install lustre-client-modules-dkms/lustre-client-ubuntu-jammy
sudo apt install lustre-client-utils/lustre-client-ubuntu-jammy

Ubuntu 24.04 LTS

次のコマンドを実行します。

sudo apt install lustre-client-modules-dkms/lustre-client-ubuntu-noble
sudo apt install lustre-client-utils/lustre-client-ubuntu-noble

このステップではクライアント パッケージがコンパイルされるため、時間がかかることがあります。

Managed Lustre インスタンスをマウントしてアクセスする

Managed Lustre インスタンスをマウントするの手順に沿って操作します。