e770bc6bf5
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 |
||
---|---|---|
.. | ||
bluetooth | ||
defaults | ||
etc.amd64 | ||
etc.arm | ||
etc.i386 | ||
etc.ia64 | ||
etc.powerpc | ||
etc.sparc64 | ||
gss | ||
isdn | ||
mtree | ||
namedb | ||
pam.d | ||
periodic | ||
ppp | ||
rc.d | ||
root | ||
sendmail | ||
amd.map | ||
apmd.conf | ||
auth.conf | ||
cached.conf | ||
crontab | ||
csh.cshrc | ||
csh.login | ||
csh.logout | ||
devd.conf | ||
devfs.conf | ||
dhclient.conf | ||
disktab | ||
fbtab | ||
freebsd-update.conf | ||
ftpusers | ||
gettytab | ||
group | ||
hosts | ||
hosts.allow | ||
hosts.equiv | ||
hosts.lpd | ||
inetd.conf | ||
libalias.conf | ||
login.access | ||
login.conf | ||
mac.conf | ||
Makefile | ||
man.alias | ||
master.passwd | ||
minfree | ||
motd | ||
netconfig | ||
netstart | ||
network.subr | ||
networks | ||
newsyslog.conf | ||
nls.alias | ||
nscd.conf | ||
nsmb.conf | ||
nsswitch.conf | ||
opieaccess | ||
pccard_ether | ||
pf.conf | ||
pf.os | ||
phones | ||
portsnap.conf | ||
printcap | ||
profile | ||
protocols | ||
rc | ||
rc.bsdextended | ||
rc.firewall | ||
rc.firewall6 | ||
rc.initdiskless | ||
rc.resume | ||
rc.sendmail | ||
rc.shutdown | ||
rc.subr | ||
rc.suspend | ||
remote | ||
rpc | ||
services | ||
shells | ||
snmpd.config | ||
sysctl.conf | ||
syslog.conf | ||
termcap.small |