Of course this would work....
But that would be a raw disk file that holds on it's turn a filesystem (like a virtual drive) that is maintained inside another file (s3ql)
It think it would be a nice feature to extend s3ql so the metafiles of s3ql can handle block devices. So nesting is not that deep AND additional there can be a way
to provide some little parity on that block device....
In ZFS you have inside Your zpool, a ZFS filesystem, however inside ZFS you are also able to create a ZFS volume with a specific size
that acts as a block device. That block device can be used as an iscsi target.
It would be nice to have a s3ql variant as well, this would make it possible to use the s3ql 'volume' as an iscsi target
Currently the s3ql filesystem is build like this:
#mkfs.s3ql [options] <storage url>
So this part is the filesystem approach..
I propose to have also:
#mkvol.s3ql [options] <storage url>
Where You can define in the options the size, heads, parity (some percent or none)
When you mount that 'volume' it is a lun you can use in an iscsi target...
Using different storage url (not always in the same s3 space) in volume creation could create a way to setup a raid/zfs using those luns as (virtual) disks