Estou tendo o seguinte problema com uma partição RAID1 de software RAID no meu sistema Ubuntu (10.04 LTS, 2.6.32-24-server, caso isso importe).
Um dos meus discos (sdb5) relatou erros de E / S e, portanto, foi marcado com defeito na matriz. A matriz foi então degradada com um dispositivo ativo. Portanto, substituí o disco rígido, clonei a tabela de partições e adicionei todas as novas partições aos meus arrays de ataque. Após a sincronização, todas as partições acabaram bem, com 2 dispositivos ativos - exceto um deles. A partição que relatou o disco defeituoso antes, no entanto, não incluiu a nova partição como um dispositivo ativo, mas como um disco sobressalente:
md3 : active raid1 sdb5[2] sda5[1]
4881344 blocks [2/1] [_U]
Um olhar detalhado revela:
root@server:~# mdadm --detail /dev/md3
[...]
Number Major Minor RaidDevice State
2 8 21 0 spare rebuilding /dev/sdb5
1 8 5 1 active sync /dev/sda5
Então, aqui está a pergunta: como digo ao meu ataque para transformar o disco sobressalente em ativo? E por que foi adicionado como um dispositivo sobressalente? Recriar ou remontar a matriz não é uma opção, porque é minha partição raiz. E não consigo encontrar nenhuma dica para esse assunto no HOWTO do Software Raid.
Qualquer ajuda seria apreciada.
Solução Atual
Encontrei uma solução para o meu problema, mas não tenho certeza de que essa seja a maneira real de fazer isso. Observando mais de perto minha invasão, descobri que o sdb5 sempre estava listado como um dispositivo sobressalente:
mdadm --examine /dev/sdb5
[...]
Number Major Minor RaidDevice State
this 2 8 21 2 spare /dev/sdb5
0 0 0 0 0 removed
1 1 8 5 1 active sync /dev/sda5
2 2 8 21 2 spare /dev/sdb5
portanto, a leitura do dispositivo sdb5 no array md3 sempre acabava adicionando o dispositivo como sobressalente.
Finalmente, eu apenas recriei a matriz
mdadm --create /dev/md3 --level=1 -n2 -x0 /dev/sda5 /dev/sdb5
que funcionou.
Mas a pergunta permanece em aberto para mim: existe uma maneira melhor de manipular os resumos no superbloco e dizer à matriz para transformar o sdb5 de um disco sobressalente em um disco ativo? Ainda estou curioso por uma resposta.
Respostas:
Daniel: Inicialmente, verifique novamente se o sobressalente está sendo integrado ao array, fazendo um:
que deve informar se existe um processo de compilação e quanto tempo esperar.
Se nenhum edifício estiver ocorrendo, tente o seguinte
E relate como isso funciona para você. Veja http://linux.die.net/man/8/mdadm para mais detalhes.
fonte
Tarde demais, mas fazer isso apenas ativaria a unidade sobressalente:
Como diz a página de manual:
fonte
Pelo que me lembro, quando tive esse problema (por um motivo diferente), tive que usar --grow para adicionar novamente a unidade sobressalente "corretamente" (também limpando a condição de erro).
Algo assim (verifique com a sua documentação!):
mdadm --grow --level = defeituoso --layout = flush / dev / sdb5
Em seguida, você pode adicionar o dispositivo e ele deve ser reconhecido.
O problema é que o driver md salva o status de cada partição nos dados de inicialização das unidades. Portanto, mesmo após uma reinicialização, ele conhece o status e evita partições marcadas como defeituosas.
fonte