Восстановление удаленных lvm
Если случайно был удален том lvm (или специально, но потом понадобилось восстановление) — механизм резервного копирования метаданных vloume group может спасти ситуацию.
Настройка архивирования находится в /etc/lvm/lvm.conf в секции backup.
По умолчанию (в debian) архивирование включено, папка для архивов — /etc/lvm/archive и содержит архивы изменения vg за 30 дней.
Посмотреть чего менялось можно командой vgcfgrestore -l VG
Здесь видно имя файла архива и команда, перед (или иногда после) которой архивирование метаданных VG было выполнено.
В данном случае были удалены некоторые LV и после них создан новый.
Чтобы узнать, попал новый LV поверх старых (тогда естественно данные будут перезаписаны, зависит от количества записей в новый LV) надо посмотреть в архиве до удаления параметры extent_count и stripes нужного LV. stripes это номер начала блока на PV, extent_count — количество.
LV может состоять из нескольких сегментов, в каждом будет свой набор extent_count и stripes.
Потом посмотреть эти же параметры нового LV, но в архиве поcле создания нового LV.
Если эти регионы не пересеклись — значит новый LV создался в другом месте, чем удаленные LV.
Восстановить метаданные просто —
это откатит все изменения с текущего момента до нужного архива, предшествующего указанной в vgcfgrestore -l команде.
Дальше остается только активировать восстановленные LV командой
и впредь не попадать в такие ситуации.
Настройка архивирования находится в /etc/lvm/lvm.conf в секции backup.
По умолчанию (в debian) архивирование включено, папка для архивов — /etc/lvm/archive и содержит архивы изменения vg за 30 дней.
Посмотреть чего менялось можно командой vgcfgrestore -l VG
#vgcfgrestore -l VG
..... skipped .....
File: /etc/lvm/archive/VG_00390.vg
VG name: VG
Description: Created *before* executing 'lvremove /dev/VG/lv_name_1'
Backup Time: Mon Oct 15 16:22:50 2012
File: /etc/lvm/archive/VG_00391.vg
VG name: VG
Description: Created *before* executing 'lvremove /dev/VG/lv_name_2'
Backup Time: Mon Oct 15 16:22:55 2012
File: /etc/lvm/archive/VG_00392.vg
VG name: VG
Description: Created *before* executing 'lvremove /dev/VG/lv_name_3'
Backup Time: Mon Oct 15 16:23:18 2012
File: /etc/lvm/archive/VG_00393.vg
VG name: VG
Description: Created *before* executing 'lvremove /dev/VG/lv_name_4'
Backup Time: Mon Oct 15 16:23:20 2012
File: /etc/lvm/archive/VG_00394.vg
VG name: VG
Description: Created *before* executing 'lvcreate -L20g -nsome_new_lv VG'
Backup Time: Tue Oct 16 00:32:40 2012
Здесь видно имя файла архива и команда, перед (или иногда после) которой архивирование метаданных VG было выполнено.
В данном случае были удалены некоторые LV и после них создан новый.
Чтобы узнать, попал новый LV поверх старых (тогда естественно данные будут перезаписаны, зависит от количества записей в новый LV) надо посмотреть в архиве до удаления параметры extent_count и stripes нужного LV. stripes это номер начала блока на PV, extent_count — количество.
LV может состоять из нескольких сегментов, в каждом будет свой набор extent_count и stripes.
Потом посмотреть эти же параметры нового LV, но в архиве поcле создания нового LV.
Если эти регионы не пересеклись — значит новый LV создался в другом месте, чем удаленные LV.
Восстановить метаданные просто —
vgcfgrestore -f /etc/lvm/archive/VG_00390.vg VG
это откатит все изменения с текущего момента до нужного архива, предшествующего указанной в vgcfgrestore -l команде.
Дальше остается только активировать восстановленные LV командой
lvchange -a y /dev/VG/lv_name
и впредь не попадать в такие ситуации.
- 0
- 16 октября 2012, 11:36
- admin
- Оставить комментарий