Como configurar RAID no Linux Guia Passo a Passo

Este tutorial explica como visualizar, listar, criar, adicionar, remover, apagar, redimensionar, formatar, montar e configurar os níveis RAID (0, 1 e 5) no Linux passo a passo com exemplos práticos. Aprenda conceitos básicos de software RAID (Chunk, Mirroring, Striping e Parity) e comandos essenciais de gerenciamento de dispositivos RAID em detalhes.

RAID significa Redundant Array of Independent Disks. Existem dois tipos de RAID; RAID de Hardware e RAID de Software.

Hardware RAID

Hardware RAID é um dispositivo de armazenamento físico que é construído a partir de vários discos rígidos. Ao conectar com o sistema, todos os discos aparecem como um único disco SCSI no sistema. Do ponto de vista do sistema, não há diferença entre um disco SCSI normal e um dispositivo RAID de Hardware. O sistema pode usar um dispositivo RAID de hardware como um único disco SCSI.

Hardware RAID tem seu próprio subsistema de disco independente e recursos. Ele não utiliza nenhum recurso do sistema, como energia, RAM e CPU. O RAID de hardware não coloca nenhuma carga extra no sistema. Como ele tem seus próprios recursos dedicados, ele fornece alto desempenho.

Software RAID

Software RAID é um dispositivo de armazenamento lógico que é construído a partir de discos conectados no sistema. Ele usa todos os recursos do sistema. Ele fornece desempenho lento, mas não custa nada. Neste tutorial vamos aprender como criar e gerir RAID por software em detalhe.

Este tutorial é a última parte do nosso artigo “Linux Disk Management Explained in Easy Language with Examples”. Pode ler outras partes deste artigo aqui.

Tutorial de Gestão de Disco Linux

Esta é a primeira parte deste artigo. Esta parte explica conceitos básicos da gestão de discos Linux tais como BIOS, UEFI, MBR, GPT, SWAP, LVM, RAID, partição primária, partição alargada e sistema de ficheiros tipo Linux.

Gerir a Partição de Disco Linux com o comando fdisk

Esta é a segunda parte deste artigo. Esta parte explica como criar partições primárias, extendidas e lógicas a partir do comando fdisk no Linux passo a passo com exemplos.

Gerir Partição de Disco Linux com o comando gdisk

Esta é a terceira parte deste artigo. Esta parte explica como criar partições GPT (tabela de partições GUID) a partir do comando gdisk no Linux passo a passo com exemplos.

Linux Disk Management with parted command

Esta é a quarta parte deste artigo. Esta parte explica como criar partições primárias, estendidas, lógicas e GPT a partir do comando parted no Linux passo a passo com exemplos.

Como criar partição SWAP no Linux

Esta é a quinta parte deste artigo. Esta parte explica como criar partição swap no Linux com exemplos incluindo tarefas básicas de gestão de swap, como aumentar, montar ou limpar memória swap.

Aprenda a configurar o LVM no Linux passo a passo

Esta é a sexta parte deste artigo. Esta parte explica os conceitos básicos do LVM em detalhes com exemplos incluindo como configurar e gerenciar LVM no Linux passo a passo.

Conceitos básicos de RAID

Um dispositivo RAID pode ser configurado de múltiplas maneiras. Dependendo da configuração, ele pode ser categorizado em dez níveis diferentes. Antes de discutirmos os níveis RAID com mais detalhes, vamos dar uma olhada rápida em alguma terminologia importante utilizada na configuração RAID.

Chunk: – Este é o tamanho do bloco de dados usado na configuração RAID. Se o tamanho do pedaço é 64KB então haveria 16 pedaços em 1MB (1024KB/64KB) de matriz RAID.

Hot Spare: – Este é o disco adicional na matriz RAID. Se algum disco falhar, os dados do disco defeituoso serão migrados automaticamente para este disco sobressalente.

Mirroring: – Se este recurso estiver ativado, uma cópia dos mesmos dados também será salva em outro disco. É como fazer uma cópia adicional de dados para fins de backup.

Striping: – Se este recurso estiver habilitado, os dados serão gravados em todos os discos disponíveis aleatoriamente. É como compartilhar dados entre todos os discos, assim todos eles preenchem igualmente.

Paridade: – Este é o método de regeneração de dados perdidos a partir de informações de paridade salvas.

Diferentes níveis de RAID são definidos com base em como o espelhamento e o stripping são necessários. Entre estes níveis apenas Nível 0, Nível 1 e Nível 5 são usados principalmente no Red Hat Linux.

Nível RAID 0

Este nível fornece striping sem paridade. Como ele não armazena nenhum dado de paridade e realiza operações de leitura e escrita simultaneamente, a velocidade seria muito mais rápida do que em outros níveis. Este nível requer pelo menos dois discos rígidos. Todos os discos rígidos neste nível são preenchidos igualmente. Você só deve usar este nível se estiver preocupado com a velocidade de leitura e escrita. Se você decidir usar este nível, então sempre implante um plano alternativo de backup de dados. Como qualquer falha de disco único do array resultará em perda total de dados.

RAID Nível 1

Este nível fornece paridade sem striping. Ele grava todos os dados em dois discos. Se um disco falhar ou for removido, ainda temos todos os dados no outro disco. Este nível requer discos rígidos duplos. Isso significa que se você quiser usar 2 discos rígidos, então você tem que implantar 4 discos rígidos ou se você quiser usar um disco rígido, então você tem que implantar dois discos rígidos. O primeiro disco rígido armazena os dados originais enquanto o outro disco armazena a cópia exata do primeiro disco. Como os dados são gravados duas vezes, o desempenho será reduzido. Você deve usar este nível somente se a segurança dos dados estiver preocupada a qualquer custo.

RAID Nível 5

Este nível fornece tanto paridade quanto striping. Ele requer pelo menos três discos. Ele escreve os dados de paridade igualmente em todos os discos. Se um disco falhar, os dados podem ser reconstruídos a partir dos dados de paridade disponíveis nos discos restantes. Isto fornece uma combinação de integridade e desempenho. Sempre que possível você deve usar este nível.

Se você quiser usar um dispositivo RAID por hardware, use um dispositivo RAID por hardware hot swappable com discos sobressalentes. Se qualquer disco falhar, os dados serão reconstruídos no primeiro disco sobressalente disponível sem qualquer tempo de inatividade e como é um dispositivo hot swappable, você pode substituir o dispositivo que falhou enquanto o servidor ainda estiver rodando.

Se o dispositivo RAID estiver configurado corretamente, não haverá diferença entre RAID por software e RAID por hardware do ponto de vista do sistema operacional. O sistema operacional acessará o dispositivo RAID como um disco rígido normal, não importa se é um RAID por software ou RAID por hardware.

Linux fornece o módulo md kernel para a configuração RAID por software. Para utilizar RAID por software temos de configurar o dispositivo RAID md que é um composto de dois ou mais dispositivos de armazenamento.

Como configurar RAID por software passo a passo

Para este tutorial assumo que tem espaço em disco não particionado ou discos rígidos adicionais para praticar. Se você estiver seguindo este tutorial em software virtual como a estação de trabalho VMware, adicione três discos rígidos adicionais no sistema. Para aprender como adicionar discos rígidos adicionais no sistema virtual, veja a primeira parte deste tutorial. Se você estiver seguindo este tutorial em máquina física, anexe um disco rígido adicional. Você pode usar uma pendrive ou pen drive para praticar. Para fins de demonstração eu anexei três discos rígidos adicionais no meu sistema de laboratório.

Cada disco tem 2GB de tamanho. Podemos listar todos os discos rígidos anexados com o comando fdisk -l.

Também podemos usar o comando lsblk para ver uma visão geral estruturada de todos os dispositivos de armazenamento anexados.

Como podemos ver na saída acima, há três discos não particionados disponíveis com cada um de 2G em tamanho.

O pacote mdadm é usado para criar e gerenciar o RAID do software. Para aprender como instalar e gerenciar o pacote no linux veja os seguintes tutoriais

Como configurar o YUM Repository no RHEL
RPM Comando Explicado com Exemplo

Para este tutorial eu assumo que o pacote mdadm está instalado.

Criar RAID 0 Array

Podemos criar array RAID 0 com discos ou partições. Para entender ambas as opções vamos criar duas matrizes RAID 0 separadas; uma com discos e outra com partições. O RAID 0 Array requer pelo menos dois discos ou partições. Usaremos /dev/sdc e /dev/sdd disk para criar RAID 0 Array a partir de discos. Vamos criar duas partições em /dev/sdb e mais tarde utilizá-las para criar outro RAID 0 Array a partir de partições.

Para criar RAID 0 Array com discos use o seguinte comando

#mdadm --create --verbose /dev/ --level= --raid-devices= 

Vamos entender este comando em detalhes

mdadm:- Este é o comando principal

–create:- Esta opção é usada para criar um novo dispositivo md (RAID).

–verbose:- Esta opção é usada para ver a atualização em tempo real do process.

/dev/:- Este argumento é usado para fornecer o nome e a localização do array RAID. O dispositivo md deve ser criado sob o diretório /dev/.

–level=:- Esta opção e argumento são usados para definir o nível RAID que quer criar.

–raid-devices=:- Esta opção e argumento são usados para especificar o número de dispositivos de armazenamento ou partições que queremos usar neste dispositivo.

:- Esta opção é usada para especificar o nome e localização do dispositivo de armazenamento.

>O comando Seguinte será usado para criar um array RAID 0 a partir de discos /dev/sdc e /dev/sdd com nome md0.

Para verificar o array podemos usar o seguinte comando

Acima da saída confirma que o array RAID md0 foi criado com sucesso a partir de dois discos (sdd e sdc) com configurações RAID nível 0.

Criar RAID 0 Array com partições

Criar uma partição 1GiB com comando fdisk

Por padrão todas as partições são criadas como padrão Linux. Altere o tipo de partição para RAID e salve a partição. Saia do utilitário fdisk e execute o comando partprobe para atualizar a tabela de partições do kernel em tempo de execução.

Para aprender o comando fdisk e seu sub-comando em detalhes veja a segunda parte deste tutorial que explica como criar e gerenciar partições com o comando fdisk passo a passo.

Vamos criar mais uma partição mas desta vez use o comando parted.

Para aprender o comando parted em detalhes veja a quarta parte deste tutorial que explica como gerenciar o disco com o comando parted passo a passo.

Criamos duas partições passo a passo. Vamos construir outro array RAID (Nível 0) mas desta vez use partições ao invés de discos.

O mesmo comando será usado para criar um array RAID a partir de partições.

Quando usamos o comando mdadm para criar um novo array RAID, ele coloca sua assinatura no dispositivo ou partição fornecida. Então qual tipo de partição nós usamos aqui não é importante, o ponto importante que devemos sempre considerar é que a partição não deve conter nenhum dado valioso. Durante este processo todos os dados da partição serão eliminados.

Criar sistema de arquivos em RAID Array

Não podemos usar o array RAID para armazenamento de dados até que ele contenha um sistema de arquivos válido. O seguinte comando é usado para criar um sistema de arquivos em array.

#mkfs –t 

Sistema de arquivos md0 com sistema de arquivos ext4 e md1 com sistema de arquivos xfs.

RAID 0 Arrays estão prontos para uso. Para usá-las temos que montá-las em algum lugar no sistema de arquivos Linux. O sistema de arquivos Linux (estrutura de diretórios primários) começa com o diretório raiz (/) e tudo vai sob ele ou seus subdiretórios. Podemos montar partições temporárias ou permanentemente.

Temporary mounting RAID 0 Array

Following command is used to mount the array temporary.

#mount 

Mount command accepts several options and arguments which I will explain separately in another tutorial. Para este tutorial esta sintaxe básica é suficiente.

O que montar :- Este é o array.

Onde montar :- Este é o diretório que será usado para acessar o recurso montado.

Once montado, qualquer ação que executaremos no diretório montado será executada nos recursos montados. Vamos entender isso praticamente.

  • Criar um diretório de montagem em / diretório
  • Mount /dev/md0 array
  • Listar o conteúdo
  • Criar um diretório de teste e arquivo
  • Listar novamente o conteúdo
  • Un-monte o array /dev/md0 e liste o conteúdo novamente
  • Agora monte o array /dev/md1 e liste o conteúdo
  • Crie um diretório e um arquivo de teste. Use nome diferente para arquivo e diretório
  • Liste o conteúdo
  • Desmonte o array /dev/md1 e liste o conteúdo novamente

A seguir a figura ilustra este exercício passo a passo

Como a figura acima mostra qualquer ação que realizamos no diretório de montagem foi realmente realizada no respectivo array.

A opção de montagem por temporizador é boa para array que acessamos ocasionalmente. Se acessarmos o array regularmente, esta abordagem não será útil. Cada vez que reiniciamos o sistema, todos os recursos temporários de montagem são desmontados automaticamente. Então se temos um array que vai ser usado regularmente, devemos montá-lo permanentemente.

Mounting RAID Array permanentemente

Cada recurso no sistema de arquivos tem um ID único chamado UUID. Ao montar um array permanentemente, nós devemos usar UUID ao invés de seu nome. A partir da versão 7, a RHEL também usa UUID ao invés do nome do dispositivo.

O UUID significa Universally Unique Identifier (Identificador Universalmente Único). É um número de 128 bits, expresso em formato hexadecimal (base 16).

Se você tiver um ambiente estático, você pode usar o nome do dispositivo. Mas se você tiver um ambiente dinâmico, você deve sempre usar UUID. Em ambiente dinâmico, o nome do dispositivo pode mudar cada vez que o sistema é inicializado. Por exemplo, nós anexamos um disco SCSI adicional no sistema; ele será nomeado como /dev/sdb. Nós montamos este disco permanentemente com o nome do seu dispositivo. Agora suponha que outra pessoa removeu este disco e anexou um novo disco SCSI no mesmo slot. O novo disco também será nomeado como /dev/sdb. Como o nome do disco antigo e do novo disco é o mesmo, o novo disco será montado no lugar do disco antigo. Desta forma, o nome do dispositivo pode criar um problema sério em ambiente dinâmico. Mas este problema pode ser resolvido com o UUID. Não importa como anexamos o recurso com o sistema, seu UUID permanecerá sempre corrigido.

Se você tiver um ambiente estático, você pode considerar o nome do dispositivo para montar o recurso. Mas se você tem ambiente dinâmico, você deve sempre usar o UUID.

Para conhecer o UUID de todas as partições, podemos usar o comando blkid. Para conhecer o UUID de uma partição específica, temos de usar o seu nome como argumento com este comando.

Após conhecermos o UUID, podemos usá-lo em vez do nome do dispositivo. Também podemos usar a opção copiar e colar para digitar o UUID.

  • Utilizar comando blkid para imprimir o UUID do array.
  • Copiar o UUID do array.
  • Utilizar comando de montagem para montar o array. Use a opção paste ao invés de digitar UUID.

Following figure illustrates above steps

Quando o sistema inicia, ele procura no arquivo /etc/fstab para descobrir os dispositivos (partições, LVs, swap ou array) que precisam ser bem montados no sistema de arquivos automaticamente. Por padrão este arquivo tem entrada para aquelas partições, volumes lógicos e espaço swap que foram criados durante a instalação. Para montar qualquer dispositivo adicional (Array) automaticamente, temos de fazer uma entrada para esse dispositivo neste ficheiro. Cada entrada neste arquivo tem seis campos.

Número Filed Descrição
1 O que montar Dispositivo que queremos montar. Podemos usar o nome do dispositivo, UUID e etiqueta neste arquivo para representar o dispositivo.
2 Onde montar O diretório no sistema de arquivos principal do Linux onde queremos montar o dispositivo.
3 Sistema de ficheiros Arquivo tipo de dispositivo.
4 Opções Tal como o comando de montagem também podemos usar as opções suportadas aqui para controlar o processo de montagem. Para este tutorial vamos usar as opções padrão.
5 Suporte de dump Para habilitar o dump neste dispositivo use 1. Use 0 para desativar o dump.
6 Verificação automática Se este dispositivo deve ser verificado durante a montagem ou não. Para desativar o uso 0, para habilitar o uso 1 (para a partição raiz) ou 2 (para todas as partições, exceto a partição raiz).

Vamos fazer alguns diretórios para montar as arrays que criamos recentemente

Pega o backup do arquivo fstab e abre-o para edição

Faça entradas para arrays e salve o arquivo.

Para fins de demonstração usei tanto o nome do dispositivo como o UUID para montar as partições. Este comando irá montar tudo o que está listado no ficheiro /etc/fstab. Então se cometemos algum erro ao atualizar este arquivo, obteremos um erro como saída deste comando.

Se você obtiver algum erro como saída do comando mount -a, corrija isso antes de reiniciar o sistema.

O comando df -h é usado para verificar o espaço disponível em todas as partições montadas. Podemos usar este comando para verificar se todas as partições estão montadas corretamente.

Acima da saída confirma que todas as partições estão montadas corretamente. Vamos listar os dois dispositivos RAID.

Como excluir o RAID Array

Não podemos excluir um array montado. Desmontar todos os arrays que criámos neste exercício

>

Utilizar o seguinte comando para parar o array RAID

#mdadm --stop /dev/

Remover o directório de montagem e copiar o ficheiro fstab original de volta.

Se você não pegou o backup do arquivo fstab original, remova todas as entradas deste arquivo que você fez.

Reinicializar todos os discos usados nesta prática.

O comando dd é a maneira mais fácil de descansar o disco. Os utilitários do disco armazenam seus parâmetros de configuração em super bloco. Normalmente o tamanho do super bloco é definido em KB, por isso apenas sobrescrevemos o primeiro espaço de 10MB com bytes nulos em cada disco. Para aprender o comando dd em detalhe, veja a quinta parte deste tutorial que explica este comando em detalhe.

Agora reinicie o sistema e use o comando df -h novamente para verificar se todos os dispositivos RIAD que criamos neste exercício desapareceram.

Como criar RAID 1 e matriz RAID 5

Podemos criar matriz RAID 1 ou RAID 5 seguindo o mesmo procedimento. Todos os passos e comandos serão os mesmos exceto o comando mdadm –create. Neste comando você tem que alterar o nível RAID, número de discos e localização dos discos associados.

Para criar o array RAID 1 a partir de discos /dev/sdd e /dev/sdb use o seguinte comando

Para criar o array RAID 1 a partir de partições /dev/sdb1 e /dev/sdb2 use o seguinte comando comando

Você pode obter aviso de metadados se você tiver usado os mesmos discos e partições para criar previamente a matriz RAID e que os discos ou partições ainda contenham informações de metadados. Lembre-se que limpamos apenas 10Mb de espaço inicial, deixando o espaço restante intocado. Você pode seguramente ignorar esta mensagem ou pode limpar o disco inteiro antes de usá-los novamente.

Para criar um array RAID 5 a partir de /dev/sdb, /dev/sdc e /dev/sdd disks use o seguinte comando.

RAID 5 A configuração requer pelo menos 3 discos ou partições. É por isso que nós usamos três discos aqui.

Para criar RAID 5 array a partir de /dev/sdb1, /dev/sdb2 e /dev/sdb3 partições use o seguinte comando

Para evitar erros desnecessários descanse sempre os discos antes de usá-los na nova prática.

Até agora neste tutorial aprendemos como criar, montar e remover array RAID. Na seção seguinte aprenderemos como gerenciar e solucionar problemas de um RAID Array. Para esta seção eu assumo que você tem pelo menos um array configurado. Para fins de demonstração vou usar o último exemplo configurado (RAID 5 com 3 partições). Vamos criar um sistema de arquivos neste array e montá-lo.

Vamos colocar alguns dados fictícios neste diretório.

Redirecionei a página de manual do comando ls no arquivo /testingdata/manual-of-ls-command. Mais tarde, para verificar se o arquivo contém dados reais eu usei o comando wc que conta linha, palavra e caracteres do arquivo.

Como visualizar os detalhes do dispositivo RAID

O comando segue é usado para visualizar as informações detalhadas sobre o dispositivo RAID.

#mdadm --detail /dev/

Esta informação inclui o nível RAID, tamanho do Array, tamanho usado do tamanho total disponível, dispositivos usados na criação deste Array, dispositivos usados atualmente, dispositivos sobressalentes, dispositivos falhados, tamanho do pedaço, UUID do Array e muito mais.

Como adicionar disco ou partição adicional no RIAD

Existem várias situações em que temos de aumentar o tamanho do dispositivo RAID, por exemplo, um dispositivo raid pode ser preenchido com dados ou um formulário de disco do Array pode falhar. Para aumentar o espaço do dispositivo RAID temos de adicionar disco ou partição adicional no Array.

No exemplo em execução usamos o disco /dev/sdb para criar três partições. Os /dev/sdc e /dev/sdd ainda estão disponíveis para uso. Antes de adicioná-los neste Array, certifique-se de que estejam limpos. Da última vez usamos o comando dd para limpar os discos. Podemos usar esse comando novamente ou usar o seguinte comando

#mdadm --zero-superblock /dev/

Para verificar se um disco contém superbloco ou não podemos usar o seguinte comando

#mdadm --examine /dev/

A figura seguinte ilustra o uso de ambos os comandos em ambos os discos

Agora ambos os discos estão prontos para o RAID Array. O seguinte comando é usado para adicionar disco adicional no array existente.

#mdadm --manage /dev/ --add /dev/

Adicionemos o disco /dev/sdc neste array e confirmemos o mesmo.

Direito agora este disco foi adicionado como um disco de reposição. Este disco não será usado até que algum disco falhe a partir do array existente ou forçarmos manualmente o RAID a usar este disco.

Se algum disco falhar e os discos sobressalentes estiverem disponíveis, o RAID selecionará automaticamente o primeiro disco sobressalente disponível para substituir o disco defeituoso. Os discos sobressalentes são o melhor plano de backup no dispositivo RAID.

Para backup adicionaremos outro disco em array, vamos usar este disco para aumentar o tamanho do array. O seguinte comando é usado para aumentar o tamanho do dispositivo RAID.

#mdadm --grow --raid-devices= /dev/

RAID arranja todos os dispositivos em sequência. Esta sequência é construída a partir da ordem em que os discos são adicionados em array. Quando usamos este comando RAID irá adicionar o próximo dispositivo em dispositivos activos.

A figura seguinte ilustra este comando

Como podemos ver acima, o disco de saída foi adicionado em array e o tamanho do array foi aumentado com sucesso.

Remover dispositivo defeituoso

Se estiver disponível um dispositivo de reserva, o RAID irá substituir automaticamente o dispositivo defeituoso por um dispositivo de reserva. O usuário final não verá nenhuma mudança. Ele será capaz de acessar os dados como de costume. Vamos entendê-lo praticamente.

Direito agora não há nenhum disco sobressalente disponível em array. Vamos adicionar um disco de reserva.

Quando um disco falha, o RAID marca esse disco como dispositivo com falha. Uma vez marcado, ele pode ser removido com segurança. Se quisermos remover qualquer dispositivo em funcionamento para fins de manutenção ou resolução de problemas, devemos sempre marcar isso como um dispositivo com falha antes de remover. Quando um dispositivo é marcado como dispositivo com falha, todos os dados do dispositivo com falha são reconstruídos nos dispositivos em funcionamento.

Para marcar um disco como dispositivo com falha é usado o comando.

#mdadm --manage --set-faulty /dev/ /dev/

Recentemente aumentamos o tamanho deste array. Então antes de fazer esta prática vamos verificar mais uma vez que o array ainda contém os dados válidos.

Como a saída acima confirma que o array ainda contém dados válidos. Agora vamos marcar um dispositivo /dev/sdc como dispositivo defeituoso do array e confirmar a operação.

As saída acima confirma que o dispositivo sdc que é o número quatro na sequência do array foi marcado como dispositivo defeituoso.

Como sabemos se o disco sobressalente está disponível, ele será usado como a substituição do dispositivo defeituoso automaticamente. Nenhuma ação manual é necessária neste processo. Vamos confirmar que o disco sobressalente foi usado como substituição do disco defeituoso.

Finalmente vamos verificar se os dados ainda estão presentes no array.

Acima da saída confirma que o array ainda contém dados válidos.

É tudo para este tutorial.

Deixe uma resposta

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