aboutsummaryrefslogtreecommitdiff
path: root/sbin/geom/class/multipath/Makefile
diff options
context:
space:
mode:
authorMatt Jacob <mjacob@FreeBSD.org>2007-02-27 04:01:58 +0000
committerMatt Jacob <mjacob@FreeBSD.org>2007-02-27 04:01:58 +0000
commite770bc6bf54d42019e4df9dfd94622c80072c0f4 (patch)
tree3740487c6f9b60010343610543a779a7e9a63d31 /sbin/geom/class/multipath/Makefile
parent5af924bf6c8d6f687447d1558c750b96518aaeff (diff)
downloadsrc-e770bc6bf54d42019e4df9dfd94622c80072c0f4.tar.gz
src-e770bc6bf54d42019e4df9dfd94622c80072c0f4.zip
First cut at GEOM based multipath. This is an active/passive{/passive...}
arrangement that has no intrinsic internal knowledge of whether devices it is given are truly multipath devices. As such, this is a simplistic approach, but still a useful one. The basic approach is to (at present- this will change soon) use camcontrol to find likely identical devices and and label the trailing sector of the first one. This label contains both a full UUID and a name. The name is what is presented in /dev/multipath, but the UUID is used as a true distinguishor at g_taste time, thus making sure we don't have chaos on a shared SAN where everyone names their data multipath as "Fred". The first of N identical devices (and N *may* be 1!) becomes the active path until a BIO request is failed with EIO or ENXIO. When this occurs, the active disk is ripped away and the next in a list is picked to (retry and) continue with. During g_taste events new disks that meet the match criteria for existing multipath geoms get added to the tail end of the list. Thus, this active/passive setup actually does work for devices which go away and come back, as do (now) mpt(4) and isp(4) SAN based disks. There is still a lot to do to improve this- like about 5 of the 12 recommendations I've received about it, but it's been functional enough for a while that it deserves a broader test base. Reviewed by: pjd Sponsored by: IronPort Systems MFC: 2 months
Notes
Notes: svn path=/head/; revision=167050
Diffstat (limited to 'sbin/geom/class/multipath/Makefile')
-rw-r--r--sbin/geom/class/multipath/Makefile10
1 files changed, 10 insertions, 0 deletions
diff --git a/sbin/geom/class/multipath/Makefile b/sbin/geom/class/multipath/Makefile
new file mode 100644
index 000000000000..7b418e1f20e8
--- /dev/null
+++ b/sbin/geom/class/multipath/Makefile
@@ -0,0 +1,10 @@
+# $FreeBSD$
+
+.PATH: ${.CURDIR}/../../misc
+CLASS= multipath
+NO_MAN=true
+
+
+.include <bsd.lib.mk>
+
+CFLAGS+= -I${.CURDIR}/../../../../sys