Linux O ZFS não armazena em buffer gravações no buffer de gravação (SLOG / ZIL)?

3

Ao experimentar E / S de gravação, a coluna de log em zpool iostat -v não mostra nenhuma atividade de ZIL, nunca. Isso resulta em tempos de espera maiores que os esperados ao gravar dados em disco (às vezes mais de 80ms durante a contenção).

                     capacity     operations    bandwidth
    pool              alloc   free   read  write   read  write
----------------  -----  -----  -----  -----  -----  -----  
storage           1.88T  2.09T      3  3.01K   512K  39.3M
  mirror           961G  1.05T      0  1.97K   128K  20.8M
    mpathf            -      -      0    393      0  20.8M
    mpathg            -      -      0    391   128K  20.6M
  mirror           961G  1.05T      2  1.04K   384K  18.5M
    mpathi            -      -      1    379   256K  21.1M
    mpathj            -      -      0    281   128K  18.3M
logs                  -      -      -      -      -      -
  /zlog/zilcache      0  15.9G      0      0      0      0
cache                 -      -      -      -      -      -
  mpathk           232G     8M      1      0   130K      0
  mpathl           232G     8M      1      0   130K      0
----------------  -----  -----  -----  -----  -----  -----

Meu dispositivo / zlog / zilcache nunca possui nenhum IO. É um arquivo em flash muito rápido. Eu posso escrever e ler quando eu removê-lo do armazenamento do ZFS, mas o ZFS parece ignorá-lo.

O dispositivo parece disponível:

  pool: storage
 state: ONLINE
  scan: scrub repaired 0 in 19h31m with 0 errors on Wed Nov 19 07:39:03 2014
config:

    NAME              STATE     READ WRITE CKSUM
    storage           ONLINE       0     0     0
      mirror-0        ONLINE       0     0     0
        mpathf        ONLINE       0     0     0
        mpathg        ONLINE       0     0     0
      mirror-1        ONLINE       0     0     0
        mpathi        ONLINE       0     0     0
        mpathj        ONLINE       0     0     0
    logs
      /zlog/zilcache  ONLINE       0     0     0
    cache
      mpathk          ONLINE       0     0     0
      mpathl          ONLINE       0     0     0

errors: No known data errors

Qualquer maneira de configurar o ZFS para armazenar em cache as gravações no dispositivo de registros para obter confirmações mais rápidas?

Obrigado

    
por user1955162 11.12.2014 / 00:23

1 resposta

4

Eu acredito que você está entendendo mal o propósito do ZIL. Você o descreve como um cache de gravação, o que não é. Nenhuma atividade no ZIL pode ser apenas um comportamento normal, dependendo do que está sendo executado em sua máquina.

Nada é lido do ZIL, este é um dispositivo somente de gravação. A única exceção possivelmente ocorreria durante uma importação do pool após uma falha.

Existem apenas gravações se os aplicativos estiverem executando gravações síncronas. E / Ss regulares, como mover arquivos, não estão usando o ZIL.

Você pode definir sync=always no conjunto de dados para forçar todas as gravações a se comportarem como se fossem síncronas.

    
por 11.12.2014 / 03:07