iSCSI 블록을 가져와 ext4로 마운트한 다음 NFS 공유로 내보내는 Ubuntu 시스템이 있습니다. 시작 시 iSCSI 디렉터리 마운트가 아직 로드되지 않았기 때문에 NFS가 시작되지 않습니다.
"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
remote-fs-pre.target
제 경우에는 iSCSI 드라이브가 iSCSI 드라이브의 일부로 취급 되어 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
여태까지는 그런대로 잘됐다.