16 de abr. de 2010

mdadm - Página de Manual em português

NOME

mdadm - Gerencia dispositivos MD aka de Raid por software no GNU/Linux

SINOPSE

mdadm [mode] [options]

DESCRIÇÃO

Dispositivos RAID são dispositivos virtuais criados a partir de dois ou mais dispositivos de bloco reais. (normalmente estes dispositivos são discos rígidos ou partições destes) Embora possa ser aplicado a dispositivos de loop e qualquer tipo de dispositivo de bloco. Dispositivos de bloco podem ser combinados em um único dispositivo para conter um único sistema de arquivos em dispositivos separados. Alguns níves de RAID podem assegurar tolerância a falhas garantindo a integridade dos dados.

Dispositivos RAID via software no Linux é implementado através do dispositivo md (multiple devices) Suas representações literais no sistema são /dev/mdX ou ainda /dev/mdXpN dependendo da forma como for implementado.

Atualmente o Linux suporta os seguintes dispositivos RAID (md) via software:
LINEAR: É uma expansão do dispositivo de bloco, ou seja. Suponha que se tenha um disco rígido de 40GB e um de 80GB, estes são combinados de forma contígua formando um sistema de arquivos de 120GB aproximadamente.

RAID 0:
Também denominado stripping onde os dados são parcialmente gravados em cada um dos discos. Este método possui o inconveniente de não possuir tolerâncias a falhas. Se um dos discos for danificado todo o conteúdo será perdido. Esta técnica é usada em situações onde precisamos de elevada velocidade de escrita e leitura em discos rígidos. pode-se usar tantos discos quanto necessário.

RAID 1:
Também denominado mirroring (espelhamento) onde os discos, partições ou qualquer outro dispositivo de bloco ficam perfeitamente sincronizados. O que ocorre em um ocorre igualmente no outro. É voltado especificamente para tolerância a falhas.

RAID 4:
Sistema tolerante a falhas com paridade. Atualmente não é mais utilizado devido a inovação do RAID 5 que apresenta vantagens em relação ao RAID 1 e RAID 4

RAID 5:
Semelhante ao RAID 4 sendo que as informações de paridade são escritas em todos os dispositivos do array ao invés de um único disco dedicado, aprentando uma tolerância a falhas plena.

RAID 6:
É um padrão relativamente novo, suportado por apenas algumas controladoras. É semelhante ao RAID 5, porém usa o dobro de bits de paridade, garantindo a integridade dos dados caso até 2 dos HDs falhem ao mesmo tempo. Ao usar 8 HDs de 20 GB cada um em RAID 6, teremos 120 GB de dados e 40 GB de paridade.

MULTIPATH:
O Multipath não é um mecanismo de RAID via software, porém não envolve múltiplos dispositivos de bloco. No MULTIPATH cada dispositivo do array é um caminho para um dispositivo de armazenamento comum. Um storage por exemplo.

* O mdadm é um programa usado para criar, gerenciar e monitorar dispositivos MD. Como tal, oferece um conjunto de funcionalidades semelhantes ao pacote raidtools. As principais diferenças entre mdadm e raidtools são:

* O mdadm é um único programa e não uma coleção de programas.
mdadm pode fazer (quase) todas as suas funções sem ter um arquivo de configuração e não usar um por padrão. O Mdadm também colabora com a gestão do arquivo de configuração.

O mdadm fornece informações sobre o arrays (por meio de consulta, de detalhes, e exames) que as ferramentas do pacote raidtools que não pode. O mdadm não usa /etc/raidtab, o arquivo de configuração raidtools, em tudo. Tem um arquivo de configuração diferente, com um formato e propósito diferentes.


MODOS de OPERAÇÃO (modes)

O mdadm possui 7 modos de operação principais:

Assemble:
Monta as partes de array já criado em uma matriz ativa. Os componentes do array podem ser dados explicitamente ou buscado. O mdadm verifica quais componentes fazem parte de uma matriz confiável e ainda podem montar um array defeituoso propositadamente para fins de teste etc.

Build:
Constroi um array legado sem um dispositivo de bloco.

Create:
Cria um novo array com dispositivos de bloco.

Manage:
O manage serve para parar ou reiniciar um array para adição, remoção e substituição de dispositivos de bloco.

Misc:
Este modo permite operações em dispositivos independentes, tais como analizar dispositivos de superblocos MD, apagando superblocos antigos e parando arrays ativos.

Follow or Monitor:
Monitora um ou mais dispositivos MD e atua sobre alterações de estado.
Isso somente faz sentido em RAID1,4,5,6 ou arrays MULTIPATH pois somente estes possuem estados interessantes. O RAID 0 ou linear não possuem spare ou discos defeituosos então não há o que monitorar.


OPTIONS

As opções disponíveis são:
-A, --assemble
monta um array existente.

-B, --build
Constroi um array legado sem superblocos

-C, --create
Cria um novo array

-Q, --query
Checa se um dispositivo é um dispositivo MD ( ex: /dev/md0, /dev/md1...) ou se ele é um componente de um array MD ( ex: /dev/md0pX, /dev/sdX, /dev/hdX). O resultado é exibido na saída stdout

-D, --detail
Exibe detalhes de um ou mais MD devices. Sua saída também é utilizada para criar o /etc/mdadm.conf

-E, --examine
Exibe o conteúdo do superbloco MD no(s) dispositivo(s)

-F, --follow, --monitor
    Seleciona modo monitor.

-G --grow
Altera o tamano ou forma de um array ativo

-h, --help
Exibe mensagens de ajuda relativa a um modo e/ou opção específicos.

-V, --version
Exibe informações sobre a versão do mdadm

-v, --verbose
Exibe detalhes do que está ocorrendo.

-f, --force
Força determinadas operações. Veja o significado exato dessa opção em diferentes contextos, opções e modos de operação.

-c, --config=
Especifica qual será o arquivo de configuração. O arquivo de configuração default é o /etc/mdadm.conf.
Se o arquivo de configuração de partições for dado, nada será lido pelo mdadm, entretanto o mdadm agirá como se o arquivo de partições contivesse o conteúdo do /proc/partitions para encontrar uma lista de dispositivos.

-s, --scan
Lê o arquivo de configuração ou o /proc/mdstat caso o primeiro esteje vazio ou não exista. Geralmente esta opção dá ao mdadm prmissão para obter todas as informações faltantes, tais como componentes do array, o próprio array, identidade UUID do array e seus dispositivos e alertas a partir do arquivo de configuração /etc/mdadm.conf

PARA CRIAR ou CONSTRUIR:

-C, --chunk=
Especifica o chunk size e KBytes. O default é 64

--rounding=
Especifica o fator de arredondamento de um array linear (==chunk size)

-l, --level=
Define o tipo de RAID. Quando usado com o modo --create (criar um array) as opções são: linear, RAID0 ou 0, listra, RAID1 ou 1, RAID4 ou 4, RAID5 ou 5, multipath ou mp.

-p, --parity=
Determina qual o algoritimo usado na paridade em arrays RAID 5. As opções são as seguintes: left-asymmetric, left-symmetric, right-asymmetric, right-symmetric ou simplesmente suas abreviações la, ra, ls, rs. O algoritmo default é o left-symmetric se não for especificado nenhum.

--layout=
O mesmo que -p ou --parity

-n, --raid-devices=
Especifica o número de dispositivos ativos no array. Isso acrescido do número de dispositivos de reserva (spares) é o número total de dispositivos no array listados na linha de comando para criar arrays.
Definir um valor igual a 1 é certamente um erro visto que não há sentido em se criar um array com um único componente, no entanto pode ser feito com a opção -f ou --force. O valor igual a um é permitido para RAID 0, 1 e MULTIPATH e nunca permitido para arrays RAID 4 e 5. Este valor somente pode ser alterado para aumentar arrays RAID 1 e somente em kernel que possuam suporte a esta função.

-x, --spare-devices=
Esppecifica o número de dispositivos de spare no array inicial. Spares podem ser adcionados ou removidos posteriormente. O número de dispositivos listados na linha de comando deve ser igual ao número de dispositivos RAID acrescido do número de dispositivos de spare.

-z, --size=
Quantidade (em KBytes) de espaço para utilização de cada unidade em RAID 1/4/5/6. Este valor deve ser um múltiplo do chunksize e deve deixar pelo menos 128Kb de espaço no final da unidade para o superbloco RAID. Se este valor não for especificado ( e normalmente não é) a menor unidade (partição) define o seu tamanho, mas se houver uma variação entre as unidade superior a 1% é emitido um alerta.
Este valor pode ser definido com a opção --grow para arrays RAID 1/4/5/6. Se o array foi criado com um tamanho menor que as unidades atuais, o espaço extra pode ser acessado usando a opção --grow.

--assume-clean
Informa ao mdadm que o array é pré-existente e está limpo (clean).
Isso somente é util para a construção de um array RAID1. Use isso somente se você souber o que está fazendo. Esta opção atualmente só é suportada para a opção --build

-R, --run
Insiste para que o mdadm execute o array, mesmo que alguns componentes pareçam estar ativos em um outro array ou sistema de arquivos. normalmente o mdadm pede confirmção antes de incluir componentes no array. Esta opção faz essa pergunta ser suprimida.

-f, --force
Insiste para que o mdadm aceite a geometria e layout especificados sem questionar. Normalmente o mdadm não permite a criação de um array com um único dispositivo, e tentará criar um array RAID5 com uma unidade faltante (Isso torna a tarefa inicial resync mais rápida). Com o uso do -f ou --force, o mdadm não tentará ser tão,inteligente.

-a, --auto{=no,yes,md,mdp,part,p}{NN}
Instrui o mdadm para criar o arquivo de se for necessário e atribuir um número menor não usado. "yes" ou "md" causa um array não particionável para ser usado. "mdp", "part" ou "p" produz um array particionável (Kernel 2.6 ou superior). O argumento pode vir imediatamente após "-a". Exemplo: "-ap".
Para arrays particionáveis, o mdadm criará o arquivo de dispositivo para toda a série e para as 4 primeiras partições. Um número diferente de partições pode ser especificado no final desta opção, Ex: (--auto=p7). Se o nome do dispositivo terminar com um dígito, os nomes das partições adciona um underline, um 'p' e um número, por exemplo: "/dev/home1_p3". Se não houver um dígito a direita os nomes de partições tem apenas um número adcional. Exemplo: "/dev/scratch3".

PARA MONTAR: (For Assemble)
-u, --uuid=
uuid do array para montar. Dispositivos que não possuem esse uuid especificado são excluídos.

-m, --super-minor=
Menor número de dispositivo que foi criado um array. Dispositivos que não tem número menor que este são excluídos. Se você criar um array /dev/md1, então todos os demais superblocos terão que conter um número menor que 1 mesmo que posterior mente seja montado como /dev/md2.
Atribuindo a palavra literal "dev" para --super-minor fará com que o mdadm use o menor número de dispositivo MD que estiver sendo montado. Exemplo: Ao montar /dev/md0, o mdadm irá procurar por dispositivos menores que 0.

-f, --force
Monta o array mesmo que hajam superblocos apareçam como out-of-date.

-R, --run
Tenta iniciar o array mesmo se menos unidades que foram dadas são necessárias para um array completo. Normalmente se todos os drives não forem encontrados e o --scan não for usado, então o array será montado mas não será iniciado. Com --run será feita uma tentativa para inicia-lo de qualquer maneira.

-a, --auto{=no,yes,md,mdp,part}
Veja esta opção sob as opções Create e Build.

-U, --update==
Atualiza o superbloco em cada dispositivo durante a montagem do array. O argumento dado a esta flag podem ser sparc2.2, summaries ou super-minor.
O argumento sparc2.2 ajustará o superbloco de um array criado em uma máquina Sparc rodando um patch 2.2 do Kernel. Este kernel tem o alinhamento de uma parte do superbloco errado. Você pode usar a opção  --examine --sparc2.2 para o mdadm verificar o efeito que isso teria.
A opção super-minor atualizará o menor campo preferido em cada superbloco para que coincidam com o array de menor número que estiver sendo montado. Isso não é necessário nos kerneis 2.6 e superiores, pois esse ajuste é feito automaticamente.
A opção summaries corigirá os resumos no superbloco. Essa é a contagem do total, trabalho, ativo, falhas e dispositivos de spare.


PARA o MODO MANAGE:

-a, --add
Insere a quente dispositivos listados.

r, --remove
Remove dispositivos listados. Eles não devem estar ativos, dever estar em estado de falha ou serem dispositivos de spare.

-f, --fail
Marca dispositivos listados como falhos.

--set-faulty
O mesmo que -f, --fail


PARA o MODO EXAMINE:

--sparc2.2
Em um array criado em um Kernel 2.2 atualizado com suporte a RAID, o superbloco teria sido criado incorretamente, ou ao menos icompatíveis com kernels 2.4 ou superiores. Usando a marca --sparc2.2 com --examine o superbloco será corrigido antes de ser exibido. Se aparecer para fazer a coisa certa, então o array poderá ser montado com sucesso usando-se as opções --assemble --update=sparc2.2.


PARA o MODO MISC:

-R, --run
Inicia um array parcialmente construído

-S, --stop
Desativa um array liberando todos os recursos

-o, --readonly
Marca um array como "somente leitura"

-w, --readwrite
Marca um array como "leitura escrita"

--zero-superblock
Se o dispositivo tiver um superbloco MD válido md, o bloco é sobre-escrito com zeros. Com a opção -f, --force o bloco onde o superbloco seria sobre-escrito mesmo não aparentando ser válido.

-t, --test
Quando usado com a opção -D, --datail o status de saída do mdadm é setado para refletir o status do dispositivo.


PARA o MODO MONITOR:
-m, --mail
Envia um email para alerta

-p, --program, --alert
Executa um programa sempre que um evento é detectado.

-d, --delay
Atrasa em segundos, gera uma enquete nos MD arrays e aguarda este mesmo tempo antes da enquete seguinte. O tempo default é de 60 segundos.

-f, --daemonise
Instrui o mdad para rodar em background como um daemon se não decidir monitorar nada. Isso causa um fork que roda um processo filho e desconecta o terminal. A identificação do processo filho é escrito na saída padrão stdout. Isso é util com a opção --scan que somente continuará a varredura se um email de alerta for encontrado no arquivo de configuração mdadm.conf

-1, --oneshot
Verifica os arrays uma única vez. Isso gerará eventos NewArray e mais significamente eventos DegradedeArray

-t, --test
Gera um alerta TestMessage para cada array encontrado na iniciação. Esse alerta é enviado por email e aprovado para o programa de alerta. Isso pode ser usado para testar se uma mensagem de alerta é enviada com êxito.


MODO ASSEMBLE

    Uso: mdadm --assemble md-device options-and-component-devices...
    Uso: mdadm --assemble --scan md-devices-and-options...
    Uso: mdadm --assemble --scan options...

Este uso monta um ou mais raid arrays a partir de componentes pré-existentes. Para cada array, o mdadm necessita conhecer o dispositivo MD, a identidade (uuid) do array e o número de dispositivos e componentes. Estes podem ser encontrados sob várias formas.

No primeiro exemplo de uso do modo --assemble ( sem a opção --scan ) o primeiro dispositivo dado é o dispositivo MD. No segundo todos os dispositivos listados são tratados como dispositivos MD e ocorre uma tentativa de montagem. Já no terceiro exemplo ( onde nenhum dispositivo é listado ) todos os dispositivos MD que são listados no arquivo de configuração mdadm.conf são montados.

Se um dispositivo estiver precisamente listado, porém a opção --scan não for dada, o mdadm então age como se a opção --scan tivesse sido dada e as informações são extraídas do arquivo de configuração mdadm.conf.

A identificação do dispositivo pode ser dadad com a opção --uuid, com a opçãp --super-minor, pode ser encontrada no arquivo de configuração mdadm.conf, ou serão obtidas a partir do próprio superbloco no primeiro dispositivo listado na linha de comando.

Os dispositivos podem ser dados na linha de comando --assemble ou no arquivo de configuração. Somente dispositivos que contenham superblocos MD contém a identidade correta serão considerados para qualquer array.

O arquivo de configuração somente é usado se for explicitamente chamado com a opção --config ou requerido com --scan. Em último caso o /etc/mdadm.conf é usado.

Se a opção --scan não for dada em seguida, o arquivo de configuração será usado somente para descobrir a identidade (uuid) dos arrays MD.

Normalmente o array é startado após ser montado. De qualquer formase a opção --scan não for dada e um número insuficiente de unidades forem listados para iniciar um array ( não degradado ) completo, em seguida o array não é iniciado ( para proteção contra erros ). para insistir que o array seja iniciado neste caso deve-se usar a opção --run.

Se uma opção -auto for dada, seja na linha de comando (--auto) ou no arquivo de configuração mdadm.conf ex: auto=part, então o mdadm criará o dispositivo MD se necessário ou a recriará se não enxergar como ele é.

Isso também pode ser usado para lidar com dispositivos particionados. (Que não tiverem um número de dispositivo estável. Este pode mudar após um reboot), e quando se utiliza o udev para gerenciar sua árvore /dev tree (O udev não consegue lidar com dispositivos MD devido as convenções incomuns de inicialização de dispositivo).

Se a opção para "auto" for "mdp" ou "part" or nenhum ( somente na linha de comando ) , o mdadm então irá criar um array MD convencional, não particionável.

Espera-se que a funcionalidade "auto" seja usada para criar entradas de dispositivos com nomes significativos tais como "/dev/md/home" ou "/dev/md/root", ao invés de nomes em bases numéricas do array.

Ao usar esta opção para criar uma array de partições, os arquivos do dispositivo para as primeiras 4 partições também são criados. Se for necessário um número diferente por simplesmente ser anexada a opção "auto". Ex: "aoto=part8". Nomes de partições são criados anexando uma seqüencia de dígitos ao nome do dispositivo, com um intervalo "_p" se o nome do dispositivo terminar com um digito.

A opção --auto tabém está disponível nos modos build e create. Como esses modos não usam o arquivo de configuração, a opção de configuração "auto=" não se aplica a esses modos.


MODO BUILD:

Uso: mdadm --build device --chunk=X --level=Y --raid-devices=z devices

Sua utilização é semlhante ado modo --create. A diferença é que ele cria um array legado sem superbloco. Com esses arrays não há diferença entre criar o array e montar o array posteriormente, exeto se esperarmos que hajam dados úteis no segundo caso.

O RAID só poderá ser 0, RAID0 ou linera. Todos os dispositivos serão listados e o array uma vez concluído será iniciado.


MODO CREATE:

Uso: mdadm --create device --chunk=X --level=Y --raid-devices=Z devices

Essa linha de comando inicializa um novo array MD e  associa os dispositivos a ele e ativa o array.

Se a opção --auto for dada ( conforme descrito em maiores pormenores na seção MODO ASSEMBLE), então o dispositivo MD será criado com o número de dispositivo adequado se for necessário.

Como os dispositivos são adcionados, eles são verificados para ver se contém superblocos RAID ou sistemas de arquivos. Também são verificados para checar se a variação no tamanho do dispositivo seja maior que 1%

Se qualquer discrepância for encontrada, o array não rodará automaticamente, embora a presença de um --run pode substituir este cuidado.

Para criar um array "degraded" onde faltem alguns componentes, simplesmente digite o parâmetro "missing" no lugar do no do dispositivo. Isso fará com que o mdadm deixe um slot vazio no array correspondente. Para um array RAID4 ou 5 no máximo 1 slot pode ser perdido. Para um RAID6, somente um dispositivo real é necessário, todos os demais podem ser "missing", ou seja removidos ou apresentarem falhas.

Ao se criar um array RAID5, o mdadm cria automaticamente um array "degraded" com uma unidade extra de spare. Isso acontece devido a construção do spare em um array degradado é em geral mais rápida do que um resyncing de paridade em um array não degradado, mas não limpo. Este recurso pode ser "sobremontado" com a opção -l --force.

As opções gerais de gerenciamento que são válidas com o modo --create são as seguintes:

--run
Executa um array mesmo se alguns dispositivos enxergarem como eles poderiam estar em uso.

--readonly
Inicia um array no modo "somente leitura", ainda não suportados.


MODO MANAGE

Uso: mdadm device options devices

Isso permite o uso de dispositivos individuais de um array para adciona-los, remove-los gerar falhas. Com o comando --manage é possível fazer diversas operações. Ex:
mdadm /dev/md0 -f /dev/hda1 -r /dev/hda1 -a /dev/hda1
No exemplo acima primeiramente foi marcada uma falha com a opção -f em /dev/hda1 no array /dev/md0 e em seguida ele foi removido do array com a opção -r, e finalmente o adcionamos novamente como spare. Entretanto apenas um array pode ser manipulado por um único comando de cada vez.



MODO MISC

Uso: mdadm options devices

O modo MISC inclui um série de operações distintas para atuar sobre dispositivos distintos. As operações são:

--query
O dispositivo é examinado para verificar se:
1) É um array ativo
2) Se é um componente de um array
A informação é detectada e reportada.

--detail
O dispositivo deve ser um array MD ativo. O mdadm exibirá uma descrição detalhada do array. --brief ou --scan farão com que a saída seja menos detalhada com um formato adequado a ser uma entrada no /etc/mdadm.conf. O status da saída do mdadm normalmente é 0 a não ser que o mdadm não consiga obter informações úteis acerca do dispositivo(s). Entretanto se a opção --test for dada, então o estado da saída será:

0 - O array está funcionando normalmente
1 - O array tem pelo menos um dispositivo defeituoso
2 - O array tem vários dispositivos e ainda pode funcionar (RAID4,5 e 6)
4 - O mdadm encontrou um erro ao tentar obter informações.

--examine
O dispositivo deve ser um componente integrante de um array MD. O mdadm fará a leitura do superbloco MD do dispositivo e exibirá seu conteúdo. Se a opção --brief for dada, ou --scan em seguida vários dispositivos que são componentes de um array são agrupados e comunicados em uma única saída adequada a inclusão no /etc/mdadm.conf.
Se a listagem da opção --scan não listar nenhum dispositivo, fará com que todos os dispositivos no array MD sejam examinados.

--stop
Os dispositivos devem ser arrays ativos e serão desativados, enquanto não estiverem em uso.

--run
Esta opção ativará completamente uma array MD parcialmente montado.

--readonly
Esta marca ativa um array no modo "somente leitura", providenciando que não seja usada.

--readwrite
Isso muda o status do array de "somente leitura" para "leitura/escrita" novamente.

--scan
Para todas as operações exeto --examine, ela fará com que a operação seja aplicada a todos os arrays listados no /proc/mdstat. A operação --scan faz com que todos os dispositivos listados no /etc/mdadm.conf sejam examinados.


MODO MONITOR

Uso: mdadm --monitor options... devices...

Seu uso faz com que o mdadm pesquise periodicamente um número de MD arrays e apresente um relatório sobre todos os eventos observados. O mdadm nunca sai quando ele decide que não há arrays para serem verificados, por isso deve ser executado em background.
Bem como eventos de referência, o mdadm pode mover uma disco de spare de um array para outro se eles estiverem no mesmo spare-group e se o array de destino tiver um disco que haja falhado.

Se os dispositivos forem listados na linha de comando, o mdadm somente irá monitorar estes dispositivos. Do contrário todos os arrays listados no arquivo de configuração mdadm.conf serão monitorados.

O resultado da monitoração de arrays é a geração de eventos. Estes eventos são repassados a um programa separado, caso seja especificado algum e envia um email para um endereço fornecido.

Quando um evento é repassado a um programa este é executado uma vez para cada evento e são dada uma linha de comando de 2 ou 3 argumentos. O primeiro é o nome do evento (veja abaixo). O segundo é o nome do dispositivo MD que for afetado, e o terceiro é o nome de um dispositivo especificado se for relevante, como um dispositivo que haja falhado.

Se a opção --scan for dada deve ser especificado logo em seguida um programa ou um endreço de e-mail na linha de comando ou no arquivo de configuração mdadm.conf. Se estas informações não estiverem disponíveis o mdadm não monitorará nada. Sem a opção --scan o mdadm contuniará a monitorar enquanto algo for encontrado pelo monitor. Se não for especificado nenhum programa ou email for especificado na linha de comando ou no arquivo de configuração cada caso será relatadao para a saída padrão stdout.

O diferentes eventos são:

DeviceDisappeared
Um MD array anteriormente configurado agora aparenta não estar mais configurado ou não está mais em funcionamento.

RebuildStarted
Um array começou a reconstrução..

RebuildNN
Onde NN é 20, 40, 60 ou 80, isso indica o percentual em que se encontra a reconstrução.

RebuildFinished
Um array que não está mais em reconstrução ou por que ela foi concluída ou por que foi abortada.

Fail
Um dispositivo de um array ativo foi marcado como falho.

FailSpare
Um dispositivo de spare que estava sendo reconstruído para substituir um dispositivo que falhou.

SpareActive
Um dispositivo de spare foi ativado com sucesso para subistituir um dispositivo que falhos no array.

NewArray
A novo MD array foi detectado no /proc/mdstat

DegradedArray
Um array recém observado parece degradado. Esta mensagem não é gerada quando o mdadm percebe uma falha em uma unidade que estiver causando a degradação do array. Apenas quando o mdadm percebe que um array está degradado quando o viu da primeira vez.

MoveSpare
Informa que uma unidade de spare foi movida de um array, para outro grupo de spare, para permitir a substituição de um drive.

TestMessage
Um array foi encontrado na iniciação e a flag --test foi dada.

Somente Fail, FailSpare, DegradedArray e TestMessage geram envios de e-mail. Todos os eventos causam a execução do programa externo. O programa com dois ou três argumentos, sendo eles o nome do evento, o dispositivo do array e possivelmente um segundo dispositivo.

Cada evento é associado a um dispositivo associado ao array (Ex: /dev/md1 ) e posivelmente um segundo dispositivo. Para Fail, FailSpare e SpareActive o segundo dispositivo em quatão é relevante. Para MoveSpare o segundo dispositivo é o array para qual o spare foi movido.

Para o mdadm mover spares de um array para outro, diferentes array precisam ser rotulados como sendo do mesmo grupo de spare no arquivo de configuração mdadm.conf. O nome do grupo de spare pode ser qualquer um. Somente é necessário que os diferentes grupos de spare usem nomes diferentes.

Quando o mdadm detecta um array que está em um grupo de spare, o array tem menos dispositivos do que o necessário para integrar um array completo e não tem dispositivos de spare, Ele irá olhar para o outro array que estiver no mesmo grupo de spare que estiver completo, com unidades principais e de spare. Então o mdadm tentará remover o spare do segundo disco e adciona-lo ao primeiro. Se a remoção for bem sucedida e seguda ele é adcionado ao array original.


MODO GROW

O modo GROW é usado para alterar o tamanho ou formato de um array ativo. Para isso funcionar o kernel deve ter o suporte necessário. Varios tipos de redimensionamento foram adcionados durante a evolução do kernel da série 2.6, inclusive de adcionar mais dispositivos a um array RAID5.

Atualmente é o único suporte disponível para alterar o atributo "size" de um array com redundância, e o atributo raid-disks de um array RAID1.

Normalmente quando um array é construído o parâmetro "size" é extraído da unidade de menor tamanho. Se todas as unidades menores em um array são removidas e substituídas por discos maiores um de cada vez, você então terá um conjunto de discos grandes com uma pequena parcela deles sendo usada. Nesta situação, alterando o "size" com o modo "GROW" permitirá o uso do novo espaço extra nos novos discos. Se o o tamanho for aumentado desta forma, um processo "resync" será executado para sincronizar os novos discos do array.

Note que quando uma matriz tem seu tamanho alterado, qualquer sistema de arquivos armazenado pode não usar todo o espaço integralmente podendo ser necessário também redimenciona-lo.

Um array RAID1 pode trabalhar com qualquer número de dispositivos sendo 1 o número mínimo. Caso você deseje aumentar ou diminuir o número de dispositivos. Note que isso é diferente de adcionar ou remover dispositivos a quente, ou "on-the-fly". O que alterará o número de dispositivos inativos.

Quando se reduz o número de dispositivos em um array RAID1, os slots removidos do array já deverão estar vazios.

Quando o número de unidades for aumentado, os hotspares que estiverem presentes serão imediatamente ativados.



EXEMPLOS

mdadm --query /dev/md0
mdadm --query /dev/sd[ab]
Este comando detectará se um dispositivo é um array ou faz parte de um.O primeiro por exemplo fornecerá a seguinte saída.
/dev/md0: 260.84GiB raid1 2 devices, 0 spares. Use mdadm --detail for more detail.
Se fizermos uma --query para os discos individualmente como o segundo exemplo a saída será:
/dev/sda: is not an md array
/dev/sda: device 1 in 2 device mismatch raid1 /dev/md0.  Use mdadm --examine for more detail.
/dev/sdb: is not an md array
/dev/sdb: device 0 in 2 device mismatch raid1 /dev/md0.  Use mdadm --examine for more detail.

mdadm --stop --scan
Este comando fará um shutdown todos os arrays ou um que seja especificado (Ex: /dev/md0). Isso normalmente é associado a um script de shutdown do sistema, embora atualmente não seja mais usado.

mdadm --follow --scan --delay=120
Se houver, (e somente se houver) um endereço de e-mail ou algum programa especificado no arquivo de configuração mdadm.conf, o mdadm monitorará o status de todos os arrays listados no mdadm.conf a cada 2 minutos, vide exemplo acima.

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/hd[ac]1
Cria um array RAID1 (/dev/md0) composto pelos discos /dev/hda1 e /dev/hdc1
Note que os comandos mdadm suportam experessões regulares.

echo 'DEVICE /dev/hd*[0-9] /dev/sd*[0-9]' > mdadm.conf
mdadm --detail --scan >> mdadm.conf
Isso criará um protótipo do arquivo de configuração que descreve os arrays ativos. Este arquivo deve ser revisto, pois pode conter detalhes indesejados.

echo 'DEVICE /dev/hd[a-z] /dev/sd*[a-z]' > mdadm.conf
mdadm --examine --scan --config=mdadm.conf >> mdadm.conf
Este encontra todos os discos IDE ou SCSI que podem integrar um array e guarda-los em um mdadm.conf

mdadm --examine --brief --scan --config=partitions
Cria uma lista de dispositivos através da leitura do /proc/patitions e escaneia os superblocos RAID  e exibe uma lista resumida de tudo o que for encontrado.

mdadm -Ac partitions -m 0 /dev/md0

Escaneia todas as partições e dispositivos listados no /proc/partitons e monta o dispositivo /dev/md0 com todos os dispositivos listados como um superbloco RAID de número menor que 0

mdadm --monitor --scan --daemonise > /var/run/mdadm
Se o mdadm.conf contiver um endereço de e-mail ou um programa, o mdadm será rodado em background no modo monitor e irá monitorar todos os dispositivos MD. Será também escrito o pid (número de identificação do processo) do mdadm em /var/run/mdadm.

mdadm --config --help
Exibe o help sobre o formato do arquivo de configuração.

mdadm --help
Exibe um help genérico.



FILES ( arquivos de configuração e relacionados ao mdadm )

/proc/mdstat
Se você estiver usando o /proc, o /proc/mdstat lista todos os dispositivos MD ativos com informações sobre os mesmos. O mdadm usa o /proc/mdstat para procurar arrays quando é dada a opção --scan no modo MISC ou irá monitorar a reconstrução de um array no modo MONITOR.

/etc/mdadm.conf

É o arquivo de configuração padrão do mdadm. Contém os dispositivos que podem ser verificados e manipulados pelo mdadm, se contém dispositivos de bloco e fornece informações sobre os arrays e seus componentes, tais como UUID. Sugerimos a leitura do manual (man mdadm.conf) para maiores detalhes.


NOTA

O mdadm era no passado conhecido como mdctl


VEJA TAMBÉM

Para informações acerca de diversos níveis de RAID.
http://ostenfeld.dk/~jakob/Software-RAID.HOWTO/

Para novas versões e níveis de RAID verifique:
ftp://ftp.kernel.org/pub/linux/kernel/people/mingo/raid-patches ou http://www.cse.unsw.edu.au/~neilb/patches/linux-stable/

PÁGINAS de MANUAL RELACIONADAS:

mdadm.conf(5), md(4).

raidtab(5), raid0run(8), raidstop(8), mkraid(8)

Nenhum comentário:

Postar um comentário