Re: [PATCH v4 2/2] md: allow configuring logical_block_size
From: Li Nan
Date: Tue Sep 16 2025 - 02:33:32 EST
在 2025/9/15 16:50, Xiao Ni 写道:
On Mon, Sep 15, 2025 at 10:15 AM Li Nan <linan666@xxxxxxxxxxxxxxx> wrote:
在 2025/9/15 8:33, Xiao Ni 写道:
Hi Nan
On Thu, Sep 11, 2025 at 3:41 PM <linan666@xxxxxxxxxxxxxxx> wrote:
From: Li Nan <linan122@xxxxxxxxxx>
Previously, raid array used the maximum logical_block_size (LBS) of
all member disks. Adding a larger LBS during disk at runtime could
unexpectedly increase RAID's LBS, risking corruption of existing
partitions.
Could you describe more about the problem? It's better to give some
test steps that can be used to reproduce this problem.
Thanks for your review. I will add reproducer in the next version.
Thanks.
Simply restricting larger-LBS disks is inflexible. In some scenarios,
only disks with 512 LBS are available currently, but later, disks with
4k LBS may be added to the array.
Making LBS configurable is the best way to solve this scenario.
After this patch, the raid will:
- stores LBS in disk metadata.
- add a read-write sysfs 'mdX/logical_block_size'.
Future mdadm should support setting LBS via metadata field during RAID
creation and the new sysfs. Though the kernel allows runtime LBS changes,
users should avoid modifying it after creating partitions or filesystems
to prevent compatibility issues.
Because it only allows setting when creating an array. Can this be
done automatically in kernel space?
Best Regards
Xiao
The kernel defaults LBS to the max among all rdevs. When creating RAID
with mdadm, if mdadm doesn't set LBS explicitly, how does the kernel
learn the intended value?
Gunaghao previously submitted a patch related to mdadm:
https://lore.kernel.org/all/3a9fa346-1041-400d-b954-2119c1ea001c@xxxxxxxxxx/
Thanks for reminding me about this patch. First I still need to
understand the problem. It may be a difficult thing for a user to
Thank you for your response.
Reproducer:
https://lore.kernel.org/all/3e26e8a3-e0c1-cd40-af79-06424fb2d54b@xxxxxxxxxxxxxxx/
I will add it to messge log in the next version.
choose the logcial block size. They don't know why they need to
consider this value, right? If we only need a default value, the
kernel space should be the right place?
The scenario of our product is that they have a mix of 4k LBS and 512 LBS
disks. For most users, they do not need to modify the default values. This
is difficult to solve through default values.
Regards
Xiao
--
Thanks,
Nan
.
--
Thanks,
Nan