diff mbox series

ALUA support for PURE FlashArray

Message ID EF473529-CF81-4AE9-BD96-08624B59BA10@purestorage.com (mailing list archive)
State Not Applicable, archived
Delegated to: christophe varoqui
Headers show
Series ALUA support for PURE FlashArray | expand

Commit Message

Brian Bunker June 26, 2019, 5:37 p.m. UTC
Hello all,

It has been some time since we updated our PURE FlashArray configuration. The Linux vendors that we had been seeing in the field were using very old versions of multipath-tools, so we haven’t needed to change anything for some time. With the release of RHEL8, some of our earlier values have been lost by upstream changes. 

In addition we have our Active Cluster feature which leverages ALUA since our last patch. The ALUA confguration will work for all FlashArrays with or without Active Cluster.

We are changing 3 things.

1. ALUA support
2. Fast fail timeout from the default of 5 seconds to 10 seconds (We need this for our FC NPIV port migration).
3. Maximum sector size of 4MB. Some Linux vendors don’t honor the block limits VPD page of INQUIRY).

Thanks,
Brian




Brian Bunker
SW Eng
brian@purestorage.com




--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel

Comments

Xose Vazquez Perez Aug. 7, 2019, 4:05 p.m. UTC | #1
On 6/26/19 7:37 PM, Brian Bunker wrote:

> It has been some time since we updated our PURE FlashArray configuration. The
> Linux vendors that we had been seeing in the field were using very old versions
> of multipath-tools, so we haven’t needed to change anything for some time. With
> the release of RHEL8, some of our earlier values have been lost by upstream
> changes. 
> 
> In addition we have our Active Cluster feature which leverages ALUA since our
> last patch. The ALUA confguration will work for all FlashArrays with or without
> Active Cluster.
> 
> We are changing 3 things.
> 
> 1. ALUA support
>
> 2. Fast fail timeout from the default of 5 seconds to 10 seconds (We need this
> for our FC NPIV port migration).
>
> 3. Maximum sector size of 4MB. Some Linux vendors don’t honor the block limits
> VPD page of INQUIRY).


#3, kernel or udev bug?


> diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c
> index 1d964333..37e97f60 100644
> --- a/libmultipath/hwtable.c
> +++ b/libmultipath/hwtable.c
> @@ -1024,7 +1024,12 @@ static struct hwentry default_hw[] = {
>                 /* FlashArray */
>                 .vendor        = "PURE",
>                 .product       = "FlashArray",
> -               .pgpolicy      = MULTIBUS,
> +               .pgpolicy      = GROUP_BY_PRIO,
> +               .pgfailback    = -FAILBACK_IMMEDIATE,
> +               .hwhandler     = "1 alua",
> +               .prio_name     = PRIO_ALUA,
> +               .fast_io_fail  = 10,
> +               .max_sectors_kb = 4096,

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
Brian Bunker Sept. 12, 2019, 1:52 a.m. UTC | #2
Xose,

I just saw this. Sorry for the late response.

I am not sure if the max_sectors_kb is a kernel or udev bug. What I would expect is for the block limits 
INQUIRY VPD  page, 0xB0, to be used to populate the /sys/block entries for max_sectors_kb. We have 
seen Linux distributions that don’t seem to do that but instead populate that entry with 32 MB even though 
we return 4 MB as our limit. We add the 4 MB limit in a udev rule that we have created and provide to our 
customers.  Adding it in multipath.conf will also get us 4 MB for the dm device and its slaves which is what we 
want. I don’t know if there is a preferred way but if we use multipath.conf then hopefully no users will ever 
have to deal with the higher value that will error out if a SCSI read or write is actually sent larger than 
the 4 MB maximum size.

Thanks,
Brian

Brian Bunker
SW Eng
brian@purestorage.com



> On Aug 7, 2019, at 9:05 AM, Xose Vazquez Perez <xose.vazquez@gmail.com> wrote:
> 
> On 6/26/19 7:37 PM, Brian Bunker wrote:
> 
>> It has been some time since we updated our PURE FlashArray configuration. The
>> Linux vendors that we had been seeing in the field were using very old versions
>> of multipath-tools, so we haven’t needed to change anything for some time. With
>> the release of RHEL8, some of our earlier values have been lost by upstream
>> changes. 
>> 
>> In addition we have our Active Cluster feature which leverages ALUA since our
>> last patch. The ALUA confguration will work for all FlashArrays with or without
>> Active Cluster.
>> 
>> We are changing 3 things.
>> 
>> 1. ALUA support
>> 
>> 2. Fast fail timeout from the default of 5 seconds to 10 seconds (We need this
>> for our FC NPIV port migration).
>> 
>> 3. Maximum sector size of 4MB. Some Linux vendors don’t honor the block limits
>> VPD page of INQUIRY).
> 
> 
> #3, kernel or udev bug?
> 
> 
>> diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c
>> index 1d964333..37e97f60 100644
>> --- a/libmultipath/hwtable.c
>> +++ b/libmultipath/hwtable.c
>> @@ -1024,7 +1024,12 @@ static struct hwentry default_hw[] = {
>>                /* FlashArray */
>>                .vendor        = "PURE",
>>                .product       = "FlashArray",
>> -               .pgpolicy      = MULTIBUS,
>> +               .pgpolicy      = GROUP_BY_PRIO,
>> +               .pgfailback    = -FAILBACK_IMMEDIATE,
>> +               .hwhandler     = "1 alua",
>> +               .prio_name     = PRIO_ALUA,
>> +               .fast_io_fail  = 10,
>> +               .max_sectors_kb = 4096,


--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
Xose Vazquez Perez Sept. 12, 2019, 9:44 p.m. UTC | #3
On 9/12/19 3:52 AM, Brian Bunker wrote:

> I am not sure if the max_sectors_kb is a kernel or udev bug. What I would expect is for the block limits 
> INQUIRY VPD  page, 0xB0, to be used to populate the /sys/block entries for max_sectors_kb. We have 
> seen Linux distributions that don’t seem to do that but instead populate that entry with 32 MB even though 

marginal or main distributions?

> we return 4 MB as our limit. We add the 4 MB limit in a udev rule that we have created and provide to our 
> customers.  Adding it in multipath.conf will also get us 4 MB for the dm device and its slaves which is what we 
> want. I don’t know if there is a preferred way but if we use multipath.conf then hopefully no users will ever 
> have to deal with the higher value that will error out if a SCSI read or write is actually sent larger than 
> the 4 MB maximum size.

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
Xose Vazquez Perez Oct. 4, 2019, 8:51 p.m. UTC | #4
On 6/26/19 7:37 PM, Brian Bunker wrote:

> It has been some time since we updated our PURE FlashArray configuration. The
> Linux vendors that we had been seeing in the field were using very old versions
> of multipath-tools, so we haven’t needed to change anything for some time. With
> the release of RHEL8, some of our earlier values have been lost by upstream
> changes. 

Resend it, with CC: Christophe Varoqui <christophe.varoqui@opensvc.com>

> In addition we have our Active Cluster feature which leverages ALUA since our
> last patch. The ALUA confguration will work for all FlashArrays with or without
> Active Cluster.
> 
> We are changing 3 things.
> 
> 1. ALUA support
>
> 2. Fast fail timeout from the default of 5 seconds to 10 seconds (We need this
> for our FC NPIV port migration).
>
> 3. Maximum sector size of 4MB. Some Linux vendors don’t honor the block limits
> VPD page of INQUIRY).
 >
> diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c
> index 1d964333..37e97f60 100644
> --- a/libmultipath/hwtable.c
> +++ b/libmultipath/hwtable.c
> @@ -1024,7 +1024,12 @@ static struct hwentry default_hw[] = {
>                 /* FlashArray */
>                 .vendor        = "PURE",
>                 .product       = "FlashArray",
> -               .pgpolicy      = MULTIBUS,
> +               .pgpolicy      = GROUP_BY_PRIO,
> +               .pgfailback    = -FAILBACK_IMMEDIATE,
> +               .hwhandler     = "1 alua",
> +               .prio_name     = PRIO_ALUA,
> +               .fast_io_fail  = 10,
> +               .max_sectors_kb = 4096,

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
Xose Vazquez Perez Oct. 4, 2019, 11:30 p.m. UTC | #5
On 10/4/19 10:51 PM, Xose Vazquez Perez wrote:

> On 6/26/19 7:37 PM, Brian Bunker wrote:
> 
>> It has been some time since we updated our PURE FlashArray configuration. The
>> Linux vendors that we had been seeing in the field were using very old versions
>> of multipath-tools, so we haven’t needed to change anything for some time. With
>> the release of RHEL8, some of our earlier values have been lost by upstream
>> changes. 
> 
> Resend it, with CC: Christophe Varoqui <christophe.varoqui@opensvc.com>

Could you please also send the conf. for NVMe devices [1] ?

Thank you.


[1] https://blog.purestorage.com/nvmeof-roce-suse-15/

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
diff mbox series

Patch

diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c
index 1d964333..37e97f60 100644
--- a/libmultipath/hwtable.c
+++ b/libmultipath/hwtable.c
@@ -1024,7 +1024,12 @@  static struct hwentry default_hw[] = {
                /* FlashArray */
                .vendor        = "PURE",
                .product       = "FlashArray",
-               .pgpolicy      = MULTIBUS,
+               .pgpolicy      = GROUP_BY_PRIO,
+               .pgfailback    = -FAILBACK_IMMEDIATE,
+               .hwhandler     = "1 alua",
+               .prio_name     = PRIO_ALUA,
+               .fast_io_fail  = 10,
+               .max_sectors_kb = 4096,
        },
        /*
         * Huawei