/* $FreeBSD$ */

	Hardware that is Known To or Should Work with This Driver


0. Intro

	This is not an endorsement for hardware vendors (there will be
	no "where to buy" URLs here with a couple of exception). This
	is simply a list of things I know work, or should work, plus
	maybe a couple of notes as to what you should do to make it
	work. Corrections accepted. Even better would be to send me
	hardware to I can test it.

	I'll put a rough range of costs in US$ that I know about. No doubt
	it'll differ from your expectations.

1. HBAs

Qlogic	2100, 2102
	2200, 2202, 2204

	There are various suffices that indicate copper or optical
	connectors, or 33 vs. 66MHz PCI bus operation. None of these
	have a software impact.

	Approx cost: 1K$ for a 2200

Qlogic	2300, 2312

	These are the new 2-Gigabit cards. Optical only.

	Approx cost: ??????


Antares	P-0033, P-0034, P-0036

	There many other vendors that use the Qlogic 2X00 chipset. Some older
	2100 boards (not on this list) have a bug in the ROM that causes a
	failure to download newer firmware that is larger than 0x7fff words.

	Approx cost: 850$ for a P-0036



	In general, the 2200 class chip is to be preferred.


2. Hubs

Vixel 1000
Vixel 2000
	Of the two, the 1000 (7 ports, vs. 12 ports) has had fewer problems-
	it's an old workhorse.


	Approx cost: 1.5K$ for Vixel 1000, 2.5K$ for 2000

Gadzoox Cappellix 3000
	Don't forget to use telnet to configure the Cappellix ports
	to the role you're using them for- otherwise things don't
	work well at all.

	(cost: I have no idea... certainly less than a switch)

3. Switches

Brocade Silkworm II
Brocade 2400
(other brocades should be fine)

	Especially with revision 2 or higher f/w, this is now best
	of breed for fabrics or segmented loop (which Brocade
	calls "QuickLoop").

	For the Silkworm II, set operating mode to "Tachyon" (mode 3).

	The web interace isn't good- but telnet is what I prefer anyhow.

	You can't connect a Silkworm II and the other Brocades together
	as E-ports to make a large fabric (at least with the f/w *I*
	had for the Silkworm II).

	Approx cost of a Brocade 2400 with no GBICs is about 8K$ when
	I recently checked the US Government SEWP price list- no doubt
	it'll be a bit more for others. I'd assume around 10K$.

ANCOR SA-8

	This also is a fine switch, but you have to use a browser
	with working java to manage it- which is a bit of a pain.
	This also supports fabric and segmented loop.

	These switches don't form E-ports with each other for a larger
	fabric.

	(cost: no idea)

McData (model unknown)

	I tried one exactly once for 30 minutes. Seemed to work once
	I added the "register FC4 types" command to the driver.

	(cost: very very expensive, 40K$ plus)

4. Cables/GBICs

	Multimode optical is adequate for Fibre Channel- the same cable is
	used for Gigabit Ethernet.

	Copper DB-9 and Copper HSS-DC connectors are also fine. Copper &&
	Optical both are rated to 1.026Gbit- copper is naturally shorter
	(the longest I've used is a 15meter cable but it's supposed to go
	longer).

	The reason to use copper instead of optical is that if step on one of
	the really fat DB-9 cables you can get, it'll survive. Optical usually
	dies quickly if you step on it.

	Approx cost: I don't know what optical is- you can expect to pay maybe
	a 100$ for a 3m copper cable.

GBICs-

	I use Finisar copper and IBM Opticals.

	Approx Cost: Copper GBICs are 70$ each. Opticals are twice that or more.


Vendor: (this is the one exception I'll make because it turns out to be
	an incredible pain to find FC copper cabling and GBICs- the source I
	use for GBICs and copper cables is http://www.scsi-cables.com)


Other:
	There now is apparently a source for little connector boards
	to connect to bare drives: http://www.cinonic.com.


5. Storage JBODs/RAID

JMR 4-Bay

	Rinky-tink, but a solid 4 bay loop only entry model.

	I paid 1000$ for mine- overprice, IMO.

JMR Fortra

	I rather like this box. The blue LEDs are a very nice touch- you
	can see them very clearly from 50 feet away.

	I paid 2000$ for one used.

Sun A5X00

	Very expensive (in my opinion) but well crafted. Has two SES
	instances, so you can use the ses driver (and the example
	code in /usr/share/examples) for power/thermal/slot monitoring.

	Approx Cost: The last I saw for a price list item on this was 22K$
	for an unpopulated (no disk drive) A5X00.


DataDirect E1000 RAID

	Don't connect both SCSI and FC interfaces at the same time- a SCSI
	reset will cause the DataDirect to think you want to use the SCSI
	interface and a LIP on the FC interface will cause it to think you
	want to use the FC interface. Use only one connector at a time so
	both you and the DataDirect are sure about what you want.

	Cost: I have no idea.

Veritas ServPoint

	This is a software storage virtualization engine that
	runs on Sparc/Solaris in target mode for frontend
	and with other FC or SCSI as the backend storage. FreeBSD
	has been used extensively to test it.


	Cost: I have no idea.

6. Disk Drives

	I have used lots of different Seagate and a few IBM drives and
	typically have had few problems with them. These are the bare
	drives with 40-pin SCA connectors in back. They go into the JBODs
	you assemble.

	Seagate does make, but I can no longer find, a little paddleboard
	single drive connector that goes from DB-9 FC to the 40-pin SCA
	connector- primarily for you to try and evaluate a single FC drive.

	All FC-AL disk drives are dual ported (i.e., have separte 'A' and
	'B' ports- which are completely separate loops). This seems to work
	reasonably enough, but I haven't tested it much. It really depends
	on the JBOD you put them to carry this dual port to the outside
	world. The JMR boxes have it. The Sun A5X00 you have to pay for
	an extra IB card to carry it out.

	Approx Cost: You'll find that FC drives are the same cost if not
	slightly cheaper than the equivalent Ultra3 SCSI drives.

7. Recommended Configurations

These are recommendations that are biased toward the cautious side. They
do not represent formal engineering commitments- just suggestions as to
what I would expect to work.

A. The simpletst form of a connection topology I can suggest for
a small SAN (i.e., replacement for SCSI JBOD/RAID):

HOST
2xxx <----------> Single Unit of Storage (JBOD, RAID)

This is called a PL_DA (Private Loop, Direct Attach) topology.

B. The next most simple form of a connection topology I can suggest for
a medium local SAN (where you do not plan to do dynamic insertion
and removal of devices while I/Os are active):

HOST
2xxx <----------> +--------
                  | Vixel |
                  | 1000  |
                  |       +<---> Storage
                  |       |
                  |       +<---> Storage
                  |       |
                  |       +<---> Storage
                  --------

This is a Private Loop topology. Remember that this can get very unstable
if you make it too long. A good practice is to try it in a staged fashion.

It is possible with some units to "daisy chain", e.g.:

HOST
2xxx <----------> (JBOD, RAID) <--------> (JBOD, RAID)

In practice I have had poor results with these configurations. They *should*
work fine, but for both the JMR and the Sun A5X00 I tend to get LIP storms
and so the second unit just isn't seen and the loop isn't stable.

Now, this could simply be my lack of clean, newer, h/w (or, in general,
a lack of h/w), but I would recommend the use of a hub if you want to
stay with Private Loop and have more than one FC target.

You should also note this can begin to be the basis for a shared SAN
solution. For example, the above configuration can be extended to be:

HOST
2xxx <----------> +--------
                  | Vixel |
                  | 1000  |
                  |       +<---> Storage
                  |       |
                  |       +<---> Storage
                  |       |
                  |       +<---> Storage
HOST              |       |
2xxx <----------> +--------

However, note that there is nothing to mediate locking of devices, and
it is also conceivable that the reboot of one host can, by causing
a LIP storm, cause problems with the I/Os from the other host.
(in other words, this topology hasn't really been made safe yet for
this driver).

D. You can repeat the topology in #B with a switch that is set to be
in segmented loop mode. This avoids LIPs propagating where you don't
want them to- and this makes for a much more reliable, if more expensive,
SAN.

E. The next level of complexity is a Switched Fabric. The following topology
is good when you start to begin to get to want more performance. Private
and Public Arbitrated Loop, while 100MB/s, is a shared medium. Direct
connections to a switch can run full-duplex at full speed.

HOST
2xxx <----------> +---------
                  | Brocade|
                  | 2400   |
                  |        +<---> Storage
                  |        |
                  |        +<---> Storage
                  |        |
                  |        +<---> Storage
HOST              |        |
2xxx <----------> +---------


I would call this the best configuration available now. It can expand
substantially if you cascade switches.

There is a hard limit of about 253 devices for each Qlogic HBA- and the
fabric login policy is simplistic (log them in as you find them). If
somebody actually runs into a configuration that's larger, let me know
and I'll work on some tools that would allow you some policy choices
as to which would be interesting devices to actually connect to.


