This is usually handled by doing a full sector read and then only returning the portion of the buffer requested. Same goes for writes, read-modify-write is used for sub-sector writes in these sorts of systems. In terms of Openstack Glance you just need to implement a custom iterator for reading the VDI that takes care of doing the buffering. Sheepdog doesn't need to be modified to do this, just buffer the data in Python. :) Are you writing the Glance store driver atm? I would like to help if you have it up somewhere. I also have a patch that implements clone for the Sheepdog driver in Cinder, I will submit for Havana shortly. On Tue, May 21, 2013 at 5:33 AM, Liu Yuan <namei.unix at gmail.com> wrote: > On 05/21/2013 08:26 PM, MORITA Kazutaka wrote: >> Nack, the data length must be sector aligned when we use direct I/O. >> Can't we modify Glance sheepdog driver so that we don't need these >> changes? > > Just test create an image with size '3' and write 'XXX' to it. When it > reads the content, we return 512 bytes. so fail the test. But if user > requests to read 3 bytes, we should return 3 bytes, no more no less if > we later support an object store like swift and s3, no? > > Thanks, > Yuan > -- > sheepdog mailing list > sheepdog at lists.wpkg.org > http://lists.wpkg.org/mailman/listinfo/sheepdog |