Desativando o cache no ZFSonLinux

1

Usando o ZFS para aproveitar algumas das opções disponíveis e gerenciar volumes, não o RAID. Eu tenho um único dispositivo lógico (HW RAID) adicionado a um zpool.

O ARC do ZFS parece não funcionar tão bem quanto meu cache RAID de HW, então eu estava tentando desativá-lo para ver se eu poderia produzir resultados semelhantes aos benchmarks executados no dispositivo RAID HW, mas o desempenho é prejudicado Volumes ZFS.

Eu tentei desabilitar o primarycache e o secondarycache, mas isso realmente prejudicou o desempenho, mas não resolveu usar o cache HW RAID como eu esperava. Então estou perdido. É impossível usar meu cache RAID de HW com o ZFS? Talvez primarycache e secondarycache não sejam os parâmetros certos para serem modificados.

Configuração HP P410i RAID10 com cache BBU de write-back.

Zpool com dispositivo lógico único do RAID

Criado um teste de zvol esparso para testar velocidades de dispositivos (/ dev / zd0)

Atualize para esta questão A falta de desempenho foi causada pela sobrecarga do ZFS. Quando o ARC (primarycache) do ZoL está desabilitado, há uma sobrecarga extrema neste momento, especialmente em gravações aleatórias. Não tenho certeza se isso é específico para ZoL ou ZFS em geral. Eu recomendo pelo menos deixar primarycache = metadata se você estiver querendo reduzir o tamanho do ARC, mas manter o desempenho dos seus discos.

    
por Devon 21.08.2014 / 07:16

1 resposta

2

Eu uso o ZFS com RAID de hardware e aproveito o cache de gravação com backup em flash do controlador HW RAID (em vez de um dispositivo ZIL) e aproveito o cache do ZFS ARC para leituras.

Práticas recomendadas do ZFS com RAID por hardware

Por que você acha que o ZFS não está tendo um bom desempenho? Você pode compartilhar sua saída zfs get all pool/filesystem , bem como os benchmarks de que fala? É provável que seja apenas um problema de sintonia.

Editar:

Os padrões no ZFS no Linux não são bons. Você precisa de algum ajuste.

Leia todo o fluxo de trabalho publicado em: Compressão transparente sistema de arquivos em conjunto com o ext4

As partes principais são ashift value e volblocksize para um zvol.

Além disso, você precisará modificar seu /etc/modprobe.d/zfs.conf

Exemplo:

# zfs.conf for an SSD-based pool and 96GB RAM
options zfs zfs_arc_max=45000000000
options zfs zfs_vdev_scrub_min_active=48
options zfs zfs_vdev_scrub_max_active=128
options zfs zfs_vdev_sync_write_min_active=64
options zfs zfs_vdev_sync_write_max_active=128
options zfs zfs_vdev_sync_read_min_active=64
options zfs zfs_vdev_sync_read_max_active=128
options zfs zfs_vdev_async_read_min_active=64
options zfs zfs_vdev_async_read_max_active=128
options zfs zfs_top_maxinflight=160

Editar:

Bem, meu conselho seria usar compactação lz4 sempre, usar o valor volblocksize de 128k, limitar o ARC para cerca de 40% da RAM ou menos, ajustar os valores no zfs.conf que postei para testar (provavelmente reduzir todos os valores em 50% se você estiver usando discos SAS de 10k) e ative a estrutura tuned-adm com tuned-adm profile enterprise-storage .

    
por 21.08.2014 / 07:26

Tags