1 / 21

Design and Implementation of a Linux SCSI Target for Storage Area Networks

Design and Implementation of a Linux SCSI Target for Storage Area Networks. Ashish A. Palekar Anshul Chaddha , Trebia Networks Narendran Ganapathy , 33 Nagog Park Robert Russell Acton, MA 01720 UNH-IOL Durham, NH –03824

meryle
Download Presentation

Design and Implementation of a Linux SCSI Target for Storage Area Networks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Design and Implementation of a Linux SCSI Target for Storage Area Networks Ashish A. PalekarAnshul Chaddha, Trebia Networks Narendran Ganapathy, 33 Nagog Park Robert Russell Acton, MA 01720 UNH-IOL Durham, NH –03824 apalekar@trebia.com {achadda, ng3, rdr}@iol.unh.edu

  2. Overview • Motivation and Objectives • Architecture • Design Details • User Space Target Emulator • Kernel Space Target Emulator • Implementation Issues • Configuration Tool • Applications • Conclusions and Future Work

  3. Motivation and Objectives • Internet + E-Commerce = Data • Storage Area Networks – Concept • Emergence of Protocols • Fibre Channel • SEP (SCSI Encapsulation) • iSCSI (Internet SCSI) • iFCP • Infiniband • Linux as a SCSI Target ?

  4. SCSI Protocol Overview

  5. User Space Kernel Space SD disks Block device SR cdrom/dvd Block device ST tapes Char device SG generic Char device Upper Level SCSI Unifying Layer Conversion of command requests into SCSI requests. Hands off these requests to the low level driver. Mid Level Host Bus Adapter Drivers Drivers for Non-SCSI buses Lower Level SCSI Initiator Mid-Level

  6. SCSI Initiator and Target

  7. Software Design Aspects • Basic Code Paths: • Registration / Deregistration • SCSI Read Type Commands • SCSI Write Type Commands • SCSI Task Management Commands • Configuration of the SCSI Target

  8. API sep_disk_file SCSI Target Emulator handle_file_io handle_generic_cmd handle_SCSI_cmd SEP Target Front-end interpret_cmd handle_SEP_connection scsi_server User Level Application to generate SCSI activity e.g., cp user space kernel space scsi_generic SD disks (Block devices) TCP/IP Connection SCSI Mid-level SCSI Mid-level SEP Initiator qlogicfc driver (for QLA 2200) Fibre Channel Disk (Seagate) Step One: User Space Target Emulator

  9. Registration Interface

  10. Deregistration Interface

  11. Handling a SCSI Read Type Command

  12. Handling a SCSI Write Type Command

  13. “Processing” a SCSI Command • “Processing” – different handle_cmd functions • I/O to and from memoryMEMORYIO • Return junk data on READ commands • Drop data from WRITE commands • Used for protocol performance testing • I/O to and from a file FILEIO • Open a file on the local system • Block READs and WRITEs to the file • “Safe” mode for driver testing • Abstract view IDE  SCSI conversion • I/O to and from a disk GENERICIO/DISKIO • “Bridge” mode of operation • Protocol conversion between different SCSI Transport Protocols

  14. “Processing” a SCSI Command GENERICIO DISKIO

  15. Handling a SCSI Task Management Command

  16. Implementation Details • Initiator side: • Existent Fibre Channel Initiator used (QLogic ISP 2200 A) • Front End Initiator drivers – SEP, iSCSI written • Target Side: • Developed the SCSI Target Mid-Level • Developed Front End Target Drivers for • Fibre Channel (QLogic ISP 2200 A) • SEP • iSCSI – draft ’06’ – upgrading to ’09’ • Linux TCP/IP stack used …

  17. Target Configuration • Need • Statistical information • Configuration Needs for individual driver • Interface for complex SAN management tools • Mechanism • “proc” file system • Usage • iSCSI Login Negotiation Parameters

  18. Conclusions • Input to Standards Bodies (IETF) • Development of Frame Structure • Simplification of Login Process • Identifying potential performance issues • iSCSI State Diagram • SCSI Target Mid-Level - Generic uses • IDE disks used as SCSI drives • Linux as a bridge • Implementations used at Interop plugfests

  19. Future/Current Work • Making STML/FETDs more robust • Upgrading iSCSI FETD to current versions • IP-sec and Authentication (CHAPs) for iSCSI • Submit for inclusion in kernel • “Storage Virtualization” interface • “Command Processing”

  20. Acknowledgements • SUN Microsystems • EMC • Trebia Networks • InterOperability Lab, UNH

  21. Thank youDownloads:http://www.iol.unh.edu/consortiums/fc/fc_linux.html

More Related