Recentemente perdi um RAID que era um volume físico de um dos meus grupos de volumes LVM do Linux. Acabei fazendo um vgreduce --removemissing
e continuei com o trabalho de restaurar os dados.
Bom, hoje encontrei aquele RAID (estava escondido, não pergunte).
# pvdisplay -m /dev/md2
WARNING: Volume group mg20 is not consistent
"/dev/md2" is a new physical volume of "499.87 GiB"
--- NEW Physical volume ---
PV Name /dev/md2
VG Name
PV Size 499.87 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID SUXIe9-B4xG-Qlbz-5cSd-f1dh-cRQh-vOF4qz
mg20
não é consistente porque o PV perdido e encontrado /dev/md2
provavelmente contém cópias do antigo catálogo de volumes lógicos que menciona o sistema de arquivos existente /dev/md2
.
Como faço para me reintegrar /dev/md2
e mg20
preservar o sistema de arquivos que nele reside? (e me poupo do incômodo de restaurar seu conteúdo) Um fator simplificador é que /dev/md2
continha apenas um LV e que o LV estava inteiramente contido em /dev/md2
.
Responder1
eu descobriamaneira de recuperar o ataque. Os sistemas LVM modernos fazem backups da configuração do VG com bastante frequência. Você pode ver uma lista de seus backups e os comandos que os acionaram usando vgcfgrestore --list
. Eu escolhi aquele de antes vgreduce --removemissing
e encontrei estes bits relevantes dentro dele:
pv8 {
id = "SUXIe9-B4xG-Qlbz-5cSd-f1dh-cRQh-vOF4qz"
device = "unknown device" # Hint only
status = ["ALLOCATABLE"]
flags = ["MISSING"]
dev_size = 1048312832 # 499.875 Gigabytes
pe_start = 2048
pe_count = 127967 # 499.871 Gigabytes
}
e
homes18 {
id = "d7yt43-PMTv-XnsH-qAff-3d5A-ilB6-eQB0Jy"
status = ["READ", "WRITE", "VISIBLE"]
flags = []
segment_count = 1
segment1 {
start_extent = 0
extent_count = 89600 # 350 Gigabytes
type = "striped"
stripe_count = 1 # linear
stripes = [
"pv8", 0
]
}
}
Então criei uma cópia desse arquivo e removi "MISSING"
do arquivo flags =
. Eu também configurei o device = "/dev/md2"
, embora isso provavelmente não fosse necessário. Realizei um vgcfgrestore -f /etc/lvm/archive/mg20_synthetic-2015.vg mg20
e agora meu mg20/homes18 está de volta e passa um fsck.
Para ser honesto, não estou muito satisfeito com isso como resposta. É um pouco exagerado restaurar TODA a configuração.
Acho que uma resposta real pode envolver lvcreate -Z n
, mas estou com preguiça de realizar os experimentos necessários para verificar isso.