[dm-devel] 2.6.10-rc1-udm1: multipath work in progress

Lars Marowsky-Bree lmb at suse.de
Tue Nov 2 16:17:24 UTC 2004


On 2004-10-29T23:23:02, Alasdair G Kergon <agk at redhat.com> wrote:

> Multipath work in progress, containing bugs, known and unknown.
> Patches 38 onwards haven't been tidied.

Hi Alasdair, thanks for all the good work. I'll be merging those
tomorrow...

> So what else ought to be changed before freezing the interfaces?
> [One change I intend to make is  struct path  to  void  in dm-hw-handler.h
> and dm-path-selector.h]

Makes at least sense for the dm-hw-handler, but the path-selector may
have some good reasons for keeping some data on a per-path basis.

> I'm not convinced of the need for a per-path initialisation function yet.
> But a table load flag to suppress the device size checks does sound OK.

The idea was simply that if we have hardware-specific handlers
already anyway, moving such stuff over there would make sense and be
consistent.

Table format and status looks good.

> Messages:  [dmsetup message <devname> <sector> <message>]
>   disable_group / enable_group - toggle PG priority
> Disabled PGs are only used after all paths in enabled PGs have failed.

>   fail_path / reinstate_path - toggle path status

Makes sense.

> e.g. dmsetup message mp3 0 fail_if_no_path
> 
>   queue_if_no_path / fail_if_no_path - what to do if every path in every PG 
> has failed.  Userspace can check the queue size from the status line to
> judge how urgent it is to fix the problem is: if queueing, userspace *must* 
> intervene to resolve the problem and clear the queue.

I'm not convinced here, but also don't have strong feelings. I'd rather
think that this is a configuration option and should be handled by
reloading the table with or without the option instead. But this is
probably a matter of little importance and mostly taste ;-)

Also, I do think there should be a high water mark even when queuing, or
else we risk blowing away all memory. I'm not sure whether that's an
issue though.

> Do path selectors and hw_handlers get the info they need?

For the hw handlers I think yes.

> Should there be any additional infrastructure provided for hw_handler
> pg_init fn?  (e.g. a callback mechanism) pg_init is required to return
> immediately, and must call dm_pg_init_complete()
> when it's finished.  Does it need more error flags?  e.g. to fail all
> paths in the PG, not just the one it was called with?

This additional error flag might make sense if it detects the whole PG
is faulty - either because it doesn't match the LU WWN we expected to
see or because the error response to the init command suggests the whole
controller is faulty.

> I'd like to see hw_handler implementations for at least two different
> types of hardware before pushing this upstream.

I'll hopefully get to code one for the EMC this week. I got most of the
code ready.


Sincerely,
    Lars Marowsky-Brée <lmb at suse.de>

-- 
High Availability & Clustering
SUSE Labs, Research and Development
SUSE LINUX AG - A Novell company




More information about the dm-devel mailing list