连接 iSCSI 目标后强制 NFS 服务器启动

连接 iSCSI 目标后强制 NFS 服务器启动

我有一台 Ubuntu 机器,它采用 iSCSI 块,将其安装为 ext4,然后将其导出为 NFS 共享。启动时,NFS 无法启动,因为 iSCSI 目录挂载尚未加载。

“exportfs:无法统计 /mnt/iscsi/nfs:没有这样的文件或目录”

如果我在服务器启动后运行 nfs-kernel-server ,则效果很好。

有没有办法强制 NFS 等待 iSCSI 块挂载?

编辑:进一步调查..通过强制 nfs-server.service 等待 mnt-iscsi.mount,我触发了依赖循环。

Dec 02 09:16:09 on1 systemd[1]: nfs-server.service: Found ordering cycle on mnt-iscsi.mount/start
Dec 02 09:16:09 on1 systemd[1]: nfs-server.service: Found dependency on remote-fs-pre.target/start
Dec 02 09:16:09 on1 systemd[1]: nfs-server.service: Found dependency on nfs-server.service/start
Dec 02 09:16:09 on1 systemd[1]: nfs-server.service: Unable to break cycle starting with nfs-server.service/start

我一直在努力弄清楚要改变什么。

谢谢!

答案1

就我而言,问题似乎是我的 iSCSI 驱动器被视为 的一部分remote-fs-pre.target,并且systemd默认情况下要启动nfs-server Before它。

只需放入一行即可After创建/etc/systemd/system/nfs-server.service.d/override.conf一个循环,就像您在问题中指出的那样。

我的解决方案是使用:

systemctl edit --full nfs-server

它克隆了完整的设置,以便您可以注释掉:

##Before=remote-fs-pre.target

并添加:

After=mnt-foo.mount

到目前为止,一切都很好。

相关内容