Como configurar o RAID1 no Linux

Como configurar o RAID1 no Linux

RAID significa uma variedade redundante de discos baratos; Dependendo do nível RAID que configuramos, podemos obter replicação e/ou distribuição de dados. Uma configuração RAID pode ser alcançada por hardware dedicado ou via software. Neste tutorial, vemos como implementar um RAID1 (espelho) via software no Linux, usando
o mdadm Utilitário.

Neste tutorial, você aprenderá:

  • As peculiaridades dos níveis mais utilizados de RAID
  • Como instalar o MDADM nas principais distribuições Linux
  • Como configurar um RAID1 com dois discos
  • Como substituir um disco na matriz RAID

Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Distribuição Independente
Programas mdadm
Outro Permissões de raiz
Convenções # - requer que os comandos linux -comidos sejam executados com privilégios de raiz diretamente como usuário root ou por uso de sudo comando
$-exige que o Linux-Commands seja executado como um usuário não privilegiado regular

Uma breve visão geral dos níveis mais utilizados de RAID



Antes de começarmos com nosso tutorial e ver como implementar uma configuração de software RAID1 no Linux usando mdadm, É uma boa ideia fazer uma breve recapitulação dos níveis mais usados ​​de RAID e ver quais são suas peculiaridades.

RAID0

Seu principal objetivo é melhorar o desempenho. Nesse nível ou ataque, temos dois ou mais discos que devem ter igual tamanho. Os dados são distribuídos alternativamente nos discos (listras), e isso diminui os tempos de leitura e gravação.

Diagrama Raid0

RAID1

RAID1 (espelhamento) é o que implementaremos neste tutorial: neste nível de RAID, os dados são escritos simultaneamente e, assim, replicados nos dois ou mais discos que fazem parte da matriz.



Diagrama Raid1

RAID5

Para criar uma configuração com este nível de RAID, são necessários no mínimo três discos e os discos N-1 podem conter dados. Essa configuração pode lidar com a falha de um disco sem sofrer perda de dados. Assim como o RAID0, nesses dados de configuração é listrado, distribuído em vários discos. A principal diferença é que também Informações sobre paridade de dados existe e também é listrado. O que é informações de paridade de dados? Basicamente, todos os discos
Na matriz RAID, contém informações sobre o status dos dados; Essas informações permitem a reconstrução de dados se um do disco falhar.



Diagrama Raid5

RAID6

RAID6 funciona de maneira semelhante a RAID5; A principal diferença é que essa configuração envolve a presença de dois Discos de paridade, portanto, com esse nível de ataque, é possível lidar com a falha de dois discos sem sofrer perda de dados. É necessário um mínimo de quatro discos para alcançar esta configuração.

Diagrama Raid6

Instalando o MDADM



Mdadm é o utilitário que gerencia a invasão de software no Linux. Está disponível em todas as principais distribuições. No Debian e seus derivados, é possível instalá -lo usando o seguinte comando:

$ sudo apt-get update && sudo apt-get install mdadm 

Na família Red Hat of Distribuições, podemos usar o DNF gerenciador de pacotes:

$ sudo dnf install mdadm 

No Archlinux, podemos instalar o pacote usando o Pacman gerenciador de pacotes:

$ sudo pacman -sy mdadm 

Depois que o software for instalado, podemos prosseguir e criar nossa configuração RAID1.

Criando o ataque

Para o bem deste tutorial, trabalharei em um ambiente virtual, usando um sistema "Buster" Debian e dois discos virtuais que eu criei anteriormente, que farão parte da configuração do RAID1. Tais discos são reconhecidos como vdb e VDC, como você pode ver na saída do LSBLK comando:

SR0 11: 0 1 1024M 0 ROM VDA 254: 0 0 7G 0 DISCO ├─VDA1 254: 1 0 6G 0 PARTE / ├─VDA2 254: 2 0 1K 0 PARTE └─VDA5 254: 5 0 1021M 0 Parte [Swap] VDB 254: 16 0 1G 0 DISCO VDC 254: 32 0 1G 0 DISCO 

Partindo os discos



Embora seja possível criar o ataque diretamente usando discos brutos, é sempre uma boa ideia evitar isso e, em vez disso, criar uma partição em cada um dos dois discos. Para executar essa tarefa, usaremos separado. A primeira coisa que queremos fazer é criar uma tabela de partição. Por causa deste exemplo, usaremos mbr tabelas de partição, mas Gpt são necessários em cenários do mundo real se usarem discos de 2 TB ou maiores. Para inicializar um disco, podemos executar o seguinte comando:

$ sudo partido -s /dev /vdb mklabel msdos 

Agora, podemos criar uma partição que ocupa todo o espaço disponível:

$ sudo partido -s /dev /vdb mkpart primário 1mib 100% 

Agora podemos colocar a bandeira de ataque na partição (isso definirá o tipo de partição para fd - "Linux RAID AUTODETECT"):

$ sudo partido -s /dev /vdb Set 1 Raid em 

Nesse caso, trabalhamos no /dev/vdb dispositivo, obviamente devemos repetir as mesmas operações também no /dev/vdc disco.

Configurando RAID1

Depois de inicializar e particionar os discos que podemos usar mdadm Para criar a configuração real. Tudo o que precisamos fazer é executar o seguinte comando:

$ sudo mdadm \ --verbose \ --create /dev /md0 \ --level = 1 \ --id-devices = 2 \ /dev /vdb1 /dev /vdc1 

Vamos analisar o comando acima. Primeiro de tudo, usamos o --detalhado opção para tornar o comando a saída mais informações sobre as operações que estão sendo executadas.

Nós costumavamos mdadm Em "Create Mode", é por isso que passou pelo --criar opção, fornecendo o nome do dispositivo que deve ser criado (/dev/md0 nesse caso). Nós especificamos que nível de usar para o ataque com --nível, e o número de dispositivos que devem fazer parte disso com --dispositivos de ataque. Finalmente fornecemos o caminho dos dispositivos que devem ser usados.

Depois de executar o comando, devemos visualizar a seguinte saída:

Mdadm: Nota: Esta matriz tem metadados no início e pode não ser adequada como um dispositivo de inicialização. Se você planeja armazenar '/inicializar' neste dispositivo, verifique se o seu carregador de inicialização entende MD/V1.x metadados, ou uso - -metadata = 0.90 mdadm: tamanho definido como 1046528k Continue criando matriz? y 

Nesse caso, podemos responder afirmativamente à pergunta e continuar criando a matriz:



MDADM: Defesão da versão 1.2 metadados mdadm: array /dev /md0 iniciado. 

Para visualizar informações e o estado da configuração de RAID criada, podemos executar mdadm com o --detalhe opção, passando o nome do dispositivo que queremos verificar. Nesse caso, a saída é a seguinte:

$ sudo mdadm -detail /dev /md0 /dev /md0: versão: 1.2 Tempo de criação: sex 23 de abril 11:16:44 2021 Nível de invasão: RAID1 Tamanho da matriz: 1046528 (1022.00 MIB 1071.64 MB) Tamanho do dev usado: 1046528 (1022.00 MIB 1071.64 MB) Dispositivos RAID: 2 Dispositivos totais: 2 Persistência: Superblock é Persistente Atualização Hora: Sex 23 de abril 11:17:04 2021 Estado: Limpo Dispositivos ativos: 2 Dispositivos de trabalho: 2 Dispositivos falhados: 0 dispositivos de reposição: 0 Política de consistência: RESYNC NOME: Debian: 0 (Local to Host Debian) UUID: 4721F921: BB82187C: 487DEFB8: E960508A EVENTOS: 17 Número Maior RaidDevice State 0 254 17 0 Sync /Dev /Dev /Vdb1 1 254 33 1 Sync /Dev /vd 

Com o --detalhe opção, podemos coletar informações sobre o ataque como um todo. Se queremos informações sobre cada disco único que seja membro da configuração, podemos usar --examinar em vez disso, e passe os dispositivos como argumento. Nesse caso, por exemplo, nós funcionaríamos:

$ sudo mdadm --examine /dev /vdb1 /dev /vdc1 


O comando produziria uma saída semelhante ao seguinte:

/dev/vdb1: magia: a92b4efc versão: 1.2 MAPO DE RECURSOS: 0x0 Array UUID: 4721F921: BB82187C: 487DEFB8: E960508A Nome: Debian: 0 (Local para hospedar o Debian) Tempo de criação: Sex 23 de abril 11:16:44 2021 RAID Nível: RAID1 Raid Devices: 2 Ocorre Tamanho dev:: 21:16:44 2021 2093056 (1022.00 MIB 1071.64 MB) Tamanho da matriz: 1046528 (1022.00 MIB 1071.64 MB) Data Offset : 2048 sectors Super Offset : 8 sectors Unused Space : before=1968 sectors, after=0 sectors State : clean Device UUID : a9575594:40c0784b:394490e8:6eb7e9a3 Update Time : Fri Apr 23 11:30:02 2021 Bad Block Log: 512 entradas disponíveis no deslocamento 16 setores Soma de verificação: 51AFC54D - Eventos corretos: 17 Função do dispositivo: dispositivo ativo 0 Estado da matriz: aa ('a' == ativo, '.'== Missing,' r '== substituindo) /dev /vdc1: Magic: A92B4EFC Versão: 1.2 MAPO DE RECURSOS: 0x0 Array UUID: 4721F921: BB82187C: 487DEFB8: E960508A Nome: Debian: 0 (Local para hospedar o Debian) Tempo de criação: Sex 23 de abril 11:16:44 2021 RAID Nível: RAID1 Raid Devices: 2 Ocorre Tamanho dev:: 21:16:44 2021 2093056 (1022.00 MIB 1071.64 MB) Tamanho da matriz: 1046528 (1022.00 MIB 1071.64 MB) Offset de dados: 2048 Setores Super offset: 8 setores Espaço não utilizado: Antes = 1968 Setores, depois de = 0 Setores Estado: Dispositivo Limpo UUID: B0CF8735: 5FE765C0: 6C269C2F: 3777D11D Tempo de atualização: FRI 23 11:30:022262f2f: 37777d11 Bad Block Log: 512 entradas disponíveis no deslocamento 16 setores Soma de verificação: 28C3066F - Eventos corretos: 17 Função do dispositivo: Dispositivo ativo 1 Estado da matriz: AA ('A' == Active, '.'== desaparecido,' r '== substituindo) 

Usando o dispositivo RAID



Na seção anterior, criamos uma configuração RAID1 usando dois discos (virtuais):
/dev/vdb e /dev/vdc. O dispositivo RAID que criamos é chamado /dev/md0. Para poder usá -lo, devemos criar um sistema de arquivos nele. Para usar o ext4, FileSystem, por exemplo, nós executaríamos:

$ sudo mkfs.ext4 /dev /md0 

Depois que o sistema de arquivos é criado, devemos montá -lo em algum lugar e proceder usando -o exatamente como um dispositivo de bloco normal. Para tornar o sistema montar automaticamente o dispositivo na inicialização, devemos criar uma entrada para ele no arquivo /etc /fstab. Ao fazê -lo, devemos fazer referência ao dispositivo RAID por seu Uuid, Uma vez que seu caminho pode mudar na reinicialização. Para encontrar o uuid do dispositivo, podemos usar o LSBLK comando:

$ lsblk -o uuid /dev /md0 uuid 58FF8624-E122-419E-8538-D948439A8C07 

Substituindo um disco na matriz



Agora, imagine um dos discos da matriz falhe. Como devemos proceder? Como veremos, podemos removê -lo da matriz sem perder nenhum dado. Supondo que o disco rígido fracassado seja /dev/vdc, Podemos emitir o seguinte comando para marcá -lo como tal:

$ sudo mdadm -manage /dev /md0 -flail /dev /vdc1 

A saída do comando acima será:

mdadm: set /dev /vdc1 com defeito em /dev /md0 

Podemos verificar o status do ataque para confirmar que o dispositivo foi marcado como com defeito:

$ sudo mdadm -detail /dev /md0 /dev /md0: versão: 1.2 Tempo de criação: sex 23 de abril 11:16:44 2021 Nível de invasão: RAID1 Tamanho da matriz: 1046528 (1022.00 MIB 1071.64 MB) Tamanho do dev usado: 1046528 (1022.00 MIB 1071.64 MB) Dispositivos RAID: 2 Dispositivos totais: 2 Persistência: Superblock é um tempo de atualização persistente: sex 23 de abril 15:01:36 2021 Estado: Limpo, degradado Dispositivos ativos: 1 Dispositivos de trabalho: 1 Dispositivos com falha: 1 Dispositivos de reposição: 0 Consistência Política: RESYNC Nome: Debian: 0 (local para hospedar o Debian) UUID: 4721F921: BB82187C: 487DEFB8: E960508A EVENTOS: 19 Número Maior RaidDevice State 0 254 17 0 Sync /dev /vdb1 - 0 0 1 Remoed 1 254 33 - com defeito /dev /vdc1 

Você pode ver que agora existe apenas um dispositivo ativo, e /dev/vdc1 estado
é: com defeito. Agora, para remover o disco da matriz, podemos executar:

$ sudo mdadm -manage /dev /md0 - -remove /dev /vdc1 

Passando --gerenciar nós trabalhamos com mdadm no modo "gerenciar"; Nesse modo, podemos executar ações como remover discos defeituosos ou adicionar novos. Se tudo correr como o esperado, o dispositivo deve ser "removido a quente":

mdadm: a quente removido /dev /vdc1 de /dev /md0 


Agora devemos formatar o novo disco rígido que usaremos para substituir o defeituoso da mesma maneira que fizemos nos outros dois, no início deste tutorial. Também poderíamos usar um atalho que consiste no uso do sfdisk comando. Se executarmos este comando com o -d opção (abreviação de --jogar fora), ele despejará informações sobre as partições de um dispositivo que passamos como argumento. Essas informações podem ser usadas como backup e para replicar a configuração. Podemos redirecionar a saída para um arquivo ou usá -lo diretamente em um pipeline. Supondo que o novo disco seja /dev/vdd, nós funcionaríamos:

$ sudo sfdisk -d /dev /vdb | sudo sfdisk /dev /vdd 

Depois que o novo disco estiver particionado e pronto, podemos adicioná -lo à nossa matriz Raid1 com o seguinte comando:

$ sudo mdadm -manage /dev /md0 --add /dev /vdd1 

Se agora verificarmos o status do dispositivo RAID, podemos ver que ele está "reconstruindo" no dispositivo sobressalente que adicionamos:

$ sudo mdadm -detail /dev /md0 /dev /md0: versão: 1.2 Tempo de criação: sex 23 de abril 11:16:44 2021 Nível de invasão: RAID1 Tamanho da matriz: 1046528 (1022.00 MIB 1071.64 MB) Tamanho do dev usado: 1046528 (1022.00 MIB 1071.64 MB) Dispositivos RAID: 2 Dispositivos totais: 2 Persistência: Superblock é um tempo de atualização persistente: sex 23 de abril 15:29:45 2021 Estado: Limpo, degradado, recuperando dispositivos ativos: 1 Dispositivos de trabalho: 2 Dispositivos com falha: 0 Dispositivos sobressalentes: 1 Política de consistência: REMYNC RECUNDAÇÃO ESTADO: 19% Nome completo: Debian: 0 (local para hospedar o Debian) UUID: 4721F921: BB82187C: 487DEFB8: E960508A Eventos: 26 Número Menor RaidDevice Estado 0 254 17 0 254 49 1 reconstrução sobressalente /dev /vdd1 

A partir da saída do comando, podemos ver que o estado é relatado como "limpo, degradado, se recuperando" e o /dev/vdd1 A partição é relatada como uma "reconstrução sobressalente". Uma vez que o processo de reconstrução termine, ele será transformado em "sincronização ativa".

Conclusões

Neste tutorial, vimos uma breve visão geral dos níveis mais usados ​​de RAID, como criar um software RAID1 com dois discos usando o mdadm utilidade, como verificar o status do dispositivo RAID e de cada único discos na matriz. Também vimos como remover e substituir um disco com defeito. Lembre -se sempre de que RAID1 vamos alcançar a redundância de dados, mas não deve ser considerado como um backup!

Tutoriais do Linux relacionados:

  • Espelhos do Ubuntu
  • Coisas para instalar no Ubuntu 20.04
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…
  • Loops aninhados em scripts de basquete
  • Arquivos de configuração do Linux: os 30 primeiros mais importantes
  • Download do Linux
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Linux pode obter vírus? Explorando a vulnerabilidade do Linux…