Рейтинг:1

Уменьшение lvmgroup - невозможно изменить размер до экстентов xxxx, так как выделяются более поздние

флаг cn

Я проходил через процесс уменьшения размера образа Centos 6.10 за счет уменьшения lvmgroup. Я нахожусь в том месте, где мне удалось запустить эту команду:

pvresize -tv --setphysicalvolumesize 1600G /dev/md125p2

И это дает мне следующее сообщение об ошибке:

 /dev/md125p2: нельзя изменить размер до 409599 экстентов, поскольку выделяются более поздние.

Я пытаюсь понять, как создать команду pvmove, чтобы избавиться от ошибки, но не совсем понимаю концепцию.

Вот вывод этой команды pvs -v --сегменты /dev/md125p

  PV VG Fmt Attr PSize PFree Start SSize LV Start Type PE Ranges                 
  /dev/md125p2 vg_centos6svr lvm2 a--u 1.86t 320.11g 0 384000 lv_mysql 0 линейный /dev/md125p2:0-383999     
  /dev/md125p2 vg_centos6svr lvm2 a--u 1.86t 320.11g 384000 81947 0 бесплатно                             
  /dev/md125p2 vg_centos6svr lvm2 a--u 1.86t 320.11g 465947 12800 lv_root 0 линейный /dev/md125p2:465947-478746
  /dev/md125p2 vg_centos6svr lvm2 a--u 1.86t 320.11g 478747 1998 lv_swap 0 линейный /dev/md125p2:478747-480744
  /dev/md125p2 vg_centos6svr lvm2 a--u 1.86t 320.11g 480745 7500 lv_home 0 линейный /dev/md125p2:480745-488244

Я знаю, что команда перемещения должна выглядеть примерно так:

pvmove --alloc в любом месте /dev/md125p2 vg_centos6svr:yyyy-end

Я просто не понимаю, как рассчитать часть yyyy-end. Я полагаю, это означает перемещение 81947 (блоков?), которые начинаются с 384000, но что такое «гггг» и «конец»?

John Mahowald avatar
флаг cn
В комментариях вы говорите, что размер не меньше после выполнения pvmoves. Пожалуйста, отредактируйте свой вопрос, добавив еще один `pvs -v --segments` плюс размер массива, возможно, из `mdadm --detail`
Рейтинг:1
флаг cn

Уменьшение PV требует перемещения экстентов на свободное место перед желаемым размером. В вашем случае экстенты ниже 409599.

Во-первых, протестируйте восстановление из резервной копии, чтобы убедиться, что при необходимости данные можно восстановить.

lvremove тома вам не нужны.

пвмов позволяет указывать экстенты по имени LV, а место назначения по смещениям с нотацией +. При указании пункта назначения это должен быть PV, а не VG.

Переместите один LV в первый экстент в свободном пространстве. Смещение — это размер перемещаемого сегмента.

pvmove --alloc куда угодно -n lv_swap /dev/md125p2 /dev/md125p2:384000+1998

Получите новый макет сегмента с помощью pvs -v --сегменты еще раз. Повторите пвмов с другим LV и новым начальным экстентом свободного пространства.

Лично я предпочитаю виртуальные группы данных отдельно от виртуальных групп операционной системы. Но это ваше хранилище, раскладывайте его как хотите.

Рейтинг:1
флаг cn
dsz

Итак, я вижу, что все включено. /dev/md125p2 и мы хотим уменьшить размер этого PV.

Ваш вывод из pvs -v --сегменты /dev/md125p показать, что у вас очень много свободного места (Размер == 81947) после твоего lv_mysql и перед твоим lv_root. Это достаточно большой дом lv_root и все томов, которые следуют за ним в физическом макете.

Итак, первый набор цифр, который я бы предложил:

***# pvmove --alloc в любом месте /dev/md125p2:480745-488244 /dev/md125p2:384000+7499

то есть переместить всю lv_home в свободное пространство, начинающееся сразу после lv_mysql.

Затем повторно запустите pvs -v --сегменты /dev/md125p чтобы увидеть измененные числа, и переместите следующий блок на оставшееся свободное место.

Это эффективно дефрагментирует ваш PV.

В настоящее время, пвмов можно иметь путь больше вариантов, чем то, что я использую (может быть, указание PV вместо экстентов?), но то, с чем мне было удобно, это просто явно указывать блоки, поэтому все мои источники и цели имеют форму /dev/<dev>:<Начало>-<Конец> или же /dev/<dev>:<Start>+<SSize-1>.

Я подозреваю, что ваша проблема в основном заключалась в отсутствии экстентов вашей «исходной» спецификации.

Я видел несколько примеров их использования -конец - Я не знаю, если это то, что предполагаемый работать, но возникнет вопрос "конец какие?». Поэтому я избегаю этого и использую явные номера блоков. Вам просто нужно помнить, что + синтаксис плюс, и должно быть на единицу меньше, чем SSize.

Дополнительный

ОК, на стороне источника кажется, что вы можете сделать -имя lv_home /dev/md125p2 как сокращение для /dev/md125p2:480745-488244 - но учтите также, что это станет более сложным, если lh_home был фрагментирован на несколько экстентов (значит ли это «все фрагменты?») — я думаю, что все еще предпочитаю подход с числами. Обратите внимание, что ваш пример в вопросе не включить имя LV, так что я не уверен, что пвмов понял бы из того, что вы дали...

флаг cn
Работал! К сожалению, фактический размер диска остается прежним (я пытаюсь уменьшить физический размер образа для Clonezilla). Если у вас есть какие-либо идеи по этому поводу, дайте мне знать. Конфигурация рейда 0.
флаг cn
dsz
@JackBeNimble Вам все еще нужен `pvresize` в конце всей дефрагментации! Кроме того, недавние клонезиллы будут проникать во весь процесс LVM и записывать образ LV - если вы примените подход к разделению для сохранения образа. Я думаю, что это намного безопаснее, чем визуализация лежащих в основе PV. Похоже, что он также поддерживает файловую систему и поэтому сохраняет только используемые блоки. Я бы порекомендовал сжатие `pigz` сверху. Может быть, новый вопрос для этого? Я на самом деле подозреваю, что вам не нужна дефрагментация для clonezilla!
флаг cn
dsz — проблема в том, что у нас есть старый образ clonezilla, который больше не подходит для SSD, потому что каждый из них на 50 ГБ меньше. Я обошел это, сжав изображение с помощью приведенного выше упражнения, а затем восстановив его с возможностью игнорировать размер исходного диска. Тогда это сработало. Спасибо, что направили меня на правильный путь с помощью pvmove.
флаг cn
Вы можете проверить этот вопрос? https://serverfault.com/questions/1074461/centos-6-10-how-to-increase-allocated-pe-size-to-take-up-free-p-e-size

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.