On Mon, Jul 30, 2018 at 10:01:47AM -0500, Eric Blake wrote: > On 07/29/2018 07:04 AM, Nir Soffer wrote: > >If we may not trim, we tried ZERO_RANGE, but this is not well supported > >yet, for example it is not available on NFS 4.2. ZERO_RANGE and > >PUNCH_HOLE are supported now on block devices, but not on RHRL 7, so we > >fallback to slow manual zeroing there. > > > >Change the logic to support block devices on RHEL 7, and file systems > >that do not support ZERO_RANGE. > > > >The new logic: > >- If we may trim, try PUNCH_HOLE > >- If we can zero range, Try ZERO_RANGE > >- If we can punch hole and fallocate, try fallocate(PUNCH_HOLE) followed > > by fallocate(0). > >- If underlying file is a block device, try ioctl(BLKZEROOUT) > >- Otherwise fallback to manual zeroing > > > >The handle keeps now the underlying file capabilities, so once we > >discover that an operation is not supported, we never try it again. > > > > > > >Issues: > >- ioctl(BLKZEROOUT) will fail if offset or count are not aligned to > > logical sector size. I'm not sure if nbdkit or qemu-img ensure this. > > qemu-img tends to default to 512-byte alignment, but can be told to > follow 4k alignment instead. nbdkit includes a filter that can force > 4k alignment on top of any plugin, regardless of client alignment. > > Someday, I'd like to enhance nbdkit to support block size > advertisement (qemu-img already knows how to honor such > advertisements). It's on my todo queue, but lower in priority than > getting incremental backups working in libvirt.
The VDDK plugin actually requires 512 byte alignment. If a client issues < 512 byte aligned requests it returns an error :-( Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-p2v converts physical machines to virtual machines. Boot with a live CD or over the network (PXE) and turn machines into KVM guests. http://libguestfs.org/virt-v2v _______________________________________________ Libguestfs mailing list [email protected] https://www.redhat.com/mailman/listinfo/libguestfs
