sexta-feira, 24 de julho de 2015

Montando um Storage NAS e Servidor Multimidia




Sou um apreciador da sétima arte e, como tal, gosto de ter filmes sempre a mão para assistir.

Antes de ter minhas filhas, tinha o hobby de locar filmes e gravá-los. Tinha o programa de ripagem e o de gravação, no qual eu retirava o máximo de informações inúteis (outros idiomas de áudio, trailers etc) para fazer com que o filme fosse o mínimo possível compactado perdendo o mínimo de qualidade possível.



Também comprava filmes em promoções (lojas Americanas principalmente) ou em locadoras do tipo blockbusters que compravam várias cópias de determinados títulos e depois revendiam o excedente.

Para os locados, comprava as mídias e as capinhas. Normalmente DVDs de 4,7Gb, mais baratos, mas sempre tinha por perto alguns DVDs double layer de 8,5Gb para os filmes melhores.

Além disto, estes DVDs eram printable, e eu tinha o cuidado de baixar as capas originais e as imagens dos DVDs para poder imprimir. Tinha uma Epson na época que me permitia tal refinamento.

Cheguei a aproximadamente 650 filmes e o hobby foi sendo substituído pelo prazer divertido de ser pai. Pai da linda Gabriela.

Mas sempre mantive o prazer de assistir a um bom filme ou a uma boa série. Foi então que, precisando de uma forma de ter os filmes sem ter o tempo de montá-los em capinhas e organizá-los em prateleiras, surgiu a idéia de se manter tudo em meio digital.

Comecei montando um computador para casa com boa capacidade de armazenamento e placa de vídeo boa (GeForce 9800 GTX+).

Mas eu precisava de algo mais flexível. Mais fácil e acessível do que ficar controlando um computador desktop através de teclado e mouse sem fio.

A questão de servidor de mídia sempre me incomodou. Comprei um Iomega Ix2 com 02 HDs de 2Tb cada com a esperança de ser salvo pelo tal DLNA.

Mas assim que montei e comecei a usar, percebi que ainda não era o que eu queria. Ele tem bons recursos principalmente para criação de um servidor de arquivos em nuvem com o Personal Cloud. Se bem que, para as condições de internet que eu tinha disponível, nunca foi possível colocar em prática.


O primeiro passo e o mais importante era a definição da plataforma a ser utilizada.

Após conversar com alguns conhecidos que entendem do assunto e várias pesquisas na internet, defini que os seguintes sistemas operacionais seriam os ideais para meu NAS:
  1. FreeNAS (posteriormente percebi que o FreeNAS é baseado no FreeBSD)
  2. FreeBSD
  3. Ubuntu
  4. Fedora
  5. Debian

Eu precisava de um servidor que pudesse rodar um poderoso servidor de mídia, que no caso seria o Plex Media Server.

Entrando no site deles, eu encontrei versões para Ubuntu, Fedora e o FreeBSD, mas nada do FreeNAS.

FreeNAS que, por sinal, apareceram mais vídeos quando pesquisando storage NAS e principalmente foi indicado pelo chefe do setor de TI da minha empresa, pela simplicidade de operação.

Numa das pesquisas entre qual sistema seria melhor, FreeBSD ou FreeNAS, encontrei uma página do próprio FreeNAS que mostrava o Plex como um plugin já incluso no pacote.

Uma leitura mais aprofundada demonstrou que, na verdade, o FreeNAS foi baseado sobre uma versão do FreeBSD, ou seja, todos os benefícios Unix mas em um sistema de uso simplificado.

Além disto, ele suporta o sistema de arquivos ZFS (Zettabyte File System) que foi criado pela Sun Microsystems em 2005 e que permite grande capacidade de armazenamento, integração de conceitos de sistema de arquivos e administração de volumes.

Sistema ZFS de arquivos:
Limites
Tamanho Máximo de arquivo264 bytes (16  EiB)
Número máximo de arquivos248
Tamanho máximo do nome de arquivo255 bytes
Tamanho máximo do volume264 bytes (16 EiB)

Estava decidido, iria me dedicar a aprender sobre o FreeNAS primeiro. A versão disponível no momento da elaboração desta postagem, é a 9.3 (FreeNAS-9.3-STABLE-201505130355).

Requisitos do sistema:
Pelo jeito que todo lugar fala, o ZFS utiliza muita memória RAM. O mínimo recomendado em qualquer lugar é 8GB. Mas um mínimo decente é de 16GB e, de preferência, memória ECC em função do sistema ZFS.

O que tem de especificação sobre a quantidade de RAM a se utilizar:
Depending upon your use case, your system may require more RAM. Here are some general rules of thumb:

If you plan to use ZFS deduplication, ensure you have at least 5 GB RAM per TB of storage to be deduplicated.
If you plan to use Active Directory with a lot of users, add an additional 2 GB of RAM for winbind’s internal cache.
If you plan on Using the phpVirtualBox Template, increase the minimum RAM size by the amount of virtual memory you configure for the virtual machines. For example, if you plan to install two virtual machines, each with 4GB of virtual memory, the system will need at least 16GB of RAM.
If you plan to use iSCSI, install at least 16GB of RAM, if performance is not critical, or at least 32GB of RAM if performance is a requirement.
If you are installing FreeNAS® on a headless system, disable the shared memory settings for the video card in the BIOS.

Uma coisa interessante sobre o FreeNAS é que ele precisa de um disco de instalação só pra ele. Isto pode ser um problema para quem tem os recursos todos destinados para os HDs armazenarem seus arquivos e não perder um HD inteiro apenas para o sistema operacional. Ele não particiona discos.

Neste ponto ele tem um recurso interessante já que ele pode rodar em um pen drive. Isto mesmo, o sistema operacional vai ficar rodando em apenas um simples pen drive que, para esta versão que estou usando, está especificado que seja um de pelo menos 8GB.

Algumas placas mãe já tem porta USB diretamente na placa, o que simplifica muito no visual acabado do servidor (sem necessidade de ter um pen drive do lado de fora plugado o tempo todo).


Bem, agora que tinha tudo definido em minha mente, era colocar em prática e de acordo com o material que eu tinha disponível. Montar o servidor como eu gostaria que fosse, vai ficar para mais a frente.

O PC que eu tenho em mãos para o projeto é até bem simples. Serviria para atestar a simplicidade e capacidade do pequeno sistema operacional.

Escolhi o que tinha o visual
mais simplista.
Digno de um servidor
  • Intel Core i3
  • 4GB de RAM DDR3 1333MHz - uma memória até que boa pela finalidade que o PC tinha (escritório)
  • Placa mãe GibaByte GA-H61M-S1 - com 04 portas Serial ATA (SATA)
  • Fonte 230W - único ponto bem fraco, já que não suporta muitos periféricos. Nesta caso, apenas 03, sendo que, no momento da instalação, só poderia instalar 02, já que 01 das conexões de energia, era no formato antigo.
  • HD 500GB - Seagate Pipeline HD2
Poucas portas



Conector antigo. Precisei de um cabo Y para SATA
Computador com o mínimo necessário. Bastante poeira após 2 anos de obra.


Antes de começar a montagem, eu precisava desmontar tudo e limpar. Pra mim, é uma forma de conhecer os componentes que serão meus.



Para a montagem, já incluí os HDs que eu tinha em mãos e na melhor configuração que eu pudesse arranjá-los com as 4 baias SATa disponíveis.

Do Iomega, eu saquei os 2 HDs de 3TB, mais o de 500GB que veio com o desktop e um que eu achei aqui na gaveta de notebook de 500GB que havia sido substituído.

A montagem dos HDs ficaria assim:

  • Raid1: 2 x 3TB = 3TB
  • Raid0: 2 x 500GB = 1TB
A montagem ficou um tanto quanto bagunçada, já que eu não tinha parafusos para o HD de notebook, mas ficou funcional.

Cabos azuis os de 3TB. Os cabos rosa, HDs de 500GB

O HD de 500GB de 2,5" ficou solto sobre uma flanela dobrada
Esse arranjo dos HDs de 500TB seria provisório até a chegada de um HD de 2TB comprado. Com ele mais o HD de 2TB de outro computador de casa, eu faria outro raid1 de 2TB.

A concepção do servidor é que ele funcione com dois pools de armazenamento para finalidades distintas:
  • Pool de 3TB - Armazenamento de mídias - filmes, séries, clipes, desenhos etc
  • Pool de 2TB - Arquivos da família, backups de arquivos pessoais - músicas e fotos ficam neste pool, já que aproveito o backup do meu computador como forma de sincronização destes arquivos
Com tudo limpo, revisado e incrementado, foi a hora de remontar e preparar para instalação do FreeNAS.


O FreeNAS pode ser baixado diretamente do site www.freenas.org: FreeNAS 9.3-RELEASE x64


O arquivo é uma imagem de disco (.ISO) e pode ser gravado em DVD diretamente do Windows ou gravado um um pen drive através do Win32 Disk Imager.

Como utilizaria o pen drive para rodar o sistema operacional, gravei o ISO em um DVD. Poderia ter colocado até em um CD, já que o ISO tem aproximadamente 500MB.

Utilizei um SanDisk de 8GB para instalar .


Como a placa mãe deste desktop que eu comprei não tem USB diretamente na placa (a conexão), ela ficou conectada à uma porta USB normal atrás do computador, apesar de dar uma sensação bem ruim de que a qualquer momento alguém pode chegar e puxar ou bater.



Pen drive de 8gb rodando o sistema operacional
Primeiro passo, foi entrar na BIOS da placa mãe e colocar o boot pelo DVD, onde estava gravada a ISO.


Outra ação, foi configurar o pendrive para ser reconhecido como um HD (hard disk), já que este seria o comportamento do pendrive daqui em diante (instalação do sistema e posterior boot).

O processo todo de instalação pode ser visto nesse tutorial oficial em inglês:


Após iniciar o boot pelo DVD, ele apresenta uma tela com o sistema operacional (*FreeNAS Installer). Tecle enter e aguarde...


... ele fará uma série de checagens e carga dos programas necessários...

Alterações feitas, era hora da instalação. A tela inicial é muito simples e não tem como errar o processo. Basta selecionar a opção 1.


Escolha o driver que será instalado (o pendrive no caso), e clique OK.

Depois de uma tela de advertências sobre os dados do pendrive que serão apagados, a próxima tela pede a senha do 'root'. Para quem não é familiarizado, como eu também não era, esse é o 'admin' do FreeNAS.

O 'root' é o usuário padrão com permissões completas do sistema. E nessa tela, deve ser definida a senha para ele.


Após clicar em OK, ele começa a instalação de um jeito que, na primeira vez que eu vi, achei que tinha dado erro em tudo. Pois lembra muito o Windows e seus programas quando dão bug (que não seja a tela azul da morte).

Mas, como no próprio vídeo tutorial indica, isto é perfeitamente normal!


Quando concluir a instalação, vai aparecer a tela para reiniciar. Aí o processo é o normal. Retira o DVD e reinicia. Lembre de alterar o 1º boot para o pendrive logo.

Outra coisa é que o computador tem que estar conectado com o cabo de rede, já que o acesso e operação do FreeNAS é todo via navegador de internet a partir de outro computador. Ele não tem suporte wireless.

Este acesso por navegador chama-se WebGUI.

Quando reiniciar, o FreeNAS ao término do carregamento, irá mostrar um 'Console setup' com 12 opões. Após estas opções, é apresentado o URL para acessar o FreeNAS através da web user interface (pelo navegador).


À partir deste momento, pode deixar o novo servidor de lado e usar outro computador de apoio. Abrir o navegador e digitar o URL da outra tela. Nesse exemplo da imagem acima, http://192.168.226.131.

Lembra do 'root'? É nesse momento que devemos entrar com o seguinte login:

Username: root
Password: (senha definida na instalação)

Pronto! FreeNAS instalado, rodando e acessado.

Alguns vídeos oficiais podem ser vistos na página http://www.freenas.org/about/videos.html.

Agora vem as configurações básicas. O FreeNAS, neste primeiro acesso, abre um 'Wizard' para auxiliar neste processo.

Este vídeo dá uma boa passada nas telas iniciais de configuração:


Não vou detalhar cada tela, mas é mais ou menos tranquilo se for lendo todas as informações de cada janela e com o manual aberto do lado (http://doc.freenas.org/9.3/freenas.html)


Informação do sistema após a instalação

O mais importante saber nessa altura, são alguns conceitos para entender a mecânica do sistema:
  • Armazenamento
    • Volume - é o conjunto de discos e como irão trabalhar juntos. É configurado na janela 'Volume Manager'.
    • Pool - é como se fosse a raiz do diretório do Volume.
      • É criado automaticamente já na criação do volume através do 'Volume Manager'. 
      • Podemos entender que o volume é na verdade um drive criado. Um novo HD visto como um hardware.
      • O pool é o sistema de arquivos (ZFS) visto como a parte do software.
      • Fazendo uma alusão, seria o C:\ que vemos no Windows. (esta definição foi de minha autoria e pode estar bem equivocada)
    • DataSet - são os diretórios de armazenamento criados nos pools.
      • Não há armazenamento direto em um pool e nem podemos compartilhar o mesmo para o Windows, por exemplo.
      • Seguindo a minha definição acima, imagine que não podemos utilizar o C:\ para gravar arquivos ou para compartilhamento.
      • Devemos criar pastas dentro destes pool (datasets) que serão os 'diretórios' os quais faremos o controle de permissões de leitura e gravação, gravaremos os nossos arquivos e compartilharemos para outros sistemas operacionais.
  • Plugins - serviços ou programas de outros fornecedores como:
    • Torrents
    • Serviços de acesso remoto
    • Servidores de mídia
  • Jails - área para armazenamento dos arquivos de instalação e operação dos plugins
    • Lembrar de definir nas configurações do Jails em qual pool serão criadas as pastas para os plugins
  • Compartilhamento (Sharing) - É aqui que são definidas as pastas que serão compartilhadas com o Windows, ou seja, que serão acessadas pelo Windows (ou outros sistemas operacionais).
    • Não esquecer de dar permissão para 'Other' no DataSet
    • O protocolo de compartilhamento com o Windows é o CIFS
Bem, no meu caso, com o servidor montado e rodando o sistema novo, era hora de dar um upgrade na infraestrutura do escritório para dar uma "cara" melhor para o novo conjunto, fazendo parecer algo que lembre um servidor.

Com pequenos trabalhos de marcenaria e as ferramentas certas (furadeira e martelo), a pequena estante de duas portas foi adaptada para se tornar um rack.


Sai estante duas portas, entra o rack para servidor.

Se alguém quiser saber o que aconteceu com as portas, elas se tornaram belas prateleiras no quartinho de ferramentas e bagulheira de casa.


Como este computador foi comprado usado e tinha uma função de teste para o FreeNAS (o teste era pra saber se eu ia dar conta de conseguir usar), era hora de pensar no equipamento definitivo para o servidor.

Este equipamento deveria atender aos requisitos mínimos (mas nem tão mínimo assim) do sistema.

Devo confessar que o hardware foi o que eu mais pesquisei antes de comprar. Mais ainda do que decidir pelo sistema operacional.

Vi várias indicações de placas mãe e processadores. Mas no final, acabei me direcionando para a Intel, com processador e placa específicos para servidores.

Muitos podem achar um exagero, mas é uma sensação muito ruim ter um equipamento que pode acabar falhando e corrompendo algum conjunto de arquivos.

Lembre que este servidor não é apenas para mídias comerciais (filmes e séries), e sim para guardar toda a história em fotos, vídeos e documentos da família. Acredito que a diferença de valor, que não foi significativa, vale a pena no final.

Se algo der errado um dia, sei que fiz o que devia ter feito.

Agora falta definir o gabinete para o novo conjunto que, por hora, será instalado no gabinete velho atual.

Servidor definitivo:

  • Processador Intel Xeon E3-1220v3 LGA1150
  • Placa Mãe Intel DBS1200V3RPS (com porta USB direto na placa)
  • Memória Kingston 2x8GB ECC UDIMM
  • Fonte Corsair CX750

Para o servidor de mídias, o escolhido foi o Plex Media Server. Ele é suportado pelo FreeNAS e vem relacionado como um plugin para baixar e instalar diretamente do WebGUI do FreeNAS.

Compatibilidade

Baixando e instalando o Plex.


Na página do Plex ele indica como acessar o programa instalado, mas a melhor forma de acessar é diretamente de dentro do FreeNAS. Ele cria um link de acesso.
Acesso após instalação
Mas para saber mais do Plex, eu fiz outra postagem específica: http://www.serjatila.com/2015/06/instalacao-do-plex-media-server-no.html




2 comentários:

  1. Olá, ficou show o seu tutorial, começei a procurar de como fazer um nas em casa, porque eu tenho d-link 320l e acredito que ele queimou, mas tenho algumas duvidas e no d-link tenho suporte via cloud remoto e via ftp e backup dos arquivos do celular tanto do Ios quanto do android e posso trabalhar com espelhamento dos hds, gostari de saber se posso fazer isso com o freenas e mais uma coisa, esta curtindo essa configuração que voce fez ?

    ResponderExcluir
    Respostas
    1. Eu ainda não fiz uma postagem sobre a mudança do hardware do servidor. Deste computador da postagem, só sobrou o pendrive com o FreeNAS. Fiquei bem empolgado sim com o sistema. Leveza na operação e interface limpa além de executar todas as tarefas que se pode querer de um servidor. FTP, vários plug-ins de serviços em nuvem (Syncthing, owncloud, BT Sync etc). Ele faz um ótimo monitoramento dos HDs emitindo mensagens e alertas para qualquer alteração de operação neles. Há uma página de monitoramento completo do sistema (rede, processador, memória, leitura e gravação). Bem, tudo isso pra dizer que estou satisfeito sim e ele está rodando até hoje em casa. Em breve faço uma postagem do status atual. Espero que até lá já tenha saído a versão 10 do FreeNAS... já está em Beta

      Excluir

"Be cool" quando for escrever seu comentário. Seja construtivo!