Pesquisa de site

Como gerenciar RAIDs de software no Linux com a ferramenta 'Mdadm' - Parte 9


Independentemente da sua experiência anterior com matrizes RAID, e se você seguiu todos os tutoriais desta série RAID ou não, gerenciar RAIDs de software no Linux não é uma tarefa muito complicada depois que você se familiarizar com mdadm --manage comando.

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

Cenário de teste RAID

Como no último artigo desta série, usaremos para simplificar um array RAID 1 (espelho) 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 se aplicam a outros tipos de configurações também. Dito isso, fique à vontade para adicionar esta página aos favoritos do seu navegador e vamos começar.

Compreendendo as opções e uso do mdadm

Felizmente, mdadm fornece um sinalizador 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á realizar e como:

Como podemos ver na imagem acima, o gerenciamento de um array RAID envolve a execução das seguintes tarefas de uma vez ou outra:

  1. (Re)Adicionando um dispositivo ao array.
  2. Marcar um dispositivo como defeituoso.
  3. Removendo um dispositivo defeituoso do array.
  4. Substituir o dispositivo defeituoso por um sobressalente.
  5. Inicie um array parcialmente construído.
  6. Pare uma matriz.
  7. Marque uma matriz como ro (somente leitura) ou rw (leitura-gravação).

Gerenciando dispositivos RAID com ferramenta mdadm

Observe que se você omitir a opção --manage, o mdadm assumirá o modo de gerenciamento de qualquer maneira. Tenha esse fato em mente para evitar problemas no futuro.

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: Adicionar um dispositivo à matriz RAID

Normalmente, você adicionará um novo dispositivo ao substituir um com defeito ou quando tiver uma peça sobressalente que deseja ter à mão em caso de falha:


mdadm --manage /dev/md0 --add /dev/sdd1

Exemplo 2: Marcar um dispositivo RAID como defeituoso e removê-lo do array

Esta é uma etapa obrigatória antes de remover logicamente o dispositivo do array e, posteriormente, retirá-lo fisicamente da máquina – nessa ordem (se você perder uma dessas etapas, poderá acabar causando danos reais ao dispositivo):


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

Observe como o dispositivo sobressalente adicionado no exemplo anterior é usado para substituir automaticamente o disco com falha. Não apenas isso, mas a recuperação e reconstrução dos dados do ataque também começam imediatamente:

Depois que o dispositivo tiver sido indicado como com falha manualmente, ele poderá ser removido com segurança do array:


mdadm --manage /dev/md0 --remove /dev/sdb1
Exemplo 3: Adicionar novamente um dispositivo que fazia parte do array que havia sido removido anteriormente

Até este ponto, temos um array RAID 1 funcional que consiste em 2 dispositivos ativos: /dev/sdc1 e /dev/sdd1. Se tentarmos adicionar novamente /dev/sdb1 a /dev/md0 agora mesmo:


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

encontraremos um erro:


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

porque a matriz já é composta pelo número máximo possível de unidades. Portanto, temos 2 opções: a) adicionar /dev/sdb1 como sobressalente, como mostrado no Exemplo #1, ou b) remover /dev/sdd1 do array e em seguida, adicione novamente /dev/sdb1.

Escolhemos a opção b), e começaremos parando o array para posteriormente 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, use o comando do Exemplo #1 para fazer isso.

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

Exemplo 4: Substitua um dispositivo Raid por um disco específico

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


mdadm --manage /dev/md0 --replace /dev/sdb1 --with /dev/sdd1

Isso resulta no dispositivo que segue a opção --with sendo adicionado ao RAID enquanto o disco indicado por --replace é marcado como defeituoso:

Exemplo 5: Marcando um array Raid como ro ou rw

Depois de criar o array, você deve ter criado um sistema de arquivos sobre ele e montado em um diretório para poder usá-lo. O que você provavelmente não sabia é que você pode marcar o RAID como ro, permitindo assim que apenas operações de leitura sejam realizadas nele, ou rw, para escrever também para o 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

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


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

Resumo

Ao longo desta série, explicamos como configurar uma variedade de matrizes RAID de software usadas em ambientes corporativos. Se você seguiu os artigos e os exemplos fornecidos neles, estará preparado para aproveitar o poder dos RAIDs de software no Linux.

Caso você tenha dúvidas ou sugestões, não hesite em nos contatar através do formulário abaixo.