NFS는 현재 구성에서 1년 넘게 작동해 왔지만 최근에 다음과 같은 문제가 발생했습니다.
Ubuntu 20.04 커널 5.40.0-40 NFS nfs-kernel-server/focus-updates,focus-security,이제 1:1.3.4-2.5ubuntu3.3 amd64 [설치됨]
systemctl restart nfs-server
Failed to restart nfs-server.service: Transaction order is cyclic. See system logs for details.
See system logs and 'systemctl status nfs-server.service' for details.
시스템 제어 상태:
systemctl status nfs-server
nfs-server.service - NFS server and services
Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
Drop-In: /run/systemd/generator/nfs-server.service.d
└─order-with-mounts.conf
Active: inactive (dead)
Jul 03 06:37:38 acer systemd[1]: export-3T.mount: Found ordering cycle on nfs-server.service/start
Jul 03 06:37:38 acer systemd[1]: export-3T.mount: Found dependency on export-3T.mount/start
Jul 03 06:37:38 acer systemd[1]: export-3T.mount: Unable to break cycle starting with export-3T.mount/start
Jul 03 06:43:47 acer systemd[1]: export-3T.mount: Found ordering cycle on nfs-server.service/start
Jul 03 06:43:47 acer systemd[1]: export-3T.mount: Found dependency on export-3T.mount/start
Jul 03 06:43:47 acer systemd[1]: export-3T.mount: Unable to break cycle starting with export-3T.mount/start
일기에서
systemd[1]: Requested transaction contains an unfixable cyclic ordering dependency: Transaction order is cyclic. See system logs for det>
systemd[1]: export-3T.mount: Unable to break cycle starting with export-3T.mount/start
systemd[1]: export-3T.mount: Found dependency on export-3T.mount/start
systemd[1]: export-3T.mount: Found ordering cycle on nfs-server.service/start
/etc/fstab
UUID=uid /mnt/3T ext4 defaults 0 0
/mnt/3T /export/3T nfs bind 0 0
/etc/export
/export/3T 10.0.0.0/24(rw,nohide,insecure,no_subtree_check,async)
답변1
고쳐 쓰다
최근에 이 문제로 다시 영향을 받았는데, 다음 방법으로는 문제가 해결되지 않았습니다. 나는 우리에게 안정적인 "올바른"(?) 수정 사항을 찾았습니다.
해결책은 마운트를 /etc/fstab
.systemd
산장치의 장착 지점. 유용한 링크는 다음과 같습니다.
- https://dev.to/adarshkkumar/mount-a-volume-using-systemd-1h2f
- https://tekneed.com/how-to-mount-volumes-using-systemd-unit-file/
- https://forum.manjaro.org/t/root-tip-systemd-mount-unit-samples/1191
귀하의 경우 다음과 같이 보이기를 원합니다 /etc/systemd/system/mnt-3T.mount
(테스트되지 않음).
[Unit]
Description=3T mount
After=network.target
[Mount]
Where=/mnt/3T
Type=nfs
Options=bind
[Install]
WantedBy=multi-user.target
(저는 이전에 NFS 바인드 마운트를 수행한 적이 없습니다. 원하는 순서를 조정 Requires=
하고 구현 해야 할 수도 있습니다 )After=
원래 답변
조금 오래된 내용이지만 여러 곳에서 이 문제에 대한 다양한 내용이 보고된 것을 보았습니다. 나에게 있어서 핵심은https://bbs.archlinux.org/viewtopic.php?id=183999또는 더 구체적으로 다음을 추가 DefaultDependencies=False
하세요./usr/lib/systemd/system/nfs-client.target
오류 메시지는 매우 명확하지만 반드시 직관적이지는 않습니다. systemd
단위들 사이에는 종속성의 순환이 있습니다. 문제는 이 악순환을 어떻게 깨느냐이다.이 블로그문제에 대해 더 자세히 설명되어 있습니다.
또한 systemd 장치 매뉴얼 페이지에서는 기본 종속성을 설명합니다. 예를 들어,표적.target 매뉴얼 페이지에는 다음이 포함됩니다.
기본 종속성
DefaultDependencies=no
설정하지 않으면 다음 종속성이 추가됩니다.
- 지정된 단위에 설정 되지 않은 경우 대상 단위는 구성된 모든 유형 종속성
Wants=
또는Requires=
유형 종속성을 자동으로 보완합니다. 또는 는 대상 단위 자체에 정의되어야 합니다. 예를 들어 some.service 에 some.target을 정의하면 자동 주문이 추가되지 않습니다.After=
DefaultDependencies=no
Wants=
Requires=
Wants=
NFS의 경우 NFS 서버와 NFS 클라이언트 사이에 루프를 일으키는 원인이 무엇인지 구체적으로 말할 수는 없지만 DefaultDependencies
에서 NFS를 비활성화 하면 nfs-client.target
문제가 사라졌다고 경험을 통해 말할 수 있습니다. 주기가 깨졌습니다.