184631Smjacob/* $FreeBSD$ */
284631Smjacob
384631Smjacob	Hardware that is Known To or Should Work with This Driver
484631Smjacob
584631Smjacob
684631Smjacob0. Intro
784631Smjacob
884631Smjacob	This is not an endorsement for hardware vendors (there will be
984631Smjacob	no "where to buy" URLs here with a couple of exception). This
1084631Smjacob	is simply a list of things I know work, or should work, plus
1184631Smjacob	maybe a couple of notes as to what you should do to make it
1284631Smjacob	work. Corrections accepted. Even better would be to send me
1384631Smjacob	hardware to I can test it.
1484631Smjacob
1584631Smjacob	I'll put a rough range of costs in US$ that I know about. No doubt
1684631Smjacob	it'll differ from your expectations.
1784631Smjacob
1884631Smjacob1. HBAs
1984631Smjacob
2084631SmjacobQlogic	2100, 2102
2184631Smjacob	2200, 2202, 2204
2284631Smjacob
2384631Smjacob	There are various suffices that indicate copper or optical
2484631Smjacob	connectors, or 33 vs. 66MHz PCI bus operation. None of these
2584631Smjacob	have a software impact.
2684631Smjacob
2784631Smjacob	Approx cost: 1K$ for a 2200
2884631Smjacob
2984631SmjacobQlogic	2300, 2312
3084631Smjacob
3184631Smjacob	These are the new 2-Gigabit cards. Optical only.
3284631Smjacob
3384631Smjacob	Approx cost: ??????
3484631Smjacob
3584631Smjacob
3684631SmjacobAntares	P-0033, P-0034, P-0036
3784631Smjacob
3884631Smjacob	There many other vendors that use the Qlogic 2X00 chipset. Some older
3984631Smjacob	2100 boards (not on this list) have a bug in the ROM that causes a
4084631Smjacob	failure to download newer firmware that is larger than 0x7fff words.
4184631Smjacob
4284631Smjacob	Approx cost: 850$ for a P-0036
4384631Smjacob
4484631Smjacob
4584631Smjacob
4684631Smjacob	In general, the 2200 class chip is to be preferred.
4784631Smjacob
4884631Smjacob
4984631Smjacob2. Hubs
5084631Smjacob
5184631SmjacobVixel 1000
5284631SmjacobVixel 2000
5384631Smjacob	Of the two, the 1000 (7 ports, vs. 12 ports) has had fewer problems-
5484631Smjacob	it's an old workhorse.
5584631Smjacob
5684631Smjacob
5784631Smjacob	Approx cost: 1.5K$ for Vixel 1000, 2.5K$ for 2000
5884631Smjacob
5984631SmjacobGadzoox Cappellix 3000
6084631Smjacob	Don't forget to use telnet to configure the Cappellix ports
6184631Smjacob	to the role you're using them for- otherwise things don't
6284631Smjacob	work well at all.
6384631Smjacob
6484631Smjacob	(cost: I have no idea... certainly less than a switch)
6584631Smjacob
6684631Smjacob3. Switches
6784631Smjacob
6884631SmjacobBrocade Silkworm II
6984631SmjacobBrocade 2400
7084631Smjacob(other brocades should be fine)
7184631Smjacob
7284631Smjacob	Especially with revision 2 or higher f/w, this is now best
7384631Smjacob	of breed for fabrics or segmented loop (which Brocade
7484631Smjacob	calls "QuickLoop").
7584631Smjacob
7684631Smjacob	For the Silkworm II, set operating mode to "Tachyon" (mode 3).
7784631Smjacob
7884631Smjacob	The web interace isn't good- but telnet is what I prefer anyhow.
7984631Smjacob
8084631Smjacob	You can't connect a Silkworm II and the other Brocades together
8184631Smjacob	as E-ports to make a large fabric (at least with the f/w *I*
8284631Smjacob	had for the Silkworm II).
8384631Smjacob
8484631Smjacob	Approx cost of a Brocade 2400 with no GBICs is about 8K$ when
8584631Smjacob	I recently checked the US Government SEWP price list- no doubt
8684631Smjacob	it'll be a bit more for others. I'd assume around 10K$.
8784631Smjacob
8884631SmjacobANCOR SA-8
8984631Smjacob
9084631Smjacob	This also is a fine switch, but you have to use a browser
9184631Smjacob	with working java to manage it- which is a bit of a pain.
9284631Smjacob	This also supports fabric and segmented loop.
9384631Smjacob
9484631Smjacob	These switches don't form E-ports with each other for a larger
9584631Smjacob	fabric.
9684631Smjacob
9784631Smjacob	(cost: no idea)
9884631Smjacob
9984631SmjacobMcData (model unknown)
10084631Smjacob
10184631Smjacob	I tried one exactly once for 30 minutes. Seemed to work once
10284631Smjacob	I added the "register FC4 types" command to the driver.
10384631Smjacob
10484631Smjacob	(cost: very very expensive, 40K$ plus)
10584631Smjacob
10684631Smjacob4. Cables/GBICs
10784631Smjacob
10884631Smjacob	Multimode optical is adequate for Fibre Channel- the same cable is
10984631Smjacob	used for Gigabit Ethernet.
11084631Smjacob
11184631Smjacob	Copper DB-9 and Copper HSS-DC connectors are also fine. Copper &&
11284631Smjacob	Optical both are rated to 1.026Gbit- copper is naturally shorter
11384631Smjacob	(the longest I've used is a 15meter cable but it's supposed to go
11484631Smjacob	longer).
11584631Smjacob
11684631Smjacob	The reason to use copper instead of optical is that if step on one of
11784631Smjacob	the really fat DB-9 cables you can get, it'll survive. Optical usually
11884631Smjacob	dies quickly if you step on it.
11984631Smjacob
12084631Smjacob	Approx cost: I don't know what optical is- you can expect to pay maybe
12184631Smjacob	a 100$ for a 3m copper cable.
12284631Smjacob
12384631SmjacobGBICs-
12484631Smjacob
12584631Smjacob	I use Finisar copper and IBM Opticals.
12684631Smjacob
12784631Smjacob	Approx Cost: Copper GBICs are 70$ each. Opticals are twice that or more.
12884631Smjacob
12984631Smjacob
13084631SmjacobVendor: (this is the one exception I'll make because it turns out to be
13184631Smjacob	an incredible pain to find FC copper cabling and GBICs- the source I
13284631Smjacob	use for GBICs and copper cables is http://www.scsi-cables.com)
13384631Smjacob
13484631Smjacob
13584631SmjacobOther:
13684631Smjacob	There now is apparently a source for little connector boards
13784631Smjacob	to connect to bare drives: http://www.cinonic.com.
13884631Smjacob
13984631Smjacob
14084631Smjacob5. Storage JBODs/RAID
14184631Smjacob
14284631SmjacobJMR 4-Bay
14384631Smjacob
14484631Smjacob	Rinky-tink, but a solid 4 bay loop only entry model.
14584631Smjacob
14684631Smjacob	I paid 1000$ for mine- overprice, IMO.
14784631Smjacob
14884631SmjacobJMR Fortra
14984631Smjacob
150108533Sschweikh	I rather like this box. The blue LEDs are a very nice touch- you
15184631Smjacob	can see them very clearly from 50 feet away.
15284631Smjacob
15384631Smjacob	I paid 2000$ for one used.
15484631Smjacob
15584631SmjacobSun A5X00
15684631Smjacob
15784631Smjacob	Very expensive (in my opinion) but well crafted. Has two SES
15884631Smjacob	instances, so you can use the ses driver (and the example
15984631Smjacob	code in /usr/share/examples) for power/thermal/slot monitoring.
16084631Smjacob
16184631Smjacob	Approx Cost: The last I saw for a price list item on this was 22K$
162108533Sschweikh	for an unpopulated (no disk drive) A5X00.
16384631Smjacob
16484631Smjacob
16584631SmjacobDataDirect E1000 RAID
16684631Smjacob
16784631Smjacob	Don't connect both SCSI and FC interfaces at the same time- a SCSI
16884631Smjacob	reset will cause the DataDirect to think you want to use the SCSI
16984631Smjacob	interface and a LIP on the FC interface will cause it to think you
17084631Smjacob	want to use the FC interface. Use only one connector at a time so
17184631Smjacob	both you and the DataDirect are sure about what you want.
17284631Smjacob
17384631Smjacob	Cost: I have no idea.
17484631Smjacob
17584631SmjacobVeritas ServPoint
17684631Smjacob
17784631Smjacob	This is a software storage virtualization engine that
178108533Sschweikh	runs on Sparc/Solaris in target mode for frontend
17984631Smjacob	and with other FC or SCSI as the backend storage. FreeBSD
18084631Smjacob	has been used extensively to test it.
18184631Smjacob
18284631Smjacob
18384631Smjacob	Cost: I have no idea.
18484631Smjacob
18584631Smjacob6. Disk Drives
18684631Smjacob
18784631Smjacob	I have used lots of different Seagate and a few IBM drives and
18884631Smjacob	typically have had few problems with them. These are the bare
18984631Smjacob	drives with 40-pin SCA connectors in back. They go into the JBODs
19084631Smjacob	you assemble.
19184631Smjacob
19284631Smjacob	Seagate does make, but I can no longer find, a little paddleboard
19384631Smjacob	single drive connector that goes from DB-9 FC to the 40-pin SCA
19484631Smjacob	connector- primarily for you to try and evaluate a single FC drive.
19584631Smjacob
19684631Smjacob	All FC-AL disk drives are dual ported (i.e., have separte 'A' and
19784631Smjacob	'B' ports- which are completely separate loops). This seems to work
19884631Smjacob	reasonably enough, but I haven't tested it much. It really depends
19984631Smjacob	on the JBOD you put them to carry this dual port to the outside
20084631Smjacob	world. The JMR boxes have it. The Sun A5X00 you have to pay for
20184631Smjacob	an extra IB card to carry it out.
20284631Smjacob
20384631Smjacob	Approx Cost: You'll find that FC drives are the same cost if not
20484631Smjacob	slightly cheaper than the equivalent Ultra3 SCSI drives.
20584631Smjacob
20684631Smjacob7. Recommended Configurations
20784631Smjacob
20884631SmjacobThese are recommendations that are biased toward the cautious side. They
20984631Smjacobdo not represent formal engineering commitments- just suggestions as to
21084631Smjacobwhat I would expect to work.
21184631Smjacob
21284631SmjacobA. The simpletst form of a connection topology I can suggest for
21384631Smjacoba small SAN (i.e., replacement for SCSI JBOD/RAID):
21484631Smjacob
21584631SmjacobHOST
21684631Smjacob2xxx <----------> Single Unit of Storage (JBOD, RAID)
21784631Smjacob
21884631SmjacobThis is called a PL_DA (Private Loop, Direct Attach) topology.
21984631Smjacob
22084631SmjacobB. The next most simple form of a connection topology I can suggest for
22184631Smjacoba medium local SAN (where you do not plan to do dynamic insertion
22284631Smjacoband removal of devices while I/Os are active):
22384631Smjacob
22484631SmjacobHOST
22584631Smjacob2xxx <----------> +--------
22684631Smjacob                  | Vixel |
22784631Smjacob                  | 1000  |
22884631Smjacob                  |       +<---> Storage
22984631Smjacob                  |       |
23084631Smjacob                  |       +<---> Storage
23184631Smjacob                  |       |
23284631Smjacob                  |       +<---> Storage
23384631Smjacob                  --------
23484631Smjacob
23584631SmjacobThis is a Private Loop topology. Remember that this can get very unstable
23684631Smjacobif you make it too long. A good practice is to try it in a staged fashion.
23784631Smjacob
23884631SmjacobIt is possible with some units to "daisy chain", e.g.:
23984631Smjacob
24084631SmjacobHOST
24184631Smjacob2xxx <----------> (JBOD, RAID) <--------> (JBOD, RAID)
24284631Smjacob
24384631SmjacobIn practice I have had poor results with these configurations. They *should*
24484631Smjacobwork fine, but for both the JMR and the Sun A5X00 I tend to get LIP storms
24584631Smjacoband so the second unit just isn't seen and the loop isn't stable.
24684631Smjacob
24784631SmjacobNow, this could simply be my lack of clean, newer, h/w (or, in general,
24884631Smjacoba lack of h/w), but I would recommend the use of a hub if you want to
24984631Smjacobstay with Private Loop and have more than one FC target.
25084631Smjacob
25184631SmjacobYou should also note this can begin to be the basis for a shared SAN
25284631Smjacobsolution. For example, the above configuration can be extended to be:
25384631Smjacob
25484631SmjacobHOST
25584631Smjacob2xxx <----------> +--------
25684631Smjacob                  | Vixel |
25784631Smjacob                  | 1000  |
25884631Smjacob                  |       +<---> Storage
25984631Smjacob                  |       |
26084631Smjacob                  |       +<---> Storage
26184631Smjacob                  |       |
26284631Smjacob                  |       +<---> Storage
26384631SmjacobHOST              |       |
26484631Smjacob2xxx <----------> +--------
26584631Smjacob
26684631SmjacobHowever, note that there is nothing to mediate locking of devices, and
26784631Smjacobit is also conceivable that the reboot of one host can, by causing
26884631Smjacoba LIP storm, cause problems with the I/Os from the other host.
26984631Smjacob(in other words, this topology hasn't really been made safe yet for
27084631Smjacobthis driver).
27184631Smjacob
27284631SmjacobD. You can repeat the topology in #B with a switch that is set to be
27384631Smjacobin segmented loop mode. This avoids LIPs propagating where you don't
27484631Smjacobwant them to- and this makes for a much more reliable, if more expensive,
27584631SmjacobSAN.
27684631Smjacob
27784631SmjacobE. The next level of complexity is a Switched Fabric. The following topology
27884631Smjacobis good when you start to begin to get to want more performance. Private
27984631Smjacoband Public Arbitrated Loop, while 100MB/s, is a shared medium. Direct
28084631Smjacobconnections to a switch can run full-duplex at full speed.
28184631Smjacob
28284631SmjacobHOST
28384631Smjacob2xxx <----------> +---------
28484631Smjacob                  | Brocade|
28584631Smjacob                  | 2400   |
28684631Smjacob                  |        +<---> Storage
28784631Smjacob                  |        |
28884631Smjacob                  |        +<---> Storage
28984631Smjacob                  |        |
29084631Smjacob                  |        +<---> Storage
29184631SmjacobHOST              |        |
29284631Smjacob2xxx <----------> +---------
29384631Smjacob
29484631Smjacob
29584631SmjacobI would call this the best configuration available now. It can expand
29684631Smjacobsubstantially if you cascade switches.
29784631Smjacob
29884631SmjacobThere is a hard limit of about 253 devices for each Qlogic HBA- and the
29984631Smjacobfabric login policy is simplistic (log them in as you find them). If
30084631Smjacobsomebody actually runs into a configuration that's larger, let me know
30184631Smjacoband I'll work on some tools that would allow you some policy choices
30284631Smjacobas to which would be interesting devices to actually connect to.
30384631Smjacob
30484631Smjacob
305