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
問題がなくなったと経験を伝えることができます。周期が壊れた。