All of lore.kernel.org
 help / color / mirror / Atom feed
* Status of SCSI referrals support in dm-multipath
@ 2014-06-01 20:46 Sebastian Herbszt
  2014-06-02  6:34 ` Hannes Reinecke
  0 siblings, 1 reply; 3+ messages in thread
From: Sebastian Herbszt @ 2014-06-01 20:46 UTC (permalink / raw)
  To: dm-devel; +Cc: Sebastian Herbszt

Hello,

I am trying to find out the status of SCSI referrals support in dm-multipath.
SCSI referrals support was a topic at LSF [1] but I wasn't able to find any
information. Back in 2010 Hannes suggested the use of multiple entries in a
multipath table [2] but this doesn't seem to work (anymore):

[ 7750.354190] device-mapper: table: Request-based dm doesn't support multiple targets yet

Is there any SCSI referrals support yet?

[1] http://marc.info/?l=linux-scsi&m=129553880112460&w=2
[2] http://www.redhat.com/archives/dm-devel/2010-June/msg00155.html

Sebastian

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Status of SCSI referrals support in dm-multipath
  2014-06-01 20:46 Status of SCSI referrals support in dm-multipath Sebastian Herbszt
@ 2014-06-02  6:34 ` Hannes Reinecke
  2014-07-27 22:18   ` Sebastian Herbszt
  0 siblings, 1 reply; 3+ messages in thread
From: Hannes Reinecke @ 2014-06-02  6:34 UTC (permalink / raw)
  To: device-mapper development; +Cc: Sebastian Herbszt

On 06/01/2014 10:46 PM, Sebastian Herbszt wrote:
> Hello,
>
> I am trying to find out the status of SCSI referrals support in dm-multipath.
> SCSI referrals support was a topic at LSF [1] but I wasn't able to find any
> information. Back in 2010 Hannes suggested the use of multiple entries in a
> multipath table [2] but this doesn't seem to work (anymore):
>
> [ 7750.354190] device-mapper: table: Request-based dm doesn't support multiple targets yet
>
> Is there any SCSI referrals support yet?
>
> [1] http://marc.info/?l=linux-scsi&m=129553880112460&w=2
> [2] http://www.redhat.com/archives/dm-devel/2010-June/msg00155.html
>
Not as of now. I've managed to push referrals support into 
target_core, so you now can set up a backend which supports referrals.

And for the multiple entries I've though to use a linear target on 
top of the multipath target.
The linear target would just split up the device in chunks, 
according to the referrals layout.
And then you would have several multipath devices (all referring to 
the same disk), one for each supported referrals ALUA configuration.
The linear target would then map each chunk to the correct multipath 
device.

It'll be a beast for failover, but should be possible.
And maybe it's better to use dm-switch here; the number or referrals 
might overflow dm-linear ...

Cheers,

Hannes

-- 
Dr. Hannes Reinecke		      zSeries & Storage
hare@suse.de			      +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Status of SCSI referrals support in dm-multipath
  2014-06-02  6:34 ` Hannes Reinecke
@ 2014-07-27 22:18   ` Sebastian Herbszt
  0 siblings, 0 replies; 3+ messages in thread
From: Sebastian Herbszt @ 2014-07-27 22:18 UTC (permalink / raw)
  To: Hannes Reinecke; +Cc: device-mapper development, Sebastian Herbszt

Hannes Reinecke wrote:
> On 06/01/2014 10:46 PM, Sebastian Herbszt wrote:
> > Hello,
> >
> > I am trying to find out the status of SCSI referrals support in dm-multipath.
> > SCSI referrals support was a topic at LSF [1] but I wasn't able to find any
> > information. Back in 2010 Hannes suggested the use of multiple entries in a
> > multipath table [2] but this doesn't seem to work (anymore):
> >
> > [ 7750.354190] device-mapper: table: Request-based dm doesn't support multiple targets yet
> >
> > Is there any SCSI referrals support yet?
> >
> > [1] http://marc.info/?l=linux-scsi&m=129553880112460&w=2
> > [2] http://www.redhat.com/archives/dm-devel/2010-June/msg00155.html
> >
> Not as of now. I've managed to push referrals support into 
> target_core, so you now can set up a backend which supports referrals.

I gathered the following information from a storage with referral support.

> And for the multiple entries I've though to use a linear target on 
> top of the multipath target.
> The linear target would just split up the device in chunks, 
> according to the referrals layout.

I created a new thin provisioned volume which reported

Referrals VPD page (SBC):
  User data segment size: 0
  User data segment multiplier: 0

and didn't return any user data segment referral descriptors.
Since the chunk size is not known, splitting the device is not possible.
The storage reported 4 equal target port groups (sd[b-e]). I guess the
initial setup would consist of a linear target with just a single mapping.

As soon as I started to fill the volume the storage returned the
descriptors

Report referrals:
  descriptor 0:
    target port descriptors: 4
    user data segment: first lba 0, last lba 2752511
      target port descriptor 0:
        port group 8080 state (active/non optimized)
      target port descriptor 1:
        port group 8081 state (active/non optimized)
      target port descriptor 2:
        port group 8090 state (active/optimized)
      target port descriptor 3:
        port group 8091 state (active/optimized)
  descriptor 1:
    target port descriptors: 4
    user data segment: first lba 2752512, last lba 8257535
      target port descriptor 0:
        port group 8080 state (active/optimized)
      target port descriptor 1:
        port group 8081 state (active/optimized)
      target port descriptor 2:
        port group 8090 state (active/non optimized)
      target port descriptor 3:
        port group 8091 state (active/non optimized)
  descriptor 2:
    target port descriptors: 4
    user data segment: first lba 8257536, last lba 11010047
      target port descriptor 0:
        port group 8080 state (active/non optimized)
      target port descriptor 1:
        port group 8081 state (active/non optimized)
      target port descriptor 2:
        port group 8090 state (active/optimized)
      target port descriptor 3:
        port group 8091 state (active/optimized)
...

The first descriptor covers 1344 MB; the second twice as much.
On a full volume the smallest size was 1344MB and few descriptors
covered multiple of it.
After running a rebalance operation on the storage the layout partially
changed

Report referrals:
  descriptor 0:
    target port descriptors: 4
    user data segment: first lba 0, last lba 2752511
      target port descriptor 0:
        port group 8080 state (active/optimized)
      target port descriptor 1:
        port group 8081 state (active/optimized)
      target port descriptor 2:
        port group 8090 state (active/non optimized)
      target port descriptor 3:
        port group 8091 state (active/non optimized)
  descriptor 1:
    target port descriptors: 4
    user data segment: first lba 2752512, last lba 5505023
      target port descriptor 0:
        port group 8080 state (active/non optimized)
      target port descriptor 1:
        port group 8081 state (active/non optimized)
      target port descriptor 2:
        port group 8090 state (active/optimized)
      target port descriptor 3:
        port group 8091 state (active/optimized)
  descriptor 2:
    target port descriptors: 4
    user data segment: first lba 5505024, last lba 8257535
      target port descriptor 0:
        port group 8080 state (active/optimized)
      target port descriptor 1:
        port group 8081 state (active/optimized)
      target port descriptor 2:
        port group 8090 state (active/non optimized)
      target port descriptor 3:
        port group 8091 state (active/non optimized)
  descriptor 3:
    target port descriptors: 4
    user data segment: first lba 8257536, last lba 11010047
      target port descriptor 0:
        port group 8080 state (active/non optimized)
      target port descriptor 1:
        port group 8081 state (active/non optimized)
      target port descriptor 2:
        port group 8090 state (active/optimized)
      target port descriptor 3:
        port group 8091 state (active/optimized)
...

Is there currently a way to get notified on such changes? If we start with
a single mapping we need a way to trigger a (re-)discovery/modification. 

> And then you would have several multipath devices (all referring to 
> the same disk), one for each supported referrals ALUA configuration.
> The linear target would then map each chunk to the correct multipath 
> device.

I assume the above configuration would require two multipath devices;
one for

      target port descriptor 0:
        port group 8080 state (active/optimized)
      target port descriptor 1:
        port group 8081 state (active/optimized)
      target port descriptor 2:
        port group 8090 state (active/non optimized)
      target port descriptor 3:
        port group 8091 state (active/non optimized)

and a second for

      target port descriptor 0:
        port group 8080 state (active/non optimized)
      target port descriptor 1:
        port group 8081 state (active/non optimized)
      target port descriptor 2:
        port group 8090 state (active/optimized)
      target port descriptor 3:
        port group 8091 state (active/optimized)

> It'll be a beast for failover, but should be possible.
> And maybe it's better to use dm-switch here; the number or referrals 
> might overflow dm-linear ...

Does dm-switch work with different chunk sizes? Is there a theoretical or
practical limit for dm-linear? My 100 GB device consists of 62 descriptors.
 
> Cheers,
> 
> Hannes

Sebastian

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-07-27 22:18 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-01 20:46 Status of SCSI referrals support in dm-multipath Sebastian Herbszt
2014-06-02  6:34 ` Hannes Reinecke
2014-07-27 22:18   ` Sebastian Herbszt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.