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.