Я пытаюсь увеличить размер PE одной из моих групп томов.
Я по ошибке установил 4М для запуска, хотя должно было быть 32М.
Когда я пытаюсь изменить размер, я получаю
vgchange -s 32M the_vol
New extent size is not a perfect fit
vgdisplay говорит:
vgdisplay
--- Volume group ---
VG Name the_vol
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 173
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 43
Open LV 41
Max PV 0
Cur PV 1
Act PV 1
VG Size 864.25 GiB
PE Size 4.00 MiB
Total PE 221247
Alloc PE / Size 103680 / 405.00 GiB
Free PE / Size 117567 / 459.25 GiB
VG UUID uh25Y8-TOWR-pqBj-NyPV-ca6t-ec1k-jlqm4g
Могу ли я что-нибудь сделать, чтобы получить это изменение до 32, не воссоздавая его / не удаляя данные?
Или приближается к 32.
Спасибо
Ты можешь использовать pvmove
для перемещения выделенных физических экстентов на физическом томе (ах). Любые логические тома должны начинаться и заканчиваться на границах экстентов (увеличиваться с lvresize
). Размер базового физического тома, вероятно, также должен быть точно кратным новому размеру экстента (исправьте это с помощью pvresize
).
Как упоминалось в ответ суперпользователя на связанный вопрос вы можете использовать что-то вроде этого:
pvmove --alloc anywhere /dev/sdc1:103680-221247 /dev/sdc1:0-103679
переместить экстенты 103680-221247
к 0-103679
на физическом объеме /dev/sdc1
. Возможно, вам придется перемещать сегменты по шагам. Использовать pvdisplay --maps /dev/sdc1
чтобы показать, какие экстенты выделены на физическом томе /dev/sdc1
.
Обратите внимание, что размер экстента не должен влиять на производительность ввода-вывода (на LVM2), это должно влиять только на производительность самих инструментов LVM и максимальные размеры компонентов LVM.
Вы можете изменить размер физического экстента группы томов только в том случае, если для завершения изменения не нужно перемещать существующие физические экстенты. В противном случае вы получите сообщение об ошибке, указанное выше.
Единственный другой вариант - воссоздать группу томов правильного размера.
Цитата из справочной страницы:
После того, как это значение установлено, его трудно изменить без повторного создания группы томов, что потребовало бы резервного копирования и восстановления данных на любых логических томах. Однако, если для применения нового значения не нужно перемещать экстенты, его можно изменить с помощью vgchange -s.
Можно, но сложно. Если у вас есть возможность, воссоздание VG - гораздо лучший вариант.
Однако это был не вариант для меня, поэтому вот как я изменил размер PE с 4 МБ до 32 МБ.
pvresize /dev/sdb --setphysicalvolumesize 3778436m
lvresize
, то есть: lvresize /dev/libvirtstorage/debian-8.7.1-amd64-netinst.iso --size 256
vgchange -s 32m the_vol
Весь этот процесс может быть выполнен без простоев, при этом вся VG продолжает работать.
Еще одна проблема, на которую следует обратить внимание: остерегайтесь разницы между 32m
и 32M
, Команды LVM интерпретируют нижний регистр m
как MiB и верхний регистр M как MB.