Na minha caixa ZFS, por que meus dispositivos de cache estão deixando um monte de espaço livre?

2

Eu tenho um sistema ZFS que atende muitas VMs. Nele, instalamos discos SAS 12x4TB e os configuramos em um espelho. Adicionamos dois SSDs PCI-E (Samsung 960 com 512 GB cada), mas cada um deles é consumido em pouco mais de 50%, em vez de armazenar todos os dados em cache. Temos muito espaço de armazenamento consumido, mas os SSDs estão ocupando apenas metade do caminho.

O sistema é uma caixa do CentOS 7 com o ZFS no Linux versão 0.6.5.9-1.el7_3.centos.

Aqui está um instantâneo de zpool iostat:

                                                      capacity     operations    bandwidth
pool                                               alloc   free   read  write   read  write
-------------------------------------------------  -----  -----  -----  -----  -----  -----
stgpool                                            13.3T  8.46T     26   1020   482K  10.6M
  mirror                                           2.21T  1.41T      4    165  50.5K  1.79M
    S1D0                                               -      -      3    158  52.0K  2.05M
    S2D0                                               -      -      0    158  11.2K  2.05M
  mirror                                           2.21T  1.41T      2    184  51.7K  1.97M
    S3D0                                               -      -      2    177  47.2K  2.26M
    S4D0                                               -      -      0    177  13.6K  2.26M
  mirror                                           2.21T  1.41T      3    170   104K  1.66M
    S1D1                                               -      -      2    169  90.4K  1.94M
    S2D1                                               -      -      1    169  21.6K  1.94M
  mirror                                           2.21T  1.41T      5    142   129K  1.61M
    S3D1                                               -      -      3    139   109K  1.86M
    S4D1                                               -      -      1    139  32.8K  1.86M
  mirror                                           2.21T  1.41T      4    170  93.7K  1.81M
    S1D2                                               -      -      4    162  95.2K  2.11M
    S2D2                                               -      -      0    162  11.2K  2.11M
  mirror                                           2.21T  1.41T      4    186  54.2K  1.78M
    S3D2                                               -      -      3    175  40.0K  2.10M
    S4D2                                               -      -      0    175  27.2K  2.10M
logs                                                   -      -      -      -      -      -
  ata-Samsung_SSD_850_EVO_250GB_S21NNXAG918721R        0   232G      0      0      0      0
  ata-Samsung_SSD_850_EVO_250GB_S21NNXAGA59337A        0   232G      0      0      0      0
  ata-Samsung_SSD_850_EVO_250GB_S21NNXAGA69590F        0   232G      0      0      0      0
cache                                                  -      -      -      -      -      -
  nvme-Samsung_SSD_960_PRO_512GB_S3EWNCAHC01880D    266G   211G     38     81   556K  2.85M
  nvme-Samsung_SSD_960__PRO_512GB_S3EWNCAHB04288W   266G   211G     37     56   416K  2.10M
-------------------------------------------------  -----  -----  -----  -----  -----  -----

Configurações do Zpool:

NAME     PROPERTY                    VALUE                       SOURCE
stgpool  size                        21.8T                       -
stgpool  capacity                    61%                         -
stgpool  altroot                     -                           default
stgpool  health                      ONLINE                      -
stgpool  guid                        1784205276891874933         default
stgpool  version                     -                           default
stgpool  bootfs                      -                           default
stgpool  delegation                  on                          default
stgpool  autoreplace                 off                         default
stgpool  cachefile                   -                           default
stgpool  failmode                    wait                        default
stgpool  listsnapshots               off                         default
stgpool  autoexpand                  off                         default
stgpool  dedupditto                  0                           default
stgpool  dedupratio                  1.00x                       -
stgpool  free                        8.46T                       -
stgpool  allocated                   13.3T                       -
stgpool  readonly                    off                         -
stgpool  ashift                      0                           default
stgpool  comment                     -                           default
stgpool  expandsize                  -                           -
stgpool  freeing                     0                           default
stgpool  fragmentation               58%                         -
stgpool  leaked                      0                           default
stgpool  feature@async_destroy       enabled                     local
stgpool  feature@empty_bpobj         active                      local
stgpool  feature@lz4_compress        active                      local
stgpool  feature@spacemap_histogram  active                      local
stgpool  feature@enabled_txg         active                      local
stgpool  feature@hole_birth          active                      local
stgpool  feature@extensible_dataset  enabled                     local
stgpool  feature@embedded_data       active                      local
stgpool  feature@bookmarks           enabled                     local
stgpool  feature@filesystem_limits   enabled                     local
stgpool  feature@large_blocks        enabled                     local

arcstat.py info:

    time  read  l2read  hit%  hits  miss%  miss  l2hit%  l2miss%  arcsz     c  l2size  
01:44:35  2.1K     268    87  1.8K     12   268       2       97   125G  125G    778G  
01:44:36  6.5K     583    91  6.0K      8   583       1       98   125G  125G    778G  
01:44:37  1.1K     277    75   835     24   277       6       93   125G  125G    778G  
01:44:38  1.5K     230    84  1.3K     15   230       1       98   125G  125G    778G  
01:44:39  1.8K     141    91  1.6K      8   141       2       97   125G  125G    778G  
01:44:40  1.4K     203    85  1.2K     14   203      19       80   125G  125G    778G  
01:44:41  4.0K     291    92  3.7K      7   291      11       88   125G  125G    778G  
01:44:42  1.7K      95    94  1.6K      5    95       8       91   125G  125G    778G  
01:44:43  1.1K      84    92  1.0K      7    84       2       97   125G  125G    778G  

Estou tentando maximizar minhas taxas de leitura e consumir a capacidade da 960. Qualquer ajuda é apreciada:)

    
por user1955162 07.01.2018 / 22:59

1 resposta

1

Familiarize-se com arcstat e como funciona o cache do ZFS ... Algo como:

arcstat.py -f "time,read,l2read,hit%,hits,miss%,miss,l2hit%,l2miss%,arcsz,c,l2size" 1'

Isso mostrará a taxa de acertos dos caches ZFS ARC e L2ARC. Você pode ter muitos dados gravados em disco e uma alta taxa de acertos, mas talvez apenas porque um pequeno subconjunto de dados está sendo lido. O conjunto de dados abaixo é de 6,5 TB usado, mas tem apenas 127 GB de dados no cache do L2ARC.

Os dispositivos ZIL (SLOG) provavelmente não são usados na sua configuração. O ZFS usa os dispositivos SLOG para a atividade de gravação síncrona. Alguns bancos de dados farão isso, bem como o tráfego NFS. Se as VMs forem executadas e executadas a partir desse servidor, os dispositivos SLOG nunca serão usados, portanto, esses podem ser um desperdício nessa compilação.

    
por 07.01.2018 / 23:20