Eu tive um problema de energia na casa recentemente e tive problemas para montar meus discos do servidor de arquivos. Acontece que um dos dispositivos tinha se renomeado de sdb para sdd, e todos os metadados do LVM agora estão faltando. Usando pvscan, lvscan, vgscan, etc, todos mostram apenas a partição do sistema. Outra reinicialização e os dispositivos pareciam voltar ao que eram antes: sdb e sdc. Consegui remontar o ataque usando o mdadm, mas não consegui usar o vgcfgrestore para recriar minha configuração de lvm porque aparentemente o UUID do meu dispositivo de invasão foi alterado. Meu VG original foi chamado "vg0". Aqui está o resultado do vgcfgrestore:
Couldn't find device with uuid 3fgedF-F7Dc-c300-svuP-b3Q3-qSnb-CukkLq.
Cannot restore Volume Group vg0 with 1 PVs marked as missing.
Restore failed.
Meu arquivo /etc/lvm/backup/vg0
mostra isso:
vg0 {
id = "3JWsYl-FmEP-gpsa-7grO-VlLU-x7uC-EevgFc"
seqno = 3
format = "lvm2" # informational
status = ["RESIZEABLE", "READ", "WRITE"]
flags = []
extent_size = 8192 # 4 Megabytes
max_lv = 0
max_pv = 0
metadata_copies = 0
physical_volumes {
pv0 {
id = "3fgedF-F7Dc-c300-svuP-b3Q3-qSnb-CukkLq"
device = "/dev/md0" # Hint only
status = ["ALLOCATABLE"]
flags = []
dev_size = 3907028992 # 1.81935 Terabytes
pe_start = 384
pe_count = 476932 # 1.81935 Terabytes
}
}
logical_volumes {
data {
id = "Sqjebo-rnKh-mgQH-a90E-Q0n7-idp1-1xPP56"
status = ["READ", "WRITE", "VISIBLE"]
flags = []
segment_count = 1
segment1 {
start_extent = 0
extent_count = 476932 # 1.81935 Terabytes
type = "striped"
stripe_count = 1 # linear
stripes = [
"pv0", 0
]
}
}
}
}
Portanto, o problema que parece ter é que o pv UUID não é mais válido, e nem tenho certeza agora do que usar. O ataque que consegui remontar com --scan
nomeou automaticamente para /dev/md1
, mas até mesmo alterar isso no arquivo vg0
backup não teve efeito. Eu ainda não tenho certeza do que é o novo pv UUID.
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdc1[1] sdb1[0]
1953383488 blocks super 1.2 [2/2] [UU]
bitmap: 0/15 pages [0KB], 65536KB chunk
unused devices: <none>
Mais uma vez, pvs, lvs e vgs mostram todos os meus volumes raiz / sistema e vg, nada do vg0. Alguma sugestão sobre os próximos passos? Ambas as unidades estão cheias de dados (a maioria dos quais é copiada), mas eu gostaria de dar os passos que puder para salvar os sistemas de arquivos.
EDITAR:
Exibindo a cabeça de ambos os discos (/ dev / md1 mostra lixo). Percebo que apenas um deles tem um rótulo LABELONE:
[root@host ~]# head /dev/sdb1
üN+©Ûüþy {Gyì˧Rjedi:1RUYܯÜ1á×iSû«nZsH$ÊWYuQÿÿÿÿÿÿÿÿ>4þÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿvg0 {
id = "IwXCM3-LnxU-Oguo-PXiN-nXwq-VFaU-ZmgySs"
seqno = 1
format = "lvm2"
status = ["RESIZEABLE", "READ", "WRITE"]
flags = []
extent_size = 8192
max_lv = 0
max_pv = 0
metadata_copies = 0
[root@host ~]# head /dev/sdc1
LABELONEpu+ LVM2 0013fgedFF7Dcc300svuPb3Q3qSnbCukkLqÁÑðüN+©Ûüþy {Gyì˧Rjedi:1RUYܯÜÒÆûPFlO!H$ÊWYuQÿÿÿÿÿÿÿÿ
ª9Úþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿvg0 {
id = "IwXCM3-LnxU-Oguo-PXiN-nXwq-VFaU-ZmgySs"
seqno = 1
format = "lvm2"
status = ["RESIZEABLE", "READ", "WRITE"]
flags = []
extent_size = 8192
max_lv = 0
max_pv = 0
metadata_copies = 0
Então, agora, a pergunta de 50 cent: como faço para recuperar os rótulos do LVM sem danificar o sistema de arquivos subjacente?
ATUALIZAÇÃO:
Então, basicamente, consegui executar vgcfgrestore
com êxito para uma cópia válida de minha configuração de backup lvm usando um novo UUID de PV e montei / dev / md0 com essa unidade, mas agora recebo uma mensagem dizendo que PV é menor que o espaço alocado. Basicamente, está relatando que minhas extensões físicas caíram de 476932 para 476900. O tamanho do disco não mudou e verifiquei que o PV realmente tem o número correto de extensões disponíveis: (veja a última linha)
[root@host /]# pvs -v --segments /dev/md0
Using physical volume(s) on command line.
Wiping cache of LVM-capable devices
Wiping internal VG cache
Device /dev/md0 has size of 3906766976 sectors which is smaller than corresponding PV size of 3907028992 sectors. Was device resized?
One or more devices used as PVs in VG vg0 have changed sizes.
PV VG Fmt Attr PSize PFree Start SSize LV Start Type PE Ranges
/dev/md0 vg0 lvm2 a--u 1.82t 0 0 476932 data 0 linear /dev/md0:0-476931
A última linha mostra que está relatando extensões de 0-476931, que é o tamanho correto. Eu pensei que talvez os cabeçalhos do LVM em si possam consumir algum espaço, mas este não é um volume novo, ele vem sendo usado há anos sem nenhum problema e nunca foi redimensionado. O volume está sendo exibido como suspenso:
LV Status suspended
# open 0
Eu tentei estender meu PV com um thumbdrive USB (não achei que funcionaria, e não funcionou) pensando que se eu pudesse montar esse sistema de arquivos temporariamente eu poderia copiar os dados e criar o ataque inteiro zero, mas é claro que não foi eficaz. Quaisquer pensamentos sobre possíveis próximos passos para salvar os dados?