iSCSI multipath does not use/recognize all paths.

Tom123

New Member
Apr 23, 2025
4
0
1
Hello Members

I'm trying to set up iSCSI with multipath in a PVE cluster to a SAN. I want to achieve redundancy and load balancing. There are four paths to the SAN.
However, multipath only uses two paths and creates only one priority group

Code:
root@pve2:~# multipath -ll
vmstorage1 (3600000e00d2900000029175500650000) dm-0 FUJITSU,ETERNUS_DXL
size=4.0T features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
`-+- policy='round-robin 0' prio=50 status=active
  |- 9:0:0:108  sdb 8:16 active ready running
  `- 11:0:0:108 sdc 8:32 active ready running
Nach meinen Verständnis müsste multipath zwei priority groups mit jeweils zwei Pfaden erstellen um Redundanz und Lastausgleich zu erreichen, zum Beispiel sowie hier:
Code:
mydev1 (<wwid>) dm-1 IBM,1815      FAStT
[size=512M][features=1 queue_if_no_path][hwhandler=1 rdac]
\_ round-robin 0 [prio=6][active]
 \_ 29:0:0:1 sdf 8:80  [active][ready]
 \_ 28:0:1:1 sdl 8:176 [active][ready]
\_ round-robin 0 [prio=0][enabled]
 \_ 28:0:0:1 sdb 8:16  [active][ghost]
 \_ 29:0:1:1 sdq 65:0  [active][ghost]

PVE-Version: 9.1.4
SAN: Fujitsu DX200 S4
Each node and the SAN has two NICs, each with two ports. All VLANs are connected to and accessible via trunking on each port.
The paths:
  • iSCSI 1a: 10.10.10.10, iqn.2000-09.com.fujitsu:storage-system.eternus-dxl:00295d54
  • iSCSI 1b: 10.10.10.11, iqn.2000-09.com.fujitsu:storage-system.eternus-dxl:00295d54
  • iSCSI 2a: 10.10.20.10, iqn.2000-09.com.fujitsu:storage-system.eternus-dxl:00295d54
  • iSCSI 2b: 10.10.20.11, iqn.2000-09.com.fujitsu:storage-system.eternus-dxl:00295d54
Code:
root@pve2:~# cat /etc/multipath.conf
defaults {
    user_friendly_names     yes
    find_multipaths         strict
    polling_interval        5
    path_selector           "round-robin 0"
    path_grouping_policy    group_by_prio
    prio                    alua
    path_checker            tur
    rr_min_io               100
    rr_weight               priorities
    failback                immediate
}

blacklist {
    wwid  ".*"
}

blacklist_exceptions {
    wwid "3600000e00d2900000029175500650000"
}

multipaths {
    multipath {
        wwid  "3600000e00d2900000029175500650000"
        alias vmstorage1
    }
}

Code:
# cat /etc/multipath/wwids
# Multipath wwids, Version : 1.0
# NOTE: This file is automatically maintained by multipath and multipathd.
# You should not need to edit this file in normal circumstances.
#
# Valid WWIDs:
/3600000e00d2900000029175500650000/

Code:
root@pve2:~# iscsiadm -m session
tcp: [1] 10.10.10.11:3260,3 iqn.2000-09.com.fujitsu:storage-system.eternus-dxl:00295d54 (non-flash)
tcp: [2] 10.10.10.10:3260,1 iqn.2000-09.com.fujitsu:storage-system.eternus-dxl:00295d54 (non-flash)
tcp: [3] 10.10.20.11:3260,4 iqn.2000-09.com.fujitsu:storage-system.eternus-dxl:00295d54 (non-flash)
tcp: [4] 10.10.20.10:3260,2 iqn.2000-09.com.fujitsu:storage-system.eternus-dxl:00295d54 (non-flash)

As I understand it, I should see four devices here:
Code:
root@pve2:~# lsblk
NAME         MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINTS
...
sdb            8:16   0    4T  0 disk 
`-vmstorage1 252:0    0    4T  0 mpath
sdc            8:32   0    4T  0 disk 
`-vmstorage1 252:0    0    4T  0 mpath

Code:
root@pve2:~# lsscsi
...
[9:0:0:108]  disk    FUJITSU  ETERNUS_DXL      1090  /dev/sdb
[11:0:0:108] disk    FUJITSU  ETERNUS_DXL      1090  /dev/sdc

As another attempt, I mapped the iSCSI paths to specific interfaces (I had the same problems even without mapping).
Code:
root@pve2:~# cat /var/lib/iscsi/ifaces/iface_vlan408
# BEGIN RECORD 2.1.11
iface.iscsi_ifacename = iface_vlan408
iface.net_ifacename = eth1.408
iface.ipaddress = 10.10.10.02
iface.prefix_len = 0
iface.transport_name = tcp
iface.vlan_id = 0
iface.vlan_priority = 0
iface.iface_num = 0
iface.mtu = 0
iface.port = 0
iface.tos = 0
iface.ttl = 0
iface.tcp_wsf = 0
iface.tcp_timer_scale = 0
iface.def_task_mgmt_timeout = 0
iface.erl = 0
iface.max_receive_data_len = 0
iface.first_burst_len = 0
iface.max_outstanding_r2t = 0
iface.max_burst_len = 0
# END RECORD

root@pve2:~# cat /var/lib/iscsi/ifaces/iface_vlan409
# BEGIN RECORD 2.1.11
iface.iscsi_ifacename = iface_vlan409
iface.net_ifacename = eth3.409
iface.ipaddress = 10.10.20.02
...
# END RECORD

Code:
root@pve2:~# iscsiadm -m session -P3
iSCSI Transport Class version 2.0-870
version 2.1.11
Target: iqn.2000-09.com.fujitsu:storage-system.eternus-dxl:00295d54 (non-flash)
        Current Portal: 10.10.10.11:3260,3
        Persistent Portal: 10.10.10.11:3260,3
                **********
                Interface:
                **********
                Iface Name: iface_vlan408
                Iface Transport: tcp
                Iface Initiatorname: iqn.1993-08.org.debian:01:pve2
                Iface IPaddress: 10.10.10.02
                Iface HWaddress: default
                Iface Netdev: eth1.408
                SID: 1
                iSCSI Connection State: LOGGED IN
                iSCSI Session State: LOGGED_IN
                Internal iscsid Session State: NO CHANGE
                *********
                Timeouts:
                *********
                Recovery Timeout: 15
                Target Reset Timeout: 30
                LUN Reset Timeout: 30
                Abort Timeout: 15
                *****
                CHAP:
                *****
                username: <empty>
                password: ********
                username_in: <empty>
                password_in: ********
                ************************
                Negotiated iSCSI params:
                ************************
                HeaderDigest: None
                DataDigest: None
                MaxRecvDataSegmentLength: 262144
                MaxXmitDataSegmentLength: 16384
                FirstBurstLength: 0
                MaxBurstLength: 262144
                ImmediateData: No
                InitialR2T: Yes
                MaxOutstandingR2T: 1
                ************************
                Attached SCSI devices:
                ************************
                Host Number: 8  State: running
        Current Portal: 10.10.10.10:3260,1
        Persistent Portal: 10.10.10.10:3260,1
                **********
                Interface:
                **********
                Iface Name: iface_vlan408
                Iface Transport: tcp
                Iface Initiatorname: iqn.1993-08.org.debian:01:pve2
                Iface IPaddress: 10.10.10.02
                Iface HWaddress: default
                Iface Netdev: eth1.408
                SID: 2
                iSCSI Connection State: LOGGED IN
                iSCSI Session State: LOGGED_IN
                Internal iscsid Session State: NO CHANGE
                *********
                Timeouts:
                *********
                Recovery Timeout: 5
                Target Reset Timeout: 30
                LUN Reset Timeout: 30
                Abort Timeout: 15
                *****
                CHAP:
                *****
                username: <empty>
                password: ********
                username_in: <empty>
                password_in: ********
                ************************
                Negotiated iSCSI params:
                ************************
                HeaderDigest: None
                DataDigest: None
                MaxRecvDataSegmentLength: 262144
                MaxXmitDataSegmentLength: 16384
                FirstBurstLength: 0
                MaxBurstLength: 262144
                ImmediateData: No
                InitialR2T: Yes
                MaxOutstandingR2T: 1
                ************************
                Attached SCSI devices:
                ************************
                Host Number: 9  State: running
                scsi9 Channel 00 Id 0 Lun: 108
                        Attached scsi disk sdb          State: running
        Current Portal: 10.10.20.11:3260,4
        Persistent Portal: 10.10.20.11:3260,4
                **********
                Interface:
                **********
                Iface Name: iface_vlan409
                Iface Transport: tcp
                Iface Initiatorname: iqn.1993-08.org.debian:01:pve2
                Iface IPaddress: 10.10.20.02
                Iface HWaddress: default
                Iface Netdev: eth3.409
                SID: 3
                iSCSI Connection State: LOGGED IN
                iSCSI Session State: LOGGED_IN
                Internal iscsid Session State: NO CHANGE
                *********
                Timeouts:
                *********
                Recovery Timeout: 15
                Target Reset Timeout: 30
                LUN Reset Timeout: 30
                Abort Timeout: 15
                *****
                CHAP:
                *****
                username: <empty>
                password: ********
                username_in: <empty>
                password_in: ********
                ************************
                Negotiated iSCSI params:
                ************************
                HeaderDigest: None
                DataDigest: None
                MaxRecvDataSegmentLength: 262144
                MaxXmitDataSegmentLength: 16384
                FirstBurstLength: 0
                MaxBurstLength: 262144
                ImmediateData: No
                InitialR2T: Yes
                MaxOutstandingR2T: 1
                ************************
                Attached SCSI devices:
                ************************
                Host Number: 10 State: running
        Current Portal: 10.10.20.10:3260,2
        Persistent Portal: 10.10.20.10:3260,2
                **********
                Interface:
                **********
                Iface Name: iface_vlan409
                Iface Transport: tcp
                Iface Initiatorname: iqn.1993-08.org.debian:01:pve2
                Iface IPaddress: 10.10.20.02
                Iface HWaddress: default
                Iface Netdev: eth3.409
                SID: 4
                iSCSI Connection State: LOGGED IN
                iSCSI Session State: LOGGED_IN
                Internal iscsid Session State: NO CHANGE
                *********
                Timeouts:
                *********
                Recovery Timeout: 5
                Target Reset Timeout: 30
                LUN Reset Timeout: 30
                Abort Timeout: 15
                *****
                CHAP:
                *****
                username: <empty>
                password: ********
                username_in: <empty>
                password_in: ********
                ************************
                Negotiated iSCSI params:
                ************************
                HeaderDigest: None
                DataDigest: None
                MaxRecvDataSegmentLength: 262144
                MaxXmitDataSegmentLength: 16384
                FirstBurstLength: 0
                MaxBurstLength: 262144
                ImmediateData: No
                InitialR2T: Yes
                MaxOutstandingR2T: 1
                ************************
                Attached SCSI devices:
                ************************
                Host Number: 11 State: running
                scsi11 Channel 00 Id 0 Lun: 108
                        Attached scsi disk sdc          State: running
 
Code:
root@pve2:~# lsscsi
[0:2:0:0]    disk    LSI      MegaRAID SAS RMB 1.40  /dev/sda
[1:0:0:0]    cd/dvd  TSSTcorp BDDVDW SN-506BB  FT01  /dev/sr0
[9:0:0:108]  disk    FUJITSU  ETERNUS_DXL      1090  /dev/sdb
[11:0:0:108] disk    FUJITSU  ETERNUS_DXL      1090  /dev/sdc
root@pve2:~# multipath -v3
70053.983705 | set open fds limit to 1073741816/1073741816
70053.983761 | _read_bindings_file: reading /etc/multipath/bindings
70053.983791 | loading /usr/lib/multipath/libchecktur.so checker
70053.983908 | checker tur: message table size = 4
70053.983931 | loading /usr/lib/multipath/libprioconst.so prioritizer
70053.984074 | _init_foreign: foreign library "nvme" is not enabled
70053.988888 | sda: size = 583008256
70053.989055 | sda: vendor = LSI
70053.989096 | sda: product = MegaRAID SAS RMB
70053.989117 | sda: rev = 1.40
70053.989708 | sda: h:b:t:l = 0:2:0:0
70053.989990 | sda: tgt_node_name =
70053.989996 | sda: uid_attribute = ID_SERIAL (setting: multipath internal)
70053.990018 | sda: recheck_wwid = 1 (setting: multipath.conf defaults/devices section)
70053.990233 | sda: 36290 cyl, 255 heads, 63 sectors/track, start at 0
70053.990239 | sda: vpd_vendor_id = 0 "undef" (setting: multipath internal)
70053.990257 | sda: serial = 008da5290dcacd932ff0a69c00570003
70053.990262 | sda: detect_checker = yes (setting: multipath internal)
70053.990292 | sda checker timeout = 90 s (setting: kernel sysfs)
70053.990465 | sda: path_checker = tur (setting: multipath.conf defaults/devices section)
70053.990578 | sda: tur state = up
70053.990590 | sda: uid = 360030057009ca6f02f93cdca0d29a58d (udev)
70053.990606 | sda: wwid 360030057009ca6f02f93cdca0d29a58d blacklisted
70053.990959 | sr0: device node name blacklisted
70053.991071 | sdc: size = 8589934592
70053.991185 | sdc: vendor = FUJITSU
70053.991203 | sdc: product = ETERNUS_DXL
70053.991220 | sdc: rev = 1090
70053.991844 | sdc: h:b:t:l = 11:0:0:108
70053.992196 | sdc: tgt_node_name = iqn.2000-09.com.fujitsu:storage-system.eternus-dxl:00295d54
70053.992202 | sdc: uid_attribute = ID_SERIAL (setting: multipath internal)
70053.992205 | sdc: recheck_wwid = 1 (setting: multipath.conf defaults/devices section)
70053.992352 | sdc: 0 cyl, 64 heads, 32 sectors/track, start at 0
70053.992358 | sdc: vpd_vendor_id = 0 "undef" (setting: multipath internal)
70053.992373 | sdc: serial = 291755
70053.992376 | sdc: detect_checker = yes (setting: multipath internal)
70053.992403 | sdc checker timeout = 30 s (setting: kernel sysfs)
70054.039041 | sdc: path_checker = tur (setting: storage device autodetected)
70054.040523 | sdc: tur state = up
70054.040533 | sdc: uid = 3600000e00d2900000029175500650000 (udev)
70054.040600 | sdc: wwid 3600000e00d2900000029175500650000 whitelisted
70054.040605 | sdc: detect_prio = yes (setting: multipath internal)
70054.082706 | loading /usr/lib/multipath/libpriosysfs.so prioritizer
70054.082830 | sdc: prio = sysfs (setting: storage device autodetected)
70054.082837 | sdc: prio args = "" (setting: storage device autodetected)
70054.082861 | sdc: sysfs prio = 50
70054.082997 | sdb: size = 8589934592
70054.083157 | sdb: vendor = FUJITSU
70054.083175 | sdb: product = ETERNUS_DXL
70054.083203 | sdb: rev = 1090
70054.083863 | sdb: h:b:t:l = 9:0:0:108
70054.084235 | sdb: tgt_node_name = iqn.2000-09.com.fujitsu:storage-system.eternus-dxl:00295d54
70054.084242 | sdb: uid_attribute = ID_SERIAL (setting: multipath internal)
70054.084245 | sdb: recheck_wwid = 1 (setting: multipath.conf defaults/devices section)
70054.084400 | sdb: 0 cyl, 64 heads, 32 sectors/track, start at 0
70054.084406 | sdb: vpd_vendor_id = 0 "undef" (setting: multipath internal)
70054.084420 | sdb: serial = 291755
70054.084424 | sdb: detect_checker = yes (setting: multipath internal)
70054.084458 | sdb checker timeout = 30 s (setting: kernel sysfs)
70054.128226 | sdb: path_checker = tur (setting: storage device autodetected)
70054.128901 | sdb: tur state = up
70054.128911 | sdb: uid = 3600000e00d2900000029175500650000 (udev)
70054.128916 | sdb: wwid 3600000e00d2900000029175500650000 whitelisted
70054.128919 | sdb: detect_prio = yes (setting: multipath internal)
70054.173247 | sdb: prio = sysfs (setting: storage device autodetected)
70054.173255 | sdb: prio args = "" (setting: storage device autodetected)
70054.173273 | sdb: sysfs prio = 50
70054.173378 | loop0: device node name blacklisted
70054.173465 | loop1: device node name blacklisted
70054.173547 | loop2: device node name blacklisted
70054.173627 | loop3: device node name blacklisted
70054.173708 | loop4: device node name blacklisted
70054.173788 | loop5: device node name blacklisted
70054.173858 | loop6: device node name blacklisted
70054.173929 | loop7: device node name blacklisted
70054.174012 | dm-0: device node name blacklisted
===== paths list =====
uuid                              hcil       dev dev_t pri dm_st chk_st vend/prod/rev            dev_st
3600000e00d2900000029175500650000 11:0:0:108 sdc 8:32  50  undef undef  FUJITSU,ETERNUS_DXL,1090 unknown
3600000e00d2900000029175500650000 9:0:0:108  sdb 8:16  50  undef undef  FUJITSU,ETERNUS_DXL,1090 unknown
70054.174727 | multipath-tools v0.11.1 (01/24, 2025)
70054.174742 | libdevmapper version 1.02.205
70054.174872 | kernel device mapper v4.50.0
70054.174890 | DM multipath kernel driver v1.15.0
70054.174984 | sdb: size = 8589934592
70054.174992 | sdb: vendor = FUJITSU
70054.174997 | sdb: product = ETERNUS_DXL
70054.175007 | sdb: rev = 1090
70054.175608 | sdb: h:b:t:l = 9:0:0:108
70054.175756 | sdb: tgt_node_name = iqn.2000-09.com.fujitsu:storage-system.eternus-dxl:00295d54
70054.175773 | sdb: 0 cyl, 64 heads, 32 sectors/track, start at 0
70054.175778 | sdb: vpd_vendor_id = 0 "undef" (setting: multipath internal)
70054.175792 | sdb: serial = 291755
70054.176355 | sdc: size = 8589934592
70054.176365 | sdc: vendor = FUJITSU
70054.176369 | sdc: product = ETERNUS_DXL
70054.176372 | sdc: rev = 1090
70054.176967 | sdc: h:b:t:l = 11:0:0:108
70054.177150 | sdc: tgt_node_name = iqn.2000-09.com.fujitsu:storage-system.eternus-dxl:00295d54
70054.177167 | sdc: 0 cyl, 64 heads, 32 sectors/track, start at 0
70054.177171 | sdc: vpd_vendor_id = 0 "undef" (setting: multipath internal)
70054.177184 | sdc: serial = 291755
70054.178107 | sdc: udev property ID_WWN whitelisted
70054.178120 | sdc: wwid 3600000e00d2900000029175500650000 whitelisted
70054.178128 | sdb: udev property ID_WWN whitelisted
70054.178134 | sdb: wwid 3600000e00d2900000029175500650000 whitelisted
70054.178668 | unloading tur checker
70054.178731 | unloading sysfs prioritizer
70054.178754 | unloading const prioritizer
 
Hi @Tom123 ,

Most likely the SAN is not configured correctly for what you are trying to achieve. In practice, this usually means the LUN is not mapped to all required target portals. If the kernel can establish an iSCSI session but no block device appears, the SAN mapping or masking configuration is almost always the root cause.

If you cannot identify the issue, contact your SAN vendor’s support team. Refer to the host simply as Debian Linux, avoid mentioning Proxmox/PVE, as it often introduces unnecessary confusion.


Blockbridge : Ultra low latency all-NVME shared storage for Proxmox - https://www.blockbridge.com/proxmox
 
Thank you for the fast answere.

As far as I can tell, the SAN is configured correctly. It's set to default settings, ALUA is set to "ACTIVE-ACTIVE / PREFERRED_PATH" and TPGS is "Enabled", as recommended.

Documentation SAN (p. 342)