在四台 Raspberry PI 4 (arm64) 上,我安装了 Ubuntu 23.10。对于 Kubernetes 上的 Longhorn 存储,我需要 iscsi_tcp 模块。使用内核 6.5.0-1007-raspi (#9)。我已经安装了 linux-modules-extra-raspi,并且尝试安装 open-iscsi(显示已安装)。
我一直在尝试这个问题/答案没有成功。
我一直在尝试在节点上安装/清除 linux-modules-extra-raspi、linux-modules-extra-6.5.0-1007-raspi 和 open-isci 的不同组合,试图安装 isci_tcp 模块,但仍然无济于事。
偶尔,我可以到达显示lsmod iscsi_tcp
它存在于节点上的点(但后来,在尝试了一些方法之后,它并没有出现)。在所有情况下,始终modprobe iscsi_tcp
显示:
modprobe: FATAL: Module iscsi_tcp not found in directory /lib/modules/6.5.0-1007-raspi
另外,当我安装附加功能的通用版本时,我看到两个条目:
ii linux-modules-extra-6.5.0-1007-raspi 6.5.0-1007.9 arm64 Linux kernel extra modules for version 6.5.0 on ARMv8 SMP
ii linux-modules-extra-raspi 6.5.0.1007.8 arm64 Raspberry Pi Linux kernel extra modules
如果我安装特定的 linux-modules-extra-6.5.0-1007-raspi,我只会看到顶部条目。
我对“iscsi-top”进行了包搜索(https://packages.ubuntu.com/search?suite=mantic&arch=arm64&mode=exactfilename&searchon=contents&keywords=iscsi_tcp) 和 23.10,我看到这些(部分列表):
/usr/src/linux-headers-6.5.0-1004-laptop/include/config/ISCSI_TCP linux-headers-6.5.0-1004-laptop
/usr/src/linux-headers-6.5.0-1005-raspi/include/config/ISCSI_TCP linux-headers-6.5.0-1005-raspi
/usr/src/linux-headers-6.5.0-1007-azure/include/config/ISCSI_TCP linux-headers-6.5.0-1007-azure
/usr/src/linux-headers-6.5.0-1007-gcp/include/config/ISCSI_TCP linux-headers-6.5.0-1007-gcp
我有一系列问题...
- linux-modules-extra-6.5.0-1007-raspi (6.5.0-1007.9) 的顶部条目显示 ARMv8 SMP。这是 Raspberry PI arm64 的正确模块吗?
- 在软件包列表中,似乎 raspi 版本仅在 6.5.0-1005 上。这是否意味着它不在 6.5.0-1007 中,我需要使用较旧的内核?
- 我在尝试安装所需模块时是否遗漏了某些步骤?
- 如果我必须降级内核,有人可以告诉我如何操作吗?
谢谢!
答案1
我在使用 Longhorn 存储时遇到的问题是卷状态不佳(卡在附加状态)。Longhorn 的 pod 显示错误,表示未找到 iscsci_tcp 模块。我查看了故障排除页面并尝试了一些安装步骤,然后我发布了此问题。
他们提到了一个检查脚本(https://longhorn.io/docs/1.5.3/deploy/install/#using-the-environment-check-script)。运行该程序后,它没有抱怨 iscsid(尽管我看不到 iscsi_tcp 模块),但它确实抱怨在节点上运行的 multipathd。有人提到这可能会干扰 iscsid。
我偶然发现此主题其中一部分是有人执行了这些命令:
sudo apt install nfs-common
sudo systemctl enable iscsid
sudo systemctl start iscsid
sudo systemctl stop multipathd
sudo systemctl disable multipathd
我在每个节点上都执行了这些操作,运行了检查脚本并且通过了。
longhorn 文档中还有更多建议(抱歉,这是针对 kubernetes 的),关于安装 open-iscsi:
kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.5.3/deploy/prerequisite/longhorn-iscsi-installation.yaml
但是,查看日志时,它只是说它已经安装好了。我也没有看到 iscsi_tcp 模块可用性有任何变化。我继续设置 longhorn,现在音量正常了!
可能 iscsi_tcp 错误只是个幌子,问题出在 multipathd 上?无论如何,它现在正常工作了。