如何为 LVM 逻辑卷指定扇区大小?

vel*_*lis 8 iscsi lvm

我正在创建用于通过 targetcli (iSCSI) 导出的逻辑卷。

我正在使用 lvm 的精简配置卷,例如

lvcreate -V 1T --thin -n vol_name storage/thin_pool
Run Code Online (Sandbox Code Playgroud)

然后我将创建的逻辑卷添加到targetcli的 iblock 后备库中。结果设备显示 4096 为get attribute hw_block_size

由于缺乏启动器支持 (VirtualBox),我需要这些 LUN 具有 512 字节的扇区。出于一致性原因,我想避免使用 fileio backstore(据说允许设置扇区大小)。

是否可以在创建卷或将卷分配到后备存储期间指定扇区大小?

Spo*_*ler 6

fileio 后备存储驱动程序是您完成此操作的方式。如果您选择在 fileio 后备存储上启用写回缓存(或如 targetcli 所指的“缓冲模式”),则一致性只是一个问题。

正如 Datera 本身所建议的那样,无缓冲模式是任何发行版上几乎每个 targetcli 实现的默认模式。这应该不是什么大问题。

但是,如果您需要为特定的支持对象强制使用无缓冲模式(也许您应该只是为了安全),您可以这样指定:

#> targetcli

/backstores/fileio/test_name> set attribute buffered=False

至于解决块大小的问题,您还可以自由编辑特定 fileio 后备存储对象的 block_size 属性:

/backstores/fileio/test_name> set attribute block_size=4096

您可以使用 fileio 后备存储来解决瘦 LVM2(或任何其他块设备),同时更改几乎任何设置,而块或 iblock 后备存储经过优化,可以“直接”将设备及其硬件属性传递给启动器。Block 应该比 fileio 表现得更好,因为它的实现更精简——它只是因为那个精益​​实现而缺少这样的功能。如果不需要设置这些参数,块设备应该使用“block”。


Mr.*_*rry 5

关于这个问题,块大小可以在创建文件系统时更改。因此,我相信,您应该在文件系统类型的mkfs.yourfs -b 512 /dev/mapper/<VGName>-<logical volume>位置运行。yourfs