iSCSI meets ASIC
One of the events this week at the PAC involved compatibility testing of Longhorn with the latest bits for Volume Shadow Copy Service. VSS has 3 different pieces (storage management, application agents, and storage hardware) so once or twice a year Microsoft gets the vendors together in one building to discover if there are any interoperability problems. I have a soft spot for storage so I always like these events. This week I got to see something cool that I'd like to mention.
iStor Networks sent two software engineers to the event with an GigaStorATX. Its an iSCSI system raid controller that can surface arrays of SATA drives on an iSCSI interface. There are a growing number of products out there like this, but the GigaStorATX differs in a cool way. It's iSCSI implementation isn't written in code, its written in logic gates on a chip. It's generally known as an ASIC or Application-Specific Integrated Circuit which are used in most modern single purpose technology items like cell phones or televisions. Don't get me wrong, they still wrote a program in a C-like language, but instead of compiling the program into op-codes that are executed by a microprocesser, the results are complied into a layout of logic arrays that in the end become transistors etched into a silicon wafer. Its not at all easy to do, but advances in technology in this millennium certainly makes it a lot more realistic and the benefits from a successful implementation can make it worth it. The benefits from ASIC implementations can be decreased cost, increased performance, and reduced power consumption over the same algorithm running on a microprocessor. Since I don't know the actual details of the iStor chip, I can't tell you if they got ALL of these benefits, but I can tell you that the engineers were excited about one thing: SPEED.
First thing to note, the GigaStorATX comes in two flavors. One with 8x1 GigE Copper ports and one with a single 10 GigE Fiber port. The 10 GigE port can pop straight into the backplane of some recent switches like D-Link's DXS-3350SR. There would be no point for all that bandwidth if it couldn't be used, but the GigaStorATX apparently can use those ports without much effort. I got to read a performance report from iStor (caveat emptor of course) that hooked up their device to a bunch of Dell 850s with 3ghz PentiumD (yeah the dual-core one) chip running Windows Server 2K3 SP1 and using iSCSI initiator 2.0. The target was a 15 SATA drive raid array and the test was sequential read/writes conducted using IOMeter. Using 4 initiators and 4 targets, the iStor was able to sustain 600 MB/sec with blocs between 64K and 1MB. Pretty cool. As a comparison, I have achieved 40MB/sec using one initiator and 1 target on a different make iSCSI array with the same test parameters. Another test they did involved 4 iSCSI HBAs (which offload the protocol from the server) where they peaked at 400MB reads. I also use HBAs and I've seen a mere 60MB/sec from a single HBA. In both perf tests, if you do the math, you'll find that the transfer rates are pretty close to practical maximums over ethernet which suggests the ASIC is limited more by the transport media than its own ability to move the data off the drives and onto wire.
To be honest, I never expected high performance out of iSCSI, just performance that is better than NAS volumes. Until now, I don't think I would have ever considered running a SQL Server database on such a volume, but the GigaStorATX looks pretty good for that. Sadly, you can't just buy a GigaStorATX directly, but they have a list of oem partners here. If you are a good web searcher, you might also find vendors by looking for 8-port and 10 Gig iSCSI enclosures or publicly traded companies that have relationships with iStor. Honestly, I think anyone that uses iStor's technology should just slap a sticker on the box that says "iSCSI by iStor" since it is just that cool.