После расширения аппаратного RAID-массива fdisk не позволит мне использовать дополнительные доступные сектора

10

У нас есть большой аппаратный рейд-массив ~ 18 ТБ на Dell R720xd. В настоящее время массив RAID5 состоит из 6x4 ТБ, и мне нужно было его расширить.

Шаг 1 разверните аппаратный массив raid.

Достаточно просто, если у вас установлены инструменты администрирования Dell.

omconfig storage vdisk action=reconfigure controller=0 vdisk=1 raid=r5 pdisk=0:1:0,0:1:1,0:1:3,0:1:3,0:1:4,0:1:5,0:1:8,0:1:9

(новые диски были последними двумя, что можно подтвердить с помощью omreportинструмента). Все прошло хорошо, хотя и заняло некоторое время, и я смог подтвердить, что массив был расширен.

% omreport storage vdisk controller=0 vdisk=1

Virtual Disk 1 on Controller PERC H710P Mini (Embedded)

Controller PERC H710P Mini (Embedded)
ID                                : 1
Status                            : Ok
Name                              : bak
State                             : Ready
Hot Spare Policy violated         : Not Assigned
Encrypted                         : No
Layout                            : RAID-5
Size                              : 26,078.50 GB (28001576157184 bytes)
...
Device Name                       : /dev/sdb
...

Шаг 2 новый раздел

Таким образом, теперь виртуальный диск сообщает об увеличенном размере (26 ТБ). и fdiskсогласен ...

Disk /dev/sdb: 25.5 TiB, 28001576157184 bytes, 54690578432 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A2D20632-37D1-4607-9AA0-B0ED6E457F91

Device     Start         End     Sectors  Size Type
/dev/sdb1   2048 39064698846 39064696799 18.2T Linux LVM

Однако, когда я иду, чтобы добавить дополнительный раздел на диск, происходит следующее ...

Command (m for help): n
Partition number (2-128, default 2): 2
First sector (34-2047): 

Теперь у меня на диске около 16 миллиардов секторов, но я не могу их использовать. Мне только предлагают Секторы 34-2047. Я не могу выделить 8 ТБ нового пространства, хотя в данный момент у меня всего один раздел.

Еще одна вещь, которая показалась мне странной, заключалась в том, что мне предложили номера разделов 2-128, а не просто 2-4. Таблица разделов не показывает никаких расширенных разделов, поэтому я ожидал, что изначально я ограничу только 4 разделами.

Есть ли что-то, что я пропускаю?

  • Машина была перезагружена после расширения дискового массива. До этого fdisk сообщал только о оригинальных 18TB
  • Попытка cfdiskвместо этого только отчеты 2015 секторов , доступных в диапазоне 39 млрд , несмотря на сообщение 25TB в целом.
  • Мы не хотим удалять и заново создавать раздел, если мы можем избежать этого, поскольку мы можем потерять все данные. Мы предпочитаем просто расширить группу томов LVM, когда новый раздел будет готов.
  • Эта проблема похожа на вопрос о другом сбое сервера , но я не ограничен исчерпанием разделов, и я не думаю, что я ограничен расширенным разделом.
  • Его размер не расширяется за счет расширения диска . Я бы подумал, что если бы fdisk не сообщил об увеличении числа секторов. Плюс pvsи vgsне сообщают ни о каком дополнительном нераспределенном пространстве под LVM
  • Я запускал это как пробный запуск на виртуальной машине и не испытывал этого. Однако я закрывал виртуальную машину и увеличивал размер ее дискового устройства. Так что не было онлайн во время увеличения размера. Плюс размеры дисков были на много порядков меньше для виртуальной машины.

Обновление 1 'x'pert mode output, запрошенное Micheal ...

Command (m for help): x

Expert command (m for help): p
Disk /dev/sdb: 25.5 TiB, 28001576157184 bytes, 54690578432 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A2D20632-37D1-4607-9AA0-B0ED6E457F91
First LBA: 34
Last LBA: 39064698846
Alternative LBA: 39064698879
Partitions entries LBA: 2
Allocated partition entries: 128

Device     Start         End     Sectors Type-UUID                            UUID                                 Name      Attrs
/dev/sdb1   2048 39064698846 39064696799 E6D6D379-F507-44C2-A23C-238F2A3DF928 E9CB58BF-F170-4480-A230-6E2A238367D1 Linux LVM 


Expert command (m for help): v
MyLBA mismatch with real position at backup header.
1 error detected.

Так возможная ошибка LBA?

Vagnerr
источник
2
В fdiskпожалуйста , перейдите в электронном xрежим задорно, затем pРинт таблицы разделов снова, а затем verify его.
Майкл Хэмптон
Кто-то исправил fdisk для поддержки GPT? В прошлый раз, когда я попробовал его на GPT-накопителе, он дал мне предупреждение, что я действительно должен использовать gnu parted, но это было давно.
DerfK
Да, современные версии fdisk могут работать с GPT.
шпульницы
Я предполагаю, что по GPT мне предложили 2-128 в качестве количества разделов вместо того, чтобы быть ограниченным 4 разделами. это правильно?
Вагнерр
@Vagnerr да, GPT поддерживает больше разделов, чем старая схема MBR.
DerfK

Ответы:

6

Проблема была в расположении резервной таблицы разделов. Обычно вы ожидаете первичную таблицу разделов в начале и резервную таблицу разделов в конце. Изменение размера диска сделало доступным больше секторов, но никогда не перемещало таблицу резервных копий. fdisk не понравилось это, и я считаю, что это было MyLBA mismatch with real position at backup header.сообщение об ошибке. Не совсем понятно.

Я переключился с fdiskна, gdiskи результат был немного другим. В gdisk у вас есть ...

r       recovery and transformation options (experts only)

При vвходе в это и запуск erify дал более полезное сообщение об ошибке ...

Recovery/transformation command (? for help): v

Problem: The secondary header's self-pointer indicates that it doesn't reside
at the end of the disk. If you've added a disk to a RAID array, use the 'e'
option on the experts' menu to adjust the secondary header's and partition
table's locations.

Identified 1 problems!

В gdiskэкспертном режиме есть следующая опция ...

e       relocate backup data structures to the end of the disk

... успешно выполнено, и вывод проверки был теперь ...

Expert command (? for help): v

No problems found. 15625881566 free sectors (7.3 TiB) available in 2
segments, the largest of which is 15625879552 (7.3 TiB) in size.

Печать таблицы разделов теперь показала последний пригодный для использования сектор как 56 миллиардов, а не 39 миллиардов, и я смог создать новый раздел и добавить его в LVM, который, если кому-то интересно, были предприняты шаги для этого ...

partprobe           <-- add the /dev/sdb2 device if you don't want to reboot 
pvcreate /dev/sdb2
vgextend bak /dev/sdb2
lvextend /dev/mapper/bak-bak -l 100%PVS -r
Vagnerr
источник
Чтобы уточнить, чтобы избежать необходимости перезагрузки после перемещения резервных структур данных, вы запустили partprobe? Кроме того, этот пост спасает жизнь . Спасибо за помощь.
Поворотная
@Swivel Это правильно. Без запуска partprob или перезагрузки устройство sdb2 не будет создано в каталоге / dev, и это необходимо для выполнения следующих команд lvm. Я рад, что пост помог вам :-)
Vagnerr
2

Ключ к этому снафу:

Last LBA: 39064698846

Ваша метка GPT не отражает средний размер, который изменился. fdiskвыполняет поиск свободного места способом, который не идеален, но, по крайней мере, логичен - он ищет первый доступный сектор в наибольшем доступном пространстве между первым и последним LBA GPT Label .

Одним из способов обойти это может быть использование, sfdiskчтобы сбросить метку, отредактировать ее соответственно вашему среднему размеру и записать обратно, или лучше использовать parted, чтобы решить эту проблему IMO.

Петр Жабин
источник