O que é moer meus HDDs e como posso pará-lo?

4

Algo está moendo meus discos rígidos o tempo todo (alguns KBs a cada segundo) e não consigo descobrir o que.

Minha configuração: 4 discos giratórios (/ dev / sd [cdef]) montados em um array raid5, então bcache configurado para cache (esperançosamente) tudo (cache_mode = writeback, sequential_cutoff = 0). No topo do volume bcache eu configurei lvm.

sda & sdb são SSDs. sdc, sdd, sde & sdf estão girando discos, base para mdadm - > bcache - > lvm - > dm - *.

Portanto, esta é a saída de (segunda impressão) de iostat -x -d 30 :

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0,00     0,77    0,97    0,77    12,40     6,13    21,38     0,00    0,23    0,00    0,52   0,23   0,04
sdb               0,00     0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00    0,00    0,00   0,00   0,00
sdc               0,03     1,60    0,13    4,50     0,67    17,63     7,90     0,05   11,54   15,00   11,44  11,17   5,17
sdd               1,60     0,30    0,43    4,83     8,13    13,77     8,32     0,06   11,27    0,00   12,28  11,04   5,81
sde               1,63     0,00    0,57    4,07     8,80     9,50     7,90     0,05   10,99    0,47   12,46  10,73   4,97
sdf               0,00     1,90    0,00    5,27     0,00    21,90     8,32     0,04    8,53    0,00    8,53   8,35   4,40
md0               0,00     0,00    0,00    0,97     0,00    12,40    25,66     0,00    0,00    0,00    0,00   0,00   0,00
bcache0           0,00     0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00    0,00    0,00   0,00   0,00
dm-0              0,00     0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00    0,00    0,00   0,00   0,00
dm-1              0,00     0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00    0,00    0,00   0,00   0,00
dm-2              0,00     0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00    0,00    0,00   0,00   0,00
dm-4              0,00     0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00    0,00    0,00   0,00   0,00
dm-5              0,00     0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00    0,00    0,00   0,00   0,00
dm-6              0,00     0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00    0,00    0,00   0,00   0,00
dm-7              0,00     0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00    0,00    0,00   0,00   0,00
dm-9              0,00     0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00    0,00    0,00   0,00   0,00

O que me parece estranho nesta saída do iostat é que o bcache não é tocado, portanto, presumo que não há atividade nos volumes lógicos.

iotop está silencioso sobre o assunto: não há nenhum aplicativo relatado funcionando nos discos, portanto, deve haver alguns daemons / serviços do sistema.

md0 volume vê alguma atividade, mas como pode ser isso, já que não há nada escrito nos volumes lógicos. Parece que bcache estaria fazendo algum trabalho de manutenção ou algo assim? Mas a cada segundo ???

Por fim, há alguma atividade em sdc-sdf que não corresponde exatamente à atividade em md0. Também não é simétrico em todos os discos, então não acho que seja baseado em mdadm.

Editar: conforme a sugestão do meu, aqui está iosnoop output:

Tracing block I/O. Ctrl-C to end.
COMM         PID    TYPE DEV      BLOCK        BYTES     LATms
md0_raid5    281    FFS  8,80     18446744073709551615 0          0.04
md0_raid5    281    FFS  8,32     18446744073709551615 0          0.11
md0_raid5    281    FFS  8,64     18446744073709551615 0          0.10
md0_raid5    281    FFS  8,48     18446744073709551615 0          0.10
<idle>       0      WS   8,80     16           4096       0.08
kworker/3:1H 276    WS   8,32     16           4096       0.10
kworker/3:1H 276    WS   8,64     16           4096       0.10
kworker/3:1H 276    WS   8,48     16           4096       0.09
<idle>       0      FFS  8,80     18446744073709551615 0          8.45
<idle>       0      FFS  8,64     18446744073709551615 0         17.42
<idle>       0      FFS  8,32     18446744073709551615 0         19.36
<idle>       0      FFS  8,48     18446744073709551615 0         20.68
md0_raid5    281    FFS  8,32     18446744073709551615 0          0.11
md0_raid5    281    FFS  8,80     18446744073709551615 0          0.10
md0_raid5    281    FFS  8,64     18446744073709551615 0          0.13
md0_raid5    281    FFS  8,48     18446744073709551615 0          0.14
<idle>       0      WS   8,80     8            512        0.06
<idle>       0      WS   8,32     8            512        0.10
<idle>       0      WS   8,64     8            512        0.08
ksoftirqd/3  28     WS   8,48     8            512        0.08
cat          14719  FFS  8,80     18446744073709551615 0         12.42
cat          14719  FFS  8,64     18446744073709551615 0         17.27
cat          14719  FFS  8,32     18446744073709551615 0         19.21
cat          14719  FFS  8,48     18446744073709551615 0         20.52

Todos os dispositivos listados aqui são os pratos giratórios.

Edit2: de acordo com a sugestão do frostschutz, aqui está um extrato do syslog depois de ativar o block_dump

[40723.578347] md0_raid5(281): WRITE block 8 on sdc (1 sectors)
[40723.578359] md0_raid5(281): WRITE block 8 on sde (1 sectors)
[40723.578363] md0_raid5(281): WRITE block 8 on sdd (1 sectors)
[40723.578367] md0_raid5(281): WRITE block 8 on sdf (1 sectors)
[40723.824546] md0_raid5(281): WRITE block 16 on sdc (8 sectors)
[40723.824560] md0_raid5(281): WRITE block 16 on sde (8 sectors)
[40723.824566] md0_raid5(281): WRITE block 16 on sdd (8 sectors)
[40723.824570] md0_raid5(281): WRITE block 16 on sdf (8 sectors)

Então, parece que mdadm é o culpado, escrevendo constantemente (presumivelmente) para compensar compensações?

Investigar mais confirma isso: mdadm -E /dev/sdc informa diferentes checksum a cada segundo. A contagem de eventos geralmente permanece fixa, mas se eu reexaminar a unidade com frequência suficiente, de vez em quando o estado mudará de "limpo" para "ativo" e, durante tais exames, a contagem de eventos será maior do que de outra forma.

Então, há uma explicação lógica sobre o que está acontecendo ou algo que eu poderia fazer para obter mais informações sobre o que está acontecendo com meus discos?

    
por velis 10.12.2016 / 21:15

1 resposta

2

Graças ao meuh & frostschutz Eu pude identificar o processo ofensivo. Parece que o mdadm estava fazendo algumas coisas pós-sincronização na matriz (eu substituí uma unidade há alguns dias atrás na matriz RAID-5).

Na verdade, parou agora, alguns dias depois de a unidade ter sido substituída. Engraçado que isso fizesse isso, já que as únicas E / S eram as escritas na área do superbloco. Eu acho que uma resposta autoritativa só poderia ser fornecida por espreitar o código, o qual eu não estou qualificado para fazer neste momento.

Edit: Acabei de copiar alguns 10GBs de dados para o array e a moagem começou novamente. Então não é pós-sincronização, é pós-escrita ...

    
por 11.12.2016 / 14:48