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:
- Ubuntu 22.04 LTS
- Ubuntu 24.04 LTS, nur für Arm-VMs.
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
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.gpgKonfigurieren 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.listAktualisieren Sie Apt und installieren Sie das Paket
apt-transport-artifact-registry:sudo apt update && sudo apt install apt-transport-artifact-registryKonfigurieren 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.listAktualisieren Sie Ihre Repository-Quellen:
sudo apt updateWenn 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
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.gpgKonfigurieren 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.listAktualisieren Sie Apt und installieren Sie das Paket
apt-transport-artifact-registry:sudo apt update && sudo apt install apt-transport-artifact-registryKonfigurieren 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.listAktualisieren Sie Ihre Repository-Quellen:
sudo apt updateWenn 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.