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

У меня есть накопитель на 1 ТБ, подключенный через USB. Он содержит физический том LVM , заполняющий все устройство (без таблицы разделов). Когда я пытался расширить логический том с помощью всего PV, device-mapper начал жаловаться, что раздел, выделенный LVM на PV, больше, чем устройство. Сообщение об ошибке из устройства-mapper (как показано 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 МБ больше):

$ 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 на устройстве, я могу увидеть два значения для размера устройства. В geometry есть такое же значение, которое сообщается устройством-mapper как размер устройства. Но в адресных секторах LBA48 есть значение 1953525168 [lba], которое меньше одного PE, большего чем размер комбайнов 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, которые больше, чем пространство, к которому может обратиться или способ доступа к устройству?
13 голосов | спросил Feuermurmel 29 J0000006Europe/Moscow 2014, 00:23:12

1 ответ


1

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

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

vgscan;pvscan;vgdisplay;vgs

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

ответил Khrystoph 9 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 09 Sep 2015 20:31:26 +0300 2015, 20:31:26

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132