在AWS Linux上加载光泽内核模块

时间:2019-06-17 23:01:17

标签: kernel-module lustre

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

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

- 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不会选择它们,因为它们不在我内核的默认查找范围内路径:/lib/modules/4.15.0-1040-aws。

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

修改

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

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

1 个答案:

答案 0 :(得分:1)

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

Luster 2.12.x客户端应该能够挂载运行Luster 2.10.x的服务器,但是我无法评论AWS FSx实施是否限制客户端运行特定版本。可以通过服务器代码的补丁来实现,因为客户端和服务器可以交换其Luster发行版,但是在标准的Luster 2.10.x或2.12.x发行版中则无法完成,因为Luster使用更复杂的机制来交换功能兼容性。在连接时客户端和服务器之间建立连接,并且即使不能使用较新的功能,仍应允许不同版本之间的连接。