Quais são os parâmetros para o mdadm, para recriar o dispositivo MD com carga a partir da posição 0x22000 no armazenamento de suporte?

1

Eu tento me recuperar do desastre do raid do mdadm, que aconteceu quando movi do servidor Ubuntu 10.04 para o 12.04. Eu sei a ordem correta de dispositivos do log dmesg, mas, dada essa informação, ainda não consigo acessar os dados.

Os superblocos parecem confusos; o mdadm --examine para cada disco está em esta pergunta no askubuntu

Ao inspecionar o conteúdo bruto do armazenamento de backup, encontrei o início de meus dados (o contêiner LUKS no meu caso) na posição 0x22000 em relação ao início da primeira partição no raid.

Pergunta: Qual é a combinação de opções emitidas para "mdadm --create" para recriar o mdadm que começa com o offset fornecido? Tamanho do bitmap?

PS. As informações relevantes do syslog quando o sistema estava em bom estado são coladas aqui.

    
por Adam Ryczkowski 15.09.2012 / 10:48

1 resposta

1

Parece que não há necessidade de nenhuma ferramenta para definir o início da carga RAID em um determinado deslocamento. O problema surgiu da alteração no deslocamento entre as versões do mdadm acima de 3.00 e abaixo. Parece, que no momento, devido aos diferentes deslocamentos, o mdadm da versão acima de 3.00 (eu tentei 3.24) não pode não pode recriar o layout feito pelo mdadm mais antigo. É preciso usar o mais antigo.

O problema surgiu em primeiro lugar de um bug conhecido no kernel do Ubuntu 12.04, que sob certas circunstâncias (por exemplo, encontrado durante a atualização da distribuição ...) substitui os superblocos. A solução é usar evite os kernels de 3.2.0-22.35 a 3.2.0-24.37, que incluem incidentalmente, entre outros, o kernel usado no instalador do Mini-cd Ubuntu 12.04.

Esta é a conversa na lista de discussão [email protected], na qual o Sr. Robin Hill me deu a solução:

Looks like you've been hit by the bug mentioned here: http://neil.brown.name/blog/20120615073245

You've got most of the required data to recreate the array. It's just the chunk size missing I think. This is probably 512K as the arrays are using 1.2 superblocks, but it may be 64K if you were using an old mdadm version.

Your data offset is 272 sectors, which means you'll need to use an older mdadm version to re-create the array. Newer versions use 2048 sectors, but it looks like version 3.0 uses 272, so grab a copy of that if possible.

Assuming your drives are numbered in the same order as previously, the create commands will be:

mdadm -C /dev/md5 -e 1.2 -l 5 -n 5 /dev/sd{b,f,c,e,d}6 \
    --assume-clean --uuid=a3945c40:73237cd6:3d61998e:8f773d03

and

mdadm -C /dev/md6 -e 1.2 -l 6 -n 5 /dev/sd{b,f,c,e,d}5 \
    --assume-clean --uuid=2a8fd2df:3ad53552:e8b80ecf:a46d93a2

Make sure you use the curly brace format to list the disks rather than square brackets - that'll ensure the order is maintained. Also make sure that --assume-clean is used to prevent rebuilding from kicking off, and losing data.

After recreating the array, run a fsck -n on the array to check whether the details are correct. If not, stop the array and try recreating it again, adding "-c 64" to set the chunk size to 64K.

Once you've got them up and fsck shows clean, you can re-add the bitmaps using mdadm -G /dev/mdX --bitmap=internal.

Do read through Neil's blog post first as there may be something I've missed.

Então, após a inicialização do XUbuntu 10.04 Live CD, consegui recriar com êxito o array com os comandos fornecidos e obter acesso a todos os meus dados.

É importante observar que o mdadm antigo era necessário apenas para recriação da matriz. A matriz pode ser normalmente acessada com 12.04 live CD (usando o usual mdadm --assemble --scan ).

Se alguém quiser alterar o layout do ataque para o mais novo (com os setores offset 2048), o caminho é longo:

The only way I know of to update the offset location in an existing array would be to fail the disks one at a time, zeroing the superblocks, then adding them back into the array using a new mdadm. When it's added back in, it'll use the new offset location. If you have a spare disk and a new enough kernel version, you can use the pre-emptive replacement option, which will prevent the need to run without full parity available.

... Esperando que este post mantenha pelo menos um administrador do sistema atualizando de 10.04 para 12.04 de ataque cardíaco; -)

Veja também o problema relacionado no askubuntu: mdadm falha após 10,04 - > Atualização 12.04 .

    
por 18.09.2012 / 13:40