Independentemente da sua experiência anterior com matrizes RAID, e se seguiu todos os tutoriais desta série RAID ou não, gerir RAID’s de software em Linux não é uma tarefa muito complicada depois de se ter familiarizado com o comando mdadm --manage.

Manage Raid Devices with Mdadm in Linux – Part 9

Neste tutorial vamos rever a funcionalidade fornecida por esta ferramenta para que você possa tê-la à mão quando precisar dela.

RAID Testing Scenario

Como no último artigo desta série, usaremos para simplificar um array RAID 1 (mirror) que consiste em dois discos de 8 GB (/dev/sdb e /dev/sdc) e um dispositivo sobressalente inicial (/dev/sdd) para ilustrar, mas os comandos e conceitos listados aqui também se aplicam a outros tipos de configurações. Dito isto, fique à vontade para ir em frente e adicionar esta página aos favoritos do seu navegador, e vamos começar.

Entendendo as Opções e Uso do mdadm

Felizmente, o mdadm fornece uma bandeira built-in --help que fornece explicações e documentação para cada uma das opções principais.

Assim, vamos começar digitando:

# mdadm --manage --help

para ver quais são as tarefas que mdadm --manage nos permitirão executar e como:

Gerenciar RAID com mdadm Tool

Como podemos ver na imagem acima, gerenciar um array RAID envolve executar as seguintes tarefas de uma vez ou de outra:

  1. (Re)Adicionar um dispositivo ao array.
  2. Marcando um dispositivo como defeituoso.
  3. Remover um dispositivo defeituoso do array.
  4. Substituir o dispositivo defeituoso por um de reserva.
  5. Iniciar um array parcialmente construído.
  6. Parar um array.
  7. Marcar um array como ro (read-only) ou rw (read-write).

Gerenciar dispositivos RAID com mdadm Tool

Note que se você omitir a opção --manage, o mdadm assume o modo de gerenciamento de qualquer forma. Tenha este facto em mente para evitar problemas mais à frente.

O texto destacado na imagem anterior mostra a sintaxe básica para gerenciar RAIDs:

# mdadm --manage RAID options devices

Vamos ilustrar com alguns exemplos.

Exemplo 1: Adicione um dispositivo à matriz RAID

Você normalmente adicionará um novo dispositivo quando substituir um defeituoso, ou quando você tiver uma peça sobressalente que queira ter à mão em caso de falha:

# mdadm --manage /dev/md0 --add /dev/sdd1
Adicionar dispositivo à matriz RAID
Exemplo 2: Marcando um dispositivo RAID como defeituoso e removendo-o do array

Este é um passo obrigatório antes de remover logicamente o dispositivo do array, e depois puxá-lo fisicamente para fora da máquina – nessa ordem (se você perder um desses passos você pode acabar causando danos reais ao dispositivo):

# mdadm --manage /dev/md0 --fail /dev/sdb1

Note como o dispositivo de reposição adicionado no exemplo anterior é usado para substituir automaticamente o disco defeituoso. Não só isso, mas também a recuperação e reconstrução dos dados de raid começa imediatamente:

Recover e reconstruir dados de raid

Após o dispositivo ter sido indicado como falhado manualmente, ele pode ser removido com segurança do array:

# mdadm --manage /dev/md0 --remove /dev/sdb1
Exemplo 3: Relembrando um dispositivo que fazia parte do array que tinha sido removido anteriormente

Até agora, temos um array RAID 1 funcional que consiste em 2 dispositivos ativos: /dev/sdc1 e /dev/sdd1. Se tentarmos readd /dev/sdb1 para /dev/md0 neste momento:

# mdadm --manage /dev/md0 --re-add /dev/sdb1

barramos num erro:

mdadm: --re-add for /dev/sdb1 to /dev/md0 is not possible

porque o array já é composto pelo número máximo possível de drives. Então temos 2 escolhas: a) adicionar /dev/sdb1 como reserva, como mostrado no Exemplo #1, ou b) remover /dev/sdd1 do array e então readd /dev/sdb1.

Escolhemos a opção b), e começaremos parando o array para depois remontá-lo:

# mdadm --stop /dev/md0# mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1

Se o comando acima não adicionar /dev/sdb1 de volta ao array com sucesso, use o comando do Exemplo #1 para fazer isso.

Embora o mdadm detecte inicialmente o dispositivo recém-adicionado como um sobressalente, ele começará a reconstruir os dados e quando o fizer, deverá reconhecer o dispositivo como parte ativa do RAID:

Raid Rebuild Status
Exemplo 4: Substituir um dispositivo Raid por um disco específico

Substituir um disco no array por um sobressalente é tão fácil quanto isso:

# mdadm --manage /dev/md0 --replace /dev/sdb1 --with /dev/sdd1
Substituir dispositivo de Raid

O resultado é que o dispositivo que segue a chave --with é adicionado ao RAID enquanto o disco indicado através de --replace é marcado como defeituoso:

Check Raid Rebuild Status
Exemplo 5: Marcando um Raid array como ro ou rw

Após criar o array, você deve ter criado um sistema de arquivos em cima dele e montado em um diretório para poder usá-lo. O que você provavelmente não sabia então é que você pode marcar o RAID como ro, permitindo assim que somente operações de leitura sejam realizadas nele, ou rw, para que também seja possível escrever no dispositivo.

Para marcar o dispositivo como ro, ele precisa ser desmontado primeiro:

# umount /mnt/raid1# mdadm --manage /dev/md0 --readonly# mount /mnt/raid1# touch /mnt/raid1/test1
Configurar permissões no Raid Array

Para configurar o array para permitir operações de escrita também, use a opção --readwrite. Note que você precisará desmontar o dispositivo e pará-lo antes de configurar o rw flag:

# umount /mnt/raid1# mdadm --manage /dev/md0 --stop# mdadm --assemble /dev/md0 /dev/sdc1 /dev/sdd1# mdadm --manage /dev/md0 --readwrite# touch /mnt/raid1/test2
Allow Read Write Permission on Raid

Summary

Atrás desta série nós explicamos como configurar uma variedade de matrizes RAID de software que são usadas em ambientes corporativos. Se você seguiu os artigos e os exemplos fornecidos nestes artigos você está preparado para aproveitar o poder do RAID de software em Linux.

Se você tiver dúvidas ou sugestões, sinta-se à vontade para entrar em contato conosco usando o formulário abaixo.

Deixe uma resposta

O seu endereço de email não será publicado.