Devo usar 'mdadm --create' para recuperar meu RAID?

7

esse cara que continua me dizendo que não devemos usar mdadm --create para recuperar nossas matrizes RAID, que é pior que o mal, é um erro. Por que é que? Quer dizer, eu deveria fazer meu RAID funcionar de novo, não? O que devo usar em vez disso se --create for um erro?

    
por Braiam 25.05.2014 / 18:11

1 resposta

6

Não há nada de errado com --create - se você sabe o que está fazendo.

O único problema é: Você não sabe.

Quando você cria um RAID, o comando é usualmente algo curto, como:

mdadm --create /dev/md42 --level=5 --raid-devices=3 /dev/sdx1 /dev/sdy1 /dev/sdz1

Morto simples, certo?

Só que não é, na verdade. RAID tem muito mais variáveis. Há um deslocamento de dados, um chunksize, uma versão de metadados, e não podemos esquecer a ordem das unidades que é fácil errar em uma recriação, já que as letras de unidade podem mudar com o tempo.

Veja como deve ser o comando --create adequado:

mdadm --create /dev/md42 --assume-clean \
    --level=5 --chunk=512 --metadata=1.2 --data-offset=2048 \
    --raid-devices=3 /dev/sdz1 missing /dev/sdy1

E, seja o que for que isso lhe der, você deve testá-lo como somente leitura. E isso pode não ser tudo. Você sabia que existem vários layouts RAID diferentes também? --create é a última gota e as armadilhas não são óbvias. Idealmente, você deve fazer o backup de todos os discos, ou pelo menos das áreas de metadados, ou operar em uma cópia. sobreposição de escrita .

Para qualquer coisa que você não forneça, mdadm usa as configurações padrão. Infelizmente, esses não são colocados em pedra, basicamente todos eles mudaram no passado, e é provável que mudem novamente no futuro.

Então, quando você usa --create para recuperação, você tem que entender o RAID muito bem, e você precisa saber exatamente como seu antigo RAID se parecia. E então você tem que adicionar --assume-clean ou deixar um dos discos como missing , caso você tenha cometido algum erro. Você também deve fazer um backup, pelo menos no começo e no fim do disco, para poder recuperar os metadados gravados no local errado.

Na maioria dos casos, você tem outras opções. --assemble --force é um, mas tem suas próprias armadilhas. Você deve --examine primeiro e se uma das unidades estiver mais desatualizada do que as outras, você não deve incluir isso na montagem. Há também --build , bem como dmsetup para a invasão, que não usa metadados e pode permitir que você acesse seus dados. Isso não significa que é seguro, no entanto - você escreve nele, você perde dados se as configurações escolhidas estiverem erradas.

Em geral, a recuperação de dados é um campo amplo. Você precisa de experiência para poder decidir o curso de ação correto. Evite o problema, se possível; faça backups, documente sua configuração e monitore seus discos para que seu RAID não morra em primeiro lugar.

    
por 25.05.2014 / 19:16

Tags