[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [dm-devel] new path revalidation policy



Selon Joe Thornber <thornber redhat com>:

> On Sat, Feb 21, 2004 at 11:02:35PM +0100, christophe varoqui wrote:
> > I've got a problem with the new path revalidation method :
> > The storage controlers I use for testing offer zero valid paths during a 
> >  controler switch. I just can't see how such a scenario will handled 
> > correctly : how will the kernel mpath code wait for userspace to 
> > revalidate a path before sending IO errors ?
> 
> how many paths are on each controller ?
> 
2 ports per controler, 2 HBAs ... gives 4 paths per controler, 8 paths total.
Only one controler serves each unit at a time : 4 active paths / 4 inactive.
For a hundred reasons, unit governance can switch from one controler to its
sibbling. When that happens, the DM multipath will have all its paths invalid
until userspace is given the opportunity to revalidate some.

Will that case trigger IO errors ? If yes, its a regression from 2.6.2-udm1

I gave a run to 2.6.3-udm. After a controler switch under IO pressure, I see IO
flying even faster, as if DM was looping through the errored IO list. Anyway,
the biggest problem in this case is that DM IOCTLs seem to block forever.

> > Anyway, given this part works, would you prefer to see the path 
> > revalidation userspace spawn 1 process per multipath or 1 master daemon 
> > plus threads ? I personnaly would vote for the former.
> 
> I would tend towards the latter, though at this stage do whatever is
> easiest.
> 
> > Last question : what is the userspace action needed to revalidate a path 
> > ? new libdevmapper primitive ?
> 
> No it's got nothing to do with libdevmapper.  I suggest your multipath
> daemon take a config file (maybe borrow the config file code from
> LVM2?), that specifies programs/scripts to be run to test a path,
> frequency of testing if the path is believed to be ok, and frequency
> of retesting for failback.  A trivial test script would just try and
> read sector 0 of the device.
> 
I still can't see how paths get revalidated : Test IO will flight through the
path without DM even seing them.

-- 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]