我有一台 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
到目前为止,一切都很好。