nfs-server.service を再起動できません。トランザクションの順序が循環されます。

nfs-server.service を再起動できません。トランザクションの順序が循環されます。

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/fstabsystemd デバイスの取り付けポイント。便利なリンクは次のとおりです。

あなたの場合は、次のように見せたい/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=noWants=Requires=Wants=

NFSの場合、NFSサーバーとNFSクライアント間でループを引き起こす原因が何であるかを具体的に言うことはできませんが、DefaultDependenciesNFSを無効にするとnfs-client.target問題がなくなったと経験を伝えることができます。周期が壊れた。

おすすめ記事