As far as I understand, the reason why 4K dm-crypt breaks some VM volumes on LVM Thin but not on Btrfs is a combination of two things.
-
LVM Thin uses the same logical sector size as the underlying (dm-crypt) block device. And then a 4K LVM Thin block device in dom0 results in a 4K xen-blkfront block device in the VM, because Xen automatically passes through the logical sector size.
Whereas
file-reflink
layouts like Btrfs use loop devices, which are currently always configured (by/etc/xen/scripts/block
from Xen upstream) with 512 byte logical sectors - again passed through to the VM. -
The “root”
xvda
and “volatile”xvdc
volumes don’t properly work with 4K sectors because they are disk images containing a GPT/MBR partition table, which can only specify sizes and locations in sector units:-
The VM initramfs script formatting “volatile” on every VM start currently assumes that a sector is 512 bytes, which should be straightforward to fix (WIP)
-
It’s going to be more difficult to somehow make the “root” volume sector-size agnostic…
(The “private”
xvdb
and “kernel”xvdd
volumes seem to work fine if/etc/xen/scripts/block
is patched to configure them with 4K sectors. They’re just ext4/ext3 filesystem images without a partition table.) -