Windows storage I/O has grown a little long in the tooth since the days of Windows NT 3.1 more than 10 years ago. The Windows storage I/O driver layer (i.e., the SCSI miniport, aka SCSIport) has been in need of a serious overhaul for some time. Microsoft made the necessary investment in Windows Server 2003, which provides a revamped storage I/O layer that will take Windows applications to the next level of storage performance and functionality.

For as long as I can remember, people have complained about the fact that NT understands only SCSI and doesn't understand IDE, RAID, or complex storage connections such as Fibre Channel or Internet SCSI (iSCSI). This limitation is largely attributable to the traditional SCSIport driver. In the early days, Microsoft bet that SCSI would become the disk interface of choice. That bet paid off, but times have since changed and direct-attached SCSI drives are no longer the only game in town for Windows systems. The SCSIport driver doesn't provide the performance, configuration flexibility, and manageability that today's RAID-enabled, Fibre Channel-based Storage Area Network (SAN) and Network Attached Storage (NAS) environments require.

The SCSIport driver has certain architectural limitations, including a maximum of 254 I/O requests per SCSI adapter, sequential (or half-duplex) I/O functions (in other words, either issuing I/O requests or completing them, but not doing both at the same time), excessive load at high IRQ levels, high buffer-processing overhead, and I/O queue management limitations. Storage hardware vendors can and have worked around these problems by developing their own drivers (many have developed their own storage filter drivers), but those drivers are proprietary and difficult to support. These shortcomings aren't easily fixed and have signaled a need for Microsoft to design from scratch a solution that meets the demands of today's storage technologies and applications.

Microsoft designed the Storport driver with modern storage I/O requirements and the shortcomings of SCSIport in mind. Storport specifically addresses each problem I mention above while maintaining a degree of backward compatibility to ease the transition from SCSIport to Storport for vendors and customers. To address SCSIport's half-duplex limitation, Storport supports synchronous I/O functioning (i.e., full duplex). Thus, Storport can issue and complete I/O requests simultaneously.

To alleviate SCSIport's excessive loading at high IRQ levels, Storport adds a new parallel routine that handles much of the IRQ processing overhead (such as building scatter/gather lists for I/O requests) before sending the command to hardware. Storport also reduces buffer processing overhead by providing driver developers with flexible options for buffer management.

To resolve SCSIport's 254 outstanding I/O request limit per adapter, Storport imposes no per-adapter limit. Instead, Storport limits the number of outstanding I/O requests per LUN to 254. This improvement provides flexibility and much more headroom for high-performance storage systems, such as Fibre Channel SANs. Of course, the onus is then on storage vendors to develop controllers and infrastructure to handle this I/O load.

Storport provides better I/O queue management than SCSIport (which really can't control I/O queuing at all) by implementing I/O queue control functions (e.g., pause, resume, busy, ready) on a device, adapter, and LUN basis. By addressing specific SCSIport limitations, Storport provides an architecture that meets the demands of next-generation storage technology.

Storport doesn't stop there, however. Microsoft looked beyond the problems with SCSIport to the future of storage technology. This focus on the future drove additional functionality into Storport. New features include enhanced error handling, Fibre Channel link handling and channel management, better Windows clustering support, and deferred procedure call (DPC) support for extended processing capability.

Microsoft hopes that Storport will make developers' lives easier as well as making Windows storage easier to support and manage. The Windows Driver Development Kit (DDK) includes tools that vendors can use to migrate their SCSIport drivers to Storport. Early Microsoft tests show that Storport is paying off in terms of performance. Microsoft claims that Storport is 30 percent to 50 percent more efficient than SCSIport and can handle more I/Os per second at a lower CPU utilization.

As you look to future storage purchases for your Windows systems, make sure to ask your favorite vendor whether their products support Storport. Leveraging Storport promises benefits for storage vendors, Microsoft, and customers alike.