design and implementation of a linux scsi target for storage area networks ashish a. palekaranshul...

21
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

Upload: berenice-hopkins

Post on 29-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Design and Implementation of a Linux SCSI Target for Storage Area Networks Ashish A. PalekarAnshul Chaddha, Trebia Networks Narendran Ganapathy, 33 Nagog

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 RussellActon, MA 01720 UNH-IOL

Durham, NH –[email protected] {achadda, ng3, rdr}@iol.unh.edu

Page 2: Design and Implementation of a Linux SCSI Target for Storage Area Networks Ashish A. PalekarAnshul Chaddha, Trebia Networks Narendran Ganapathy, 33 Nagog

Overview• Motivation and Objectives• Architecture• Design Details

– User Space Target Emulator– Kernel Space Target Emulator

• Implementation Issues• Configuration Tool• Applications• Conclusions and Future Work

Page 3: Design and Implementation of a Linux SCSI Target for Storage Area Networks Ashish A. PalekarAnshul Chaddha, Trebia Networks Narendran Ganapathy, 33 Nagog

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 ?

Page 4: Design and Implementation of a Linux SCSI Target for Storage Area Networks Ashish A. PalekarAnshul Chaddha, Trebia Networks Narendran Ganapathy, 33 Nagog

SCSI Protocol Overview

Page 5: Design and Implementation of a Linux SCSI Target for Storage Area Networks Ashish A. PalekarAnshul Chaddha, Trebia Networks Narendran Ganapathy, 33 Nagog

SCSI Initiator Mid-LevelUser Space

Kernel Space

SDdisksBlock device

Lower Level

SRcdrom/dvd

Block device

STtapesChar

device

SGgeneric

Char device

Upper Level

Mid Level

SCSI Unifying LayerConversion of command requests into SCSI requests.Hands off these requests to the low level driver.

Host Bus Adapter Drivers

Drivers for Non-SCSI

buses

Page 6: Design and Implementation of a Linux SCSI Target for Storage Area Networks Ashish A. PalekarAnshul Chaddha, Trebia Networks Narendran Ganapathy, 33 Nagog

SCSI Initiator and Target

Page 7: Design and Implementation of a Linux SCSI Target for Storage Area Networks Ashish A. PalekarAnshul Chaddha, Trebia Networks Narendran Ganapathy, 33 Nagog

Software Design Aspects

Basic Code Paths:

1. Registration / Deregistration

2. SCSI Read Type Commands

3. SCSI Write Type Commands

4. SCSI Task Management Commands

5. Configuration of the SCSI Target

Page 8: Design and Implementation of a Linux SCSI Target for Storage Area Networks Ashish A. PalekarAnshul Chaddha, Trebia Networks Narendran Ganapathy, 33 Nagog

Step One: User Space Target Emulator

SCSI Mid-level

SEP Initiator

SEP Target Front-end

interpret_cmdhandle_SEP_connectionscsi_server

SCSI Target Emulator

handle_file_iohandle_generic_cmdhandle_SCSI_cmd

sep_disk_file

scsi_generic

API

TCP/IP Connection

SCSI Mid-level

qlogicfc driver (for QLA 2200)

Fibre Channel Disk (Seagate)

SD disks (Block

devices)

user spacekernel space

User Level Application to generate SCSI activity e.g., cp

Page 9: Design and Implementation of a Linux SCSI Target for Storage Area Networks Ashish A. PalekarAnshul Chaddha, Trebia Networks Narendran Ganapathy, 33 Nagog

Registration Interface

Page 10: Design and Implementation of a Linux SCSI Target for Storage Area Networks Ashish A. PalekarAnshul Chaddha, Trebia Networks Narendran Ganapathy, 33 Nagog

Deregistration Interface

Page 11: Design and Implementation of a Linux SCSI Target for Storage Area Networks Ashish A. PalekarAnshul Chaddha, Trebia Networks Narendran Ganapathy, 33 Nagog

Handling a SCSI Read Type Command

Page 12: Design and Implementation of a Linux SCSI Target for Storage Area Networks Ashish A. PalekarAnshul Chaddha, Trebia Networks Narendran Ganapathy, 33 Nagog

Handling a SCSI Write Type Command

Page 13: Design and Implementation of a Linux SCSI Target for Storage Area Networks Ashish A. PalekarAnshul Chaddha, Trebia Networks Narendran Ganapathy, 33 Nagog

“Processing” a SCSI Command“Processing” – different handle_cmd functions

1. I/O to and from memory MEMORYIO- Return junk data on READ commands

- Drop data from WRITE commands

- Used for protocol performance testing

2. 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

3. I/O to and from a disk GENERICIO/DISKIO- “Bridge” mode of operation

- Protocol conversion between different SCSI Transport Protocols

Page 14: Design and Implementation of a Linux SCSI Target for Storage Area Networks Ashish A. PalekarAnshul Chaddha, Trebia Networks Narendran Ganapathy, 33 Nagog

“Processing” a SCSI Command

DISKIO

GENERICIO

Page 15: Design and Implementation of a Linux SCSI Target for Storage Area Networks Ashish A. PalekarAnshul Chaddha, Trebia Networks Narendran Ganapathy, 33 Nagog

Handling a SCSI Task Management Command

Page 16: Design and Implementation of a Linux SCSI Target for Storage Area Networks Ashish A. PalekarAnshul Chaddha, Trebia Networks Narendran Ganapathy, 33 Nagog

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 …

Page 17: Design and Implementation of a Linux SCSI Target for Storage Area Networks Ashish A. PalekarAnshul Chaddha, Trebia Networks Narendran Ganapathy, 33 Nagog

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

Page 18: Design and Implementation of a Linux SCSI Target for Storage Area Networks Ashish A. PalekarAnshul Chaddha, Trebia Networks Narendran Ganapathy, 33 Nagog

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

Page 19: Design and Implementation of a Linux SCSI Target for Storage Area Networks Ashish A. PalekarAnshul Chaddha, Trebia Networks Narendran Ganapathy, 33 Nagog

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”

Page 20: Design and Implementation of a Linux SCSI Target for Storage Area Networks Ashish A. PalekarAnshul Chaddha, Trebia Networks Narendran Ganapathy, 33 Nagog

Acknowledgements

• SUN Microsystems• EMC• Trebia Networks• InterOperability Lab, UNH

Page 21: Design and Implementation of a Linux SCSI Target for Storage Area Networks Ashish A. PalekarAnshul Chaddha, Trebia Networks Narendran Ganapathy, 33 Nagog

Thank you

Downloads:http://www.iol.unh.edu/consortiums/fc/fc_li

nux.html