Este desempenho de remoção de instantâneos btrfs é normal?

5

Eu tenho várias caixas rodando Debian 8, dovecot e btrfs. Estou usando instantâneos do btrfs para backup de curto prazo. Para este propósito, mantenho 14 instantâneos do subvolume de correio.

O desempenho está OK até a remoção de instantâneos: assim que o btrfs-cleaner entra em ação, tudo está quase parado. Isso vai até a perda da conectividade com o nó secundário devido ao tempo limite. Isso acontece em várias caixas, então é improvável que seja um problema relacionado a hardware.

O pico é onde a remoção de instantâneos ocorre:

Eunãopossoacreditarqueissosejaumcomportamentonormal.Então,minhaperguntaé:alguémtemexperiênciacomesseproblema,algumaideiadecomoresolvê-looudepurá-loou,comoúltimorecurso,comoevitá-lofazendoascoisasdemaneiradiferente?

SistemassãoDellR710,Debian8,Kernel3.16,Opçõesdemontagem:rw,noatime,nossd,space_cache

Editar:Maisinformaçõesdosistema

DualR710,24GBdeRAM,H700comcachedetexto,8x1TB7.2kSatacomoRAID6,protocoloDRBDB,linkdedicadode1Gb/sparaDRBD

Editar:RemovendooconteúdodoInstantâneopormeioderm-rf.AceleradoporIO,casocontrário,eleteriafugidocomoobtrfs-cleanerfez:

Gostariadeconcluirqueissoémuitopiordoqueoesperado.AúnicavantageméqueeupossocontrolaracargadeE/Sdoespaçodeusuáriorm.

Eoutraedição:Iopsmassacree

    
por tim 18.03.2016 / 17:07

2 respostas

5

No mundo CoW (BTRFS e ZFS, basicamente), a remoção de um snapshot / subvolume requer muitas operações de metadados "pesados", o que implica muitas buscas na cabeça. Isso ocorre porque o sistema de arquivos analisa suas próprias estruturas para determinar o bloco usado exclusivamente pelo instantâneo incorreto. Isso, por sua vez, pode trazer um sistema de joelhos.

Para confirmar que este é o problema, faça isso:

  • abre dois terminais com screen
  • no primeiro terminal, execute iostat -x -k 1
  • no segundo terminal, remova o instantâneo
  • durante a remoção, verifique o primeiro terminal: você provavelmente encontrará seus discos com ocupação de 100%, lendo muitos, muitos pequenos blocos de dados.

Se o problema for confirmado, você pode tentar primeiro excluir o conteúdo do instantâneo (com um simples rm ), e remover o próprio instantâneo.

Como uma nota lateral: enquanto os sistemas de arquivos CoW são extremamente flexíveis, eles não são arquitetados para puro desempenho. E enquanto o ZFS permanece bastante rápido, a mesma coisa não pode ser dita para o BTRFS.

De qualquer forma, a remoção de subvolumes grandes também foi problemática para o ZFS (até que foi implementado um processo de exclusão de execução em segundo plano ...)

    
por 18.03.2016 / 21:26
1

Parece um bug pouco conhecido no recurso de cota btrfs .
Basta desabilitar as cotas do btrfs pelo próximo comando.
btrfs quota disable /

UPD: Eu encontrei uma análise detalhada do problema . Não é um bug, mas sim um recurso.

    
por 26.06.2018 / 03:01