Capítulo 9. ZFS

9.1. Qual é a quantidade mínima de RAM que um usuário deve ter para utilizar o ZFS?
9.2. O que é o ZIL e quando ele é usado?
9.3. Preciso de um SSD para o ZIL?
9.4. O que é o L2ARC?
9.5. A ativação da funcionalidade de desduplicação é recomendável?
9.6. Não consigo excluir ou criar arquivos no meu pool do ZFS. Como posso consertar isso?
9.7. O ZFS suporta TRIM para unidades de estado sólido?

9.1.

Qual é a quantidade mínima de RAM que um usuário deve ter para utilizar o ZFS?

É necessário um mínimo de 4 GB de RAM para uso confortável, mas as cargas de trabalho individuais podem variar muito.

9.2.

O que é o ZIL e quando ele é usado?

O ZIL (log de intenção do ZFS ) é um log de gravação usado para implementar semânticas de compromisso de escrita posix entre travamentos. Normalmente, as gravações são agrupadas em grupos de transações e gravadas no disco quando preenchidas (Transaction Group Commit ). No entanto, syscalls como fsync(2) requerem um compromisso de que os dados são gravados no armazenamento estável antes de retornar. O ZIL é necessário para gravações que foram reconhecidas como gravadas, mas que ainda não estão no disco como parte de uma transação. Os grupos de transações contam com registro de data e hora. No caso de uma falha, o último registro de data e hora válido é encontrado e os dados ausentes são mesclados a partir do ZIL.

9.3.

Preciso de um SSD para o ZIL?

Por padrão, o ZFS armazena o ZIL no pool com todos os demais dados. Se um aplicativo tiver uma carga de gravação pesada, o armazenamento do ZIL em um dispositivo separado e que tenha um desempenho de gravação sequencial síncrono muito rápido pode melhorar a performance do sistema de uma forma geral. Para outras cargas de trabalho, é improvável que um SSD consiga uma melhoria significativa.

9.4.

O que é o L2ARC?

O L2ARC é um cache de leitura armazenado em um dispositivo rápido, como um SSD. Esse cache não é persistente nas reinicializações. Observe que a RAM é usada como a primeira camada de cache e o L2ARC só é necessário se a quantidade de memória RAM for insuficiente.

O L2ARC precisa de espaço no ARC para indexá-lo. Então, perversamente, um conjunto de trabalho que se encaixa perfeitamente no ARC não se encaixará mais perfeitamente se um L2ARC for usado porque parte do ARC estará mantendo o índice L2ARC, empurrando parte do conjunto de trabalho para o L2ARC que é mais lento que a RAM.

9.5.

A ativação da funcionalidade de desduplicação é recomendável?

De um modo geral, não.

A deduplicação ocupa uma quantidade significativa de RAM e pode tornar mais lento os tempos de acesso ao disco para leitura e gravação. A menos que um esteja armazenando dados muito duplicados, como imagens de máquinas virtuais ou backups de usuários, é possível que a deduplicação faça mais mal do que bem. Outra consideração é a incapacidade de reverter o status da deduplicação. Se os dados forem gravados quando a deduplicação estiver ativada, desabilitar a deduplicação não fará com que os blocos deduplicados sejam replicados até que sejam modificados em novamente.

A deduplicação também pode levar há algumas situações inesperadas. Em particular, a exclusão de arquivos pode se tornar muito mais lenta.

9.6.

Não consigo excluir ou criar arquivos no meu pool do ZFS. Como posso consertar isso?

Isso pode acontecer porque o pool está 100% cheio. O ZFS requer espaço no disco para gravar metadados de transação. Para restaurar o pool para um estado utilizável, primeiro faça o truncate do arquivo que irá excluir:

% truncate -s 0 unimportant-file

O truncamento de arquivo funciona porque uma nova transação não é iniciada, novos blocos de reserva são criados.

Nota:

Em sistemas que utilizam o ZFS com um dataset customizado, por exemplo com a funcionalidade de deduplicação ativada, o espaço pode não ficar disponível imediatamente

9.7.

O ZFS suporta TRIM para unidades de estado sólido?

O suporte ao ZFS TRIM foi adicionado ao FreeBSD 10-CURRENT com revisão r240868. O suporte ao ZFS TRIM foi adicionado a todas as branchs do FreeBSD-STABLE na revisão r252162 e r251419, respectivamente.

O ZFS TRIM é ativado por padrão e pode ser desativado adicionando-se esta linha ao arquivo /etc/sysctl.conf:

vfs.zfs.trim.enabled=0

Nota:

O suporte ao ZFS TRIM foi adicionado ao GELI em r286444. Por favor, veja geli(8) e a opção -T.

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.