Debian Lenny - SAN - LVM Fail

2

Eu tenho um servidor Lenny que tem uma conexão SAN configurada como o único PV para um VG chamado 'datavg'.

Ontem, atualizei a caixa com os patches do Debian e dei uma reinicialização.

Após a reinicialização, ele não inicializou dizendo que não poderia encontrar / dev / mapper / datavg-datalv.

Isso é o que eu fiz:
- inicializou no modo de recuperação e comentou a montagem em / etc / fstab
- reinicializado no modo de usuário completo. (o ponto de montagem é / data, somente o postgresql não pôde ser iniciado)
- vgdisplay, lvdisplay, pvdisplay para descobrir o que aconteceu com o grupo de volume. (datavg estava faltando completamente)

Depois disso, notei que o LUN é visível do Linux e que a partição do LVM também é visível:

# ls -la /dev/mapper/mpath0*
brw-rw---- 1 root disk 254, 6 2009-11-23 15:48 /dev/mapper/mpath0
brw-rw---- 1 root disk 254, 7 2009-11-23 15:48 /dev/mapper/mpath0-part1


- Então, eu tentei pvscan para descobrir se ele poderia encontrar o PV. Infelizmente, ele não detectou a partição como um PV.
- Eu corri pvck na partição, mas não encontrei nenhum rótulo:

# pvck /dev/mapper/mpath0-part1 
  Could not find LVM label on /dev/mapper/mpath0-part1


- Então, eu queria saber se o LUN talvez estivesse vazio, então fiz um dd dos primeiros MB. Neste, eu pude ver os cabeçalhos do LVM:

datavg {
id = "removed-hwEK-Pt9k-Kw4F7e"
seqno = 2
status = ["RESIZEABLE", "READ", "WRITE"]
extent_size = 8192
max_lv = 0
max_pv = 0

physical_volumes {

pv0 {
id = "removed-AfF1-2hHn-TslAdx"
device = "/dev/dm-7"

status = ["ALLOCATABLE"]
dev_size = 209712382
pe_start = 384
pe_count = 25599
}
}

logical_volumes {

datalv {
id = "removed-yUMd-RIHG-KWMP63"
status = ["READ", "WRITE", "VISIBLE"]
segment_count = 1

segment1 {
start_extent = 0
extent_count = 5120

type = "striped"
stripe_count = 1        # linear

stripes = [
"pv0", 0
]
}
}
}
}

Note que isso veio da partição onde o pvck não encontrou um rótulo LVM!


- Eu decidi escrever um novo rótulo LVM para a partição e restaurar os parâmetros do arquivo de backup.

pvcreate --uuid removed-AfF1-2hHn-TslAdx --restorefile /etc/lvm/backup/datavg  /dev/mapper/mpath0-part1


- Então eu corri um vgcfgrestore -f / etc / lvm / backup / datavg datavg
- Depois disso, aparece quando eu emito um pvscan.
- Com um vgchange -ay datavg, ativei o VG e o LV ficou disponível.
- Quando eu tentei montar o LV, ele não encontrou nenhum sistema de arquivos. Eu tentei a recuperação de várias maneiras, mas não consegui.
- Depois de fazer um DD do LV afetado, tentei recriar os superblocos com

mkfs.ext3 -S /dev/datavg/backupdatalv


- mas o resultado disso não pode ser montado:

# mount /dev/datavg/backupdatalv /mnt/
mount: Stale NFS file handle

O fato de que isso pode acontecer em primeiro lugar não é muito bom para dizer o mínimo, então eu quero descobrir tudo o que puder sobre esse mau funcionamento.

Minhas perguntas:
- Como pode ser que o rótulo LVM desapareça após patches e uma reinicialização?
- Por que o sistema de arquivos não está lá após recuperar o PV? (O comando pvcreate apagou os dados?)
- O sistema de arquivos ext3 no LV ainda pode ser recuperado?
- Existe alguma coisa que eu poderia ter feito para evitar esse problema?

Obrigado antecipadamente, Ger.

    
por Ger Apeldoorn 24.11.2009 / 11:53

1 resposta

3

Certa vez, tive um problema semelhante. No nosso caso, alguém criou uma partição para armazenar o PV, mas quando eles executaram o comando pvcreate, eles esqueceram de especificar a partição e, em vez disso, usaram todo o dispositivo. O sistema funcionou bem até a reinicialização, quando o LVM não conseguiu mais encontrar o PV.

Então, no seu caso, é possível que alguém tenha executado "pvcreate / dev / mapper / mpath0" no momento da criação, em vez de "pvcreate / dev / mapper / mpath0-part1"? Nesse caso, você precisará remover a tabela de partição do disco que contém o PV.

Na página do manual pvcreate (8) para excluir uma tabela de partições:

dd if=/dev/zero of=PhysicalVolume bs=512 count=1

O código LVM no kernel não reconhecerá um dispositivo PV inteiro se houver uma tabela de partição no dispositivo. Depois que removemos a tabela de partições, o PV foi reconhecido e pudemos acessar nossos dados novamente.

    
por 23.01.2010 / 08:13