Zoned Storage-Linux Kernel Support 之 设备映射器

设备映射器Device Mapper在Linux内核4.13版开始支持分区块设备,包括dm-linear、dm-flakey和dm-zoned目标。dm-linear创建分区块设备,dm-flakey模拟设备错误,dm-zoned为非原生支持分区设备提供随机写入。dm-zoned通过元数据和写入缓冲方案处理顺序写入约束,允许文件系统和应用在无本机分区支持下使用分区设备。
摘要由CSDN通过智能技术生成

设备映射器Device Mapper

首先需要明确的是设备映射器是工作在block级别而不是file级别的。
分区块设备支持已添加到内核版本 4.13 中的设备映射器子系统中。 两个现有的目标获得了支持:dm-linear 目标和 dm-flakey 目标。 ZBD 支持还添加了一个新的目标驱动程序,dm-zoned

dm-linear

dm-linear 目标将设备映射器设备的线性范围的blocks映射到后端设备上的线性范围。 dm-linear 是 LVM 等逻辑卷管理器的基本构建块。

Zoned Block Device Restrictions 分区块设备限制

当与分区块设备一起使用时,创建的 dm-linear 设备也将是分区块设备,其区域大小与底层设备相同。 在创建 dm-linear 目标设备期间,设备映射器核心管理代码会强制执行几个条件。
- 用于映射目标设备不同范围的所有后端设备必须具有相同的区域模型。
- 如果后端设备是分区块设备,则所有设备必须具有相同的区域大小。
- 映射的范围必须是区域对齐的,也就是说,部分区域映射是不可能的。

示例:创建一个小型Host Managed Disk

此示例说明如何从大型高容量主机托管磁盘创建使用区域范围的小型Host Managed 磁盘。 使用的后端设备的区域信息如下所示:

# cat /sys/block/sdb/queue/zoned
host-managed
# cat /sys/block/sdb/queue/chunk_sectors
524288
# blkzone report /dev/sdb
  start: 0x000000000, len 0x080000, wptr 0x000000 reset:0 non-seq:0, zcond: 0(nw) [type: 1(CONVENTIONAL)]
  start: 0x000080000, len 0x080000, wptr 0x000000 reset:0 non-seq:0, zcond: 0(nw) [type: 1(CONVENTIONAL)]
  start: 0x000100000, len 0x080000, wptr 0x000000 reset:0 non-seq:0, zcond: 0(nw) [type: 1(CONVENTIONAL)]
  start: 0x000180000, len 0x080000, wptr 0x000000 reset:0 non-seq:0, zcond: 0(nw) [type: 1(CONVENTIONAL)]
  ...
  start: 0x010580000, len 0x080000, wptr 0x000000 reset:0 non-seq:0, zcond: 0(nw) [type: 1(CONVENTIONAL)]
  start: 0x010600000, len 0x080000, wptr 0x000000 reset:0 non-seq:0, zcond: 1(em) [type: 2(SEQ_WRITE_REQUIRED)]
  start: 0x010680000, len 0x080000, wptr 0x000000 reset:0 non-seq:0, zcond: 1(em) [type: 2(SEQ_WRITE_REQUIRED)]
  start: 0x010700000, len 0x080000, wptr 0x000000 reset:0 non-seq:0, zcond: 1(em) [type: 2(SEQ_WRITE_REQUIRED)]
  ...
  start: 0x6d2300000, len 0x080000, wptr 0x000000 reset:0 non-seq:0, zcond: 1(em) [type: 2(SEQ_WRITE_REQUIRED)]
  start: 0x6d2380000, len 0x080000, wptr 0x000000 reset:0 non-seq:0, zcond: 1(em) [type: 2(SEQ_WRITE_REQUIRED)]

接下来,要创建一个名为“small-sdb”的 dm-linear 设备,它将后端设备的前 5 个常规区域(5*524288=2621440)与前 10 个连续区域连接起来,请使用以下命令。

# echo "0 2621440 linear /dev/sdb 0
2621440 5242880 linear /dev/sdb 274726912" | dmsetup create small-sdb

生成的设备区域模型是主机管理的,有 15 个区域,如下所示。

# cat /sys/block/dm-0/queue/zoned
host-managed
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值