Fedora 37 は起動時に NAS から iscsi ターゲットをマウントするのが遅いです。

Fedora 37 は起動時に NAS から iscsi ターゲットをマウントするのが遅いです。

Asustor NASにiscsiターゲットがありますが、fstabに追加した後に起動プロセス中にiscsi.serviceが2回再ロードされるため、F37が2分遅く起動する理由がわかりません。

$ sudo iscsiadm -m discovery -t st -p 192.168.0.90
192.168.0.90:3260,1 iqn.2011-08.com.asustor:as5304t-8d33b5.target001
172.17.0.1:3260,1 iqn.2011-08.com.asustor:as5304t-8d33b5.target001

$ sudo blkid
/dev/sdc1: UUID="a8ba2edc-5c7c-41b3-bc78-6b8229dedb7d" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="primary" PARTUUID="19732655-96b8-439c-9ff1-07928f2486ef"

$ sudo iscsiadm -m session -o show
tcp: [1] 192.168.0.90:3260,1 iqn.2011-08.com.asustor:as5304t-8d33b5.target001 (non-flash)

最も遅いサービスは

$ systemd-analyze blame
2min 1.740s iscsi.service

# the slowest line is 
$ echo "$(< /var/log/boot.log)"
[  OK  ] Finished iscsi.service - Login and scanning of iSCSI devices.

$ systemd-analyze critical-chain
The time when unit became active or started is printed after the "@" character.
The time the unit took to start is printed after the "+" character.

graphical.target @2min 35.648s
└─multi-user.target @2min 35.648s
  └─plymouth-quit-wait.service @2min 14.928s +20.711s
    └─systemd-user-sessions.service @2min 14.891s +15ms
      └─remote-fs.target @2min 14.877s
        └─home-oglop-iscsi.mount @2min 14.846s +30ms
          └─remote-fs-pre.target @2min 14.828s
            └─iscsi.service @13.085s +2min 1.740s
              └─iscsid.service @13.201s +105ms
                └─network-online.target @13.073s
                  └─NetworkManager-wait-online.service @4.821s +8.250s
                    └─NetworkManager.service @4.738s +63ms
                      └─network-pre.target @4.720s
                        └─firewalld.service @3.911s +807ms
                          └─polkit.service @3.494s +388ms
                            └─basic.target @3.296s
                              └─dbus-broker.service @3.200s +91ms
                                └─dbus.socket @3.165s
                                  └─sysinit.target @3.100s
                                    └─systemd-resolved.service @2.581s +517ms
                                      └─systemd-tmpfiles-setup.service @2.326s +205ms
                                        └─local-fs.target @2.313s
                                          └─run-user-1000-doc.mount @2min 26.179s
                                            └─run-user-1000.mount @2min 15.287s
                                              └─local-fs-pre.target @1.792s
                                                └─lvm2-monitor.service @1.012s +773ms
                                                  └─dm-event.socket @980ms
                                                    └─system.slice
                                                      └─-.slice

/etc/systemd/system/remote-fs.target.wants/iscsi.service は F37 のデフォルトです。何も変更していません。

[Unit]
Description=Login and scanning of iSCSI devices
Documentation=man:iscsiadm(8) man:iscsid(8)
DefaultDependencies=no
Before=remote-fs-pre.target
After=network.target network-online.target iscsid.service iscsiuio.service systemd-remount-fs.service
Wants=remote-fs-pre.target
ConditionDirectoryNotEmpty=/var/lib/iscsi/nodes

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=-/usr/sbin/iscsiadm -m node --loginall=automatic
ExecReload=-/usr/sbin/iscsiadm -m node --loginall=automatic
SuccessExitStatus=21

[Install]
WantedBy=remote-fs.target

iscsi.service ログ

$ sudo journalctl -u iscsi -b
Dec 27 00:33:48 t450s systemd[1]: Starting iscsi.service - Login and scanning of iSCSI devices...
Dec 27 00:35:51 t450s iscsiadm[1325]: iscsiadm: Could not login to [iface: default, target: iqn.2011-08.com.asustor:as5304t-8d33b5.target0>
Dec 27 00:35:51 t450s iscsiadm[1325]: iscsiadm: initiator reported error (8 - connection timed out)
Dec 27 00:35:51 t450s iscsiadm[1325]: iscsiadm: Could not log into all portals
Dec 27 00:35:51 t450s iscsiadm[1325]: Logging in to [iface: default, target: iqn.2011-08.com.asustor:as5304t-8d33b5.target001, portal: 192>
Dec 27 00:35:51 t450s iscsiadm[1325]: Logging in to [iface: default, target: iqn.2011-08.com.asustor:as5304t-8d33b5.target001, portal: 172>
Dec 27 00:35:51 t450s iscsiadm[1325]: Login to [iface: default, target: iqn.2011-08.com.asustor:as5304t-8d33b5.target001, portal: 192.168.>
Dec 27 00:35:51 t450s systemd[1]: Finished iscsi.service - Login and scanning of iSCSI devices.
Dec 27 00:35:51 t450s systemd[1]: Reloading iscsi.service - Login and scanning of iSCSI devices...
Dec 27 00:37:54 t450s iscsiadm[1529]: iscsiadm: Could not login to [iface: default, target: iqn.2011-08.com.asustor:as5304t-8d33b5.target0>
Dec 27 00:37:54 t450s iscsiadm[1529]: iscsiadm: initiator reported error (8 - connection timed out)
Dec 27 00:37:54 t450s iscsiadm[1529]: iscsiadm: Could not log into all portals
Dec 27 00:37:54 t450s iscsiadm[1529]: Logging in to [iface: default, target: iqn.2011-08.com.asustor:as5304t-8d33b5.target001, portal: 172>
Dec 27 00:37:54 t450s systemd[1]: Reloaded iscsi.service - Login and scanning of iSCSI devices.

上記のログを見るとわかります。

Dec 27 00:35:51 t450s systemd[1]: Finished iscsi.service - Login and scanning of iSCSI devices.
Dec 27 00:35:51 t450s systemd[1]: Reloading iscsi.service - Login and scanning of iSCSI devices...

サービスのロードが完了し、サービスの再ロードが開始され、次にロードを完了するのに2分かかりました。なぜ再ロードしたいのか分かりません。

起動後、マウントは正常に動作しますが、起動時間が遅いということだけです。 fstab行をコメントアウトすると、ブートは再度高速になりますが、ブート時に自動的にマウントされるようになります。

サービスを手動で再起動しても2分かかります。

$ sudo systemctl restart iscsi.service

$ sudo journalctl -u iscsi
Dec 27 12:23:07 t450s systemd[1]: iscsi.service: Deactivated successfully.
Dec 27 12:23:07 t450s systemd[1]: Stopped iscsi.service - Login and scanning of iSCSI devices.
Dec 27 12:23:07 t450s systemd[1]: Stopping iscsi.service - Login and scanning of iSCSI devices...
Dec 27 12:23:07 t450s systemd[1]: Starting iscsi.service - Login and scanning of iSCSI devices...
Dec 27 12:25:09 t450s iscsiadm[6021]: iscsiadm: Could not login to [iface: default, target: iqn.2011-08.com.asustor:as5304t-8d33b5.target>
Dec 27 12:25:09 t450s iscsiadm[6021]: iscsiadm: initiator reported error (8 - connection timed out)
Dec 27 12:25:09 t450s iscsiadm[6021]: iscsiadm: Could not log into all portals
Dec 27 12:25:09 t450s iscsiadm[6021]: Logging in to [iface: default, target: iqn.2011-08.com.asustor:as5304t-8d33b5.target001, portal: 17>
Dec 27 12:25:09 t450s systemd[1]: Finished iscsi.service - Login and scanning of iSCSI devices.

ここに答えがあるかもしれませんが、隠された解決策は見えません。https://access.redhat.com/solutions/3649231

ベストアンサー1

ついに汚いハッカーを見つけました。

  1. /etc/fstabで使用してください。
UUID=a8ba2edc-5c7c-41b3-bc78-6b8229dedb7d /home/oglop/iscsi ext4 defaults,_netdev,noauto,x-systemd.automount 0 0
  1. iscsi.serviceをType=以下からoneshot修正してください。forking
sudo systemctl edit --full iscsi

報道によると、この部分が最も混乱した部分だそうですシステムサービスdoc、これoneshotはまさにここで必要なタイプですが、フォークを使用すると遅延がなくなり、起動後もまだ正しいサービス状態が表示されます。

私の完全なiSCSI.service

[Unit]
Description=Login and scanning of iSCSI devices
Documentation=man:iscsiadm(8) man:iscsid(8)
DefaultDependencies=no
Before=remote-fs-pre.target
After=network.target network-online.target iscsid.service iscsiuio.service systemd-remount-fs.service
Wants=remote-fs-pre.target
ConditionDirectoryNotEmpty=/var/lib/iscsi/nodes

[Service]
#Type=oneshot
Type=forking
RemainAfterExit=true
ExecStart=-/usr/sbin/iscsiadm -m node --loginall=automatic
ExecReload=-/usr/sbin/iscsiadm -m node --loginall=automatic
SuccessExitStatus=21

[Install]
WantedBy=remote-fs.target

アップデート:ハッキングが数時間働いた後、デフォルトの90秒遅延が発生し始めました。

iscsi.serviceに追加しましたが、--debug=8使用したときの完全なログは次のとおりです。Type=oneshot

https://pastebin.com/4XbvcjYj

おすすめ記事