IP-based storage networks need significant horsepower to handle large tcp/ip loads. Silverback Systems' iSNAP 2100 delivers this power while offloading the host processor to support more connections. This approach also allows the host processor to take on additional tasks, leaving TCP/IP (transmission control protocol/Internet protocol) and higher-level protocol matters, such as iSCSI, to the iSNAP 2100.
The iSNAP 2100 is designed for storage-area network (SAN) and network-attached storage (NAS) devices as well as servers, high-end workstations, and multiprotocol storage routers and switches. It will be especially effective in blade servers, where storage is designed to be distributed. In this case, the iSNAP 2100 would be incorporated on the blade server that's connected to a Gigabit Ethernet (GE) switch fabric instead of a conventional backplane.
IP-based Ethernet solutions are of great interest to enterprises due to the installed base of Ethernet currently used in LANs. Network managers are already familiar with the management of various Ethernet speeds and complex switch and router environments. Although storage-aware switches will be more efficient for network-based storage solutions, standard Ethernet switches can be employed as well.
Network-based storage offers significant advantages over local storage solutions, including scalability, distributed storage and computing servers, high reliability, redundancy, and high bandwidth. Centralized management and increasing storage also become easier with network-based storage. The primary disadvantage over local storage is latency.
Although relatively common, NAS devices don't approach the performance level of the iSNAP 2100. SANs also are becoming more common, and IP-based storage will have to compete with InfiniBand solutions. Yet in many scenarios, the two coexist because of the wide implementation of high-performance Ethernet networks.
Many chip-based storage solutions, including the iSNAP 2100, employ dual connections to the switch fabric. InfiniBand chips come in dual-port versions too. These provide re-dundant connections to the storage network fabric.
The dual-port nature of the iSNAP 2100 is useful for more than redundancy. Initially, servers will likely use one port to link to a storage-related network with SAN and NAS devices while the second joins with a LAN where workstations and other servers reside. NAS devices can be located on the LAN as well. In addition, the iSNAP 2100 may provide gateway support for existing and emerging storage technologies, like Fibre Channel and InfiniBand.
However, the iSNAP 2100 is much more than a dual-port GE adapter. For starters, it only handles both IP and TCP in hardware. In fact, the iSNAP 2100 completely offloads TCP/IP support from the host processor (Table 1). TCP/IP is a complex protocol that can sap significant amounts of a host's processing power without a device such as the iSNAP 2100. Even when running in full-duplex mode, the iSNAP 2100 does this for both GE ports.
High-Level Protocols: Reducing the load on the host processor for TCP/IP alone is a significant benefit, but the iSNAP 2100 doesn't stop there. It also is capable of handling higher-level protocols, like the emerging iSCSI and remote direct memory access (RDMA). These protocols are specific to storage applications versus other IP-based protocols such as H.323, a multimedia teleconferencing protocol.
The iSNAP 2100 has hardware de-signed to make its job easier. For example, the classification and encapsulation engines handle iSCSI packets (Fig. 1). The iSNAP 2100 also includes multiple processing nodes for dealing with large numbers of TCP/IP connections. The event queue management and scheduler coordinates the operation of these processing nodes.
Before moving data into main memory, the QMS and processing nodes carry out protocols. The nodes work with the control hub, which controls data movement from main memory to the PCI-X or SPI-3 interfaces. IP-based responses can also be sent back over the Ethernet links. The QMS is a state machine configured by the general-purpose processor.
Acting as a control-plane processor, the MIPS-based, general-purpose processor takes care of exceptions. It can handle some higher-level protocols, like Internet control message protocol (ICMP) and address resolution protocol (ARP).
This exceptional collection of processing power allows the iSNAP 2100 to take on even higher-level protocols, such as common Internet file system (CFIS) and network file system (NFS). While these services can be executed via a conventional network processing unit (NPU), the iSNAP 2100 has the edge because it's optimized for storage applications (Table 2).
The iSNAP 2100 handles connection setup and teardown chores. With a conventional NPU or GE adapter and host, tackling the connection process can be a significant overhead and generate bus traffic between the host. The iSNAP 2100 eliminates the traffic in addition to offloading the host processing.
Simultaneously, the iSNAP 2100 can accommodate many connections via the off-chip DDR-SDRAM. This design technique enables an iSNAP 2100-equipped blade server to use a smaller amount of memory because storage connections will be low compared to an NAS or SAN device that will support hundreds or thousands of server connections.
Partitioning Software: The iSNAP 2100 architecture splits its services into three areas: hardware, firmware, and software (Fig. 2). The hardware performs packet processing at wire speeds. Firmware is stored in flash memory. This software drives the on-chip state machines, the four specialized packet processing nodes, and the general-purpose processor.
Silverback Systems provides firm-ware to accomplish TCP/IP and iSCSI. But the firmware can be enhanced to add functionality or to support other protocols.
The host device driver software varies from a limited facade, where the iSNAP 2100 does most of the processing (such as basic TCP/IP support), to substantial features for more complex protocols like CFIS and NFS. In these cases, the firmware handles the protocol basics, while the device driver completes the protocol. The amount accomplished in each depends upon the particular implementation.
The host operating system and the target system may also affect how services are partitioned. For example, a storage device might be configured so that the iSNAP 2100 executes a majority of the action, while a blade server moves more of the support software into the device driver side.
Hardware Connections: The iSNAP 2100 connects to the network through two GE links that can operate in full-duplex mode. Other data outlets include the PCI-X interface and the SPI-3 interface.
Normally, the PCI-X interface is deployed on endpoint adapters, like a blade server or an NAS device to transfer packet data between the iSNAP 2100's main memory and the host's main memory. In this case, the SPI-3 interface is typically unused, because there wouldn't be a switch fabric on board. The DMA interface allows the iSNAP 2100 to move data across the PCI-X bus without additional host intervention. Additionally, the iSNAP 2100 can manage work completion queues in the host's main memory, thereby minimizing host interaction with the iSNAP 2100.
The SPI-3 interface connects an iSNAP 2100 to an OC-48 switch fabric like those found with a network switch. The iSNAP 2100 can be used to build the typical GE switch, but more likely it will be a storage-aware GE switch. Normally, a traffic manager will be part of the SPI-3 fabric interface to take care of advanced queuing and scheduling. The SPI-3 interface can handle in-band control, but the main control interface can still happen over the PCI-X bus. The PCI-X interface will still be used when the iSNAP 2100 is part of a network switch. This interface allows a host processor to handle higher-level protocols such as IPsec, a security protocol.
Typically, the iSNAP 2100 carries out operations like logical unit number (LUN) lookup using off-chip memory and the on-chip processors. It also is possible to add specialized devices like content addressable memory (CAM) via the flash memory interface to augment the processing power of the iSNAP 2100.
Internally, the iSNAP 2100 doesn't use interrupts when processing packets. Instead, it employs queues to control access to resources and data. The iSNAP 2100 can interrupt the host processor, although interrupts tend to be minimal because the iSNAP 2100 handles most data movement and queue up-dates on its own.
System Development Tools: The iSNAP 2100 has a JTAG interface for low-level debugging. There also is a management serial interface port that provides a less intrusive but more functional interface to the iSNAP 2100.
The iSNAP 2100 is available on an evaluation board. The PCI-X HBA form factor board contains an iSNAP 2100 along with 512 Mbytes of DDR-SDRAM, 32 Mbytes of SRAM, 2 Mbytes of flash memory, and two GE connections. There's a connector for the SPI-3 interface, and the board plugs into a PCI-X socket.
Plus, there's a software simulator. It has a software shim that emulates PCI transactions so that a device driver can access the simulator in the same fashion as it would access the hardware. The simulator runs on Solaris, and reference drivers are available for Linux. Overall, the available software and prototype hardware offers a good base for developing network storage-based solutions.
Distributed storage is quickly be-coming critical in enterprise networks. IP-based storage and protocols like iSCSI are now becoming common. But their overhead can bog down a host processor, making the iSNAP 2100 key to building an efficient network storage system.
If the success of Ethernet is any indication about the rate of adoption for IP-based storage solutions, then the iSNAP 2100 will find a home in quite a few products.
Price & Availability
The iSNAP 2100 costs under $150 in OEM quantities. The iSNAP 2100 evaluation board and software simulator are available immediately. Device drivers and iSNAP 2100 firmware are also available.
Silverback Systems Inc., 695 Campbell Technology Pkwy., Suite 150, Campbell, CA 95008; (408) 376-1300; www.silverbacksystems.com.