Você pode remover um disco do RAID5 no Linux se houver espaço suficiente?

2

Atualmente eu tenho uma matriz RAID-5 de 500GB x5 no Fedora Linux usando o mdadm. Um dos discos foi ruim e vou mover todos os discos e dados para uma nova matriz. No entanto, posso reduzir o tamanho do array no tempo médio para 4 discos para evitar o impensável de outro disco falhar? Eu precisaria fazer isso sem recriar a matriz porque atualmente não tenho espaço de armazenamento grande o suficiente para armazenar os dados.

    
por AaronM 30.11.2009 / 03:37

3 respostas

1

Não, você não pode diminuir o número de dispositivos em uma matriz RAID usando o mdadm.

De mdadm (8):

GROW MODE

The GROW mode is used for changing the size or shape of an active array. For this to work, the kernel must support the necessary change. Various types of growth are being added during 2.6 development, including restructuring a raid5 array to have more active devices.

Currently the only support available is to

[...]

  • increase the "raid-devices" attribute of RAID1, RAID5, and RAID6.

Verifique se os backups estão corretos e, em seguida, recrie a matriz do zero com o número apropriado de discos e restaure a partir do backup na matriz.

    
por 30.11.2009 / 03:47
1

Como disse o womble, não é possível descartar um disco e diminuir um RAID.

Existem provavelmente algumas coisas que você deve saber sobre o RAID. Primeiro, o RAID 5 não é mais considerado uma boa prática para discos grandes ou grandes arrays. A razão é que a probabilidade de um erro de leitura de uma das unidades ao substituir uma unidade com falha se torna muito mais próxima de 1: 1 com as unidades maiores / mais numerosas. As melhores práticas são agora o RAID 6, que fornece duas unidades de paridade, ou RAID 10, que oferece melhor desempenho, mas um pouco menos tolerância a falhas (você pode perder duas unidades em algumas circunstâncias). Além disso, ao criar arrays de tamanho decente, você pode considerar a inclusão de um hot spare que faz a troca automática de um membro com falha sem sua intervenção.

Claro, isso não lhe dá seus dados. Supondo que você tenha uma matriz de 5x500GB, você tem cerca de 2TB de espaço utilizável. Se você tem backups, então você realmente precisa se recuperar daqueles depois de recriar o array.

Como parece que você não tem backup, primeiro, boa sorte. Segundo, é hora de obter algum tipo de armazenamento secundário com pressa. Eu recomendaria uma unidade externa de 2TB. Eles estão correndo em torno de $ 160 no pricewatch.com . Se, por qualquer motivo, você não puder fazer isso, tente separá-lo logicamente e enviá-lo para várias outras máquinas enquanto reconstrói a matriz.

Você provavelmente quer se apressar.

    
por 30.11.2009 / 04:10
0

Das outras respostas, parece claro que você não pode simplesmente "encolher" o ataque. No entanto, eu sinto que um dos pontos do RAID5 ao usá-lo para redundância é que você pode simplesmente encaixar o disco defeituoso e colocar o slot em um novo? Eu não acho que você tem que reconstruir toda a matriz ...

Tenho quase certeza, mas teste isso em sua própria rede de laboratório primeiro, use isso por sua conta e risco, não use isso em um ambiente de produção sem ter testado e validado de acordo com seus procedimentos preferidos de validação primeiro, etc. ...:

Veja o status atual da matriz, digamos que seja / dev / md0:

sudo mdadm --detail /dev/md0

... mostra o status atual da matriz, de cada dispositivo, etc.

Defina a unidade antiga com defeito e remova-a da matriz. Digamos que a unidade com defeito seja / dev / sdg:

sudo mdadm --set-faulty /dev/md0 /dev/sdg
sudo mdadm --remove /dev/md0 /dev/sdg

Neste ponto, se você fizer o sudo mdadm --detail / dev / md0, deverá ver que a unidade foi removida da matriz.

Encerre o computador, troque a unidade antiga, conecte a nova, inicie o computador.

Inicie o array com o drive ausente. Digamos que os outros dispositivos sejam / dev / sdf e / dev / sdh, então:

sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdf missing /dev/sdh

... substituindo o nome do dispositivo ausente pela palavra "ausente".

A matriz deve ser iniciada. Agora adicione o novo dispositivo / disco. Digamos que o novo disco seja / dev / sdg novamente:

sudo mdadm --add /dev/md0 /dev/sdg

O mdadm deve adicionar o novo dispositivo ao array e começar a reconstruir o array nele.

Você pode verificar fazendo:

sudo mdadm --detail /dev/md0
    
por 30.11.2009 / 09:22