[Gluster-users] KVM guest I/O errors with xfs backed gluster volumes

Stefan Hajnoczi stefanha at gmail.com
Thu Nov 7 09:30:28 UTC 2013


On Tue, Oct 29, 2013 at 8:51 AM, Anand Avati <avati at gluster.org> wrote:
> Looks like what is happening is that qemu performs ioctls() on the backend
> to query logical_block_size (for direct IO alignment). That works on XFS,
> but fails on FUSE (hence qemu ends up performing IO with default 512
> alignment rather than 4k).
>
> Looks like this might be something we can enhance gluster driver in qemu.
> Note that glusterfs does not have an ioctl() FOP, but we could probably wire
> up a virtual xattr call for this purpose.
>
> Copying Bharata to check if he has other solutions in mind.

Hi Avati and Bharata,
QEMU's 4 KB sector status is as follows:

QEMU does not autodetect sector size but you can tell the guest by
setting -drive logical_block_size=,physical_block_size=,min_io_size=
properties on the QEMU command-line.  I'm not aware of an XFS sector
size ioctl() probe that you mentioned.

Note that QEMU can issue disk I/O internally when starting up (to
detect the image file format) or to access image format metadata
(qcow2, qed, etc).  This is usually not a problem if you explicitly
set -drive format=<format> on the command-line to skip file format
probe.  qcow2 operates on 64 KB clusters by default so 4 KB disks
work.

Finally, the BIOS running inside the guest is not 4 KB sector-aware.
Therefore, 4 KB sector disks can be used as data disks but attempting
to boot from them will hit I/O errors.

I'm happy to help if you want to discuss improvements and integration
with GlusterFS.

Stefan



More information about the Gluster-users mailing list