More information is being processed and stored as network traffic (e.g., Internet traffic) continues to grow at an astonishing rate. The average size of a file or a message continues to increase as larger amounts of data are generated, especially with respect to media rich files and messages. Consequently, more servers and more storage are being employed. To deal with the deluge of information, Data Centers used by Enterprises or Internet Service Providers (ISPs) have gained in popularity. Data Centers are high-density computing configurations generally characterized by high performance, low power and minimal real estate requirements.
FIG. 1 shows a general arrangement for a Data Center in three tiers, although in some cases the tiers may be collapsed. The first tier interfaces the external network (e.g., a local area network (LAN) or a wide area network (WAN)) and directly serves the clients that typically run transmission control protocol/Internet protocol (TCP/IP) applications (e.g., hypertext transport protocol (HTTP) 1.0 and HTTP 1.1). The first tier has static information from which it can draw via its direct attached storage (DAS). To satisfy requests for dynamic content or for transactions, the first tier interfaces with the second tier servers. The second tier is also known as the Application Tier and has multiple communication requirements: high performance storage access for content typically serviced over a Fibre Channel Storage Area Network (SAN); communication with first tier servers over LAN with TCP/IP over Ethernet; communication with the third tier for data base access with a low latency, low central processing unit (CPU) utilization fabric such as a Virtual Interface Architecture (VIA) for clustering and Interprocess Communication (IPC). Second tier servers often communicate among themselves for load sharing and concurrent execution of the application. Hence, a second tier machine may employ three different fabrics: LAN, SAN and clustering. A similar description is applicable to the third tier. Hence, each server has a collection of adapters to serve its requirements for networking, storing and clustering. Such requirements produce systems with substantial power and space requirements.
The three separate networks are quite different from each other. Cluster, small computer system interface (SCSI) for DAS and Fibre Channel use Host Bus Adapters (HBAs) and operate directly on application data and run complete layer 2 (L2), layer 3 (L3), layer 4 (L4) and layer 5 (L5) protocol processing stacks within on-board computers. These programs are large (typically greater than 100 KB) and computationally quite intensive. Furthermore, these programs expect large amounts of memory to operate. Additional adapters are also required for clustering/disk accesses. Block level storage access requires a dedicated network to run the SCSI command set (e.g., SCSI-architecture-model-2 (SAM-2)) on a dedicated cable (e.g., DAS) or a specialized infrastructure like Fibre Channel to satisfy unique requirements to provide high bandwidth, low latency and robustness. Clustering usually employs a specialized adapter that supports a very low latency network infrastructure that is usually proprietary. It also uses a special software interface to the operating system (OS) to minimize host overhead by employing OS Kernel bypass techniques. As these different networks have evolved separately with their own unique requirements, separate adapter cards were needed.
As density requirements for servers increase, as evidenced by the use of Server Blades in servers, the space required for the three different types of adapters is becoming less available. The problem is further exacerbated since additional adapters may be used to provide fault tolerance or load balancing. Furthermore, financial considerations tend to drive organizations to seek a lower Total-Cost-of-Ownership (TCO) solution. The cost of managing three different fabrics and the toll on the information technology (IT) departments which must provide personnel trained in multiple technologies are substantial burdens to bear.
FIGS. 2 and 3 show conventional HBA arrangements and illustrate data and control flow. The HBA used for Fibre Channel and SCSI implements the complete protocol stack on the HBA and exposes the OS to a SCSI-like interface such as, for example, a command descriptor block (CDB). This places the burden of implementation of the complete conversion from an application memory down to the wire protocol on the adapter. Consequently, a large CPU with a large attached memory is used. The large attached memory is used to store the CPU program, transmit (TX) data, receive (RX) data as well as copies of host control structures.
Remote direct memory access (RDMA) adapters for clustering such as used in Infiniband systems have similar architectures with even greater requirements for local memory to keep a copy of a memory translation table and other control structures.
Until recently, TCP/IP was not considered a feasible solution as it runs in software which generally involves more CPU overhead and high latencies. Furthermore, TCP/IP does not guarantee all segments are received from the wire in the order that they were transmitted. Consequently, the TCP layer has to re-order the received segments to reconstruct the originally transmitted message. Nevertheless, protocols have been developed that run on TCP/IP. For example, Internet SCSI (iSCSI) places the SCSI command set on top of TCP/IP. In another example, iWARP places the IPC technology of RDMA on top of TCP/IP.
FIGS. 4 and 5 show conventional servers. In FIG. 4, each type of traffic has its respective subsystem. For example, the storage subsystem has its own Ethernet connector, its own storage HBA and its own driver. The conventional server may even include one or more proprietary network interfaces. FIG. 5 shows another conventional server in which a layer 4/layer 5 (L4/L5) Ethernet switch is employed to reduce the number of Ethernet connectors. However, the conventional server still employs separate adapters and network interface cards (NICs). Furthermore, the conventional server may still employ a proprietary network interface which cannot be coupled to the L4/L5 Ethernet switch.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.