I recommend a (almost) any SAS/RAID controller that uses the LSI 1068E SAS chip (PCI-E) and supports Initiator-Target mode (JBOD mode). This does not include MegaRAID controllers.
I use the a 3442E and Dell 6/iR.
- LSI SAS 3442E (4 internal - SFF-8484, 4 external - SFF-8470)
- LSI SAS 3081E (8 internal - SFF-8087)
- LSI SAS 3041E (4 internal - SATA)
- LSI SAS 3801E (8 external )
- LSI SAS 9212-4i4e (4 internal - SATA, 4 external SFF-8088)
- LSI SAS 9211-8i (8 internal - SFF-8087)
You get the idea.
Also I recommend Dell SAS Controllers which are cheap on ebay.
- Dell SAS 5/iR - (4 internal ports)
- Dell SAS 6/iR - (8 internal ports)
- Dell H200
Not
- Dell PERC 5/E
- Dell PERC 5/I
- Dell PERC 6/E
- Dell PERC 6/I
Why not MegaRAID?
These controllers do not support a non-RAID, JBOD mode. They cannot present disks to the host directly. Each disk must first be included in a Logical disk. You can create a single logical volume for each disk you have and give this to ZFS. Performance should be equivalent. However, it means putting header information onto the physical disk. If your controller fails, you must use another MegaRAID, configured exactly the same. And there is not guarantee that another SAS or SATA controller will see the data correctly and present the volumes in a way that the zpool can be correctly constructed.