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:
-
mdadm -r /dev/md0 /dev/sdb1
- Remover a unidade
- Coloque na nova unidade
- Particione a nova unidade (muitas vezes, mas nem sempre, será novamente sdb).
-
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.