From 6894d524815751209e596eb2888fc36dcdadc461 Mon Sep 17 00:00:00 2001 From: David Gwynne Date: Tue, 5 Apr 2011 14:25:43 +0000 Subject: move forward with scsi multipathing. the big change is how paths between mpath capable devices and the kernel are managed. originally the midlayer would steal the links to the devices and hide them behind mpath. all the changes an adapter made to a link (eg activate or detach), the midlayer had to test if it was an mpath link and then call special mpath code to handle it. the original code also assumed that all paths behaved the same, but the reality is that different devices have different command sets and behaviours. figuring out which behaviour to pick and prioritising them is basically the same job autoconf does with match and attach. rather than special casing mpath in the midlayer and reimplimenting autoconf, this turns paths into actual device drivers with match and attach routines. after they figure out if the path is active, they then give it to mpath(4) to use as a backend. i have written drivers for symmetric access devices (sym(4)) where all paths to the same logical unit are as good as each other, lsi/engenio arrays (rdac(4), and emc arrays (emc(4)). the rdac and emc drivers only detect active paths at attach time, the do not cope if the controller changes state unless you unplug the path and plug it in again to retest the active state. they also do not have support for directing array failover. operating and hoplugging has been tested with mpii(4), fc and sas mpi(4), and iscsi via vscsi (claudio did this too). ok krw@ deraadt@ --- sys/scsi/files.scsi | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'sys/scsi/files.scsi') diff --git a/sys/scsi/files.scsi b/sys/scsi/files.scsi index 2066b8f9579..e5e5a70ba5a 100644 --- a/sys/scsi/files.scsi +++ b/sys/scsi/files.scsi @@ -1,4 +1,4 @@ -# $OpenBSD: files.scsi,v 1.22 2010/07/03 03:59:17 krw Exp $ +# $OpenBSD: files.scsi,v 1.23 2011/04/05 14:25:42 dlg Exp $ # $NetBSD: files.scsi,v 1.4 1996/05/16 04:01:08 mycroft Exp $ # # Config.new file and device description for machine-independent SCSI code. @@ -39,3 +39,16 @@ file scsi/safte.c safte needs-flag device ses: disk attach ses at scsibus file scsi/ses.c ses needs-flag + + +device sym +attach sym at scsibus +file scsi/mpath_sym.c sym + +device rdac +attach rdac at scsibus +file scsi/mpath_rdac.c rdac + +device emc +attach emc at scsibus +file scsi/mpath_emc.c emc -- cgit v1.2.3