domingo, 15 de fevereiro de 2009

NAS doméstico com o FreeNAS

Usar um servidor Linux garante um bom nível de flexibilidade, pois você pode adicionar um grande volume de funções na mesma máquina. Um único servidor pode compartilhar a conexão, rodar um proxy transparente, rodar o servidor DHCP, compartilhar arquivos e impressoras e o que mais a imaginação mandar.

Entretanto, se você quer apenas um servidor de arquivos com suporte a vários discos em RAID e uma interface de administração via web, assim como um NAS comercial, você pode experimentar o FreeNAS, que desempenha a função de forma incrivelmente competente e pode ser configurado em poucos minutos.

Ele suporta o uso de RAID, compartilhamentos via CIFS (Samba), FTP, NFS e SFTP, além de oferecer um grande volume de recursos de gerenciamento, centralizados em uma interface web, que pode ser acessada a partir de qualquer PC da rede.

Você pode baixar o FreeNAS no: http://www.freenas.org

Na página estão disponíveis duas versões: O "FreeNAS Live CD" é a versão "padrão", onde você grava o arquivo .iso em um CD-ROM e faz a instalação através dele, enquanto as "FreeNAS Images" são imagens binárias, que podem ser gravadas diretamente em um HD ou em um cartão de memória flash.

O FreeNAS não é uma distribuição Linux, mas sim uma distribuição do FreeBSD, outro sistema Unix-like, muito usado em servidores. Apesar disso, ele é bastante simples de instalar e de configurar, pois foi desenvolvido em torno da interface de administração via web e de uma combinação de scripts em php e shell.

Ele pode ser instalado em qualquer PC com pelo menos 96 MB de memória RAM e ocupa apenas 32 ou 64 MB de espaço em disco (de acordo com o modo de instalação escolhido). De acordo com o desempenho esperado, você pode até mesmo utilizar um PC antigo que esteja sem uso, adicionando novos HDs até obter o espaço de armazenamento desejado.

clip_image001[11]
Pentium III com três HDs; um bom exemplo de máquina antiga para uso do FreeNAS

Mesmo um Pentium III ou um Celeron com o FreeNAS supera a maioria dos modelos de NASes dedicados em recursos. Você pode comprar 4 HDs de 1 TB, por exemplo, e ter assim um NAS de 4 TB por praticamente o custo dos discos. Caso necessário, você pode usar uma controladora SATA para instalar HDs atuais em um PC que oferece apenas interfaces IDE. Hoje em dia elas são baratas:

clip_image002
Controladora SATA em versão PCI

Para instalar, baixe o "FreeNAS Live CD" e configure o setup do micro para dar boot através do CD-ROM. A tela inicial de opções permite que você inicialize o sistema com o suporte a ACPI desativado ou em modo de segurança, duas opções destinadas a solucionar problemas de compatibilidade em micros antigos.

Desativar o suporte a ACPI reduz o número de opções de gerenciamento de energia, mas não tem efeito sobre o desempenho. O modo de segurança, entretanto, desativa o DMA e o modo de acesso de 32 bits aos HDs, o que reduz brutalmente o desempenho de leitura e gravação. Deixe para usá-lo apenas em último caso.

Depois que o boot é iniciado, é exibida uma splash screen. O boot demora apenas alguns segundos, mas a imagem continua sendo exibida até que você pressione Enter:

clip_image002[4]

O principal motivo do FreeNAS ser tão pequeno é que ele não inclui aplicativos gráficos, já que toda a configuração é feita através da interface web. A instalação do sistema, assim como a configuração básica é feita através de uma interface em modo texto, bastante espartana.

Como o nome sugere, o FreeNAS Live CD é um live-CD, que permite testar o sistema antes mesmo de instalar. Você pode configurar a rede (opção 2), acessar a interface de configuração em outro PC e brincar com as opções à vontade, mesmo antes de alterar os dados nos HDs. Se a máquina tiver um drive de disquetes, é possível também salvar as configurações usando um disquete pré-formatado, inserido no drive A:

clip_image003

Para finalmente instalar, acesse a opção 9 (Install/Upgrade to an hard drive/flash device, etc.), o que o levará a um segundo menu, onde é possível escolher o tipo de instalação:

clip_image004

A opção 1 (Install 'embedded' release on flash device) é destinada à instalação em cartões de memória flash ou em pendrives USB. Nessa modalidade, o sistema é instalado de forma compactada, ocupando apenas 32 MB de espaço em disco. Para minimizar o volume de operações de leitura e gravação, o sistema roda inteiramente a partir da memória RAM, usando a memória flash apenas para o carregamento inicial e para armazenar as configurações.

A vantagem desse método é que você fica com todos os HDs da máquina livres para criar arrays RAID e armazenar dados. Se o BIOS da máquina suportar boot através das portas USB, você pode usar um pendrive, caso contrário você pode usar um adaptador CF>IDE e um cartão de memória compact flash:

As opções 2 (Install 'embedded' release on hard drive) e 3 (Install 'full' release on hard drive) permitem instalar o sistema em um dos HDs da máquina. A diferença entre elas é que a opção 2 instala o sistema de forma compactada, da mesma forma que a opção 1, enquanto a opção 3 faz uma instalação padrão, com o sistema instalado de forma descompactada, que ocupa 64 MB de espaço em vez de 32.

A vantagem da opção 3 é que você pode instalar softwares adicionais. Apesar de se comportar como um sistema embarcado, o FreeNAS é na verdade uma instalação do FreeBSD, que suporta a instalação de pacotes adicionais e pode ser personalizado conforme desejado.

Tanto no caso da opção 2 quanto na opção 3, é criada uma pequena partição para o sistema no início do HD e uma partição para dados englobando o restante do disco (é necessário ativar a partição manualmente, como veremos a seguir). Não existe opção de instalar sem formatar o HD, por isso certifique-se de que não existem dados importantes antes de instalar. Também não é possível instalar o FreeNAS em dual-boot com outro sistema.

A instalação é bastante simples. O sistema confirma o device usado pelo drive de CD-ROM (o default é "acd0") e o device do HD onde o sistema será instalado. Diferente do Linux, onde os HDs são vistos pelo sistema como "sda" e "sdb", no FreeNAS eles são vistos como "ad0" (o primeiro HD) e "ad1" (o segundo). Se houver um pendrive plugado a uma das portas USB, ele será visto pelo sistema como "da0".

Ao escolher a opção 3, ele pergunta também o tamanho da partição do sistema, em MB. No exemplo estou reservando 128 MB (o mínimo seria 64 MB) para ficar com algum espaço livre para uso posterior:

clip_image006

Depois de terminada a instalação, volte ao menu inicial (opção 7) e use a opção "7) Reboot" para reiniciar o micro. Não desligue no botão, caso contrário você poderá perder arquivos do sistema que ainda estejam no cache de disco, fazendo com que a instalação não funcione corretamente.

No boot seguinte, você voltará ao menu inicial, com a diferença de que a opção 9 não estará mais disponível, já que o sistema já está instalado:

clip_image007

O último passo da instalação é configurar os endereços de rede, para que você possa acessar a interface web. Para isso, acesse a opção 2 e forneça os endereços da rede, incluindo o endereço IP que será usado pelo NAS, o gateway e o DNS usados na rede. Os únicos parâmetros obrigatórios são o endereço IP e a máscara (que deve ser fornecida na notação do CIDR, onde o número "24" equivale à máscara 255.255.255.0), mas é interessante fornecer a configuração de rede completa para que você possa usar a sincronização automática do horário do servidor via NTP.

Quando perguntado sobre a configuração do IPv6 responda "y" (mesmo que você não utilize IPv6 na sua rede). Se não houver um servidor DHCP IPv6 disponível, ele simplesmente utilizará um endereço aleatório.

clip_image008

Com isso, a configuração está completa. Você pode remover o monitor e o teclado do servidor e deixá-lo ligado apenas ao cabo de rede e ao cabo de energia, instalado em seu local definitivo.

O restante da configuração é feita através da interface web, acessada usando o endereço definido na configuração do servidor, como em "http://192.168.1.251". O login default é "admin" e a senha "freenas". Depois de acessar pela primeira vez, aproveite para trocar a senha de acesso, que é definida através da opção "System > General > Password".

Inicialmente, nenhuma partição será acessada e nenhum compartilhamento ficará disponível para a rede. Para ativar a partição de dados do HD onde o sistema foi instalado, acesse a opção "Disks > Management" da interface e use o botão "+" no canto direito para adicionar o disco:

clip_image009

No menu seguinte, indique o disco que está sendo adicionado (ad0, no exemplo) e deixe a última opção com o valor "Unformated". Se o NAS vai ficar ligado continuamente, é recomendável ajustar as opções "Hard disk standby time" e "Advanced Power Management", de forma que o HD seja desligado depois de alguns minutos sem uso, economizando energia. A opção "UDMA mode" deve ficar com o valor "Auto", a menos que o sistema tenha problemas para acessar o HD. No final, clique em "Add" e em seguida no "Apply changes':

clip_image010

Depois de adicionado o disco, falta adicionar a partição criada pelo instalador. Para isso, acesse a seção "Disks > Mount Point" e use o botão de adicionar.

Na opção "Type" escolha "Disk" e na opção "Disk" escolha o HD que acabou de adicionar na opção anterior (ad0). Na opção "Partition" escolha "2" e na opção "File System" escolha "UFS". As opções "Name" e "Description" são apenas descritivas, você pode preenchê-las com qualquer valor. Clicando no "add" e em seguida em "Apply changes" a partição de dados fica finalmente disponível para uso:

clip_image011

Acesse agora a opção "Access > Users and Groups" e crie pelo menos um grupo e um usuário para acesso. É preciso criar primeiro o grupo e em seguida criar o usuário.

A opção "Full Shell" permite que o usuário tenha acesso ao terminal de comando caso se logue no servidor via SSH. A idéia do FreeNAS é que você possa fazer toda a configuração via navegador mas, de qualquer forma, o shell está disponível para quem quiser modificar o sistema. Deixe a opção "Home directory" em branco para que seja usado o diretório "/mnt" (onde são montadas todas as partições), já que a idéia é justamente criar compartilhamentos envolvendo as partições de dados:

clip_image012

Os usuários criados aqui são para acesso aos compartilhamentos de rede, sem relação com a senha usada para acessar a interface de administração.

O passo final da configuração é ativar os serviços de rede desejados na seção "Services". O FreeNAS oferece acesso via CIFS/SMB, FTP, SSH, NFS e AFP, além de oferecer suporte a arrays de discos iSCSI e sincronização de arquivos via Rsync e Unison. Ou seja, os arquivos no servidor podem ser acessados através de praticamente todos os protocolos de transferência de arquivos popularmente usados.

Por questões de segurança, nenhum destes serviços vem ativado por padrão, de forma que você precisa indicar manualmente quais deseja utilizar. O arroz com feijão é o CIFS/SMB, que ativa o servidor Samba, e permite que os clientes Windows e Linux (com o cliente Samba) tenham acesso ao servidor. O serviço é ativado através da opção "Services > CIFS/SMB":

clip_image013

A opção "Authentication" indica o modo de acesso aos arquivos: a opção "Anonymous" simplesmente permite o acesso de qualquer um, enquanto a opção "Local User" limita o acesso aos logins cadastrados no "Access > Users and Groups". É possível também integrar o NAS a um domínio, fazendo com que ele use a lista de usuários cadastrados no servidor PDC; para isso você usaria a opção "Domain".

A opção "NetBiosName" indica o nome do servidor e "Workgroup" o grupo de trabalho, enquanto a opção "Local Master Browser" diz se ele deve ficar responsável pela navegação na rede. A opção "Windows Server" deve ficar em branco, a menos que você tenha um servidor Windows (ou Samba) na rede e queira que o servidor FreeNAS utilize-o como servidor WINS.

A opção "Time server" permite que os clientes Windows sincronizem o relógio do sistema em relação ao horário do servidor. Ao ativar esta opção, ative também a opção "Enable NTP" na seção "System > General". Ela faz com que o servidor sincronize o horário com um servidor NTP na Internet e forneça o horário correto para os clientes da rede.

Depois de ativar o serviço, acesse a aba "Shares" e clique no botão "+" para adicionar os compartilhamentos. A opção "Name" indica o nome do compartilhamento e a opção "Path" a pasta que será compartilhada.

Assim como na configuração do Samba, a opção "Browseable" indica que o compartilhamento deve aparecer no ambiente de redes e as opções "Hosts allow" e "Hosts deny" podem ser usadas para limitar o acesso ao compartilhamento, baseado nos endereços IP ou nos nomes das máquinas.

A opção "Recycle bin" cria uma lixeira, que permite recuperar arquivos deletados nos compartilhamentos de rede. Os arquivos ficam disponíveis dentro da pasta ".recycle", uma pasta oculta dentro de cada compartilhamento. As lixeiras simplesmente vão acumulando todos os arquivos deletados até serem esvaziadas manualmente, por isso é importante verificar o espaço consumido por elas regularmente.

Concluindo, a opção "Inherit permissions" faz com que pastas criadas pelos usuários dentro do compartilhamento sejam setadas com as mesmas permissões da pasta raiz. Ela é útil para evitar que um usuário não consiga modificar os arquivos criados pelo outro em compartilhamentos públicos.

clip_image014

As partições montadas no FreeNAS ficam disponíveis dentro da pasta "/mnt". Dentro dela, é criada uma pasta com o nome dado à partição, de forma que a partição "dados1" é montada dentro da pasta "/mnt/dados1". Ao criar um compartilhamento, você especifica a pasta à qual quer dar acesso, de forma que se você quiser compartilhar todo o conteúdo da partição, basta compartilhar a pasta correspondente.

É possível também criar sub-pastas, de forma a criar vários compartilhamentos diferentes dentro da mesma partição. Nesse caso, você deve criar as subpastas manualmente e criar compartilhamentos separados para cada uma.

Você pode executar comandos de terminal usando a opção "Advanced > Command", acessar a opção "6" (Shell) no menu que fica disponível localmente no servidor ou mesmo acessá-lo remotamente via SSH (veja a dica a seguir). Em qualquer um dos três casos, você pode criar as pastas usando o comando "mkdir", como em:

mkdir /mnt/dados1/share1
mkdir /mnt/dados1/share2

Se você tiver problemas para gravar arquivos dentro dos compartilhamentos, pode abrir as permissões de acesso da pasta usando o comando "chmod -R 777 pasta", como em:

chmod -R 777 /mnt/dados1/share1

Temos aqui um exemplo de configuração de compartilhamentos, com duas subpastas dentro da partição de dados, compartilhadas através de dois compartilhamentos diferentes:

clip_image015

Os compartilhamentos do FreeNAS aparecem no ambiente de rede da mesma forma que os de um servidor Windows ou um servidor Linux rodando o Samba. Aqui temos um screenshot dos dois compartilhamentos no ambiente de redes de uma máquina Windows:

clip_image016

Além do Samba, o FreeNAS oferece suporte a todos os outros protocolos de rede que comentei, cada um suportado através de um serviço (ou daemon) que pode ser ativado através da opção "Services" no menu principal. Vamos então a um resumo dos serviços disponíveis:

FTP: Ativa um servidor FTP, que pode ser usado tanto como uma forma alternativa de disponibilizar arquivos na rede local quanto para disponibilizar arquivos via Internet. Assim como no caso do CIFS/SMB, é possível oferecer acesso anônimo (recomendável apenas se o servidor FTP ficará disponível apenas para a rede local) ou limitar o acesso aos logins cadastrados.

SSHD: O servidor SSH permite que os arquivos do servidor sejam acessados de forma segura via SFTP, usando os logins cadastrados. É possível também acessar o FreeNAS via terminal, logando-se via SSH, de forma a instalar pacotes adicionais e alterar manualmente a configuração do sistema. Para se logar como root, marque a opção "Permit root login" e use a mesma senha que dá acesso à interface web.

NFS: O NFS é um sistema de compartilhamento de arquivos suportado nativamente no Linux e diversos outros sistemas Unix. A vantagem do NFS é que ele oferece suporte às permissões de arquivos do Linux/Unix, o que permite que os compartilhamentos sejam usados para armazenar o diretório home e outras pastas do sistema. Para montar os compartilhamentos (nos clientes), é necessário que o serviço "nfs-common" esteja ativo. O comando básico para montar um compartilhamento NFS via terminal é "mount -t nfs servidor:/compartilhamento /pasta-local", como em:

mount -t nfs 192.168.1.251:/mnt/dados1 /mnt/arquivos

AFP: O AFP é um protocolo de compartilhamento de arquivos suportado pelo Mac OS. Ele era o protocolo preferencial até o Mac OS 9 e continua sendo suportado nas versões atuais do OS X.

RSYNCD: O rsync é um protocolo de sincronização de diretórios que é muito usado em scripts de backup. A grande vantagem do rsync é que ele utiliza um algoritmo de comparação binária, que permite que o cliente e o servidor verifiquem quais trechos dos arquivos foram modificados em relação ao último sincronismo e transfiram apenas as partes diferentes. Isso o torna uma ferramenta incrivelmente poderosa para realizar backups via Internet, ou em qualquer situação em que seja necessário reduzir o tempo e o volume de dados transferidos.

Para sincronizar a pasta local "/arquivos" com a pasta remota "/backup", no servidor "backup.empresa.com" usando o login "adm", por exemplo, tunelando o rsync através do SSH (para encriptar a transmissão), o comando seria:

rsync -av --rsh="ssh -l adm" /arquivos adm@backup.empresa.com:/backup

Existem também clientes rsync para Windows, como o DeltaCopy, disponível no:
http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp

Unison: O Unison é outra ferramenta de sincronização de diretórios, bastante usada em repositórios de softwares e outros projetos colaborativos. Ele permite que múltiplas cópias de um mesmo repositório, em máquinas diferentes, sejam mantidas em sincronismo, com as alterações sendo replicadas automaticamente. A página do projeto é a:
http://www.cis.upenn.edu/~bcpierce/unison/

iSCSI Target: O iSCSI (pronuncia-se "ai-iscâzi") permite que um array de discos seja acessado remotamente através de uma interface de rede. Você pode pensar no iSCSI como um protocolo para encapsular comandos de acesso a disco, juntamente com os dados resultantes, em pacotes TCP/IP. O iSCSI é um dos protocolos mais utilizados em SANs (junto com o Fibre Channel) para permitir que servidores acessem grandes arrays de discos como se fossem unidades locais. Não é o tipo de coisa que você usaria na sua rede local, mas de qualquer forma a possibilidade está disponível. :)

UPnP: O Universal Plug and Play é um conjunto de serviços que visa facilitar a configuração da rede, permitindo que os PCs e demais dispositivos conectados a ela divulguem os recursos que estão compartilhando. Isso permite que os compartilhamentos de arquivos e outros recursos de rede sejam acessados de forma automática pelos demais dispositivos. Imagine que compartilhando uma pasta com arquivos .avi através de um dispositivo que suporte o UPnP, ela será automaticamente vista e acessada pelo seu Playstation 3, que poderia então exibir os vídeos como se fossem arquivos locais.

Embora ainda existam problemas, ele é um padrão que lentamente vem crescendo. Ele é suportado por consoles e media centers como o Playstation 3 e o Xbox 360 e por softwares como o WinDVD e o PowerDVD. Como comentei, compartilhar uma pasta com vídeos usando o UPnP é uma forma simples de acessá-los nos clientes compatíveis.

Dynamic DNS: Assim como diversos modems ADSL e roteadores domésticos, o FreeNAS inclui clientes para o no-ip, dyndns, freedns e o zoneedit, que permitem sincronizar seu domínio virtual sem necessidade de manter outro PC da rede ligado.

SNMP: O SNMP permite que você monitore diversos dispositivos de rede através de uma interface centralizada. Cada dispositivo a ser monitorado (incluindo o NAS com o FreeNAS) roda um agent, que é um pequeno software de controle, que disponibiliza informações sobre o sistema, tais como o uso de memória, espaço em disco, utilização da rede e assim por diante.

As informações são agrupadas por um NMS (Network management system), que disponibiliza uma interface de gerenciamento (acessível de diversas formas), que permite ao administrador perceber rapidamente qualquer problema ou indício de problema. Um exemplo de NMS é o OpenNMS, disponível no http://www.opennms.org.

clip_image017

Concluindo, temos a configuração de arrays RAID, que é um dos recursos mais interessantes do FreeNAS. Ele suporta o uso de RAID via software, o que permite criar arrays RAID usando as próprias interfaces IDE ou SATA da placa mãe, sem necessidade de qualquer hardware adicional. A idéia de "RAID via software" pode soar estranha a princípio, mas as controladoras RAID incluídas na maioria das placas mãe utilizam o sistema "fake-RAID" onde também é usado processamento via software (nesse caso feito pelo driver da controladora), de forma que o resultado é muito similar.

A principal limitação é que não é possível usar o HD onde o sistema foi instalado como parte do array RAID. Você pode usá-lo para armazenar dados, ativando a partição com os passos que vimos anteriormente, mas não usá-lo em conjunto com outros discos para criar o array RAID. Isso significa que você precisa de pelo menos três HDs (um para o sistema e outros dois para o array RAID) para usar o recurso.

Para fazer raid usando apenas dois HDs, é preciso instalar o FreeNAS em outra mídia, como um pendrive ou um cartão de memória flash. Outra opção é simplesmente usar um HD antigo para a instalação do sistema, deixando os HDs "bons" para a criação do array. Como o FreeNAS ocupa apenas 32 ou 64 MB, você pode usar qualquer HD em bom estado para a instalação do sistema, independentemente da capacidade.

Os modos RAID disponíveis são:

RAID 1 (Mirroring): No RAID 1 são usados dois HDs, onde o primeiro armazena dados e o segundo armazena um backup completo (mirror) atualizado em tempo real. Se o primeiro HD falha, o NAS chaveia automaticamente para o segundo HD, de forma que o sistema continua funcionando como se nada tivesse acontecido. Depois de trocar o HD defeituoso, você pode restaurar o array, de forma a voltar a contar com o backup.

A desvantagem em usar RAID 0 é que metade do espaço de armazenamento é sacrificado. Ao usar dois HDs de 500 GB, você ficará com apenas 500 GB de espaço disponível. Além disso, o desempenho é levemente inferior ao de utilizar um único HD, devido ao trabalho de atualização do mirror no segundo HD.

RAID 0 (Striping): No RAID 0 todos os HDs passam a ser acessados como se fossem um único drive. Ao serem gravados, os arquivos são fragmentados nos vários discos, permitindo que os fragmentos possam ser lidos e gravados simultaneamente, com cada HD realizando parte do trabalho. Isso permite melhorar brutalmente a taxa de leitura e de gravação e continuar usando 100% do espaço disponível nos HDs. O problema é que no RAID 0 não existe redundância. Os HDs armazenam fragmentos de arquivos, e não arquivos completos. Sem um dos HDs, a controladora não tem como reconstruir os arquivos e tudo é perdido.

No FreeNAS, você deve considerar o uso do RAID 0 apenas se você já migrou sua rede para o padrão Gigabit Ethernet, já que em uma rede de 100 megabits o gargalo será a taxa de transferência da rede e não o desempenho dos HDs. Tenha em mente que a taxa de transferência real em uma rede de 100 megabits é de pouco mais de 10 MB/s, marca que é superada facilmente por qualquer HD atual.

RAID 5: Este modo é o ideal se você possui três ou mais HDs para o array RAID. Ele mantém uma camada de redundância, que permite que o sistema continue funcionando caso qualquer um dos discos apresente defeito e, ao mesmo tempo, utiliza um sistema de striping, que melhora o desempenho de acesso.

O RAID 5 usa um sistema de paridade para manter a integridade dos dados. Os arquivos são divididos em fragmentos e, para cada grupo de fragmentos, é gerado um fragmento adicional, contendo códigos de paridade. Os códigos de correção são espalhados entre os discos. Dessa forma, é possível gravar dados simultaneamente em todos os HDs, melhorando o desempenho.

O RAID 5 pode ser usado com a partir de 3 discos. Independentemente da quantidade de discos usados, sempre temos sacrificado o espaço equivalente a um deles. Em um NAS com 4 HDs de 500 GB, por exemplo, você ficaria com 1.5 TB de espaço disponível.

É possível usar HDs de capacidades diferentes, mas isso não é recomendável, pois o sistema precisará nivelar por baixo, sub-utilizando os outros discos. Ao juntar dois HDs de 500 GB e um de 400 GB em um array RAID 5, você fica com apenas 800 GB disponíveis.


JBOD
: No JBOD (Just a Bunch Of Disks) os HDs disponíveis são simplesmente concatenados e passam a ser vistos pelo sistema como um único disco, com a capacidade de todos somada. Os arquivos são simplesmente espalhados pelos discos, com cada um armazenando parte dos arquivos (nesse caso arquivos completos, e não fragmentos como no caso do RAID 0). No JBOD não existe qualquer ganho de desempenho, nem de confiabilidade, ele é apenas uma forma simples de juntar vários HDs de forma a criar uma única unidade de armazenamento.

Para configurar o array RAID, o primeiro passo é adicionar os discos usando a opção "Disks > Management". Com 4 HDs, por exemplo, os discos serão vistos pelo sistema como "ad0", "ad1", ad2" e "ad3". Adicione cada HD, usando a opção "Unformated" no campo "Preformatted FS". Não se esqueça de clicar no "Apply changes" ao terminar:

clip_image018

O próximo passo é formatar cada um dos HDs usando a opção "Disks > Format". Selecione o HD a ser formatado, escolha a opção "Software RAID" no campo "File system" e clique no botão "Format disk" para concluir o processo. Note que nesse caso não são criadas partições, simplesmente a unidade inteira é formatada no sistema utilizado pelo driver RAID:

clip_image019

Depois de formatar todos os HDs, acesse a opção "Disks > Software RAID" para criar o array. Os botões no topo da tela permitem escolher o modo raid desejado.

Acesse a aba correspondente ao modo raid que será usado e use o botão "+" para criar o array. No menu seguinte, escolha um nome para o array e marque os discos que farão parte dele. Note que o HD usado para instalar o sistema não aparece na lista:

clip_image020

Clique no botão "add" e em seguida no "Apply changes" para concluir o processo. A criação de um array RAID 5 demora um longo tempo, durante o qual o volume fica marcado com o status "rebuilding", que indica que o sistema está calculando as informações de redundância, que são armazenadas nos setores reservados dos discos para permitir que o sistema recupere os dados após a falha de um dos HDs. Aguarde até que o marcador de status passe a indicar "COMPLETE" (você pode dar um refresh periódico na janela do navegador).

Depois de criado o array, falta apenas formatar o volume para finalmente poder usá-lo. Para isso, acesse novamente a opção "Disks > Format". No campo "Disk", escolha agora o array RAID que acabou de criar e, no campo "File system", escolha "UFS", que é o sistema de arquivos nativo do FreeNAS. Ao criar o array RAID, todos os HDs passam a formar uma única unidade, de forma que ao formatar o volume, todos são formatados simultaneamente, criando uma única partição:

clip_image021

A opção "Minimum free space" reserva parte do espaço disponível na partição (o default são 8%). Isso permite que o sistema possa manter os arquivos da partição desfragmentados, o que resulta em um desempenho muito superior ao de uma partição entupida até a borda. É recomendável manter os 8% de espaço reservado, a menos que você realmente precise utilizar todo o espaço da partição, às custas do desempenho.

Acesse agora a opção "Disk > Mount Point" e use o botão "+" para adicionar o ponto de montagem, de forma que o array possa finalmente ser usado pelo sistema. Selecione o array no campo "Disk", escolha a opção "EFI GPT" no campo "Partition" e "UFS" no campo "file system":

clip_image022

A partir daí, basta ativar os serviços de rede desejados e criar os compartilhamentos para que o volume RAID possa ser acessado através da rede. Se você fizer a configuração enquanto o array RAID está com o status "rebuilding", vai perceber que o desempenho de acesso ficará abaixo do normal até a conclusão do processo, o que é absolutamente normal.

Você pode monitorar o status dos discos através da opção "Status > Disks" da interface:

clip_image023

Em situações normais, os HDs aparecem com o status "ONLINE" e o array aparece com o status "COMPLETE", que indica que tudo está funcionando. Caso um dos HDs falhe, o array passará a aparecer com o status "DEGRADED". O NAS continuará funcionando normalmente, mas se um segundo HD apresentar defeito antes que você tenha a chance de substituir o primeiro, você perderá todos os dados.

Para fazer a substituição do disco, acesse a opção "Disks > Management" para checar qual dos HDs deu defeito. Ele aparecerá na lista com o valor "MISSING":

clip_image024

O próximo passo é desligar o NAS e substituir o HD por outro. Não é necessário usar outro HD da mesma marca ou modelo, a única exigência é que o novo HD tenha uma capacidade igual ou maior do que a do disco que está sendo substituído. Após reiniciar o FreeNAS, o disco voltará a aparecer na lista com o valor "ONLINE", sinal de que foi corretamente detectado pelo sistema.

Os passos de recuperação mudam de acordo com o modo RAID utilizado. No RAID 0 o processo consiste em sentar e chorar, já sem redundância e com os dados espalhados em ambos os discos, a falha de um dos drives causa a perda de todos os dados. No JBOD você perde apenas os dados que estiverem armazenados no HD defeituoso (novamente sem possibilidade de recuperação, a menos que você contrate os serviços de uma empresa especializada), mas você continuará conseguindo acessar os arquivos armazenados nos outros discos. Justamente por isso é recomendável utilizar sempre RAID 1 ou RAID 5, que são os modos que oferecem proteção contra falhas.

O processo de restauração de um array RAID 1 é feito em dois passos. Acesse a opção "Disks > Software RAID > RAID 1 > Tools"; você verá que o array continua aparecendo com o valor "DEGRADED", o que é normal, já que o array ainda não foi restaurado. O primeiro passo é fazer com que o sistema elimine o disco anterior, o que é feito escolhendo o array no campo "Volume Name" e a opção "forget" no campo "Command". Isso faz com que o sistema "esqueça" o HD que deu defeito e fique apenas com o disco bom.

Depois de clicar no "Send command", repita o procedimento, indicando agora o disco que foi substituído no campo "Disk" e a opção "insert" no campo "Command". Isso restaura o array usando o novo disco, essencialmente copiando todos os dados do outro HD para ele, de forma a recriar o backup.

Para restaurar um array RAID 5, acesse a opção "Disks > Software RAID > RAID5 > Tools". Selecione o array no campo "Volume Name", o disco que foi substituído no campo "Disk" e o valor "insert" na opção "Command". Note que nesse caso não usamos a opção "forget", que é usada apenas ao restaurar um array RAID 1:

clip_image025

O processo de restaurar o array RAID 5 é demorado, já que o sistema precisa ler os setores de paridade espalhados pelos outros HDs e usá-los para restaurar os dados do HD que foi substituído, mas é possível usar o NAS durante o processo, apesar do desempenho ficar abaixo do normal por causa da atividade dos discos. Em alguns casos, pode ser necessário desmontar e montar o volume na opção "Disk > Mount" para que ele volte a ser acessado depois da restauração.

Se, por outro lado, o problema não for com os HDs, mas sim com o próprio PC, basta remover os HDs e instalá-los em outro micro. O FreeNAS detecta o hardware da máquina a cada boot, de forma que, desde que não exista nenhum problema de compatibilidade entre o FreeNAS e o novo PC, o sistema voltará a funcionar exatamente da mesma forma que no PC anterior.

Nenhum comentário: