To configure host-side networking, you must perform several steps.

About this task

You configure iSCSI networking on the host side by setting the number of node sessions per physical path, turning on the appropriate iSCSI services, configuring the network for the iSCSI ports, creating iSCSI face bindings, and establishing the iSCSI sessions between initiators and targets.

In most cases, you can use the inbox software-initiator for iSCSI CNA/NIC. You do not need to download the latest driver, firmware, and BIOS. Refer to the Lenovo Storage Interoperation Center (LSIC) to determine code requirements.

  1. Check the node.session.nr_sessions variable in the /etc/iscsi/iscsid.conf file to see the default number of sessions per physical path. If necessary, change the default number of sessions to one session.

    node.session.nr_sessions = 1
  2. Change the node.session.timeo.replacement_timeout variable in the /etc/iscsi/iscsid.conf file to 20, from a default value of 120.

    node.session.timeo.replacement_timeout = 20
  3. Optionally, you can set node.startup = automatic in /etc/iscsi/iscsid.conf before running any iscsiadm commands to have sessions persist after reboot.

  4. Make sure iscsid and (open-)iscsi services are on and enabled for boot.

    # systemctl start iscsi
    # systemctl start iscsid
    # systemctl enable iscsi
    # systemctl enable iscsid
  5. Get the host IQN initiator name, which will be used to configure the host to an array.

    # cat /etc/iscsi/initiatorname.iscsi
  6. Configure the network for iSCSI ports. These are example instructions for RHEL and SLES:

    In addition to the public network port, iSCSI initiators should use two or more NICs on separate private segments or vLANs.
    1. Determine the iSCSI port names using the ifconfig -a command.

    2. Set the IP address for the iSCSI initiator ports. The initiator ports should be present on the same subnet as the iSCSI target ports.

      Red Hat Enterprise Linux 7 and 8 (RHEL 7 and RHEL 8)

      Create the example file /etc/sysconfig/network-scripts/ifcfg-<NIC port> with the following contents.

      NAME=<NIC port>
      UUID=<unique UUID>
      DEVICE=<NIC port>

      Optional additions with regards to IPv6:


      Red Hat Enterprise Linux 9 (RHEL 9)

      Use the nmtui tool to activate and edit a connection. The tool will generate a <NIC port>.nmconnection file within /etc/NetworkManager/system-connections/.

      SUSE Linux Enterprise Server 12 and 15 (SLES 12 and SLES 15)

      Create the example file /etc/sysconfig/network/ifcfg-<NIC port> with the following contents.


      Optional addition with regards to IPv6:

      Be sure to set the address for both iSCSI initiator ports.
    3. Restart network services.

      # systemctl restart network
    4. Make sure the Linux server can ping all of the iSCSI target ports.

  7. Establish the iSCSI sessions between initiators and targets (four total) by one of two methods.

    1. (Optional) When using ifaces, configure the iSCSI interfaces by creating two iSCSI iface bindings.

      # iscsiadm -m iface -I iface0 -o new
      # iscsiadm -m iface -I iface0 -o update -n iface.net_ifacename -v <NIC port1>
      # iscsiadm -m iface -I iface1 -o new
      # iscsiadm -m iface -I iface1 -o update -n iface.net_ifacename -v <NIC port2>
      To list the interfaces, use iscsiadm -m iface.
    2. Discover iSCSI targets. Save the IQN (it will be the same with each discovery) in the worksheet for the next step.

      Method 1 (with ifaces)

      # iscsiadm -m discovery -t sendtargets -p <target_ip_address>:<target_tcp_listening_port> -I iface0
      # iscsiadm -m discovery -t sendtargets -p -I iface0

      Method 2 (without ifaces)

      # iscsiadm -m discovery -t sendtargets -p <target_ip_address>:<target_tcp_listening_port>
      # iscsiadm -m discovery -t sendtargets -p
      The IQN looks like the following:
    3. Create the connection between the iSCSI initiators and iSCSI targets.

      Method 1 (with ifaces)

      # iscsiadm -m node -T <target_iqn> -p <target_ip_address>:<target_tcp_listening_port> -I iface0 -l
      # iscsiadm -m node -T -p -I iface0 -l

      Method 2 (without ifaces)

      # iscsiadm -m node -L all
    4. List the iSCSI sessions established on the host.

      # iscsiadm -m session