我有具有不同块大小的物理卷:
blockdev -v --getss --getpbsz --getbsz /dev/md1
get logical block (sector) size: 512
get physical block (sector) size: 4096
get blocksize: 4096
blockdev -v --getss --getpbsz --getbsz /dev/md3
get logical block (sector) size: 4096
get physical block (sector) size: 4096
get blocksize: 4096
当尝试扩展现有卷组时,我收到错误消息:
Devices have inconsistent logical block sizes (512 and 4096).
/etc/lvm/lvm.conf
有选项allow_mixed_block_sizes
,我设置为 1,它允许我使用新的物理卷扩展卷组。
我做了一些测试,使用 /dev/md1 作为 PV 创建了一个 LV,mkfs.ext4(默认 4K 块大小),将一些数据复制到其中并使用 pvmove 将扩展移动到 /dev/md3。
unmount
并且mount
再次显示没有问题,使用时没有错误pvs
,数据似乎正常。(也以相反的方式测试了它,使用 /dev/md3 创建 LV 并将其移动到 /dev/md1,没有问题。)
我的测试是否不足,例如由于读取缓存?
我读过这个帖子: https://listman.redhat.com/archives/linux-lvm/2019-February/msg00018.html
一些回复说混合块大小是危险的,另一个回复说问题是因为 OP 使用了 1k 块大小: https://listman.redhat.com/archives/linux-lvm/2019-February/025033.html
我还发现了另一个线程,其中有人能够重现数据损坏问题,但仅限于使用具有 1k 块的 ext4 时: https://listman.redhat.com/archives/linux-lvm/2019-March/025049.html
所以我可以从中得出结论,当使用具有 4k 块的 ext4 时,在同一个 LV 上混合块大小是安全的吗?