On Mon, Feb 10, 2020 at 02:22:01PM +0200, Nikolay Ivanets wrote: > Here are what they do stand for: > physical_block_size: The physical block size the disk will report to > the guest OS. For Linux this would be the value returned by the > BLKPBSZGET ioctl and describes the disk's hardware sector size which > can be relevant for the alignment of disk data. We don't have an API > to get this one. > > logical_block_size: The logical block size the disk will report to the > guest OS. For Linux this would be the value returned by the BLKSSZGET > ioctl and describes the smallest units for disk I/O. We have > blockdev-getsz API to get this value.
Interestingly parted uses BLKSSZGET (logical_block_size), but does not use BLKPBSZGET (physical_block_size), so I guess that fits with my observations. > How do they use. If your HDD has physical block size = 4096 you might > want make I/O request equals to (or multiple) this value. Otherwise > you might hit performance penalty. I think, the same is valid for > virtual disk image which is located on physical storage with 4K > physical sector size. ... > Here are possible combinations of [pl]blocksize in real world: > > physical | logical > ----------------------- > 4096 | 4096 > 4096 | 512 > 512 | 512 > > Having both values equals works except for case #2 which will not > impact on functionality, only performance might be hit. > If we want to simplify our API - we might expose the only parameter > called 'blocksize' and set physical_block_size and logical_block_size > to the same value. Right, but libguestfs rarely deals with real physical disks. I think even if eg. you attach libguestfs to /dev/sdX there's still going to be a host kernel in between doing its thing. So I'm not clear that the 4K physical / 512b logical case is actually something that libguestfs cares about. (But OTOH I'm also not clear why qemu cares about this case either.) Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-df lists disk usage of guests without needing to install any software inside the virtual machine. Supports Linux and Windows. http://people.redhat.com/~rjones/virt-df/ _______________________________________________ Libguestfs mailing list [email protected] https://www.redhat.com/mailman/listinfo/libguestfs
