Software (e não só) RAIDS: Porque devemos fazer scrubs regulares a eles?

Olá a todos,

No seguimento do nosso post anterior, sobre software raid, chegaram-me muitos comentários pedindo para fazer um post a relembrar da necessidade de manutenção aos nossos arrays de storage, sejam locais ou em ambientes SAN/NAS – mesmo com qnap’s, synology, etc.

 

Creating the software mdadm RAID in Linux

A tecnologia RAID (Redundant Array of Inexpensive Disks) permite que vários dispositivos de armazenamento em massa funcionem juntos como uma única unidade, proporcionando maior desempenho, tolerância a falhas e redundância de dados e embora o RAID de software seja conhecido por sua confiabilidade, a necessidade de manutenção regular (conhecida por scrub), é necessária para garantir a integridade dos nossos dados.

O que é um scrub a um array de discos?

Um scrub de raid é um processo que envolve a leitura de todos os blocos de dados no array RAID e a verificação de sua integridade utilizando mecanismos internos.
Durante este processo, o controlador RAID verifica se há erros, como bits rot ou sectores danificados, e os repara, se possível utilizando as ferramentas internas ao tipo de raid.
O objetivo  é detectar e reparar qualquer possível corrupção de dados antes que se torne um problema grave e possivelmente irrecuperável.

E quais os motivos que nos fazem desejar implementar scrubs regulares nos nossos arrays?

1. Detecção e reparação  de uma corrupção de dados antes de se tornar grave.

A corrupção de dados pode ocorrer devido a vários motivos, como por exemplo falta de energia, falhas de hardware ou erros de software. Quando ocorre corrupção de dados, isso pode afetar a integridade de nossos arquivos e levar à perca de dados. Scrubs regulares ajudam a detectar a corrupção de dados antecipadamente, permitindo que o softRAID (e hardware raid) repare os erros antes que eles causem danos significativos.

2. Manter a redundância de dados.

A tecnologia RAID dá-nos redundância aos nossos dados armazenando eles em vários discos. Esta redundância garante que, se um disco falhar, os dados permaneçam intactos e acessíveis. No entanto, com o tempo, os dados podem se tornar inconsistentes devido a vários motivos, incluindo erros de disco ou blocos defeituosos (bad blocks). Scrubs regulares garantem que todos os blocos de dados sejam consistentes e quaisquer inconsistências sejam reparadas, mantendo a redundância de dados do nosso RAID array.

3. Melhorar o desempenho.

Como os nossos dados estão continuamente gravados e apagados do nosso RAID,  irão ocorrer eventos de fragmentação e inconsistências. Os scrubs regulares ajudam a melhorar o desempenho reduzindo a fragmentação o que se traduz numa otimização no layout dos dados.

4. Diminui a possibilidade de falha do disco.

Sei que ficaram agora com um sorriso desconfiado na cara, mas vários fabricantes de arrays empresariais são desta opinião. Quando os dados são gravados num disco, isto pode causar a degradação do revestimento magnético do disco, levando à perda de dados e falha do disco. Scrubs regulares ajudam a reduzir a falha do disco lendo e reescrevendo dados (especialmente em discos SMR), atualizando assim o revestimento magnético. Este processo prolonga a vida útil dos discos e reduz as chances de falha do disco.

5. Requisitos de Conformidade.

Certos fabricantes e órgãos reguladores exigem que as organizações mantenham a integridade dos seus dados e garantam que os dados não sejam adulterados ou perdidos. Os scrubs regulares são um componente essencial da integridade dos dados, e a falha em realizá-las pode resultar em não conformidade dependendo da certificação, do negócio, e da availability rating que se pretenda.

Em termos práticos, para nosso caso particular para mdadm, a sintaxe de scrub é relativamente simples:

# echo check > /sys/block/md0/md/sync_action

sendo que md0 é o array que desejamos fazer o scrub.

Mesma coisa pode ser feito em raid através do modulo lvm_mirror:

# lvchange –syncaction check $vg/$lvol

Onde o $vg é o nome do nosso volume group e o lvol o logical volume que está em mirror (em LVM mirror, faz-se mirror não a block devices, mas a lvm devices)

 

E pronto, chegamos ao fim de mais um post. Até a próxima semana, e já sabem, se tiverem duvidas ou reparos, you know where to find me.

Abraço,
Nuno