On 6/4/24 21:02, Grant Taylor wrote:
It turns out that I needed to change the initiator configuration on the EMC for the test system to use fail-over mode 4, which I think is also known as ALUA.

I was really close, but not quite there.

Now I've made it all the way.

% multipath -l
3600601603b1023004677868ab21aef11 dm-0 DGC,RAID 10
size=10G features='1 queue_if_no_path' hwhandler='1 emc' wp=rw
|-+- policy='queue-length 0' prio=0 status=enabled
| `- 0:0:0:0 sda 8:0  failed undef running
`-+- policy='queue-length 0' prio=0 status=enabled
   `- 1:0:0:0 sdb 8:16 failed undef running
3600601603b1023008c83299ab21aef11 dm-1 DGC,VRAID
size=100G features='1 queue_if_no_path' hwhandler='1 emc' wp=rw
|-+- policy='queue-length 0' prio=0 status=enabled
| `- 0:0:0:1 sde 8:64 failed undef running
`-+- policy='queue-length 0' prio=0 status=enabled
   `- 1:0:0:1 sdf 8:80 failed undef running

The member paths were both `failed` and `undef`.

It turns out that dm-multipath *NEEDS* -- what EMC calls -- the `ArrayCommPath` a.k.a. `LUN Z`.

It seems as if the ACP/LZ is used as part of detecting if a path is viable or not.

With ALUA(4) and ACP/LZ, `mulipath -l` shows the following:

% multipath -l
3600601603b1023004677868ab21aef11 dm-1 DGC,RAID 10
size=10G features='1 queue_if_no_path' hwhandler='1 emc' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| `- 0:0:0:1 sdb 8:16 active ready running
`-+- policy='service-time 0' prio=1 status=enabled
   `- 1:0:0:1 sde 8:64 active ready running
3600601603b1023008c83299ab21aef11 dm-2 DGC,VRAID
size=100G features='1 queue_if_no_path' hwhandler='1 emc' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| `- 1:0:0:2 sdf 8:80 active ready running
`-+- policy='service-time 0' prio=1 status=enabled
   `- 0:0:0:2 sdc 8:32 active ready running

Notice how the paths are now `active` and `ready`.

Without the ACP/LZ, `multipath -l` would show output, which is what made me declare success, but I couldn't actually do anything with the LUNs. The following command would simply hang:

% fdisk -c -u -l /dev/mapper/36*

While the following command would work:

% fidsk -c -u -l /dev/sd[bcef]

Now, with the ACP/LZ, `multipath -l` shows that paths are `active` & `ready` and the following command works:

% fdisk -c -u -l /dev/mapper/36*
Disk /dev/mapper/3600601603b1023004677868ab21aef11: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/3600601603b1023008c83299ab21aef11: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

I had habitually disabled the ACP/LZ because it causes problems for some things at work.

Aside: ArrayCommPath / LUN Z is an EMCism wherein the EMC will present a fake LUN, often showing up as LUN Z / LUNZ /if/ there are no LUNs assigned to an initiator.

Further aside: the ACP/LZ becomes an issue when you have multiple EMC SANs (VNXs in my case at work) with hosts being zoned to all EMCs but only using LUNs off of some of them (migrations, etc). So we end up with LUN Zs showing up on hosts from EMCs that don't have a LUN assigned to the host.

Thank you again Joost. Your encouragement prompted me to dig deeper and I'm now exceedingly happy. :-D

Grant,

I am glad to see you got this working.
Some of the terms you mention mean nothing to me :)
But, I'll definitely read up on them.

--
Joost


Reply via email to