5
Como adicionar Special Dev a zpool
Daniel Sato edited this page 2025-10-10 17:04:43 -03:00

ZFS Special Device

Desde a versão 0.8.0, o ZFS suporta dispositivos especiais. Um dispositivo especial em um pool é usado para armazenar metadados, tabelas de desduplicação e, opcionalmente, blocos de arquivos pequenos.

Um dispositivo especial pode melhorar a velocidade de um pool composto por discos rígidos giratórios lentos com muitas alterações de metadados. Por exemplo, cargas de trabalho que envolvem criar, atualizar ou excluir um grande número de arquivos se beneficiarão da presença de um dispositivo especial. Os datasets ZFS também podem ser configurados para armazenar arquivos pequenos inteiros no dispositivo especial, o que pode melhorar ainda mais o desempenho. Use SSDs rápidos para o dispositivo especial.

Important

A redundância do dispositivo especial deve corresponder à do pool, pois o dispositivo especial é um ponto de falha para todo o pool.

AVISO!!!

Adicionar um dispositivo especial a um pool não pode ser desfeito!

Criar um pool com dispositivo especial e RAID-1:

zpool create -f -o ashift=12 <pool> mirror <device1> <device2> special mirror <device3> <device4>

Adicionar um dispositivo especial a um pool existente com RAID-1:

zpool add <pool> special mirror <device1> <device2>

Os datasets ZFS expõem a propriedade special_small_blocks=. O tamanho pode ser 0 para desativar o armazenamento de blocos de arquivos pequenos no dispositivo especial, ou uma potência de dois entre 512B e 1M. Após definir essa propriedade, novos blocos de arquivos menores que o valor definido serão alocados no dispositivo especial.

Important

Se o valor de special_small_blocks for maior ou igual ao recordsize (padrão de 128K) do dataset, todos os dados serão gravados no dispositivo especial, portanto, tenha cuidado! Definir a propriedade special_small_blocks em um pool alterará o valor padrão dessa propriedade para todos os datasets filhos do ZFS (por exemplo, todos os containers no pool passarão a usar blocos de arquivos pequenos).

Ativar para todos os arquivos menores que 4K em todo o pool:

zfs set special_small_blocks=4K <pool> ## FIX Utiliza 128k de tamanho de bloco, por isso definimos blocos menores no tamanho de 16K