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:
- (Re)Adicionando um dispositivo ao array.
- Marcar um dispositivo como defeituoso.
- Removendo um dispositivo defeituoso do array.
- Substituir o dispositivo defeituoso por um sobressalente.
- Inicie um array parcialmente construído.
- Pare uma matriz.
- 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.