답변:
LVM은 메타 데이터를 /etc/lvm/backup
및에 백업합니다 /etc/lvm/archive
. 각 파일의 맨 위에는 파일이 생성 된 시간 / 데이터가 표시되므로 LV를 삭제하기 전과 같이 이전 메타 데이터의 사본을 가질 수 있습니다. 메타 데이터가 변경 될 때마다 백업이 자동이라고 생각합니다.
다음은 위험 하고 파괴적 일 수 있으므로 매우주의하고 가능한 경우 전체 백업을 수행하십시오.
이러한 볼륨 그룹 메타 데이터 백업을 복원하는 명령은 vgcfgrestore
입니다. vgcfgbackup
/ etc / lvm / backup 또는 / etc에있는 파일을 변경하지 않도록 -f 플래그와 함께 명령을 사용하여 기존 작업 구성의 현재 사본 을 작성하여 출력에 다른 파일을 지정하십시오. / lvm / archive 폴더 현재 구성을 복원하려는 구성과 비교하여 적용하려는 변경 사항 만 최근에 삭제 된 LV를 다시 작성하는 것임을 확인하십시오. 데이터를 전체 백업하는 것은 나쁜 생각이 아닙니다. 내가 직접 할 필요가 없었기 때문에 계속 진행하기 전에 지원 계약을 체결 한 경우 Linux 공급 업체에 지원 /지도를 문의하는 것이 좋습니다.
행운을 빕니다.
"백업 파일에서 EFROM 및 ETO를 좀 더 구체적으로 찾을 수 있을까요? 모든 lv의 백업 파일에 0에서"start_extend "가 0이므로 조금 잃어 버렸습니다 :) 감사합니다! – user186975 Aug 24 '13 at 17 : 06 "
좋아, 논리 볼륨을 복구하는 가장 간단한 방법으로 매우 구체적입니다.
예:
1-논리 볼륨을 제거했습니다!
$ sudo lvremove /dev/vg1/debian.root
2-가장 먼저 할 일은 /etc/lvm/archive/vg1_(xxxxx).vg에서 아카이브 파일을 찾으십시오. 논리 볼륨을 제거한 날짜를 보면서 그렇게 할 수 있습니다!
$ sudo ls -l /etc/lvm/archive |more
3- 찾았어요!
-rw------- 1 root root 16255 Mar 20 14:29 vg1_00223-235991429.vg
-rw------- 1 root root 16665 Mar 20 16:49 vg1_00224-748876387.vg
-rw------- 1 root root 17074 Mar 20 16:49 vg1_00225-931666169.vg
-rw------- 1 root root 17482 Mar 20 16:50 vg1_00226-1238302012.vg
-rw------- 1 root root 18081 **Mar 20 21:57 vg1_00227-2048533959.vg**
내가 lvremove를 한 날짜 !!! ... 분 전 ..
4-파일을 보자!
$ sudo head /etc/lvm/archive/vg1_00227-2048533959.vg
*# Generated by LVM2 version 2.02.95(2) (2012-03-06): Thu Mar 20 21:57:58 2014
contents = "Text Format Volume Group"
version = 1
description = **"Created *before* executing 'lvremove /dev/vg1/debian.root'"**
creation_host = "server" # Linux server 3.8.0-35-generic #50-Ubuntu SMP Tue Dec 3 01:24:59 UTC 2013 x86_64
creation_time = 1395363478 # Thu Mar 20 21:57:58 2014*
5-복구하기 전에 테스트하십시오!
$ sudo vgcfgrestore vg1 --test -f /etc/lvm/archive/vg1_00227-2048533959.vg
Test mode: Metadata will NOT be updated and volumes will not be
(de)activated. **Restored volume group vg1**
6-이제 (--test)없이 명령 행을 반복하십시오.
$ sudo vgcfgrestore vg1 -f /etc/lvm/archive/vg1_00227-2048533959.vg
**Restored volume group vg1**
7-확인하세요!
$ sudo lvscan |grep debian
ACTIVE '/dev/vg1/debian.root' [7,81 GiB] inherit
8-논리가 활성화되지 않은 경우 수행하십시오!
$ sudo lvchange -a y /dev/vg1/debian.root
전부다
이것이 이것이이 솔루션을 찾고있는 다른 사람들을 도울 수 있기를 바랍니다!
lvremove에서 복구하는 가장 쉬운 방법은 LV가 상주하는 범위까지 쓰지 않았다고 가정하는 것입니다.
/ etc / lvm / archive에서 메타 데이터 백업을 찾아서 확인하십시오.
a) LV가 상주하는 범위 (EFROM, ETO)
b) LV가 상주 한 PV 및 사용중인 해당 PV를 확장하는 범위 (PFROM, PTO)
이 정보를 얻은 후에는 LV의 첫 8kB 를 지우지 않고 정확히 동일한 PV 확장에서 똑같은 크기의 새 LV를 만듭니다 .
lvcreate --extents EFROM-ETO --zero n --name customer007 YOUR-VG-NAME /dev/yourpv:PFROM-PTO
(이전에 thermoman이 대답했듯이) 삭제 된 LVM 볼륨을 쉽게 다시 만드는 방법은 lvcreate 를 사용 하여 볼륨 을 0 으로 만들지 않고 디스크에서 동일한 위치에 있는지 확인하는 것입니다. (써모 맨의 대답 명령은 작동하지 않았습니다.)
/ etc / lvm / archive에서 파일을 읽어 삭제하기 전과 같이 삭제 된 논리 볼륨의 크기와 위치를 확인하십시오. 볼륨의 크기에 extent_count
의 segment1
(또는 합 segment*/extent_count
은 여러 범위를 가지고있는 경우의 값). stripes
물리 볼륨 별명 (예 :) 뒤에 섹션에 위치가 pv0
있습니다.
예를 들어, 볼륨 섹션은 다음과 같습니다.
physical_volumes {
pv0 {
device = "/dev/somedisk" # Hint only
...
}
}
logical_volumes {
...
example {
...
segment_count = 1
segment1 {
start_extent = 0
extent_count = 1024 # 4 Gigabytes
type = "striped"
stripe_count = 1 # linear
stripes = [
"pv0", 30720
]
}
}
...
}
이 example
볼륨 의 크기 는 1024였으며 30720에서 시작하여 / dev / somedisk에있었습니다.
마지막 범위를 시작 + 크기 -1 = 30720 + 1024-1 = 31743으로 계산하십시오. 다음과 같이 해당 볼륨 문제를 재현하십시오.
lvcreate --extents 1024 --zero n --name example vgname /dev/somedisk:30720-31743
나는 비슷한 상황을 겪었다. 원하는 LV를 포함하는 모든 PV가 있었지만 VG에서 누락 된 PV와 0 LV가 나타났습니다. 나는 다음을 수행하여 회복했다.
pvs
모든 드라이브에 대한 UUID를 수집하기 위해 실행하십시오 .physical_volumes
섹션 설정 device =
/ UUID가에 의해보고 현재 장치에 맞게 라인을 pvs
, 어떤 취소 "MISSING"
플래그를, 및 제거 pvN
실제로 실종 된 섹션을.logical_volumes
섹션에 줄무늬를 가지고 있던 명부 제거 pvN
더 이상 존재하지 섹션을.그게 다됐다.
vgcfgrestore --test vg -f /root/dangerously_edited.vg
--test
선택 의 여지 없이 다시 뛰었다 .PVs sdg 및 sdh로 VG를 확장하여 특정 상황을 달성했습니다. 그런 다음 /dev/sdg /dev/sdh
새 LV가 해당 드라이브에 있음을 알 수 있도록 명령 행에 새 LV를 작성했습니다 . 그런 다음 해당 드라이브 만 새 컴퓨터로 옮겼습니다. 오래된 머신은 누락 된 드라이브에 대해 매우 화가 났으며, 드라이브를 강제로 제거하면 모든 LV도 제거되었습니다. 버머.
다음에는 물론이 문제를 피하기 위해 새로운 VG를 만들겠습니다.