SCSI logical block provisioning

2020-01-01  本文已影响0人  Jiafu

Overview

谈Logical block provisioning之前,介绍一下thin LUN的概念。所谓thin LUN,就是LUN的LBA和实际物理块映射还没有确定。比如这个LUN的逻辑大小是1000G,但是这个LUN实际上只有500G的LBA是有实际物理块映射的,另外500G是没有映射的。等到LUN的用户真的将已经分配的500G空间用完的时候,需要更多的空间,那么这时候可以考虑将没有映射的500G LBA空间也建立到物理块的映射,然后可用的空间就扩大了,这就是thin LUN的原理。这样可以做到LUN的实际物理空间按需分配,达到节省资源的目的。有Thin LUN就有Thick LUN,相对的,thick LUN就是所有的LBA都和实际的物理块对应,这样读写性能可能会相对好一些(因为不需要动态创建映射),也不会有后续的创建映射失败的问题。但是这样做的缺点就是,资源的利用率可能会低点。

所以每个LUN的LBA,要么是map状态,要么是unmap状态。mapped状态就是LBA到PB的映射是确定的。unmapped状态就是LBA到PB的映射是不确定的。

LBA映射状态

unmapped又细分为两种状态:

对于mapped状态和anchored状态的LBA,可以认为映射资源都是保留的。而deallocated的映射资源是不保留的。

LUN一共有3种 logical block provisioning:


不同类型的logical block provisioning

Resource provisioned和Thin provisioned LUN,都需要支持 logical block provisioning management操作:

查看LUN是否支持 logical block provisioning management

通过inquiry 命令查询VPD page 0xb2(logical block provision页),例如:

[root@node100 ~]# sg_vpd --page=lbpv /dev/sdc
Logical block provisioning VPD page (SBC):
  Unmap command supported (LBPU): 0  # 不支持unmap
  Write same (16) with unmap bit supported (LBWS): 0 # 不支持scsi命令write same(16)with unmap bit
  Write same (10) with unmap bit supported (LBWS10): 0 # scsi命令write same(10)with unmap bit
  Logical block provisioning read zeros (LBPRZ): 0
  Anchored LBAs supported (ANC_SUP): 0
  Threshold exponent: 0
  Descriptor present (DP): 0
  Provisioning type: 0
[root@node100 ~]# 

字段含义:

参考资料

SCSI Block Commands – 4

上一篇 下一篇

猜你喜欢

热点阅读