Compute Engine 客户端的动态内核模块支持 (DKMS)

如果您的组织使用自定义内核,或者需要特定的环境 配置,则 标准 Lustre 软件包可能不 兼容。

在这些情况下,Managed Lustre 支持 动态内核模块支持 (DKMS)。DKMS 是一个框架,用于管理源代码位于主内核树之外的 Linux 内核模块。其核心功能是在安装新内核时自动重新构建和安装这些模块,从而确保兼容性,而无需手动干预。

虽然预构建的内核模块仍然是大多数用户的推荐安装路径,但 DKMS 为使用自定义 Linux 内核的用户提供了一种替代方案。

注意事项

为 Managed Lustre 客户端使用动态内核模块支持 (DKMS) 专门面向需要与自定义内核兼容并准备自行管理客户端问题的资深用户。与预构建的模块不同,DKMS 需要安装完整的编译器工具链和特定的内核标头,这会增加系统的安全攻击面和磁盘占用空间。此外,由于模块是按需编译的,因此用户必须考虑客户端虚拟机启动时间明显延长,以及在内核更新期间可能出现编译失败的情况。

支持的平台

Managed Lustre 支持以下平台的 DKMS 客户端软件包:

  • Ubuntu 22.04 LTS
  • Ubuntu 24.04 LTS,仅适用于 Arm 虚拟机

要求

如需使用 DKMS,您的系统必须包含:

  • 编译内核模块所需的所有编译器软件包。这取决于具体发行版。

  • 特定内核的标头。对于自定义内核,您必须手动将 DKMS 服务指向标头位置。

安全强化型虚拟机不支持 DKMS

安装 DKMS 和标头

在安装 Managed Lustre DKMS 软件包之前,您必须安装 dkms 软件包和适用于您系统的正确 Linux 内核标头。 内核标头的版本必须与您运行的内核版本完全匹配。

对于标准 Ubuntu 内核

如果您使用的是 Ubuntu 提供的标准内核,通常可以通过运行以下命令来安装必要的软件包:

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

对于非标准内核或自定义内核

如果您使用的是自定义内核,则需要负责获取和安装正确的内核标头。

为自定义内核安装标头的过程因其来源而异。您可能需要:

  • 查阅操作系统供应商的文档:您的供应商可能会为内核标头提供特定的软件包或代码库。
  • 基于源代码进行构建:如果您自行编译了内核,则可能需要基于内核源代码树构建和安装标头。

自定义标头位置

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 安装,请按照以下说明操作。

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 软件包:

    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
    

    如果该命令返回错误,请确保您的 Compute Engine 虚拟机是使用允许全面访问所有 Cloud API 的访问权限范围创建的。 如需了解详情,请参阅授予对 Compute Engine 实例的访问权限

如需详细了解这些命令,请参阅 Artifact Registry 文档: 将虚拟机配置为安装 Debian 软件包

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 软件包:

    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
    

    如果该命令返回错误,请确保您的 Compute Engine 虚拟机是使用允许全面访问所有 Cloud API 的访问权限范围创建的。 如需了解详情,请参阅授予对 Compute Engine 实例的访问权限

如需详细了解这些命令,请参阅 Artifact Registry 文档: 将虚拟机配置为安装 Debian 软件包

安装 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 实例中的说明进行操作。