Artigo > Determinando Taxa de Gravação de Resync de RAID por software

Aprenda a configurar e monitorar a taxa de gravação de resync em RAID de software (mdadm) usando parâmetros como speed_limit_min e speed_limit_max.

953 Views
Tempo de Leitura: 4.6 minutos

Em uma situação de resync de dados em um RAID por software, onde o resync esteja onerando o servidor ou demorando muito para terminar, podemos determinar taxas mínima e máxima de gravação de dados entre os discos por meio de tuning de propriedades do Kernel.

Os parâmetros que determinam as velocidades mínima e máxima do resync são:

/proc/sys/dev/raid/speed_limit_min
/proc/sys/dev/raid/speed_limit_max

Hipóteses para alteração da taxa de reconstrução do RAID.

A alteração se faz necessária quando (1) o resync está muito lento ou (2) ou quando está gerando lentidão em um sistema que se encontra em produção. Uma terceira hipótese é querer terminar o resync o quanto antes pelo simples fato de que o servidor não pode ficar com o RAID degradado.

Seja qual for a hipótese, a alteração é bem simples. Basicamente, alteramos as taxas mínima e máxima das propriedades speed_limit determinando valores apropriados para o ambiente conforme veremos a seguir.

A alteração a seguir é deve ser feita em memória RAM para que comece a fazer efeito imediatamente.

Atenção: valores muito altos podem gerar lentidão de leitura e gravação em disco. Para servidores em Produção, especifique um valor adequado para o ambiente e/ou considere utilizar taxas maiores somente em momentos de menor demanda.

Alterando a velocidade mínima de reconstrução do RAID. Modo Volátil.

A alteração a seguir determina a taxa mínima de resync dos discos.

Para casos onde o resync está demorando muito, podemos aumentar a taxa de reconstrução do sync com o comando abaixo:

sysctl -w dev.raid.speed_limit_min=488281

Também podemos fazer com echo diretamente no diretório /proc:

echo 488281 > /proc/sys/dev/raid/speed_limit_min
Observação: 488281 KiB equivale a 512MB por segundo.

Alterando a velocidade máxima de reconstrução do RAID. Modo Volátil.

Também podemos determinar uma taxa máxima de resync dos dados. Esse é utilizado quando o processo de resync esteja impactando na performance do servidor. Ao reduzir a taxa máxima, reduz a prioridade do processo e gera menos concorrência no sistema.

sysctl -w dev.raid.speed_limit_max=1000000

Também podemos usar o echo no /proc:

echo 1000000 > /proc/sys/dev/raid/speed_limit_max
Observação: 1000000 KiB equivale a 1024MB ou 1GB por segundo.

Lembrando que essa configuração é volátil e será redefinida para valores default no próximo boot do sistema.

Alterando a valocidade de reconstrução do RAID. Modo persistido.

Para persistir esses novos valores nas propriedades speed_limit, é preciso setá-los no /etc/sysctl.conf. Para isso inclua o trecho abaixo:

dev.raid.speed_limit_min = 488281 # 512MB/s
dev.raid.speed_limit_max = 1000000 # 1024MB/s

A seguir execute o comando sysctl -p para recarregar a configuração do /etc/sysctl.conf. Feito isso, os novos valores já estarão em vigor de forma definitiva.

Quais valores devo usar?

Isso depente; se o RAID estiver demorando muito para terminar de completar o resync, é preciso aumentar as taxas mínima. Nesse caso, é bom especificar uma taxa máxima também. Agora, se o resync do RAID estiver gerando lentidão no sistema, o ideal é reduzir a taxa de resync e aumentá-la em momentos de menor impacto; de madrugada, por exemplo.

Para contar com um dinamismo na determinação de taxas de gravação, pode-se utilizar o Crontab. Desta forma seria possível modificar as taxas mínima e máxima de acordo com o horário ou baseado em cenários de consumo.

Plus: alterando prioridades de processos em caso de concorrência.

Para quem está no sufoco de refazer o resync harmonizando com uma grande demanda de consumo do ambiente, sugiro a leitura do seguinte artigo também do Linuxzilla. Nele falo sobre os comandos nice, renice e ionice, com os quais pode-se determinar a prioridade de consumo de CPU, Memória e Disco, respectivamente, para o processo do resync do RAID:

Gerenciando Prioridades de Processos

Resumo

Ficar sem RAID não é uma opção. Por isso saber gerenciar eventuais resync de dados é extremamente importante. Porém, também é importante garantir a saúde do ambiente enquanto o sync estiver ocorrendo. Com os ajustes tratados nesse artigo e com um pouco de conhecimento sobre o ambiente, é possível conciliar tudo isso garantindo um ambiente produtivo e em conformidade quanto a segurança do RAID.

Abraços.

0 - 0

Thank You For Your Vote!

Sorry You have Already Voted!

Rolar para cima