Почему существуют два разных значения размера диска и как их согласовать с помощью device-mapper и LVM?

Почему существуют два разных значения размера диска и как их согласовать с помощью device-mapper и LVM?

У меня есть диск на 1 ТБ, подключенный через USB. Он содержит LVMфизический объемзаполнение всего устройства (без таблицы разделов). Когда я попытался расширитьлогический томиспользуя весь PV,устройство-картографначал жаловаться, что раздел, выделенный LVM на PV, больше, чем устройство. Сообщение об ошибке от device-mapper (как показано dmesg) сообщает о размере1953320367[дм] секторы:

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

Но LVM создал PV с 238467физические размеры, который1953521664[lvm] секторы (что примерно на 100 МБ больше):

$ 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на устройстве, я увижу два значения размера устройства. Подгеометрия, есть то же самое значение, которое сообщает device-mapper как размер устройства. Но подLBA48 адресуемые пользователем сектора, есть ценность1953525168[lba], что меньше, чем один PE больше, чем размер комбинированных PE PV. Это заставляет меня думать, что это значение, которое видит 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 не создавал физические тома, размер которых превышает пространство, к которому устройство-картограф желает/может получить доступ?

решение1

Ключевая проблема здесь — ваше Free PEзначение. Обратите внимание, как там говорится, что только 100 экстентов свободны? Это значит, что вы не сможете расширить его. Если вы выполните vgscan, pvscan, а затем vgdisplay (также vgs), вы, вероятно, увидите, что ваше устройство уже является частью vg (и, вероятно, lv(s) тоже), поэтому экстенты не свободны.

Не могли бы вы предоставить вывод:

vgscan;pvscan;vgdisplay;vgs

Вы сможете получить дополнительно 400 МБ в зависимости от размера ваших экстентов и количества свободных.

Связанный контент