为什么驱动器大小有两个不同的值以及如何使它们与设备映射器和 LVM 协调一致?

为什么驱动器大小有两个不同的值以及如何使它们与设备映射器和 LVM 协调一致?

我有一个通过 USB 连接的 1 TB 驱动器。它包含一个LVM物理体积填充整个设备(没有任何分区表)。当我试图延长逻辑卷通过使用整个PV,设备映射器开始抱怨LVM在PV上分配的部分比设备大。来自设备映射器的错误消息(如所示dmesg)报告的大小为1953320367[dm] 部门:

device-mapper: table: 254:0: sdf too small for target: start=1821353984, len=132169728, dev_size=1953320367

但是LVM创建了一个PV为238467物理范围,即1953521664[lvm] 扇区(大约多出 100 MB):

$ pvdisplay /dev/sdf
  --- Physical volume ---
  PV Name               /dev/sdf
  VG Name               apu-vg1
  PV Size               931.51 GiB / not usable 1.71 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              238467
  Free PE               100
  Allocated PE          238367
  PV UUID               LrKDDW-4dXz-kDgh-CK78-OWhY-4sCH-rKT0e4

现在,如果我hdparm -gI在设备上运行,我可以看到设备大小的两个值。在下面几何学,设备映射器报告的值与设备大小相同。但下LBA48 用户可寻址扇区,有这个值1953525168[lba],比 PV 的 PE 的组合大小大不到一个 PE。这让我觉得这就是LVM看到的价值:

$ hdparm -Ig /dev/sdf

/dev/sdf:
 geometry      = 121588/255/63, sectors = 1953320367, start = 0

ATA device, with non-removable media
          Model Number:       ST1000LM024 HN-M101MBB                  
          Serial Number:      S2RUJ9BC702524      
          Firmware Revision:  2AR10001
          Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
          Used: unknown (minor revision code 0x0028) 
          Supported: 8 7 6 5 
          Likely used: 8
Configuration:
          Logical         max     current
          cylinders       16383   16383
          heads           16      16
          sectors/track   63      63
          --
          CHS current addressable sectors:   16514064
          LBA    user addressable sectors:  268435455
          LBA48  user addressable sectors: 1953525168
...

现在回答我的问题:

  • 为什么内核的不同部分使用两个不同的设备大小值?
  • 并且,我该如何处理/修复这种情况,以便 LVM 不会生成大于设备映射器愿意/能够访问的空间的 PV?

答案1

这里的关键问题是你的Free PE价值。请注意它是如何表示只有 100 个扩展区是可用的吗?这意味着您将无法扩展它。如果您执行 vgscan、pvscan,然后执行 vgdisplay(也称为 vgs),您可能会看到您的设备已经是 vg 的一部分(也可能是 lv),这就是范围不是免费的原因。

您能否提供以下输出:

vgscan;pvscan;vgdisplay;vgs

根据扩展区的大小和免费的数量,您应该能够获得额外的 400MB。

相关内容