bitmap externo mdadm não usado

bitmap externo mdadm não usado

Coloquei o bitmap em uma unidade EXT4 externa (1xHDD), mas espero que o arquivo também seja gravado sempre que os dados forem alterados em meu array RAID10, certo?
Eu até fiz a soma de verificação do arquivo bitmap e certamente não foi alterado.
O tamanho do arquivo é de apenas 2 KB (o tamanho do bloco de bitmap está definido como 64 MB)

  • Tentei parar e iniciar o array, sem alteração, sem gravação no arquivo
  • Se o arquivo não estiver acessível quando o array for iniciado, receberei o erro mdadm: Could not open bitmap file /mnt/1xHDD/R10_bitmap.datque é bom

Status do processo mdadm com cat /proc/mdstat: insira a descrição da imagem aqui

Detalhes da matriz com mdadm --detail /dev/md127: insira a descrição da imagem aqui

Verificação do arquivo bitmap commdadm -X /mnt/1xHDD/R10_bitmap.dat

      Filename : /mnt/1xHDD/R10_bitmap.dat
         Magic : 6d746962
       Version : 4
          UUID : 39f863d1:4d247162:c3672454:1765abe2
        Events : 2914
Events Cleared : 2914
         State : OK
     Chunksize : 64 MB
        Daemon : 5s flush period
    Write Mode : Normal
     Sync Size : 624877568 (595.93 GiB 639.87 GB)
        Bitmap : 9535 bits (chunks), 0 dirty (0.0%)

Conteúdo do meu mdadm.conf:

HOMEHOST <system>
MAILADDR root
ARRAY /dev/md/SRV01:R10_HDD metadata=1.2 bitmap=/mnt/1xHDD/R10_bitmap.dat name=SRV01:R10_HDD UUID=39f863d1:4d247162:c3672454:1765abe2

A propósito, algum comentário sobre colocar o arquivo bitmap em um único HDD? Tentei apenas renomeá-lo e o array continua sem problemas, embora mdadm --details...diga que o bitmap foi excluído.

Observação adicional: ao mudar para bitmap externo, o desempenho de gravação neste array RAID10 aumentou de 135 MB/s para 370 MB/s! (usando IO direto, ou seja, cache de página não em uso).

Responder1

Parece que o arquivo bitmap externo estava funcionando, afinal.

Como apontado por Stephen Kitt no comentário, o arquivo geralmente é bem pequeno, especialmente se você estiver usando um tamanho grande de bitmap. (Eu esperava que fosse muito maior).

O motivo de não observar a alteração do arquivo bitmap foi porque esqueci que montei o sistema de arquivos com a opção EXT4 noatime(não atualizarei a data e hora da modificação) e quando fiz uma soma de verificação MD5 do arquivo, o array estava no tempo sincronizado, portanto, sem alterações.

Em segundo lugar, sobre estabilidade/risco de colocar o bitmap externo em um 1xdrive "inseguro":
derrubar a unidade onde o arquivo bitmap estava localizado, em tempo de execução, não introduziu nenhuma instabilidade no array em execução e afetado. mdadm apenas informa que o arquivo bitmap foi "excluído", mas a matriz continua funcionando bem. Embora não fique online ao reiniciar o array, por exemplo, na reinicialização, até que você reconfigure o bitmap (para noneou internalpara outro externalarquivo de bitmap).
Resumindo, acho seguro colocá-lo em um disco não espelhado.

É muito subestimado na documentação do mdadm e em todos os guias do mdadm que tenho lido sobre o tamanho do impacto no desempenho usando o bitmap interno padrão, pelo menos no RAID10 e no RAID5.

Acabei de fazer um benchmark rápido no R5:
Bitmap: Interno, gravação: 267MBs
Bitmap: Nenhum, gravação: 434MBs
(tamanho total de teste 20G, tamanho de bloco 512K, cache de página habilitado)

informação relacionada