← Back to team overview

openstack team mailing list archive

iSCSI target service on the top of swift

 

Hello,

# the mailing list is subscriber only? Sorry if you receive the mail twice.

I've just started playing with swift, implemented block storage
service (iSCSI) on the top of swift:

git://git.kernel.org/pub/scm/linux/kernel/git/tomo/tgt.git swift

The iSCSI daemon provides iSCSI volume to clients, storing the data in
swift. In short, it can be used like EBS.

tgt is an iSCSI target implementation that I've maintained and lots of
Linux distributions are shipped with it (RHEL, SUSE, debian, Ubuntu,
etc).

I need to study more to know if swift can fill the requirements for
block storage service (I just implemented this to play with swift) but
I think that it would be great if multiple storage interfaces (S3,
EBS, etc) can be implemented, using swift (and other OpenStack
components probably).

The iSCSI daemon is supposed to run on swift's proxy host. I think
that you can set up HA iSCSI service easily on two proxy hosts with
the existing software. One feature in OpenStack I want for this is
something like ZooKeeper. It enables to build a more scalable iSCSI
service with multiple proxy hosts.

Currently, one container corresponds to one volume. volume are split
8MB objects (e.g., 8GB volume consists of one container including 1024
objects). The more clever scheme can be used to implement Snapshot
feature (like Sheepdog, Ceph's rados, etc do).

There are tons of TODOs (huge room for performance improvement, proper
error handling, etc) but looks like it works (I successfully created an
ext3 file system on swift's iSCSI volume and store some files on it).

Anyone is interested? I'd like to know what OpenStack team plans for
block storage service.

Thanks,



Follow ups