Emulex's Onecore™ Storage Software Development Kit
Total Page:16
File Type:pdf, Size:1020Kb
Emulex’s OneCore™ Storage Software Development Kit— Accelerating High Performance Storage Driver Development Advanced Management Solutions Table of contents Emulex High Performance Storage Networking Solutions . 3. Accelerating Development—Emulex’s OneCore Storage SDK . 3. OneCore Storage Driver Architecture—Flexible and Layered . 4 OneCore Storage Driver Architecture—Back-End Modules . 5. OneCore Storage—Future Proofed Enhancements . 6. Emulex—The Preferred Storage Development Partner . 6. 2 Emulex Emulex’s OneCore Storage Software Development Kit Advanced Management Solutions Emulex High Performance Storage Networking Solutions Emulex is ideally positioned to deliver high performance, state-of-the-art storage networking solutions for storage array Original Equipment Manufacturers (OEMs), leveraging more than 20 years of experience in Fibre Channel (FC), and more recently, 10Gb Ethernet (10GbE) . Emulex’s market-leading LightPulse® LPe16000B 16GFC Host Bus Adapter (HBA) product line builds on nine previous generations of development experience to deliver a standards-compliant, high performance, and reliable connectivity solution . Addressing the need for high performance Storage Area Networks (SANs), the LPe16000B delivers: n Throughput performance of 1,200K I/O operations per second (IOPS) per port in initiator mode1 n Unidirectional bandwidth of 1,600 MByte/sec and bi-directional bandwidth of 3,200 MByte/sec, per port1 n 50 percent lower latency (response time) compared to its previous generation1 As the most pervasive storage network protocol, Fibre Channel continues to be the dominant storage protocol . In a joint session at VMworld 2012,2 storage giants EMC and NetApp indicated, based on various surveys, that up to 67 percent of the deployed SANs utilize FC . With unmatched performance, compliance, and reliability, the Emulex LightPulse 16GFC product line meets the storage networking demands of today and into the future . Accelerating Development—Emulex’s OneCore Storage SDK The continued popularity of Fibre Channel, combined with new technological innovations, is driving a wave of embedded solutions, such as sophisticated solid state disk (SSD) storage products, network appliances, backup engines, and storage arrays . To meet the needs of these applications, Emulex launched the OneCore Storage Software Developer Kit (SDK) . With the OneCore Storage SDK, Emulex has developed a comprehensive set of reference drivers to accelerate the development and deployment of feature-rich products based on the XE201 Converged Fabric Adapter which is capable of Fibre Channel, Fibre Channel over Ethernet (FCoE), and iSCSI protocols .3 The OneCore Storage SDK contains a modular set of feature-rich and extensible reference drivers that can be used as provided, as building blocks for your driver, or as a reference for writing your own driver . Regardless of how it is used, the OneCore Storage SDK reduces your development time and enables you to deploy your product as quickly as possible . Highlights of the OneCore Storage SDK include: n Linux and FreeBSD source code n An easily modified operating system (OS) interface, simplifying driver development for other operating systems n A flexible framework that enables OEMs to selectively utilize OneCore Storage components n Target + Initiator (concurrent), Target-only and Initiator-only modes n Multi-protocol transport support—FC/FCoE and iSCSI n N_Port Identification Virtualization (NPIV) support, providing the virtualization of an HBA port that gives each virtual machine (VM) access to a virtual port in the same way that they access a physical port . Implementation of NPIV allows users to maintain SAN best practices within a virtualized environment . n T10 Protection Information (T10 PI) support, which provides enhanced data protection against silent data corruption . Fundamentally, T10 PI ensures that data is free from corruption as it moves from the application to the storage device . n An extensive support ecosystem to assist OEM development that includes HTML-based development documentation, support documents, online training, and a community forum to collaborate with the Emulex engineering team . 1 http://www .emulex .com/artifacts/3db681b3-3f85-41c4-8f91-a39df90ca7ce/demartek_ar_all_lpe16000b .pdf 2 http://download3 .vmware .com/vmworld/2012/top10/sto2980 .pdf 3 Note that the XE201 Converged Fabric Controller does not provide iSCSI offload . 3 Emulex Emulex’s OneCore Storage Software Development Kit Advanced Management Solutions OneCore Storage Driver Architecture—Flexible and Layered The flexible nature of the OneCore Storage driver architecture allows it to adapt to your dynamic development needs . The OneCore Storage driver architecture is shown in Figure 1 . Figure 1 OneCore storage driver architecture . The key components of the driver architecture include: Service Level Interface - 4 (SLI-4) Module An evolutionary refresh of the Emulex Service Level Interface, SLI-4 expands beyond FC support to include all the protocols offered in our latest generation of products including iSCSI and FCoE . The SLI-4 module provides a lightly-abstracted API that enables access to SLI-4 supported adapters . The SLI-4 module includes APIs to create the queues necessary to communicate to the SLI-4 hardware, as well as APIs that construct SLI-4 commands and parse responses . Hardware Abstraction Layer (HAL) Module The HAL provides an abstracted interface to SLI-4, enabling common operations, such as port initialization, shutdown, and I/O . These operations can be performed without having to know the semantics of SLI-4 . The HAL provides APIs for port and node management, command and event processing, as well as I/O handling . Transport Module This module is composed of three sub-modules: FC/FCoE Transport, iSCSI Transport, and a SCSI API . These sub-modules provide protocol-specific and generic transport handling . The FC/FCoE transport sub-module includes discovery, login and Basic Link Services (BLS)/Extended Link Services (ELS) handling that is unique to FC/FCoE storage networks . The iSCSI transport sub-module includes iSCSI-specific transport layer handling, such as connection establishment, connection offload and session management . The SCSI API sub-module provides a SCSI-like API for back-end initiator and target connectivity . This generic transport-layer interface is common across all three storage protocols (FC, FCoE and iSCSI) . It includes APIs for sending/receiving SCSI commands and Task Management Functions (TMFs), sending/receiving data and SCSI status, as well as aborting I/O . 4 Emulex Emulex’s OneCore Storage Software Development Kit Advanced Management Solutions Operating System Module The OS module provides the operating system services required by the OneCore Storage driver through an OS-independent API . A separate module is provided for Linux and FreeBSD in the OneCore Storage SDK . Supported functions include memory allocation, free, and cache coherency functions for both CPU and Direct Memory Access (DMA) memory types . They also include functions for locking for concurrency protection, linked list creation and handling, as well as OS-specific PCI driver entry points, Message Signaled Interrupts (MSI X)/INTx interrupt handling, and so on . This OS module is structured to allow modifications for an OEM wanting to port the driver to a different OS . Back-end Interface Module The OneCore Storage driver includes a back-end interface that connects to an initiator and/or target . The following section provides further details on the back-end modules . OneCore Storage Driver Architecture—Back-End Modules The currently-supported back-end interface modules include Common Access Method (CAM) SIM (for FreeBSD initiator and target support), Emulex Random Access Memory Disk (RAMD) for FreeBSD or Linux target support, and/or the SCSI mid-layer shim (for Linux SCSI mid-layer initiator support) . With these back-end interface modules, the OneCore Storage SDK supports a broad set of existing back-end storage industry solutions (for example, CAM and CAM Target Layer (CTL), SCSI Target Subsystem for Linux (SCST), and linux-iscsi .org (LIO) Unified Target (future support), as well as customer-specific applications . These modules are shown Figure 2 . Figure 2 OneCore Storage driver back-end modules . 5 Emulex Emulex’s OneCore Storage Software Development Kit Advanced Management Solutions OneCore Storage—Future Proofed Enhancements Emulex is committed to a feature-rich OneCore Storage SDK platform to ensure that our OEMs can continue to evolve their storage solutions with new, cutting-edge features . New features include: n SCST—an open source standard developed by the Linux community . It is intended for developers who want to leverage the open source community SCST architecture in designing Linux-based storage solutions . The OneCore Storage SDK plans to support SCST . n LIO target support, a multiprotocol SCSI target for Linux . Emulex will continue to deliver quick turn cycles for additional code releases with the objective of preserving and enhancing our OEM partner’s initial investments on the Emulex platform . Emulex—The Preferred Storage Development Partner Emulex’s multi-generational product experience with FC and market leadership in 10GbE solutions makes us the preferred partner for ongoing and future storage solutions development . The benefits of an engagement with Emulex for development include: n Product leadership in 16GFC adapters, the preferred solution for the enterprise