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

13

У меня есть диск 1 ТБ, подключенный через USB. Он содержит физический том LVM, заполняющий все устройство (без таблицы разделов). Когда я попытался расширить логический том , используя весь PV, устройство отображения устройств начало жаловаться, что раздел, выделенный LVM на PV, больше, чем устройство. Сообщение об ошибке от устройства отображения (как показано 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на устройстве, я вижу два значения для размера устройства. Под геометрией есть то же значение, которое сообщается устройством отображения, как размер устройства. Но в секторах , адресуемых пользователем 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 не создавал PV больше, чем пространство, к которому устройство / устройство доступа может / может получить доступ?
Feuermurmel
источник
Какую команду вы выполняете при расширении? Головам LVM обычно выделяется 2 МБ, что соответствует размеру вашего расхождения.
Братчли
7
Меньший размер, о котором сообщается, hdparmявляется наибольшим числом, кратным 255 * 63 секторам, и меньше фактического размера. Это ограничение связано с форматом цилиндра / головки / сектора из 30-летнего интерфейса BIOS. Более новый интерфейс LBA48 может сообщить размер вашего диска просто отлично. Я понятия не имею, почему Linux использует размер CHS для чего-либо.
Жиль "ТАК ... перестать быть злым"
Я обозначил различные значения в квадратных скобках, чтобы легко ссылаться на них.
Feuermurmel
1
@JoelDavis Я расширил VG, используя равнину vgextend <vg-name> /dev/sdf. LVM делает именно то, что я ожидаю. pvdisplayдаже говорит, что 1.71 MiB - непривычно, что в точности соответствует разнице между [lvm] и [lba].
Feuermurmel
2
@Feuermurmel, пожалуйста, отредактируйте свой вопрос, чтобы предоставить дополнительную информацию - не используйте комментарии.
Гюнтберт

Ответы:

1

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

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

vgscan;pvscan;vgdisplay;vgs

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

Khrystoph
источник
Да, у этого PV уже есть 238367 PE, выделенных для LV. Эти 100 расширений бесплатны, потому что я сократил LV после того, как маппер устройств пожаловался на то, что отображение, запрошенное LVM, находится вне диапазона. Моя проблема в том, что PV, созданный LVM, на самом деле больше, чем физический диск. Этот диск больше не является частью системы, поэтому я не могу предоставить запрошенный вами вывод.
Feuermurmel