O que é um bitmap:
Um bitmap mdadm, também chamado de "bitmap de intenção de gravação", é um mecanismo para acelerar reconstruções de RAID após um desligamento não limpo ou após a remoção e a adição de um disco.
Com um bitmap, gravar dados no RAID é assim:
- Atualizar bitmap: marque os fragmentos de RAID que você está prestes a gravar como sujos.
- Grave os dados no RAID.
- Atualizar bitmap: marque os fragmentos de RAID que acabaram de ser escritos como limpos.
A vantagem de um bitmap é que, se o sistema ficar inativo no meio de uma gravação, a reconstrução precisa verificar apenas os fragmentos marcados como sujos, em vez de todo o RAID multi-TB. Isso pode acelerar o processo de reconstrução, levando várias horas para ser concluído em apenas alguns segundos.
A desvantagem é menor desempenho de gravação sob uso normal (recriações externas), já que o mdadm faz acesso adicional ao disco para atualizar o bitmap.
Externo vs interno:
- external : armazenado como um arquivo em um disco fora do RAID. A vantagem sobre um bitmap interno é melhor desempenho de gravação durante o uso normal (recriações externas).
- interno : armazenado como metadados RAID. A vantagem sobre um bitmap externo é que você não precisa de um disco não-RAID e economiza um pouco na configuração (o caminho para o bitmap).
De acordo com a página do manual do mdadm:
Note: external bitmaps are only known to work on ext2 and ext3.
Storing bitmap files on other filesystems may result in serious
problems.
De acordo com uma postagem de Neil Brown , o autor do mdadm, os bitmaps externos devem trabalhe no ext4 também:
I haven't looked inside ext4 but I am fairly confident that external bitmaps
will work properly.
HOWTO:
Os bitmaps são adicionados e removidos usando mdadm --grow --bitmap=XXX ...
, em que o XXX é um dos seguintes:
-
--bitmap=internal
: crie um bitmap interno. -
--bitmap=/var/my_bitmap.bin
: crie um bitmap externo no caminho especificado. O caminho deve residir fora do RAID. Um parâmetrobitmap=...
deve ser adicionado à entrada ARRAY em/etc/mdadm/mdadm.conf
, e o parâmetro--bitmap=...
deve ser passado se você estiver montando o RAID a partir da linha de comando. -
--bitmap=none
: remover / desativar os bitmaps.
Referências:
- Como: Acelerar o desenvolvimento e a nova sincronização de software Linux
-
página do manual do mdadm - ver bandeira
-b, --bitmap=
-
página do manual mdadm.conf - veja a opção
bitmap
Comentários:
IMO, os bitmaps são talvez principalmente de interesse para os níveis de RAID 5 e 6, já que eles têm as reconstruções mais lentas.
Eu mudei de RAID 5 para RAID 10 eu mesmo; as recriações são muito mais rápidas que eu não sinto a necessidade de um bitmap, e o RAID 10 parece exigir muito menos reconstruções em primeiro lugar.
Minha configuração do RAID 5 costumava soltar um disco algo como uma vez por mês, causando recriações de 12 a 14 horas. O RAID 10 só caiu um disco uma vez em meio ano, reconstruído em menos de uma hora.
Não sei se as freqüentes quedas de disco que experimentei foram causadas por algo diferente do nível do RAID, mas o RAID 10 foi muito mais estável e a velocidade de reconstrução não é mais uma preocupação.