0

我正在尝试将光泽模块加载到运行 Linux 4.15.0-1040-aws 和 18.04 Ubuntu 磁盘映像(18.04 AMI)的 Linux 实例中。

我已经从Ubuntu 18.04 - Lustre 2.12.2下载并安装了(即 dpkg -i)18.04 的光泽客户端 debs :

- lustre-client-modules-4.15.0-45-generic_2.12.2-1_amd64.deb
- lustre-client-utils_2.12.2-1_amd64.deb

.ko 模块文件安装在 /lib/modules/4.15.0-45-generic/updates/fs/ 中,但默认情况下 modprobe 不会拾取它们,因为它们超出了我内核的默认查找路径:/库/模块/4.15.0-1040-aws。

有没有办法让它们加载,或者我的内核是否需要与 deb 提供的完全匹配?用户是否希望为 modprobe 编写自定义光泽 .conf 文件?

编辑

我认为答案可能是内核需要精确匹配模块——这可能需要重新编译模块源代码。我最终设法在 linux 4.14.123-111.109.amzn2.x86_64 上安装了 luster 客户端,但它运行在“Amazon Linux 2”映像(不是 ubuntu 18.04)上,我不得不使用命令amazon-linux-extras install -y lustre2.10

我最初没有意识到的另一件事是,亚马逊的 Lustre FSx 仅与 Lustre 客户端 2.10.5 和 2.10.6 兼容(请参阅本页顶部的注释),以防万一。棘手。

4

1 回答 1

2

客户端内核模块需要针对系统上运行的特定内核进行编译,或者对于 RHEL 内核,至少需要一个来自同一主要版本的内核(例如 RHEL7.5 内核 3.10.0-862.x)。有几个从源代码构建 Lustre 客户端的指南,例如,参见Building Lustre - TLDR GuideRebuilding the Lustre client RPMs for a new kernel

Lustre 2.12.x 客户端通常能够挂载运行 Lustre 2.10.x 的服务器,只要为您的特定内核重新构建模块以便可以加载它们。Lustre 使用更复杂的机制(不仅仅是版本号)在连接时交换客户端和服务器之间的功能兼容性,并且普通的 Lustre 客户端/服务器允许在不同版本之间进行连接,即使不能使用更新的功能。

我无法评论 AWS FSx 实施是否限制客户端运行特定版本。可以通过对服务器代码的补丁来限制客户端需要特定版本(除了支持的功能列表之外,客户端和服务器还在连接时交换其 Lustre 版本),但版本号不用于标准 Lustre 2.10.x 或 2.12.x 版本中的信息目的以外的任何内容。

您可以通过在客户端上运行“”来检查connect_flags每个服务器的客户端和服务器版本以及相互支持的功能(,您通常不能使用 AWS FSx)。lctl get_param {mdc,osc}.*.importlctl get_param {mdt,obdfilter}.*.exports.*.export

于 2019-06-24T03:01:46.513 回答