Страницы

Сохранить статью у себя в соцсети:

четверг, 18 июля 2013 г.

§ LVM: too many metadata areas for pvresize

LVM: too many metadata areas for pvresize.

Еще один случай из будней администратора. Увеличив размер блочного устройства виртуальной машины обнаружил что при увеличении размера внутри машины, LVM отказывается расширять PV, выбрасывая сообщение "too many metadata areas for pvresize".
Это сообщение говорит о том что pvresize не знает что делать с метаданными в конце устройства. Ниже описывается вариант как расширить PV том, однако такой способ предполагает остановку и деактивацию VG. Также предупреждаю что есть риск порчи или потери данных. Действуйте на свой страх и риск.
Собственно само сообщение
# pvresize /dev/vdb
  /dev/vdb: too many metadata areas for pvresize
  0 physical volume(s) resized / 1 physical volume(s) not resized

Приступаем! Сначала сделаем бэкап кофнигурации группы томов
# vgcfgbackup -v -f /etc/lvm/archive/pg-before-pvresize-071720131844 pg
    Using volume group(s) on command line
    Finding volume group "pg"
    Creating volume group backup "/etc/lvm/archive/pg-before-pvresize-071720131844" (seqno 6).
  Volume group "pg" successfully backed up.

Останавливаем сервисы которые используют этот том, демонтируем его и отключаем тома в группе которой принадлежит PV том.
# umount /dev/pg/pgdb
# vgchange -an pg

Теперь нужно создать наш PV с новыми параметрами --metadatacopies 1. Также явно указываем UUID, его можно взять в файле бэкапа /etc/lvm/archive/pg-before-pvresize-071720131844 в секции которая описывает PV том (physical_volumes -> pv0). 
# pvcreate -ff --metadatacopies 1 --restorefile /etc/lvm/archive/pg-before-pvresize-071720131844 --uuid 31H0NS-ecT2-vqVh-9017-XaH3-vqrx-zC97FB /dev/vdb
Really INITIALIZE physical volume "/dev/vdb" of volume group "pg" [y/n]? y
  WARNING: Forcing physical volume creation on /dev/vdb of volume group "pg"
  Physical volume "/dev/vdb" successfully created

Теперь восстанавливаем нашу конфигурацию группы томов с последуюшим pvresize
# vgcfgrestore -vf /etc/lvm/archive/pg-before-pvresize-071720131844 pg
  Restored volume group pg
# pvresize /dev/vdb
  Physical volume "/dev/vdb" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized

Смотрим на результат, размер тома PV должен измениться в большую сторону.
# pvs
  PV         VG      Fmt  Attr PSize   PFree 
  /dev/vda   storage lvm2 a-    20.00g 14.00g
  /dev/vdb   pg      lvm2 a-   180.00g 70.00g

Теперь можно включить группу томов и смонтировать раздел обратно
# vgchange -ay pg
  1 logical volume(s) in volume group "pg" now active
# mount /dev/pg/pgdb 

На этом все.
На главную "Virtualizing Linux"

2 комментария:

  1. Помню. Было такое.

    Раньше даже разделы создавали с одной копией --pvmetadatacopies=1

    Решение может быть гораздо проще, менее опаснее и без даунтайма.

    иногда посматриваю WHATS_NEW при обновлениях.
    Когда-то давно заметил там эту радостные строки.

    Version 2.02.85 - 29th April 2011
    Allow pvresize on a PV with two metadata areas.

    Сам LVM работает в userspace (не путать с device-mapper), соответственно, простое обновление пакета до 2.02.85+ решит все проблемы без перезагрузок.

    ОтветитьУдалить

Популярные сообщения

Профиль в Google+ Яндекс цитирования Яндекс.Метрика