lvreduce слишком много. Я могу восстановить это?

Я пытался вынуть жесткий диск из многочисленной группы LVM, состоящей из 5 дисков. Это имело файловую систему на 5.5 ТБ (ext4). LV составлял 7.5 ТБ. Я хотел уменьшить LV на 1.82 ТиБ так, чтобы я затем мог уменьшить VG и pvmove диск от группы.

Я сделал следующее:
fsck -f (passed)
lvreduce -L 1.82T /dev/mapper/my_storage_vg-storage_lv

это производит предупреждение:

Rounding up size to full physical extent 1.82 TiB
  WARNING: Reducing active logical volume to 1.82 TiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce storage_lv? [y/n]:

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

ОДНАКО Вы, возможно, заметили, что я забыл знак "минус" относительно 1.82T, таким образом, вместо того, чтобы уменьшить его 1.82T, я вместо этого уменьшил его до 1.82T!!
Моя следующая команда была fsck, который перестал работать, и я сказал "нет" любым восстановлениям, сразу видя ошибку.
Следующая команда, которую я попробовал, была:
lvextend -l +100%FREE /dev/mapper/my_storage_vg-storage_lv

Это восстановило размер LV.

Я затем попробовал
fsck- f
но на этот раз fsck перестал работать, после того как это добралось до растровых различий в блоке.

Я подозреваю, что команда lvextend отложила блоки в, в другом порядке затем они были в том, когда они были удалены, по существу скремблируя файловую систему.

Это звучит корректным, и раз так что я могу сделать для восстанавливания ext4 файловой системы? Что-нибудь вообще?

Вся справка значительно ценится...


Приложение: Я сделал a pvscan в более ранней точке в процессе:

PV /dev/sdf1   VG my_storage_vg   lvm2 [1.82 TiB / 0    free]
PV /dev/sda1   VG my_storage_vg   lvm2 [1.82 TiB / 0    free]
PV /dev/sde1   VG my_storage_vg   lvm2 [1.82 TiB / 0    free]
PV /dev/sdc1   VG my_storage_vg   lvm2 [1.36 TiB / 0    free]
PV /dev/sdd1   VG my_storage_vg   lvm2 [698.63 GiB / 698.63 GiB free]

Я подозреваю, что это - порядок, что диски были добавлены к vg первоначально (возможно, не уверенный). Я рассматриваю приведение в нерабочее состояние LV и VG к 0 размерам, затем добавляя в дисках по одному

vgextend /dev/sda1
lvextend sda1
vg extend sde1
lvextend sde1
etc...

Существует ли лучший способ сделать это?


Еще лучше:

lvreduce -l 0 /dev/mapper/my_storage_vg-storage_lv
lvextend /dev/mapper/my_storage_vg-storage_lv /dev/sdf1
lvextend /dev/mapper/my_storage_vg-storage_lv /dev/sda1
lvextend /dev/mapper/my_storage_vg-storage_lv /dev/sde1
lvextend /dev/mapper/my_storage_vg-storage_lv /dev/sdc1
fsck -f /dev/mapper/my_storage_vg-storage_lv
1
задан 20 September 2013 в 11:59

1 ответ

Вы не можете расширить LV и надеяться на правильное расположение случайно. Используйте vgcfgrestore (я позволю вам прочитать руководство), чтобы восстановить конфигурацию до вашего lvreduce. Не mount или fsck ничего.

0
ответ дан 20 September 2013 в 11:59

Другие вопросы по тегам:

Похожие вопросы: