Os discos são intercambiáveis em uma configuração RAID espelhada?

3

Geralmente, é escrito que os discos em um RAID espelhado (como o RAID 1) são uma cópia espelhada exata um do outro.

Então, posso desligar a máquina e simplesmente trocar os dois cabos dos discos rígidos?

E se um dos dois discos falhar e estiver morto para sempre, posso simplesmente desligar a máquina, colocar um terceiro (novo) disco rígido em vez do disco morto, inicializar a partir de um CD ao vivo e "dd" todo o conteúdo do disco? o disco que ainda é bom para o novo disco e depois inicializa novamente com o RAID 1 operacional?

Se não é tão simples, por que não é assim?

    
por Cedric Martin 23.10.2013 / 03:45

2 respostas

7

Uma cópia idêntica de seus dados é armazenada em cada disco (desde que a matriz não esteja "suja" - por exemplo, se a energia for perdida após gravar no disco 0, mas antes de gravar no disco 1). No entanto, os metadados são diferentes; permite mdadm & md para separar os dois discos.

Você pode trocar os cabos?

Você pode trocar os cabos nos dois discos. Quando você (ou os scripts de inicialização da sua distribuição) executam mdadm --assemble na matriz, o mdadm examina os metadados em cada disco e, a partir disso, descobre qual é o disco 1 e qual é o disco 2.

Na verdade, isso é extremamente flexível - você pode, por exemplo, remover um dos discos, colocá-lo em um compartimento USB-SATA e conectá-lo a uma porta USB, e o mdraid ainda ficaria perfeitamente feliz.

Posso recuperar um array degradado usando dd ?

Não. Se você fez isso, você teria dois discos 1, ou dois discos 2, e o mdadm ficaria confuso (e eu não testei isso, mas presumo que ele se recusaria a montar a matriz).

Em geral, todo o gerenciamento de arrays é feito com mdadm e, além disso, raramente é uma boa ideia ir ao redor do mdraid. Para recuperar seu array, você adiciona o novo disco / partição a ele. Algo como isto, assumindo sdb1 é a partição no disco de substituição:

mdadm --add /dev/md0 /dev/sdb1

O mdraid copia os dados e você pode ver o status em cat /proc/mdstat . Você está livre para continuar usando o array durante a nova sincronização. Não há necessidade de inicializar a partir de um live CD ou similar (você deve ser capaz de inicializar a partir do array degradado). Na verdade, se você tiver bandejas de troca a quente em sua máquina, você pode substituir um sdb com falha assim:

  1. mdadm -r /dev/md0 /dev/sdb1
  2. Remover a unidade
  3. Coloque na nova unidade
  4. Particione a nova unidade (muitas vezes, mas nem sempre, será novamente sdb).
  5. mdadm -a /dev/md0 /dev/sdb1

Isso não requer tempo de inatividade.

Note também que, se você estiver inicializando a partir de um espelho, será necessário verificar se o carregador de inicialização (por exemplo, o grub) está instalado em ambos os discos. Como fazer isso depende da sua distro.

Mais alguma coisa?

Sim. mdadm --create não é uma etapa de recuperação. Ele é usado para criar uma matriz em nova , em branco, e a próxima etapa normalmente seria pvcreate ou mkfs . Os arrays já existentes são iniciados usando mdadm --assemble . (Este parece ser um erro bastante comum e tem o potencial de destruir dados.)

Comentários finais

Você provavelmente deve tomar um pouco para se familiarizar com a documentação do mdraid (você está confiando nela com seus dados, afinal de contas). Em particular, leia a página de manual mdadm , qualquer documentação RAID que sua distro publique, e Documentation / md.txt (das fontes do kernel, correspondentes à sua versão do kernel). Estes provavelmente não são os documentos mais compreensíveis, mas geralmente estão atualizados.

Existe também um wiki do Linux Raid , mas tenha em atenção que nem tudo é totalmente actualizado. -data.

Há outras páginas por aí, mas seja especialmente cauteloso com qualquer coisa que mencione mkraid ou /etc/raidtab além de uma nota histórica, pois essas ferramentas estão obsoletas há uma década.

    
por 23.10.2013 / 07:30
3

Os discos não são 100% idênticos. Cada dispositivo softraid linux contém um bloco de metadados com um uniq guid. Então o dd pode não funcionar.

As portas não importam. Você pode até mesmo colocar sua unidade em uma caixa USB extrernal e ainda funcionará. Não funciona com ataque de hardware, é claro.

    
por 23.10.2013 / 04:07