[dm-devel] multipath prio_callout broke from 5.2 to 5.3
John A. Sullivan III
jsullivan at opensourcedevel.com
Thu Apr 23 18:22:31 UTC 2009
On Thu, 2009-04-23 at 12:08 -0600, Ty! Boyack wrote:
> This thread has been great information since I'm looking at the same
> type of thing. However it raises a couple of (slightly off-topic)
> questions for me.
>
> My recent upgrade to fedora 10 broke my prio_callout bash script just
> like you described, but my getuid_callout (a bash script that calls
> udevadm, grep, sed, and iscsi_id) runs just fine. Are the two callouts
> handled differently?
>
> Also, is there an easy way to know what tools are in the private
> namespace already? My prio_callout script calls two other binaries:
> /sbin/udevadm and grep. If I go to C-code, handling grep's functions
> myself is no problem, but I'm not confident about re-implementing what
> udevadm does. Can I assume that since /sbin/udevadm is in /sbin that it
> will be available to call via exec()? Or would I be right back where we
> are with the bash scripting, as in having to include a dummy device as
> you described?
>
> Finally, in my case I've got two redundant iscsi networks, one is 1GbE,
> and the other is 10GbE. In the past I've always had symetric paths, so
> I've used round-robin/multibus. But I want to focus traffic on the
> 10GbE path, so I was looking at using the prio callout. Is this even
> necessary? Or will round-robin/multibus take full advantage of both
> paths? I can see round-robin on that setup resulting in either around
> 11Gbps or 2 Gbps, depending on whether the slower link becomes a
> limiting factor. I'm just wondering if I am making things unnecessarily
> complex by trying to set priorities.
>
> Thanks for all the help.
>
> -Ty!
>
I can't answer the questions regarding the internals. I did make sure
my bash scripts called not external applications and I placed everything
in /sbin.
I did find I was able to pick and choose which connections had which
priorities - that was the whole purpose of my script. In my case, there
were many networks and I wanted prioritized failover to try to balance
the load across interfaces and keep failover traffic on the same switch
rather than crossing a bonded link to another switch. I did it by cross
referencing the mappings in /dev/disk/by-path with a prioritized list of
mappings. I believe I posted the entire setup in an earlier e-mail. If
you'd like, I can post the details again.
As I reread your post a little more closely, I wonder if using multibus
as you describe will not slow you down to the lowest common denominator.
I know when I tested with RAID0 across several interfaces to load
balance traffic (this seemed to give better average performance across a
wide range of I/O patterns than multi-bus with varying rr_min_io
settings), I had three e1000e NICs and one on board NIC. When I replaced
the on-board with another e1000e, I saw a substantial performance
improvement. I don't know if that will be your experience for sure but
pass it along as a caveat. Hope this helps - John
--
John A. Sullivan III
Open Source Development Corporation
+1 207-985-7880
jsullivan at opensourcedevel.com
http://www.spiritualoutreach.com
Making Christianity intelligible to secular society
More information about the dm-devel
mailing list