From 28e3ef5c630b8433eaad176a53c98af05a994f36 Mon Sep 17 00:00:00 2001 From: rpm-build Date: Tue, 4 Jun 2019 13:23:32 -0700 Subject: [PATCH 01/23] unit file tweaks --- etc/systemd/iscsi-mark-root-nodes | 34 ++++++++++++++++++++++++++++++ etc/systemd/iscsi-onboot.service | 15 +++++++++++++ etc/systemd/iscsi-shutdown.service | 15 +++++++++++++ etc/systemd/iscsi.service | 16 +++++++------- etc/systemd/iscsid.service | 6 ++---- etc/systemd/iscsiuio.service | 4 +--- 6 files changed, 75 insertions(+), 15 deletions(-) create mode 100755 etc/systemd/iscsi-mark-root-nodes create mode 100644 etc/systemd/iscsi-onboot.service create mode 100644 etc/systemd/iscsi-shutdown.service diff --git a/etc/systemd/iscsi-mark-root-nodes b/etc/systemd/iscsi-mark-root-nodes new file mode 100755 index 0000000..9d48805 --- /dev/null +++ b/etc/systemd/iscsi-mark-root-nodes @@ -0,0 +1,34 @@ +#!/bin/bash + +ISCSIADM=/usr/sbin/iscsiadm +start_iscsid=0 +start_iscsiuio=0 + +while read t num p target flash; do + # strip tag number from portal, keep "ip:port" + portal=${p%,*} + transport=${t%:} + + # use session number to find the iface name in use + num=${num#[}; num=${num%]} + iface=$(iscsiadm -m session -r $num | grep iface.iscsi_ifacename | cut -d= -f2) + + $ISCSIADM -m node -p $portal -T $target -I $iface -o update -n node.startup -v onboot + + start_iscsid=1 + + if [ "$transport" = bnx2i ] || [ "$transport" = qedi ]; then + start_iscsiuio=1 + fi +done < <( $ISCSIADM -m session ) + +# force iscsid and iscsiuio to start if needed for +# recovering sessions created in the initrd + +if [ "$start_iscsid" -eq 1 ]; then + systemctl --no-block start iscsid.service +fi +if [ "$start_iscsiuio" -eq 1 ]; then + systemctl --no-block start iscsiuio.service +fi + diff --git a/etc/systemd/iscsi-onboot.service b/etc/systemd/iscsi-onboot.service new file mode 100644 index 0000000..42ced68 --- /dev/null +++ b/etc/systemd/iscsi-onboot.service @@ -0,0 +1,15 @@ +[Unit] +Description=Special handling of early boot iSCSI sessions +Documentation=man:iscsiadm(8) man:iscsid(8) +DefaultDependencies=no +RefuseManualStart=true +Before=iscsi.service +After=systemd-remount-fs.service +ConditionDirectoryNotEmpty=/sys/class/iscsi_session + +[Service] +Type=oneshot +ExecStart=-/usr/libexec/iscsi-mark-root-nodes + +[Install] +WantedBy=sysinit.target diff --git a/etc/systemd/iscsi-shutdown.service b/etc/systemd/iscsi-shutdown.service new file mode 100644 index 0000000..caee933 --- /dev/null +++ b/etc/systemd/iscsi-shutdown.service @@ -0,0 +1,15 @@ +[Unit] +Description=Logout off all iSCSI sessions on shutdown +Documentation=man:iscsid(8) man:iscsiadm(8) +DefaultDependencies=no +Conflicts=shutdown.target +After=systemd-remount-fs.service network.target iscsid.service iscsiuio.service +Before=remote-fs-pre.target +Wants=remote-fs-pre.target +RefuseManualStop=yes + +[Service] +Type=oneshot +RemainAfterExit=true +ExecStart=-/usr/bin/true +ExecStop=-/usr/sbin/iscsiadm -m node --logoutall=all diff --git a/etc/systemd/iscsi.service b/etc/systemd/iscsi.service index 5e394b9..26e557d 100644 --- a/etc/systemd/iscsi.service +++ b/etc/systemd/iscsi.service @@ -1,17 +1,17 @@ [Unit] Description=Login and scanning of iSCSI devices Documentation=man:iscsiadm(8) man:iscsid(8) -Before=remote-fs.target -After=network-online.target iscsid.service -Requires=iscsid.socket iscsi-init.service -Wants=network-online.target +DefaultDependencies=no +Before=remote-fs-pre.target +After=network.target network-online.target iscsid.service iscsiuio.service systemd-remount-fs.service +Wants=network-online.target remote-fs-pre.target iscsi-shutdown.service +ConditionDirectoryNotEmpty=/var/lib/iscsi/nodes [Service] Type=oneshot -ExecStart=/sbin/iscsiadm -m node --loginall=automatic -W -ExecStop=/sbin/iscsiadm -m node --logoutall=automatic -ExecStop=/sbin/iscsiadm -m node --logoutall=manual -SuccessExitStatus=21 15 +ExecStart=-/usr/sbin/iscsiadm -m node --loginall=automatic +ExecReload=-/usr/sbin/iscsiadm -m node --loginall=automatic +SuccessExitStatus=21 RemainAfterExit=true [Install] diff --git a/etc/systemd/iscsid.service b/etc/systemd/iscsid.service index 3fd7dd3..3958dae 100644 --- a/etc/systemd/iscsid.service +++ b/etc/systemd/iscsid.service @@ -2,15 +2,13 @@ Description=Open-iSCSI Documentation=man:iscsid(8) man:iscsiuio(8) man:iscsiadm(8) DefaultDependencies=no -After=network-online.target iscsiuio.service iscsi-init.service +After=network.target network-online.target iscsiuio.service Before=remote-fs-pre.target -Wants=remote-fs-pre.target -Requires=iscsi-init.service [Service] Type=notify NotifyAccess=main -ExecStart=/sbin/iscsid -f +ExecStart=/usr/sbin/iscsid -f KillMode=mixed Restart=on-failure diff --git a/etc/systemd/iscsiuio.service b/etc/systemd/iscsiuio.service index 923e019..fc0be93 100644 --- a/etc/systemd/iscsiuio.service +++ b/etc/systemd/iscsiuio.service @@ -2,17 +2,15 @@ Description=iSCSI UserSpace I/O driver Documentation=man:iscsiuio(8) DefaultDependencies=no -Conflicts=shutdown.target Requires=iscsid.service BindTo=iscsid.service After=network.target Before=remote-fs-pre.target iscsid.service -Wants=remote-fs-pre.target [Service] Type=notify NotifyAccess=main -ExecStart=/sbin/iscsiuio -f +ExecStart=/usr/sbin/iscsiuio -f KillMode=mixed Restart=on-failure -- 2.31.1