Восстановление работоспособности LVM2

Cent OS, Scientific Linux

Модераторы: broom, Модераторы разделов

demetrius2003
Сообщения: 50

Восстановление работоспособности LVM2

Сообщение demetrius2003 » 09.05.2016 16:06

Краткая история: машина с Fedora 16 и LVM2. Захотелось вдруг использовать чуть больше места на винте. Отключил винт. Подсоединил к другой машине с Ubuntu и при помощи system-config-lvm чуть отодвинул границу LVM раздела. Прога подумала-подумала да и вывалилась с ошибкой. Теперь LVM2 мёртв. LV status - suspended. Раздел не монтируется. Рецепты с нета не помогают. Какие действия можно предпринять для реанимирования LVM2?

pvscan:

Код: Выделить всё

  PV /dev/sdb3   VG VolGroup   lvm2 [31,22 GiB / 0    free]
  Total: 1 [31,22 GiB] / in use: 1 [31,22 GiB] / in no VG: 0 [0   ]

lvscan:

Код: Выделить всё

  ACTIVE            '/dev/VolGroup/lv_swap' [1,97 GiB] inherit
  ACTIVE            '/dev/VolGroup/lv_root' [29,25 GiB] inherit

vgchange -ay:

Код: Выделить всё

  device-mapper: resume ioctl failed: Недопустимый аргумент
  Unable to resume VolGroup-lv_root (252:1)
  2 logical volume(s) in volume group "VolGroup" now active

lvdisplay:

Код: Выделить всё

  --- Logical volume ---
  LV Name                /dev/VolGroup/lv_swap
  VG Name                VolGroup
  LV UUID                hSHEVD-ywN0-BGI5-KyHh-0Qp6-C4Ee-O1TOug
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                1,97 GiB
  Current LE             63
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

  --- Logical volume ---
  LV Name                /dev/VolGroup/lv_root
  VG Name                VolGroup
  LV UUID                zITkjT-hol9-fMlr-M4V5-FKBk-t9Jr-qox50Y
  LV Write Access        read/write
  LV Status              suspended
  # open                 0
  LV Size                29,25 GiB
  Current LE             936
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1
Спасибо сказали:

demetrius2003
Сообщения: 50

Re: Восстановление работоспособности LVM2

Сообщение demetrius2003 » 09.05.2016 19:20

Дополнение:
gdisk:

Код: Выделить всё

Partition number (1-3): 3
Partition GUID code: E6D6D379-F507-44C2-A23C-238F2A3DF928 (Linux LVM)
Partition unique GUID: EEE90D4D-3A09-42A9-948B-7518398BA473
First sector: 1028096 (at 502.0 MiB)
Last sector: 33552383 (at 16.0 GiB)
Partition size: 32524288 sectors (15.5 GiB)
Attribute flags: 0000000000000000
Partition name: ''

dmesg:

Код: Выделить всё

device-mapper: table: 252:1: sdb3 too small for target: start=4130816, len=32571392, dev_size=32524288

Т. е. я так понимаю (с учётом того, что gdisk прав), девице-маппер чёта не то берёт? Но откуда?
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15761
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Восстановление работоспособности LVM2

Сообщение Bizdelnick » 09.05.2016 20:00

Покажите полный вывод gdisk -l /dev/sdb, а заодно fdisk -l /dev/sdb и blkid.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

demetrius2003
Сообщения: 50

Re: Восстановление работоспособности LVM2

Сообщение demetrius2003 » 09.05.2016 20:05

gdisk -l /dev/sdb:

Код: Выделить всё

GPT fdisk (gdisk) version 0.8.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sdb: 65536000 sectors, 31.2 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 7E99E5ED-C93A-4E54-9FC0-1A3021CD4298
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 65535966
Partitions will be aligned on 2048-sector boundaries
Total free space is 31985597 sectors (15.3 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048            4095   1024.0 KiB  EF02
   2            4096         1028095   500.0 MiB   EF00  ext4
   3         1028096        33552383   15.5 GiB    8E00

fdisk -l /dev/sdb:

Код: Выделить всё

ВНИМАНИЕ: На '/dev/sdb' обнаружена GPT (GUID Partition Table)! Утилита fdisk не поддерживаетGPT. Используйте GNU Parted.


Диск /dev/sdb: 33.6 Гб, 33554432000 байт
256 головок, 63 секторов/треков, 4063 цилиндров, всего 65536000 секторов
Units = секторы of 1 * 512 = 512 bytes
Размер сектора (логического/физического): 512 байт / 512 байт
I/O size (minimum/optimal): 512 bytes / 512 bytes
Идентификатор диска: 0x00000000

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sdb1               1    65535999    32767999+  ee  GPT

blkid:

Код: Выделить всё

/dev/sda1: UUID="6e11e115-6a84-46d6-9059-0f06ae448a02" TYPE="ext4"
/dev/sda5: UUID="c31bec9c-1a89-487e-998a-99c8decefc13" TYPE="swap"
/dev/sdb2: UUID="ba980535-4b95-4862-a792-dfea995c6e41" TYPE="ext4"
/dev/sdb3: UUID="pXoQNR-JOQU-35hY-zFvs-L9ZB-1xKT-zi2w3b" TYPE="LVM2_member"
/dev/mapper/VolGroup-lv_swap: UUID="c66032b5-ceb9-4d64-a517-a9b6328c3392" TYPE="swap"
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15761
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Восстановление работоспособности LVM2

Сообщение Bizdelnick » 09.05.2016 20:31

То есть раздел имеет размер 15.5 ГиБ, но соответствующий ему PV — якобы 31.22 ГиБ? Занятно. device-mapper, в общем-то, на это и ругается.
Я так понимаю, изначальный размер — 15.5 ГиБ? Если так, то не удастся ли вернуть исходный размер при посредстве pvresize /dev/sdb3? По идее это должно быть безопасно: если возможна потеря данных, команда просто завершится, ничего не сделав. Но по идее и такой ситуации, как у Вас, не должно было возникнуть.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

demetrius2003
Сообщения: 50

Re: Восстановление работоспособности LVM2

Сообщение demetrius2003 » 10.05.2016 17:31

pvresize /dev/sdb3:

Код: Выделить всё

  /dev/sdb3: cannot resize to 496 extents as 560 are allocated.
  0 physical volume(s) resized / 1 physical volume(s) not resized

dmsetup table:

Код: Выделить всё

VolGroup-lv_swap: 0 4128768 linear 8:19 2048
VolGroup-lv_root:

Странно! Почему у свопа такие адреса? Что такое 8:19 и 2048? Почему у рута вообще никаких параметров нет? Может прописать вручную?
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15761
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Восстановление работоспособности LVM2

Сообщение Bizdelnick » 10.05.2016 17:45

Раз так, остаётся увеличить раздел до размера тома (то есть, видимо, до конца диска). В gdisk это означает, что надо удалить раздел и создать новый с тем же номером, типом и GUID, начинающийся в том же месте, но заканчивающийся в конце диска.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

demetrius2003
Сообщения: 50

Re: Восстановление работоспособности LVM2

Сообщение demetrius2003 » 11.05.2016 14:30

А разве после gdisk файловая таблица жива останется?
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15761
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Восстановление работоспособности LVM2

Сообщение Bizdelnick » 11.05.2016 14:42

gdisk (как и fdisk) вообще ничего не делает с самими разделами, только с таблицей разделов. Да и её он перепишет один-единственный раз, после того как Вы дадите команду w. Выполнение двух отдельных операций — просто особенность этой утилиты, в ней (опять-таки как в fdisk) нет команды для изменения размера раздела.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

demetrius2003
Сообщения: 50

Re: Восстановление работоспособности LVM2

Сообщение demetrius2003 » 11.05.2016 15:19

Вроде взлетело! Удалил 3 раздел при помощи gdisk и создал заново (все параметры оставлял по умолчанию, т. е. раздел теперь "на всю" развернулся, как я и хотел!). Загрузка пошла. Там правда куча косяков вылазит, но это уже совсем другая история! Спасибо Вам огромное за помощь! Вообще с LVM сталкивался несколько раз и создалось такое впечатление, что штука эта шибко замороченная и не шибко надёжная! Нафига она на десктопе по умолчанию?
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15761
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Восстановление работоспособности LVM2

Сообщение Bizdelnick » 11.05.2016 15:44

demetrius2003 писал(а):
11.05.2016 15:19
с LVM сталкивался несколько раз и создалось такое впечатление, что штука эта шибко замороченная и не шибко надёжная!

Напрасно Вы сделали такой вывод. Это видимо system-config-lvm кривой, раз умудрился такое сотворить. А сам lvm и его родные консольные утилиты работают отлично. Хотя да, он далеко не всегда нужен.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
s.xbatob
Сообщения: 792
ОС: Fedora

Re: Восстановление работоспособности LVM2

Сообщение s.xbatob » 11.05.2016 17:16

demetrius2003 писал(а):
11.05.2016 15:19
Вообще с LVM сталкивался несколько раз и создалось такое впечатление, что штука эта шибко замороченная и не шибко надёжная! Нафига она на десктопе по умолчанию?

Эта система весьма несгибаемая, и сломать её непросто (правда, у вас получилось :) ) А преимущество вы поймёте, когда будете перераспределять место (только для этого крайне желательно оставлять в VG нераспределённый запас, что инсталляторы почему-то не делают) , и - особенно - когда будете переезжать на новый диск.
Спасибо сказали:

Kopilov
Сообщения: 655
ОС: Gentoo, Debian

Re: Восстановление работоспособности LVM2

Сообщение Kopilov » 11.05.2016 20:33

s.xbatob писал(а):
11.05.2016 17:16
Эта система весьма несгибаемая, и сломать её непросто

Режим зануды: не согласен с первым пунктом!
Эта система очень гибкая, и сломать её непросто. Она гнётся вместо того, чтобы ломаться :)
Спасибо сказали: