IITK OSD Simulator

Paper on IITK-OSD-SIM Design

 

Design of an OSD Target Simulator independent of iSCSI implementations

 

Object based storage technology [1] is termed as the future for storage system architectures. By embedding storage intelligence into the storage device, OSD [2] off-loads low-level storage management tasks traditionally handled by the host software. OSD exports object interface with security at object granularity. T10 [4] standard proposes OSD implementations as SCSI devices, based on SAM-4 [5]. This interface can even be built to use network for carrier such as in iSCSI. Often OSD protocol is implemented using a simulator for the OSD target.
 

In this paper, we are proposing a design of the OSD target simulator that is independent of the implementation of the underlying iSCSI. Unlike existing implementations [8, 9], we are separating iSCSI and OSD components. The design of our OSD simulator consists of three major blocks– OSD component, iSCSI component, and an interface for communication between these components known as OSD-iSCSI communicator.


The OSD component implements OSD device server functionality and is independent of the carrier technology. In a real OSD device, the device server will store objects as raw data on device blocks. In our approach, we build objects as files with an underlying file system support where objects are mapped onto hierarchical file namespace managed by the host file system. The OSD component includes several modules. An interface module exports the OSD device as an iSCSI LUN. An OSD engine processes the OSD commands received from the clients. While processing the OSD commands it uses an object I/O processor for accessing the objects. The object I/O processor module implements objects as files on the file system. With this modular approach, it is possible to modify the simulator to support other mechanisms for the storage of objects. A security module implements the access control for the objects. In our design, the OSD component can be implemented wholly as the host side kernel module, or as a user mode daemon. Our modular design permits the use of various iSCSI implementations by using different interface modules. The same idea can also be extended to other IP storage technologies [6] in place of iSCSI.


The iSCSI component is existing iSCSI target software that supports OSD devices. This component is dependent on a particular iSCSI implementation. It submits OSD commands to the OSD component using the OSD-iSCSI communicator.
 

The OSD-iSCSI communicator interfaces OSD and iSCSI components. Its implementation is specific to a chosen iSCSI component and the way the OSD component might be implemented (viz. user mode or kernel mode).
 

In this paper, we present the design of implementation of IITK OSD Simulator [3]. In our approach, we have modified the iSCSI Enterprise Target (IET) [7] to support OSD devices. In addition to the existing supported device I/O types in IET, we introduce a new device I/O type as “osdio” which allows exporting a directory as an OSD device. OSD-iSCSI communicator is implemented using socket interface in this implementation.
 

We have compared features and performance of our implementation with other existing open source implementations. We observe few unique features such as the support for exporting unlimited number of OSD LUNs with a single instance of iSCSI target, the support for collection objects etc.

References
 

[1] Eric Riedel. OSD Architecture and Systems. SNIA Technical Tutorial. April 2006.    http://www.snia.org/education/tutorials/2006/spring/storage/Object_based_Storage
_Devices_OSD_Architecture_and_Systems.pdf.
 

[2] References T10 Technical Committee. Information technology-SCSI Object-Based Storage Device Commands-2 (OSD-2). Working draft, project T10/1729-D, Revision 2, July 2007. http://www.t10.org/ftp/t10/drafts/osd2/osd2r02.pdf.
 

[3] IIT Kanpur. IITK OSD Simulator. http://sourceforge.net/projects/iitk-osd-sim/.
 

[4] INCITS Technical committee T10. http://www.t10.org/.
 

[5] SCSI Architecture Model-4 (SAM-4). Project T10/1683-D, Revision 12. T10 Technical Committee NCITS, September 2004. http://www.t10.org/ftp/t10/drafts/sam3/sam3r14.pdf.
 

[6] SNIA Europe IP Storage Initiative. IP Storage Technology Paper.
http://www.snia-europe.org/downloads/ipstorage/IP_Stor_Tech_paper_Final.pdf
 

[7] iSCSI Enterprise Target. http://iscsitarget.sourceforge.net/.
 

[8] IBM OSD Simulator. http://www.alphaworks.ibm.com/tech/osdsim/.
 

[9] DISC-OSD project at the DTC Intelligent Storage Consortium (University of Minnesota). http://sourceforge.net/projects/disc-osd.