Desde 2010, eu pensava em como persistir a quantidade cada vez maior de dados (fotos, vídeos, documentos, imagens, memes, etc…) que eu gerava, com um backup bem feito em caso de catástrofe. Sempre valorizei muito, principalmente, as fotos que eu tirava, uma biblioteca que já possui mais de 15 anos. Deve dar para ter uma noção da quantidade de espaço que isso ocupa.
Além disso, como eu disse no meu post de upgrade do meu computador, a quantidade de discos que já passaram por mim e CDs/DVDs de backup que fiz (e que eu ainda mantenho guardados — já disse que prezo muito pelos meus dados?) está cada vez maior e mais difícil de manter.
Por causa disso, achei que chegou a hora de montar meu NAS, um servidor de arquivos acessível por qualquer dispositivo na minha rede local.
PS: Este post terá menos fotos do que o upgrade no PC, pois acabei esquecendo na hora de montar. 🙂
Requisitos
Um bom NAS precisa estar ligado sempre, então baixo consumo é a primeira necessidade. Além disso, preciso que ele não ocupe muito espaço, assim como meu PC. Por fim, quero que ele consiga armazenar tudo que eu preciso e com uma boa redundância, ou seja, que eu não perca tudo caso um disco falhe.
Como requisito desejável, eu gostaria de ter mais que um NAS. Quero montar algo capaz de virtualizar diversas máquinas, e mantê-las no ar sem afetar a performance. Só de início, pretendo criar um DNS com bloqueio automático de propagandas, um emulador da API do HomeKit da Apple para dispositivos não compatíveis e um servidor de desenvolvimento para outros projetos particulares. Cada um segregado em uma VM.
Para prover tudo isso, eu precisava encontrar não só o hardware adequado, como o software que iria orquestrar tudo. Graças ao FreeNAS, no entanto, não precisei procurar muito.
O Software
FreeNAS é um sistema operacional desenvolvido pela iXsystems que se tornou a opção numero um para armazenamento de arquivos. É um sistema grátis e totalmente open-source, capaz de ser instalado em diversas plataformas e, apesar de possuir diversas características empresariais, com ele é extremamente fácil criar uma área na rede para seus arquivos.
Além disso, o FreeNAS possui uma vasta gama de plugins, podendo transformá-lo em um servidor de mídia digital, armazenamento de arquivos em nuvem, entre outros. Também permite a criação de máquinas virtuais e jails FreeBSD.
O FreeNAS usa o ZFS para armazenar, proteger e gerar backups dos dados automaticamente. O ZFS é uma solução, também open-source, de sistema de arquivos, controle RAID e gerenciador de volumes com grande flexibilidade e foco na integridade dos dados. O ZFS elimina a maioria (se não todos) dos problemas encontrados em soluções de RAID, tanto via software quanto via hardware.
Com o ZFS, é possível criar configurações de discos (chamadas RaidZ) que toleram a falha completa de um, dois ou até mesmo três discos simultaneamente, sem perda de dados. Ele faz isso escrevendo uma parte do arquivo em cada disco, assim como dados de paridade que permitem reconstruir qualquer pedaço do arquivo que venha a estar no disco que falhou.
O ZFS permite também a criação de fotografias dos seus arquivos, servindo como versionamento de arquivos e eventuais backups.
O único problema do FreeNAS é a necessidade de um equipamento muito específico, sendo recomendado ao menos 8GB de RAM apenas para o SO, além de mais 1GB de memória para cada Terabyte de disco adicionado. Memórias ECC também são altamente recomendadas, já que existe uma chance não-nula de arquivos ainda em RAM sofrerem um flip (um bit que era pra ser 0 e virou 1 por alguma interferência, por exemplo) e serem gravados de forma errada no disco. Aqui há um ótimo tópico a respeito da memória ECC. O sistema irá funcionar com memórias comuns, mas o seguro mesmo é ir de ECC.
Continuando os requerimentos, é preciso ter discos próprios para o uso de um NAS. A compra de um disco sem o preparo adequado para o uso pesado de um NAS pode encurtar muito o seu ciclo de vida, e como qualquer tipo de mídia de armazenamento é horrível de se lidar, quanto menos você precisar se preocupar com disco rígido, melhor.
Placa Mãe e Processador
Aqui é onde fica a maior parte da pesquisa, já que todos os meus requisitos devem ser garantidos aqui. Preciso de uma placa mãe pequena (Mini ITX, assim como o computador), com várias entradas para discos (6 ou mais, para poder usar Raid Z2 e obter tolerância à falha de dois discos), e um processador que não puxe muita energia. Aqui, gostaria também que ele não fizesse muito barulho, além de ser fácil de se gerenciar (com uma interface IPMI, por exemplo).
Considerando o requisito da memória ECC, e que não tenho visto muita competitividade nos processadores da AMD, comecei pela pesquisa ao processador com suporte à ECC no Intel Ark. Surpreendendo um total de zero pessoas, a grande maioria dos processadores da lista são Xeons, CPUs específicas para servidores. É estranho ver alguns i3 de quarta geração lá, mas essa pequena pesquisa já me deu a luz — precisaria de um Xeon.
Minhas pesquisas chegaram em dois tipos de placas mãe: As sem processador e as com processador embutido. Na primeira categoria, destaco as Asrock E3C236D2I e a Asrock C236 WSI. Todas as duas possuem suporte a ECC e 6 ou mais portas SATA. Porém, teria que dar um jeito de conseguir a placa E um Xeon da série E3-1200, algo que se provou extremamente complicado e caro de se fazer. Além disso, nem todas tinham IPMI e o máximo de RAM que ambas as placas suporta é 32GB, o que tornaria um upgrade bem mais complicado.
Já as placas mãe com processador embutido me deram mais opções. Algumas delas, com todos os meus requisitos:
- ASRock Rack C2550D4I;
- ASRock Rack C2750D4I;
- Alguma das DEZESSEIS variações da Supermicro X10SDV-TLN4F.
Hora das eliminações. Tchau Asrock! Infelizmente, o Intel Avoton C2000 que equipa ambas as placas da Asrock tem uma falha que causa uma rápida degradação, impedindo o computador de ligar e obrigaria a troca da placa toda. Apesar de ter visto poucos casos dessa falha se manifestando, essas placas são caras demais no Brasil para eu correr algum risco. Além disso, a Supermicro é uma marca deveras conhecida pela sua solidez em ambientes empresariais e que eu sempre quis utilizar, os Xeons D são muito melhores do que os Avoton e eu já tive minha dose de problemas com Asrock no passado. Por fim, o tipo de memória que as Asrock suporta é bem antigo e difícil de encontrar. Duas fora, restam 16.
No início, meu cérebro ficou sobrecarregado com a quantidade de opções parecidas a Supermicro disponibilizava para mim (aqui, procure pelas opções mini ITX), mas ao entender a nomenclatura deles, acabei navegando melhor. Todas elas eram alguma variação de “X10SDV-nC-TLNkF”, onde n era o número de núcleos do processador, e k simbolizava a quantidade de portas de rede disponíveis. Além disso, pode ter um + tanto após o número de núcleos, que simboliza um cooler de processador incluído, quanto no final do modelo, simbolizando portas 10Gb SFP ao invés de 10GbE (basicamente entradas de rede diferentes). Fora isso, todas possuíam algum Xeon embutido, aguentavam 128GB de memória ECC, tinham portas 10GbE, 6 entradas SATA, headers USB (explico a importância disso mais a frente), IPMI, entrada para SSDs M.2 e entrada PCI-E caso necessite.
No meu caso, decidi ir com a X10SDV-4C+-TLN4F, por dois motivos simples:
- O Xeon D-1518 possui apenas 35W de TDP. Os núcleos a menos não vão me fazer nenhuma falta;
- Como sempre faz calor onde eu moro, achei interessante ter uma ventoinha no processador, ao invés de apenas um dissipador. Seguro morreu de velho.
Bem, decidida a placa mãe (e o processador), vamos para a memória e o gabinete.
Memória, muita memória
Como dá para ver na lista de memórias testadas da Supermicro, eu tenho bem pouca opção aqui. Como tenho um pé atrás com memórias da Samsung (que muitas vezes são falsificadas no Brasil), fui de Crucial (Micron). Escolhi o modelo CT2K16G4RFD4213 por balancear preço e compatibilidade, além de ter todas as características que eu precisava. Ela é ECC registrada e fornece 32GB em dois pentes (o que me permite ir até 64GB utilizando os 4 slots possíveis na Supermicro). É bastante cara, mas eu assumi o alto custo dessa build ao decidir usar ECC.
Gabinete e Fonte
Assim como o Riotoro CR280 do meu PC, o gabinete precisa ser bem pequeno. Ao contrário dele, no entanto, não preciso que caiba uma placa de vídeo de 180mm ou um water cooler nele, mas sim HDs. Muitos. Quanto mais, melhor. A placa mãe possui 6 portas SATA, mas a entrada PCI-E permite a conexão de outra controladora SATA com mais portas ainda.
Escolhi o Lian Li PC-Q25B. É um gabinete com alguma modularidade, que permite fontes de tamanho normal (ATX), até 8 HDs (sendo 5
hot-swappable em caso de falhas e um de 2.5″, que pode ser um SSD) ou placas de vídeo de até 320mm (não de forma conjunta) — este segundo não me interessa, mas coloquei a informação aqui para ter uma noção do espaço interno dele. Ele também é bem prático, necessitando de chave de fenda apenas para conectar os HDs nas proteções contra vibrações.
A fonte escolhida foi a Seasonic G-Series de 650w (SSR-650RM). É uma fonte semi-modular — a capacidade de remover os cabos que não preciso é bem importante com o pouco espaço disponível — com várias entradas SATA disponíveis, 80 Plus Gold e altamente recomendada para o FreeNAS.
Armazenamento
Aqui, temos duas partes. Primeiro, temos que ver o coração do servidor, o motivo dele existir. Precisamos de vários Terabytes de espaço disponíveis para tudo que eu tenho agora e possa precisar a médio prazo. Também temos que decidir aonde o sistema operacional vai ficar, já que dedicar um disco para isso é um tremendo desperdício de espaço e recursos.
Ao buscar por recomendações de quais HDs comprar, me deparei com esse ótimo post da Backblaze, uma empresa de backup em nuvem. Como é de se esperar de uma empresa deste tipo, eles tem uma grande quantidade de discos, e foram humildes o suficiente para disponibilizar a estatística de falhas para nós. Ao comparar os discos na lista com o que tinha disponível no Brasil, minhas opções foram reduzidas à Western Digital (modelos Red), ou Seagate. Como já tive vários problemas com Seagate (que falo mais no meu post sobre o upgrade do PC) e por gostar muito da Western Digital, fui de WD Red.
Escolhi as versões de 3TB (WD30EFRX) por ter o menor custo por Terabyte dos disponíveis no mercado brasileiro. Comprei logo 6, que é o máximo que a minha placa mãe suporta sem nenhum acessório. Isso me daria, segundo minhas contas, por volta de 12TB de espaço útil (lembrando que a paridade para reconstrução ocupa o equivalente a 2 discos), o que para mim já estava muito bom, por enquanto. O FreeNAS permite a troca de discos sem afetar o armazenamento, então, ao chegar perto deste limite, já posso pensar em aumentar para discos de 4TB ou até 6TB. A única dificuldade seria em adicionar novos discos, o que é remediado comprando logo a quantidade “máxima” (aspas por poder adicionar uma controladora SATA na porta PCI-E da Supermicro e ganhar mais entradas) que pretendo usar.
Sobre o sistema operacional, a primeira recomendação é utilizar um SSD ou um SATA DOM, porém isso me faria perder uma das entradas da placa mãe. Se o objetivo é ser um NAS, todos os recursos tem que ser utilizados para o armazenamento de arquivos. Por isso, resolvi seguir para a segunda recomendação — um par de pen drives USB em redundância. No meu caso, utilizei 2 Sandisk Ultrafit de 16GB cada. Como a ideia de ter o seu sistema em dois pedaços de metal fora do computador não me apetecia muito, transformei o header USB da placa mãe em duas portas USB internas com a ajuda deste adaptador. Desta forma, não teria nenhum penduricalho para fora do gabinete.
Lista Final de Peças
| Item | Marca | Modelo |
|---|---|---|
| Gabinete | Lian Li | PC-Q25B |
| Placa Mãe | Supermicro | X10SDV-4C+-TLN4F |
| Processador | Intel | Xeon D-1518 |
| Memória | Crucial | CT2K16G4RFD4213 |
| Fonte | Seasonic | SSR-650RM |
| HDD (x6) | Western Digital | WD30EFRX |
| Boot (x2) | Sandisk | SDCZ43-016G-GAM46 |
| Adaptador USB | Startech.com | USBMBADAPT2 |
Mão na massa
Com todas as peças escolhidas e montadas, é hora da montagem. Assim como meu PC, queria testar os periféricos separadamente. Neste caso, ao testar CPU e memória, só faltaria testar os discos. Basta espetar a memória, conectar a placa mãe à fonte e ligar um cabo de rede na interface IPMI.

O primeiro teste também foi o memtest86+. Neste caso, foi ainda mais rápido fazer o teste devido à interface IPMI, por onde eu consigo selecionar uma imagem, fazer o computador entendê-la como um DVD normal, iniciar o utilitário e mostrar a tela no meu computador. Tudo através da rede, sem monitor nem nada! Deixei o memtest86+ executando e, após 3 “passes”, confirmei que as memórias estão OK.

Depois disso, a CPU. Desta vez, utilizei o Prime95. Ele mantém o processador em 100% de uso constantemente por horas. Isso me ajuda a ver se há de errado tanto com a CPU quanto com a placa mãe, além de testar o calor que isso irá gerar.
Agora é hora de montar no gabinete, plugar os discos e testá-los. Para isso, utilizei a IPMI para rodar um Ubuntu no NAS, e com ele rodar o comando badblocks, que permite testar cada HD separadamente. Novamente, sem problemas!

Enfim, sabendo que está tudo em ordem, é hora de instalar o FreeNAS. Novamente usando o IPMI, enviei a ISO de instalação do FreeNAS e marquei as 2 mídias USB como destino da instalação. Depois de alguns minutos, tudo instalado! Vamos fazer as configurações, acessando o endereço IP do servidor com um navegador.

Configurando
A configuração do FreeNAS é um pouco complexa na primeira vez por causa das nomenclaturas, mas depois de um certo tempo, as coisas acabam ficando mais intuitivas. O que eu fiz logo de cara foi:
- Configurei o nome do NAS e o domínio para que possa acessá-lo sem precisar decorar seu IP (acesso apenas com “freenas.lan”);
- Configurei o envio de e-mail para avisos do sistema;
- Criei um usuário com o mesmo nome e senha que o meu usuário no Windows. Dessa forma, o meu PC acessará o FreeNAS sem nenhuma configuração adicional por parte do PC. Também criei um grupo para esse usuário;
- Criei um volume utilizando todos os discos em Raid-Z2 (redundância de 2 discos);
- Criei um dataset (como se fosse uma pasta) dentro deste volume, e defini o dono como o grupo criado no item 2;
- Habilitei o serviço SMB (para acesso Windows) e AFP (para acesso por dispositivos Apple).
Com isso, efetivamente o NAS já está operacional! Meu Windows e meu Mac o leem como uma pasta de rede normal com 10,3TB de espaço disponível. Que sonho! Fiz o mapeamento da uma unidade de rede para fácil acesso.
Indo além…
Para ver toda a capacidade do meu NAS, resolvi instalar logo um servidor Plex (e não no Pi, como eu planejava) e um Pi-Hole (Servidor de DNS que remove propagandas para todos os dispositivos da rede, mesmo os que não podem instalar o AdBlock, como celulares e tablets — mencionei lá nos requisitos) nele. O Plex é relativamente fácil, bastando criar um novo dataset para mídia, montar uma nova jail destinada ao Plex, conectar nela via SSH e fazer a instalação com o gerenciador de pacotes padrão. Este tópico do fórum do FreeNAS explica muito bem os passos e até mais. Já o Pi-Hole foi feito com uma VM Ubuntu e merece um outro post mais específico.
Além disso, preciso ainda fazer alguns benchmarks (tanto de vazão de dados, quanto de consumo de energia), que ainda não fiz mas pretendo fazer num futuro próximo, até porque achei a vazão para o Windows bem aquém do esperado para uma rede full gigabit.
Conclusão
O monstrinho que eu montei é muito mais do que um servidor de arquivos. É um perfeito homelab dentro de um NAS, onde eu posso criar várias máquinas virtuais para aprofundar meus estudos sem quebrar nada que me custe dinheiro. Com ele, eu posso instanciar o que bem entender na minha própria casa, sem depender de uma nuvem para tal. Eu poderia até criar a minha própria nuvem! As possibilidades são quase infinitas.
Este foi um build log um tanto diferente, com peças muito mais poderosas do que o que eu necessitava de início. Foi com a falta de peças no Brasil e a possibilidade de ir um pouco além, trazendo quase tudo de fora, que me fez tirar o escorpião do bolso e fazer o que eu fiz. Acabou que eu paguei o que pagaria num NAS bem mais fraco aqui no Brasil. Peças de qualidade são caras e (em terras tupiniquins) bastante escassas.


