onde no disco espaço é alocado para novos arquivos dentro do LVM lv com o sistema de arquivos ext4?

1

Eu corro um servidor multi-disco com o LVM2. Vários discos grandes servem como volumes físicos LVM2 para um grupo de volumes, contendo um volume lógico formatado com ext4. Nada sofisticado, apenas sua configuração linear padrão.

Recentemente, um disco adicional muito pequeno foi adicionado como volume físico a esse grupo de volumes e eu expandi o volume lógico e o sistema de arquivos ext4 para esse disco.

Esse lv é usado para armazenar backups incrementais usando o rsync e está apenas 30% cheio, raramente houve arquivos apagados dele, apenas gravações incrementais.

Agora, esse novo disco rígido que adicionei ao grupo de volumes pré-existente morreu inesperadamente e o grupo de volumes não aparece porque falta um volume físico.

Como o destino o terá, este WAS o "em um evento de falha catastrófica no servidor principal" -backup, o evento aconteceu, o chefe não está feliz , então isso meio que tem que funcionar ...

De acordo com isto (Parte 3): link É possível enganar o LVM para iniciar de qualquer maneira criando um novo pv com metadados idênticos ao disco com falha, o que tornará o volume acessível, mas naturalmente deixará buracos gigantescos no sistema de arquivos. Eu ainda não tentei, porque envolve consertar (gravar) o sistema de arquivos, o que elimina a possibilidade de tentar outras coisas se falhar.

Agora, minha pergunta é: Como essa configuração realmente aloca espaço em disco para novos dados? Ela é alocada linearmente do começo ao fim dos PVs, na ordem em que foram adicionados ao vg? É distribuído de alguma forma para aumentar a carga de desempenho / equilíbrio?

como este disco defeituoso foi adicionado somente depois a um existente lvm2 vg e lv, contendo um ext4 meio vazio, quais são as chances de que nunca tenha havido dados gravados no disco defeituoso?

Em outras palavras: quais são as chances de recuperar todos os meus dados, mesmo sem o disco com defeito, apenas iniciando o grupo de volume como está? Estou prestes a gastar US $ 1.500 tendo 250GB de espaço vazio recuperado quando envio o disco com defeito para reparo?

Existe uma maneira de verificar sem montar o sistema de arquivos e abrir os arquivos, esperando que eles contenham algo diferente de zeros? (comparando endereços de blocos de dados usados dentro do ext4 com intervalos de endereços que estavam no pv perdido, algo assim, de preferência fácil de automatizar)

Eu sei bitwise-copiar todo o lv em um arquivo de imagem antes de tentar reparar o ext4 provavelmente seria uma boa idéia, mas desde que este lv é muito grande e eu sofri apenas falha no sistema de arquivos em vários sistemas é provavelmente um luxo eu não tenho ...

Alguma sugestão?

    
por Jost 16.11.2012 / 03:21

2 respostas

2

Para finalizar: eu decidi tentar e remontar o lvm com o disco quebrado faltando, depois de fazer backups de todos os discos com o ddrescue.

Resultado: dos 68.000 arquivos, havia aproximadamente 12.000 ausentes e outros 38.000 tinham checksums ruins após a recuperação (pura sorte que eu tinha os checksums registrados).

Então, acho que é seguro dizer que essa não é a melhor estratégia para seguir se os arquivos forem importantes.

Além disso, o conserto do sistema de arquivos levou quase 3 dias de processamento e muito mais de 32 GB de RAM em um Ivy-bridge Xeon.

Enviei a unidade para reparo depois de tudo.

    
por 10.12.2012 / 10:29
1

Muitas perguntas, eu vou responder a parte do LVM:

Como você foi capaz de adicionar um único disco, eu acho que não é o volume listrado nem o espelho (ou você não teria o problema com dados perdidos), apenas o alvo simples (linear).

Há um arquivo de backup de metadados em /etc/lvm/backup/$VG na máquina onde o LV foi usado - veja lá - você deve encontrar todos os detalhes lá.

Além disso, antes de fazer qualquer coisa com o FS: crie um instantâneo e use-o para reparar - para que você possa retornar ao estado anterior.

Re: uso de FS: eu não posso ajudar, mas como você disse, não exclui, basta acrescentar arquivos, espero que o FS não fragmenta o espaço livre. Você pode consultar a wikipedia: link ou procure o canal de IRC # ext4.

Antes de fazer alterações não reversíveis, acesse o canal de IRC #lvm na freenode, onde você pode encontrar orientações on-line.

    
por 16.11.2012 / 09:58