Seu NAS precisa de mais RAM do que você pensa

O número de compartimentos de disco rígido e slots NVMe é sem dúvida o aspecto mais importante do armazenamento conectado à rede, já que você não quer ficar preso a um NAS de 2 compartimentos com capacidade limitada de HDD se planeja colocar TB de dados em sua estação de trabalho de armazenamento. Mas tenho visto frequentemente recém-chegados negligenciarem as especificações de RAM ao escolher um novo NAS. No papel, usar mais de 4 GB de RAM pode parecer um investimento desnecessário em um servidor de armazenamento, especialmente com o apocalipse da memória causando preços obscenamente altos para módulos DDR5 (e até mesmo DDR4). Mas se você planeja trabalhar com TrueNAS ou outras distribuições de servidores mais robustas baseadas em ZFS, é recomendável equipar uma máquina de backup com memória suficiente.

Talvez sua estratégia de backup esteja quebrada e uma máquina de US$ 250 segundos possa consertar isso

A recuperação de desastres é muito mais fácil quando você tem um servidor de backup remoto

ZFS é um grande consumidor de RAM

Ele aloca RAM agressivamente para operações de cache

Entre as excelentes regras RAID, instantâneos integrados e design de cópia e gravação, o ZFS tem muitas vantagens que o tornam um sistema de arquivos ideal para servidores domésticos e dispositivos NAS. O cache de troca adaptável é um recurso que pode melhorar significativamente a velocidade de leitura, copiando para a memória os dados acessados ​​com mais frequência. Em vez de procurar sempre arquivos em HDDs volumosos, o ZFS usa ARC para armazenar blocos de dados que são frequentemente acessados ​​brevemente na RAM, tornando essas operações muito rápidas.

A desvantagem, claro, é que o ZFS requer muita memória para o cache de leitura. Isso não significa que você não pode executar o ZFS em sistemas com pouca RAM. Caramba, eu armei um servidor Ubuntu de 2 compartimentos (que, ao contrário de sua versão para desktop inchada, é uma ótima distribuição NAS) com pacotes ZFS essenciais há algum tempo, e o desempenho não foi ruim de forma alguma. No entanto, o cartão de memória de 4 GB foi um obstáculo para as operações de cache do ZFS, especialmente porque eu tinha pools de 4 TB no servidor.

Veja bem, o ZFS funciona melhor se o seu NAS tiver memória suficiente. Na maioria das distribuições, o ZFS tende a definir um limite máximo de memória de 50% para tarefas de cache. Isso pode não ser um problema para minhas estações de trabalho com ZFS de 32 GB e 64 GB (sim, eu comprei essa quantidade de RAM muito antes de ocorrer o apocalipse da memória), porque mesmo depois que o ZFS consumiu 50% da memória, meus servidores domésticos ainda têm bastante memória para outras tarefas. Mas qualquer coisa abaixo de 4 GB é muito pequena para um cache de memória ZFS, por isso costumo configurar sistemas de arquivos não ZFS em hardware reciclado e unidades NAS antigas.

Especialmente quando você começa a pesquisar máquinas virtuais

Mudando de assunto do funcionamento interno do ZFS, os dispositivos NAS são muito convenientes para hospedar ferramentas FOSS. O gerenciador de arquivos retrô RomM, a besta de arquivamento de documentos Paperless-ngx, o hub de streaming de música Navidrome, o organizador de imagens Immich e (o mais importante) o servidor de mídia Jellyfin são essenciais para acumuladores com arquivos TB arquivados. Isso antes de incluir Nextcloud, Vaultwarden, Grist e outros aplicativos de produtividade, bem como as ferramentas necessárias para gerenciar seu próprio conjunto de aplicativos hospedados.

Infelizmente, o armazenamento não é o único recurso que esses aplicativos precisam para funcionar. Quanto mais você expandir seu arsenal FOSS baseado em NAS, mais memória seu ambiente em contêineres precisará. Na verdade, quando usei meu híbrido mini-PC/NAS, o Aiffro K100, para hospedar contêineres TrueNAS, sua CPU de 4 núcleos e 4 threads estava funcionando bem com 50% de carga, mas a contagem de RAM excedeu 70% de uso. E estamos falando de 8 GB de RAM, não de 2 GB ou 4 GB. Para pessoas que tentam hospedar máquinas virtuais, você desejará adicionar RAM extra para evitar que seu ambiente virtualizado perca memória para o resto do sistema.

Mas você não precisa morrer tentando comprar sticks de 100 GB ou mais de RAM para desduplicação

Na verdade, eu diria que a desduplicação é superestimada na maioria dos laboratórios domésticos

O pessoal amigável do laboratório doméstico deve ter notado que eu nem mencionei a duplicação neste artigo, embora estivesse falando sobre a natureza desconexa das memórias ZFS. Para ser honesto com você, não vejo a desduplicação como um recurso essencial para o laboratório doméstico comum, muito menos para um novato que deseja construir um servidor de armazenamento. Obviamente, ser capaz de economizar espaço referenciando repetidamente um único bloco de dados é útil, especialmente se você tiver dezenas de VMs Linux no mesmo NAS.

Mas a maioria dos laboratórios domésticos (incluindo minha configuração exagerada de goblin) não usa muito o recurso de backup. Pior ainda, ele pode consumir RAM como se não houvesse amanhã – tanto que você desejará manter a linha de base de 8 GB (ou idealmente 16 GB) e adicionar 1-2 GB de RAM aos 1 TB de armazenamento. Para piorar a situação, se o seu NAS ficar sem RAM durante uma carga de trabalho de backup, ele começará a carregar hashes de unidades de armazenamento (incluindo discos rígidos), fazendo com que as velocidades de leitura e gravação caiam, essencialmente tornando esse recurso mais um problema no seu NAS.

O que estou tentando dizer é que a RAM não deve ser esquecida ao adquirir um novo chassi ou adquirir novas peças para a construção do seu NAS. Mas, ao mesmo tempo, você não deveria gastar milhares de dólares em novos dispositivos de RAM para desduplicar (a menos, é claro, que você hospede máquinas virtuais em seu NAS ou tenha pools de armazenamento obscenamente grandes contendo blocos de dados semelhantes). Geralmente, 8 a 16 GB de RAM são suficientes para configurações NAS econômicas, enquanto 32 GB são perfeitos para estações de trabalho de arquivamento de dados.

Link da fonte