[Bug 1882986] Re: open-iscsi is slowing down the boot process

Christian Ehrhardt  1882986 at bugs.launchpad.net
Mon Jun 15 06:29:42 UTC 2020


For clarification, there are two related services:

#1 iscsid - provides the framework but usually would do nothing without being told to do so
   - until needed this is not running (socket activation)
#2 open-iscsid (alias = iscsi) - log in to default disks
   - would not run unless config has been defined

This is the state since we ensured the slow bits only run as needed in bug 1755858.
Might be a good read for some background.

I'd assume you have put such configs onto your system for the NAS devices you sometimes would mount later.
Your log confirms:
  ConditionDirectoryNotEmpty: |/etc/iscsi/nodes succeeded

That will most likely make #1 take a look at configs and run, the
queries of this will then wake #2 as well.

In case iscsi disks are configured it is correct to wait for them as
they "might" be important for the system and so far the systemd
dependencies can't know about what is configured for iscsi.

The question IMHO now is what does it need 10 seconds for in your case.
I'd expect it loads, checks the config, finds nothing it needs to to at boot time and be done in 0-2 seconds.

But of the services involved in the logs I can see:
- iscsid.socket
  starts 17:37:06 (socket ready)
  used at 17:37:15
- iscsid consists of two commands:
  startup-checks.sh 17:37:14 - 17:37:14
  /sbin/iscsid 17:37:14 - 17:37:14
- open-iscsi consists of two commands:
   /sbin/iscsiadm -m node --loginall=automatic  17:37:15 -  17:37:15
   activate-storage.sh 17:37:15 -  17:37:15

None of these take a long time thou. Maybe by being present/active they
slow something else down in regard to mounting or checking devices.

The `systemd-analyze dump` output you have was already interesting, but it is hard to check for dependencies. Could you add logs of the two cases which include all of the following:
$ systemd-analyze dump
$ systemd-analyze blame
$ systemd-analyze critical-chain
$ systemctl status iscsid.socket iscsid.service open-iscsi.service

Maybe we can spot something else slowing down - e.g. another service
that increases in execution time.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to open-iscsi in Ubuntu.
https://bugs.launchpad.net/bugs/1882986

Title:
  open-iscsi is slowing down the boot process

Status in open-iscsi package in Ubuntu:
  Triaged

Bug description:
  This is not a bug, but rather an "optimisation" request.

  (Probably set this as "enhancement request" + Low)

  Apparently, the package is assuming the user will need some iscsi
  mounts for his session, and is putting dependencies in the systemd
  services/targets which effects are to delay "graphical.target" to
  after the point when the network is online.

  A great job has been done by Ubuntu so that the O.S. appears to be
  "snappy" from the boot, and when the session is in "auto-login", it
  really makes a great difference and a good feeling of the system being
  very quick.

  This assumption of open-iscsi sort of ruins that effort.

  As an example, on my PC the graphical target is delayed 10 seconds
  more (was 22 seconds and is now 32). The impression is not as good and
  the system feels "slow again" (although it is just a feeling!)

  
  Step to reproduced (you don't even need to have iscsi LUNs to to so, just install the package!)
  - Start from a clean 20.04, boot up and issue: systemd-analyze
  - Now install open-iscsi, reboot and issue again: systemd-analyze

  The result will probably be a big impact on "graphical target",
  although total time does not change a lot.


  My usage is not needing iscsi targets for my session.
  I have a NAS with iscsi LUNs, and when I need those mounts, I just start them with a command.

  sudo iscsiadm -m node -l

  Then Gnome recognises a new disk has been inserted and does an "auto mount".
  This command works whether the service was started or not.


  This wrong assumption is easily fixed in my case with this command:

  
  sudo systemctl disable iscsid.socket iscsid.service open-iscsi.service

  
  Then, at the next reboot the graphical target is snappy again, and does not have to wait for network-online and remote-fs targets.


  I don't know what can be done to cope with both situations : those who
  need an iscsi target mounted for their session, and those who don't...
  but I guess the philosophy now should be to assume the user does not
  need such targets, and don't put dependencies that delay the snappy
  boot process.

  For those who need those mounted remote fs for their session, detailed
  help on how to enable iscsi services at startup should be provided.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/open-iscsi/+bug/1882986/+subscriptions



More information about the foundations-bugs mailing list