[Gluster-devel] Suggestions for improving the block/gluster driver in QEMU
Ravishankar N
ravishankar at redhat.com
Thu Jul 28 10:49:42 UTC 2016
On 07/28/2016 03:32 PM, Niels de Vos wrote:
> There are some features in QEMU that we could implement with the
> existing libgfapi functions. Kevin asked me about this a while back, and
> I have finally (sorry for the delay Kevin!) taken the time to look into
> it.
>
> There are some optional operations that can be set in the BlockDriver
> structure. The ones missing that we could have, or have useless
> implementations are these:
>
> .bdrv_get_info/.bdrv_refresh_limits:
> This seems to set values in a BlockDriverInfo and BlockLimits
> structure that is used by QEMUs block layer. By setting the right
> values, we can use glfs_discard() and glfs_zerofill() to reduce the
> writing of 0-bytes that QEMU falls back on at the moment.
>
> .bdrv_has_zero_init / qemu_gluster_has_zero_init:
> Currently always returns 0. But if a file gets created on a Gluster
> volume, it should never have old contents in it. Rewriting it with
> 0-bytes looks unneeded to me.
N00b question, what is the need for separate glfs_discard() and
glfs_zerofill() functions? Can we not just use glfs_fallocate() with
appropriate flags?
posix_discard() in gluster seems to be using fallocate() with
FALLOC_FL_PUNCH_HOLE flag. And posix_zerofill() can be made smarter to
use FALLOC_FL_ZERO_RANGE and fallback to writing zeroes if ZERO_RANGE is
not supported.
Regards,
Ravi
>
> With these improvements the gluster:// URL usage with QEMU (and now also
> the new JSON QAPI), certain operations are expected to be a little
> faster. Anyone starting to work on this would want to trace the actual
> operations (on a single-brick volume) with ltrace/wireshark on the
> system where QEMU runs.
>
> Who is interested to take this on?
> Niels
>
>
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at gluster.org
> http://www.gluster.org/mailman/listinfo/gluster-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gluster.org/pipermail/gluster-devel/attachments/20160728/9e593358/attachment.html>
More information about the Gluster-devel
mailing list