KFED – Recuperando o header de um disco do ASM

Já passei por algumas situações com ASM, em que o header do disco é perdido ou alterado, não vou entrar no âmbito da origem dos problemas 🙂

Pensando nisto, acho que o próprio suporte da Oracle ja tiveram algum trabalho com isto e criaram uma forma mais simples de recuperar o header.

Basicamente o header do disco, está no bloco 0 da primeira unidade de alocação, ou seja, se utilizarem o utilitário kfed, conseguem ler este metadata, conforme exemplo abaixo:

1

Deste forma, podemos ver o conteúdo do header de um disco ASM.

Agora para “simular” a perca de um header, com o utilitário dd, corrompi o header do disco:

2

Como se pode ver, após a corrupção, o kfed, já não reconhece mais o header do disco, o que impossibilida do ASM montar este disco.

Após um restart dos serviços, o disco em questão já não monta:

3

Agora temos que recuperar 🙂

Por default, o ASM guarda uma cópia do header do disco em um bloco mais interno, que vimos na penúltima imagem, quando comparei o output dos comandos:

– kfed read /dev/VOL1 aun=0 blkn=0

– kfed read /dev/VOL1 aun=1 blkn=254

Ou seja, o aun=0 blkn=0 representa o header, enquanto o aun=1 blkn=254 representa o backup do header.

Agora vamos a recuperação:

4

E após a validação, o header parece estar com bom aspecto.

Após um restart aos serviços e a uma nova verficação, temos o seguinte resultado:

5

É uma segurança adicional que temos, no entanto, o mais importante é termos os cuidados necessários com a manipulação destas informações.

😉