Skip to main content

What is ObjectStone?

ObjectStone is a prototype of an object based controller. It was originally designed to provide storage device capabilities with a block-based storage controller, in particular IBM's SAN Volume Controller. More recent versions of ObjectStone run on a standard Linux server, maintaining its controller characteristics.

As an object-based controller, ObjectStone aims to combine the world of object storage with that of controllers -- allowing high-performance, highly-available, object-related data to hosts. In ObjectStone, the object store abstraction (which we call OC, for object controller) is implemented entirely on top of the block-based storage controller. It uses the underlying controller as a reliable, high performance fast-write cache both for the customer data and for the meta-data of the object abstraction.

The ObjectStone front-end interface implements the standard OSD SCSI T10 protocol. It uses iSCSI for its SCSI transport and implements an iSCSI target in software that supports the iSCSI extensions needed for OSD commands.

Along with ObjectStone, our team developed an OSD simulator that runs on a Linux machine and is implemented over the local file system. This OSD simulator shares the same front-end as ObjectStone, namely T10 protocol over iSCSI. It serves as a useful tool, both for testing purposes and for simulating an OSD standard interface for a higher-level application built on top of standard OSDs. IBM Object Storage Device Simulator for Linux is available for download from IBM's AlphaWorks site

The chart below describes the object store project:

  • At the target side, we show the two possible OSD targets: OC (Objectstone, our object store controller) and the OSD simulator.
  • Both targets share the same two front-end software modules: an iSCSI target and a T10 front-end that encapsulates and interprets T10 OSD SCSI commands.At the host side, we show our OSD initiator that runs on top of an extended iSCSI initiator.
  • OSD commands between the host and the target are transported as SCSI commands over an IP network.