Dynamic Kernel Module Support (DKMS) für Compute Engine-Clients

Wenn Ihre Organisation benutzerdefinierte Kernel verwendet oder bestimmte Umgebungskonfigurationen erforderlich sind, sind die Standard-Lustre-Pakete möglicherweise nicht kompatibel.

In diesen Situationen unterstützt Managed Lustre Dynamic Kernel Module Support (DKMS). DKMS ist ein Framework zur Verwaltung von Linux-Kernelmodulen, deren Quellcode außerhalb des Hauptkernelbaums vorhanden ist. Die Hauptfunktion besteht darin, diese Module automatisch neu zu erstellen und zu installieren, wenn ein neuer Kernel installiert wird. So wird die Kompatibilität ohne manuellen Eingriff sichergestellt.

Vorkompilierte Kernelmodule sind zwar weiterhin die empfohlene Installationsmethode für die meisten Nutzer, DKMS bietet jedoch eine Alternative für Nutzer mit benutzerdefinierten Linux-Kerneln.

Hinweise

Die Verwendung von Dynamic Kernel Module Support (DKMS) für den verwalteten Lustre-Client ist speziell für fortgeschrittene Nutzer gedacht, die Kompatibilität mit benutzerdefinierten Kernels benötigen und bereit sind, clientseitige Probleme selbst zu beheben. Im Gegensatz zu vorgefertigten Modulen erfordert DKMS die Installation einer vollständigen Compiler-Toolchain und bestimmter Kernel-Header, was die Angriffsfläche und den Speicherplatzbedarf des Systems erhöht. Da Module außerdem bei Bedarf kompiliert werden, müssen Nutzer mit deutlich längeren Startzeiten für Client-VMs und potenziellen Kompilierungsfehlern bei Kernel-Updates rechnen.

Unterstützte Plattformen

Managed Lustre unterstützt DKMS-Clientpakete für:

Voraussetzungen

Damit Sie DKMS verwenden können, muss Ihr System Folgendes enthalten:

  • Alle Compilerpakete, die zum Kompilieren eines Kernelmoduls erforderlich sind. Dies ist distributionsspezifisch.

  • Die Header für Ihren spezifischen Kernel. Bei benutzerdefinierten Kernels müssen Sie den DKMS-Dienst manuell auf den Speicherort des Headers verweisen.

DKMS wird auf Shielded VMs nicht unterstützt.

DKMS und Header installieren

Bevor Sie die Managed Lustre DKMS-Pakete installieren, müssen Sie das dkms-Paket und die richtigen Linux-Kernel-Header für Ihr System installieren. Die Version der Kernel-Header muss genau mit der Version des Kernels übereinstimmen, den Sie ausführen.

Für Standard-Ubuntu-Kernel

Wenn Sie einen von Ubuntu bereitgestellten Standardkernel verwenden, können Sie die erforderlichen Pakete in der Regel mit folgendem Befehl installieren:

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

Für nicht standardmäßige oder benutzerdefinierte Kernel

Wenn Sie einen benutzerdefinierten Kernel verwenden, sind Sie dafür verantwortlich, die richtigen Kernel-Header zu beziehen und zu installieren.

Die Installation von Headern für einen benutzerdefinierten Kernel hängt von der Quelle ab. Kann es erforderlich sein:

  • Dokumentation Ihres Betriebssystemanbieters lesen: Ihr Anbieter stellt möglicherweise ein bestimmtes Paket oder Repository für die Kernel-Header bereit.
  • Aus der Quelle erstellen: Wenn Sie den Kernel selbst kompiliert haben, müssen Sie möglicherweise die Header aus dem Kernel-Quellcodebaum erstellen und installieren.

Benutzerdefinierte Header-Positionen

DKMS erwartet, die Kernel-Header im Verzeichnis /usr/src/linux-headers-$(uname -r) zu finden. Dazu wird der Befehl uname -r ausgeführt, um den Kernelversionsstring abzurufen und den Pfad zu erstellen. Beispiel: /usr/src/linux-headers-5.15.0-101-generic.

Wenn Ihre Kernel-Header nicht am erwarteten Speicherort installiert sind, müssen Sie den DKMS-Dienst manuell auf diesen Speicherort verweisen. Erstellen Sie dazu einen symbolischen Link von Ihrem benutzerdefinierten Header-Verzeichnis zum Speicherort, an dem DKMS die Header erwartet.

Wenn sich Ihre Header beispielsweise in /opt/custom-kernel/headers/ befinden, führen Sie den folgenden Befehl aus:

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

Sie sind dafür verantwortlich, dass die richtigen Kernel-Header ordnungsgemäß installiert sind und DKMS darauf zugreifen kann. Wenn die Header nicht gefunden werden können, kann das DKMS-Paket das Lustre-Kernelmodul nicht erstellen.

Verwaltete Lustre-DKMS-Pakete installieren

So installieren Sie die verwalteten Lustre-DKMS-Pakete:

Zugriff auf das Repository konfigurieren

Die DKMS-Clientpakete werden im Projekt lustre-client-modules-dkms in Artifact Registry gehostet.

Folgen Sie dieser Anleitung, um Ihre VM für die Installation aus Artifact Registry zu konfigurieren.

Ubuntu 22.04 LTS

  1. Installieren Sie die Signaturschlüssel für das Apt-Repository:

    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. Konfigurieren Sie Ihre VM für den Zugriff auf Artifact Registry-Pakete:

    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. Aktualisieren Sie Apt und installieren Sie das Paket apt-transport-artifact-registry:

    sudo apt update && sudo apt install apt-transport-artifact-registry
    
  4. Konfigurieren Sie Apt so, dass Pakete aus dem Repository abgerufen werden:

    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. Aktualisieren Sie Ihre Repository-Quellen:

    sudo apt update
    

    Wenn der Befehl einen Fehler zurückgibt, prüfen Sie, ob Ihre Compute Engine-VM mit dem Zugriffsbereich erstellt wurde, der vollen Zugriff auf alle Cloud APIs ermöglicht. Weitere Informationen finden Sie unter Zugriff auf Compute Engine-Instanzen gewähren.

Weitere Informationen zu diesen Befehlen finden Sie in der Artifact Registry-Dokumentation unter VMs für die Installation von Debian-Paketen konfigurieren.

Ubuntu 24.04 LTS

  1. Installieren Sie die Signaturschlüssel für das Apt-Repository:

    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. Konfigurieren Sie Ihre VM für den Zugriff auf Artifact Registry-Pakete:

    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. Aktualisieren Sie Apt und installieren Sie das Paket apt-transport-artifact-registry:

    sudo apt update && sudo apt install apt-transport-artifact-registry
    
  4. Konfigurieren Sie Apt so, dass Pakete aus dem Repository abgerufen werden:

    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. Aktualisieren Sie Ihre Repository-Quellen:

    sudo apt update
    

    Wenn der Befehl einen Fehler zurückgibt, prüfen Sie, ob Ihre Compute Engine-VM mit dem Zugriffsbereich erstellt wurde, der vollen Zugriff auf alle Cloud APIs ermöglicht. Weitere Informationen finden Sie unter Zugriff auf Compute Engine-Instanzen gewähren.

Weitere Informationen zu diesen Befehlen finden Sie in der Artifact Registry-Dokumentation unter VMs für die Installation von Debian-Paketen konfigurieren.

Lustre-Clientpakete installieren

Folgen Sie der Anleitung zum Installieren der Lustre-Clientpakete.

Ubuntu 22.04 LTS

Führen Sie die folgenden Befehle aus:

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

Führen Sie die folgenden Befehle aus:

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

In diesem Schritt werden die Clientpakete kompiliert. Das kann eine Weile dauern.

Managed Lustre-Instanz einbinden und darauf zugreifen

Folgen Sie der Anleitung unter Managed Lustre-Instanz einbinden.