Anda di halaman 1dari 307

FreeNAS

[Apostila Tcnica]

Autor: Danilo Perillo Chiacchio

Essa apostila de propriedade intelectual do autor e somente deve ser divulgada


com autorizao do mesmo. A Escola Linux tem autorizao para distribuir essa
apostila atravs do curso FreeNAS: Configurao e Administrao: 14 HORAS.
Sumrio:
Tpico 1: Introduo ao FreeNAS........................................................................................................4
1.1 O que o FreeNAS?..................................................................................................................4
1.2 Porque devo utilizar o FreeNAS?..............................................................................................7
1.3 Overview sobre o sistema de arquivos ZFS...............................................................................8
1.4 Overview sobre NAS (Network-Attached Storage)................................................................12
1.5 Overview sobre SAN (Storage Area Network)........................................................................14
1.6 Requerimentos de Hardware para Executar o FreeNAS..........................................................16
1.7 Realizando o download do FreeNAS.......................................................................................17
1.8 Preparando o ambiente de Laboratrio com VirtualBox:........................................................18
1.8.1 Instalao do VirtualBox em ambiente Linux..................................................................18
1.8.2 Instalao do VirtualBox em ambiente Windows............................................................23
1.9 Instalao do FreeNAS............................................................................................................32
1.9.1 Notas sobre Upgrading para novas verses.....................................................................47
1.10 Configuraes iniciais providas pelo Wizard de Instalao..................................................69
1.11 Overview da interface de gerenciamento web.......................................................................73
Tpico 2: Administrao do FreeNAS...............................................................................................81
2.1 Administrao do Sistema.......................................................................................................81
2.1.1 Habilitando HTTPS para gerenciamento web, Configurando servidor NTP, Ajustando
banner MOTD, Configurando SMTP server para envio de notificaes..................................81
2.2 Administrao de Rede............................................................................................................90
2.2.1 Ajustando hostname, nome de domnio, Servidores DNS, Roteamento Esttico............95
2.3 Administrao do Storage........................................................................................................98
2.3.1 Criao de volumes (ZFS Volume em ZFS Pools)..........................................................98
2.3.2 Criao de Datasets (ZFS Dataset)................................................................................100
2.3.3 Criao de Zvol (Volume ZFS)......................................................................................100
2.4 Backup das Configuraes.....................................................................................................102
2.5 Restore das Configuraes.....................................................................................................103
Tpico 3: Trabalhando com Replicao e Compartilhamento de Volumes......................................105
3.1 Trabalhando com Snapshots (Criando, gerenciando e clonando)..........................................105
3.2 Replicao de dados localmente e remotamente...................................................................124
3.3 Trabalhando com compartilhamentos NFS............................................................................141
3.4 Trabalhando com WebDAV Shares........................................................................................148
3.5 Trabalhando com compartilhamentos CIFS/SMB.................................................................152
3.6 Trabalhando com iSCSI targets.............................................................................................165
Tpico 4: Administrao Avanada do FreeNAS.............................................................................175
4.1 Configuraes de rede avanada, agregao de VLANS via CLI e interface web................175
4.2 Gerenciando zfs/zpool via CLI..............................................................................................191
4.3 Configurao de servios como integrao com Servios de Diretrio, SSH, FTP, Rsync,
TFTP, DDNS e desabilitando servios desnecessrios................................................................214
4.4 Realizando tuning no sistema de arquivos ZFS.....................................................................231
4.5 Laboratrio Adicional:...........................................................................................................233
4.5.1 Criando volume iSCSI e entregando para o Citrix XenServer......................................234
4.5.2 Criando volume iSCSI e entregando para o Vmware ESXi...........................................243
4.5.3 Criando volume iSCSI e entregando para Sistemas Windows Server...........................247
4.5.4 Criando volume iSCSI e entregando para Sistemas Linux (Debian/CentOS)...............250

2
4.5.5 Criando volume iSCSI e entregando para Sistemas BSD (FreeBSD)...........................252
4.6 Entendendo o Banco de Dados do FreeNAS.........................................................................254
Tpico 5: Aulas Extras.....................................................................................................................256
5.1 Instalao do FreeNAS 9.10 e Upgrade do FreeNAS 9.3 para 9.10......................................256
5.2 Overview sobre Plugins para o FreeNAS..............................................................................257
5.3 Instalao de Plugins no FreeNAS (bacula-sd).....................................................................259
5.4 Gerenciamento dos Plugins para o FreeNAS........................................................................260
5.5 Entendendo em mais detalhes o que um Jail.......................................................................261
5.6 Laboratrio: Integrao do FreeNAS com a soluo de backup Bacula...............................266
5.7 Provendo compartilhamentos para clientes Macintosh (MAC OS X) via AFP (Apple File
Protocol/Apple File Shares).........................................................................................................277
5.7.1 Configurando o servio Time Machine no MAC OS X para backup dos dados do usurio
para o Servidor FreeNAS........................................................................................................289
5.8 Laboratrio: Trabalhando com Encriptao de Volumes.......................................................295
Referncias.......................................................................................................................................307

3
Tpico 1: Introduo ao FreeNAS

1.1 O que o FreeNAS?


Basicamente, o FreeNAS uma soluo Free/Open Source baseada no sistema operacional
FreeBSD utilizada para armazenamento de dados em rede, ou seja, um NAS (Network-Attached
Storage).
Foi desenvolvido em 2005 por Olivier Cochard-Labb. Inicialmente, este (Olivier) pretendia apenas
desenvolver uma soluo de armazenamento de dados em rede onde pudesse utilizar em seus
antigos computadores. Com esse simples propsito surgiu o FreeNAS:

"In mid 2005, I wanted to transform one of my old PCs into a NAS server for my home... I didn't
find an open source project that filled my needs so I chose to build my own... I never imagined that
my little customized M0n0wall to NAS would become so famous."

-Olivier Cochard-Labb (Founder of the FreeNAS Project) *source is Feb 2010 BSD magazine
article

Alguns anos aps seu desenvolvimento, mais precisamente em meados de 2009 o ento lder do
projeto do FreeNAS, Volker Theile, anunciou que o projeto do FreeNAS no mais seria utilizando
como base o sistema operacional FreeBSD. O FreeNAS seria ento portado para o sistema Debian.
A noticia abalou a grande comunidade do FreeBSD, que at ento estava absorvendo de maneira
aceitvel o projeto do FreeNAS e o utilizando cada vez mais. Alm de tudo, sendo portado para o
Debian, o FreeNAS iria perder o suporte nativo ao sistema de arquivos ZFS.
Como um bom utilizador e colaborador do projeto do FreeBSD, a iXsystems moveu-se para evitar o
fim do FreeNAS tendo como base sistemas BSD. No final do ano de 2009, Matt Olander em nome
da iXsystems se ofereceu para manter o FreeNAS em BSD (a pedido de Olivier). A oferta foi
gentilmente aceita por Volker e no ncio de 2010 o time da iXsystems comeou a melhorar ainda
mais a ferramenta, reformulando e potencializando toda interface web e adicionando recursos nas
verses mais recentes.

"As long-time users and advocates of FreeNAS, I felt that it was important to both the FreeBSD and
FreeNAS communities to keep the project moving forward. FreeNAS served as a rock-solid
fileserver at iXsystems since it's initial release and we wanted to continue using it as well as
sharing any innovations we made with the rest of the FreeNAS community."

-Matt Olander
(iXsystems CTO)

4
A seguir, possvel acompanhar a evoluo cronolgica do FreeNAS desde seu lanamento at os
dias de hoje:

[2005]
Thanks to the efforts of Olivier Cochard-Labbe, FreeNAS is born! The first alpha version of
FreeNAS is available as an ISO file on SourceForge.

[2006]
FreeNAS is a winner of the VMware Ultimate Virtual Appliance.

[2007]
FreeNAS has been named as one of the 2007 Best of Open Source Software winners by the
InfoWorld Test Center.

[2009]
Volker Theile, announces he is no longer capable to maintain the project on FreeBSD. Plans to port
FreeNAS over to Debian.

[2010]
iXsystems took over development began the long road to re-working and modernizing FreeNAS.

[2011]
May 2011: FreeNAS 8.0 is released. This is a completely re-written codebase with a new WebGUI
based off of Django and Dojo toolkit.

[2012]
FreeNAS 8.2 is released. The team implemented a plug-in system for FreeNAS based on PBI's and
FreeBSD jails.

[2013]
FreeNAS 8.3 is released. The team incorporated ZFS Encryption into the latest version, making
FreeNAS one of the only Open Source projects which do so.

5
[2014]
The team released FreeNAS 9.2 and 9.3 with an all new volume manager, new virtualization
features, and a setup wizard. This year also marked the end of UFS and 32-bit support.

A figura a seguir demonstra graficamente a evoluo do FreeNAS:

Atualmente a verso estvel no FreeNAS a 9.3, disponvel tanto em 32 quanto 64 bits. A verso
10 do FreeNAS j est em desenvolvimento pelo time da iXsystems.

6
1.2 Porque devo utilizar o FreeNAS?
As razes para utilizar o FreeNAS so muitas, mas iremos destacar as principais:
Ponto central de armazenamento de dados em uma rede de computadores;

Melhor e maior gesto dos dados, permisses, backups, redundncia;

Suporte ao principais protocolos de mercado (RFC); nmero muito grande de integraes


possveis;
Interface de gerenciamento web de fcil entendimento;

CLI (Command Line Interface) disponvel;

Custo/benefcio atraente;

Possibilidade de utilizar hardware j existente;

Farta documentao disponvel;

Sistema estvel, baseado no BSD FreeBSD.

Conforme mencionado anteriormemte, o FreeNAS baseado em um sistema altamente seguro e


estvel da famlia BSD, o FreeBSD. Porm, importante ressaltar que o FreeNAS no uma
soluo de segurana e sim uma soluo para armazenamento dos dados em rede. Por isso, este
depende de vrias aes de segurana para torna-lo mais seguro, como por exemplo, proteger a
comunicao deste por um firewall de rede caso necessrio.
Apesar de no ser uma soluo de segurana, o FreeNAS possui suporte a criptografia dos dados
com fator de 256 bits o que proporciona confidencialidade aos dados armazenados. Com isso,
mesmo que os discos sejam fisicamente removidos do FreeNAS os dados estaro ilegiveis para
pessoas no autorizadas. Porm, importante ressaltar que isso no protege os dados em trnsito.
Esquemas de segurana a nvel de rede devem ser planejados/implementados com objetivo de
manter segura a comunicao do FreeNAS com seus hosts clientes.
Alm disso, o FreeNAS possui suporte a um nmero muito grande de third-party plugins o que
aumemta ainda mais a gama de recursos. Por exemplo, um dos plugins disponveis pode
transformar o FreeNAS em um MediaServer para rede.
A verso 9.2 do FreeNAS possui suporte para processadores 32 bits, alm do suporte a
processadores 64 bits.

7
1.3 Overview sobre o sistema de arquivos ZFS
O sistema de arquivos ZFS (seu significado original era Zettabyte File System) foi desenvolvido
originalmente pela Sun Microsystems para seu sistema operacional Unix (Solaris/Open Solaris). O
cdigo fonte do ZFS est sob licena CDDL (Common Development and Distribution License).
Para mais detalhes sobre esse mtodo de licenciamento, o seguinte link est disponvel:
https://opensource.org/licenses/CDDL-1.0

Com base no ZFS, o projeto OpenZFS foi criado. Para entender mais sobre o ZFS, podemos
destacar trs caractersticas e/ou principais objetivos do seu design:
Integridade dos Dados: Todos os dados gravados em um sistema de arquivos ZFS possuem
um checksum. Quando um dado est sendo gravado (write), o checksum calculado e
gravado junto com ele. Posteriormente, quando esse dado lido (read), o checksum
calculado novamente. Se as somas de verificao (resultado do checksum) no
correspondem, um erro foi detectado e o prprio sistema de arquivos (ZFS) tentar corrigi-
los automaticamente quando a redundncia de dados est disponvel;
Armazenamento em Pool: Dispositivos fsicos de armazenamento de dados (HD's, por
exemplo) so adicionados a um pool e o espao de armazenamento resultante alocado para
um pool compartilhamento (shared pool). Esse espao estar disponvel para ser utilizado
por qualquer outro sistema de arquivos e pode ser aumentado atravs da adio e novos
dispositivos de armazenamento ao pool;
Performance: O sistema de arquivos ZFS contm mltiplos esquemas de cache de dados o
que proporcionado um ganho muito grande em performance. O esquema de cache utilizado
o ARC (Advanced Replacement Cache) ao invs do tradicional LRU (Least Recently
Used). Basicamente, um cache LRU uma lista simples de itens no cache, ordenados pelos
itens mais utilizados (com base na frequncia de utilizao). Novos itens so sempre
inseridos no topo da lista e, quando a lista fica cheia, os itens do final da fila so descartados
de forma automtica. J um cache ARC mais complexo e completo, pois possui quarto
listas: MRU (Most Recently Used), MFU (Most Frequently Used) alm de uma lista ghost
(fantasma) para cada um. Com a utilizao das listas fantasmas de cache, o ZFS direciona
itens pouco utilizados ou ocasionalmente utilizamos, deixando as listas MRU e MFU com o
que realmente utilizado com muita frequncia. Observe que, os itens que so realmente
utilizados com frequncia so priorizados na fila MFU e os itens que so realmente usados
recentemente ficam na fila MRU. Observe que para o ZFS existe uma grande diferena no
que foi recentemente utilizado e o que utilizado com muita frequncia. Esse cache ARC
armazenado na memria ram. Existe ainda um segundo nvel de cache, armazenado em
disco chamado L2ARC. Esse nvel de cache de utilizao opcional mas pode ser muito til
quando utiliza-se o recurso de deduplicao de dados.

8
ZFS um sistema de arquivos fundamentalmente diferente porque mais do que apenas um sistema
de arquivos. Conforme mencionado anteriormente, o ZFS capaz de combinar funes/recursos de
sistemas de arquivos e gerenciamento de volumes, habilitando a possibilidade de expandir
facilmente o espao de armazenamento. Isso torna qualquer soluo ou ambiente flexvel e
escalvel sem muitos esforos/planejamentos. Combinando tambm funes tradicionalmente
separadas, o ZFS capaz de ultrapassar as limitaes anteriores que impediam o crescimento de
grupos RAID. Cada dispositivo superior em um zpool chamado de vdev que pode ser tanto um
disco quanto uma combinao RAID.
Cada ZFS File Systems (tambm chamados tecnicamente de datasets) tem acesso compartilhado ao
pool de armazenamento. Como os blocos so alocados a partir do pool de armazenamento,
naturalmente o espao livre do pool vai dimunuindo de maneira gradativa, conforme a utilizao.
Essa abordagem ou design evita a armadilha comum com amplo particionamento onde o espao
livre torna-se fragmentado em todas as parties.
Na figura a seguir podemos visualizar a estrutura do sistema de arquivos ZFS:

Como podemos observar at o momento, o ZFS um sistema de arquivos robusto e com muitos
recursos possveis de utilizao de forma nativa. Para entender melhor os recursos e terminologia
envolvida, iremos passar mais detalhes a seguir:
zpool: Um zpool ou storage pool a estrutura principal do sistema de arquivos ZFS.
Basicamente, um ZFS Pool ou zpool composto por vrios vdevs que podem ser discos
nicos ou grupos de discos na qual os dados so armazenados. Um pool pode ser utilizado
para criao de um ou vrios sistemas de arquivos (ZFS datasets) ou dispositivos de bloco
(ZFS volumes/blocks). Ambos compartilham do espao livre do ZFS pool. Cada ZFS pool

9
nico e identificado por um nome e GUID;
vdev types: Disco nico ou grupo de discos que formam um ZFS pool, utilizado para o
armazenamento dos dados. Quando vrios vdevs so utilizados o sistema de arquivos ZFS
espalha a informao entre eles para aumentar a performance;
ARC: Nvel de cache primrio utilizado pelo sistema de arquivo ZFS (em memria RAM);

L2ARC: Nvel de cache secundrio utilizado pelo sistema de arquivos ZFS (em disco);

Copy-On-Write (COW): Ao contrrio de um sistema de arquivos tradicional, quando os


dados so sobrescritos no ZFS, os novos dados so gravados em um bloco diferente em vez
de substituir os dados antigos diretamente. Somente aps o trmino dessa operao que os
dados sero atualizados no antigo local. Isso muito importante, pois na ocorrncia de uma
falha no sistema, todo contedo original do arquivo est intacto e a gravao incompleta
descartada. Isso tambm significa que o ZFS no requer um fsck aps um desligamento
inesperado e/ou incorreto do sistema;
Dataset: Trata-se de um termo genrico para ZFS File System, volume, snapshot ou clone;

File System: Geralmente, um ZFS dataset mais utilizado como um/para um sistema de
arquivos. Como qualquer outro sistema de arquivos, o ZFS File System montado sobre um
diretrio e contem toda estrutura de diretrios, permisses, flags e outros metadados;
Volume: Adicionalmente aos ZFS Datasets possveis de criao, tambm podemos criar
ZFS Volumes que so basicamente dispositivos de bloco. Vrios recursos tambm esto
disponveis para ZFS Volumes como copy-on-write, snaphots, clones and checksumming.
Geralmente, outros sistemas de arquivos so utilizados sobre os Volumes ZFS, como
sistemas de arquivos para virtualizao ou exportaes iSCSI;
Snapshot: Quando utilizado, mantm uma cpia fiel (somente leitura) de todos os blocos de
um dataset. Os novos dados so gravados em um live file system, mantendo os blocos
antigos intactos, ou seja, no snapshot temos o file system original e no live file system temos
qualquer alterao realizada nos dados aps criao do snapshot;
Clone: Basicamente um clone uma cpia passivel de escrita de um snapshot, permitindo
que seja criado um novo dataset com base em um ZFS dataset existente, por exemplo;
Checksum: Em cada bloco alocado realizado um checksum. Isso permite que o sistema de
arquivos ZFS detecte corrupes e tente se recuperar a partir de dados de redundncia
disponveis;
Compression: Cada ZFS dataset pode utilizar compresso para os dados onde por padro
esse recursos vem desativado. interessante observar que com a utilizao da compresso
uma reduo no consumo de espao ir ocorrer. Alm disso, o rendimento de leitura e escrita
(read/write) ser aumentado, pois menos blocos sero utilizados. Alguns algoritimos de

10
compresso utilizados so: LZ4, LZJB, GZIP e ZLE;
Copies: Quando definido maior que 1, o recurso de copies instrui o sistema de arquivos
ZFS manter mltiplas cpias de cada bloco no ZFS Dataset (File System) ou no ZFS
Volume. Esse recurso est diretamente ligado ao Copy-On-Write mencionado
anteriormente e trata-se da forma mais bsica de redundncia;
Deduplication: Atravs da utilizao de checksums em cada bloco possvel detectar
blocos duplicados. Para detectar blocos duplicados, uma tabela chamada DDT mantido em
memria RAM. Nessa tabela so armazenados a lista com checksum de todos blocos nicos,
a sua localizao e referncia de contagem. Dessa forma, quando um novo dado gravado o
checksum calculado e comparado com a tabela. Se for encontrada correspondncia, o
bloco existente ser utilizado;
Scrub: Ao invs do fsck utilizado para checagem de consistncia em alguns sistemas de
arquivos, o ZFS utiliza o scrub. O scrub realiza a leitura de todos os blocos armazenados no
pool e verifica cada checksum e os compara com o checksum gravado no metadado, que em
teria so confiveis. Sendo executado de forma periodica, na ocorrncia de problemas estes
so corrigidos antes mesmo que aconteam. recomendado a execuo do scrub a cada trs
menos ou menos;
Dataset Quota: O ZFS prove um recurso muito rpido e preciso de quotas de disco nos
nveis de dataset, usurio e grupo. A utilizao de quotas no est disponveis em volumes
(ZFS Volumes);
Resilver: Quando um disco falha e substitudo, o novo disco precisa ser escrito com as
informaes do disco com falha. Atravs das informaes de paridade distribudas entre os
demais discos, os dados so escritos no novo disco. Esse processo conhecido como
resilvering;
Online: Trata-se de um status para indicar o correto funcionamento do pool ou vdevs
(dispositivos de armazenamento);
Offline: Trata-se de um status para indicar a falha individual de algum dispositivo de
armazenamento utilizado em um pool;
Degraded: Trata-se de um status utilizado para indicar que temos algum dispositivo com
falha dentro de um pool, mas o mesmo ainda est em funcionamento devido as tcnicas de
redundncia utilizadas;
Faulted: Um pool ou vdev com esse status no est operacional e os dados no podem ser
acessados. Um pool ou vdev entra fica om status de faulted quando o nmero de
dispositivos que podem falhar ultrapassa o limite suportado pela tipo/nvel de redundncia
utilizada. Se por ventura algum disco puder ser conectado novamente ao pool e este voltar
para o status online os dados podero ser novamente acessados. Caso contrrio, todo

11
contedo do pool ser PERDIDO e os dados devero ser restaurados atravs de um
BACKUP.

Conforme visto anteriormente, o sistema de arquivos extremamente poderoso e por isso


utilizado no FreeNAS. O ZFS um sistema de arquivos verdadeiramente de prxima gerao que
elimina a grande maioria se no todas as deficincias encontradas em sistemas de arquivos legados
e dispositivos de hardwarde RAID. Aps usar o ZFS, voc corre o risco de no querer saber de
outro sistema de arquivos!

1.4 Overview sobre NAS (Network-Attached Storage)


Os dados so ativos cruciais para qualquer tipo de empresa nos dias de hoje. Sem acesso aos seus
dados as empresas podem no ser capazes de fornecer aos seus clientes o nvel de servio desejado.
Dessa forma, sem sombra de dvidas, os dados que uma empresa possui so seu bem mais valiozo e
deve ser preservado.
Um dispositivo NAS, acrnimo para Network Attached Storage um dispositivo destinado ao
armazenamento de dados conectado a uma rede de computadores. Dessa forma, este possibilita a
centralizao das informaes, melhora o gerenciamento de acesso as informaes por parte dos
usurios e facilita rotinas de backup e restaurao de dados. Os dispositivos NAS so flexveis e de
expanso horizontal, ou seja, medida que voc precisar de mais armazenamento, pode adicionar
ao que voc j tem.
Atualmente, pode ser implementado tanto via software (como o caso do FreeNAS) quanto via
hardware, na forma de appliances com sistema operacional embarcado. Inicialmente, um NAS era
utilizado por usurios domsticos e pequenas empresas, mas hoje qualquer nvel de empresa j
utiliza um NAS como ponto central para o armazenamento dos dados ou para armazenamento de
backups. O fato de ser utilizado inicialmente por pequenas empresas se deve aos seguintes motivos:
Equipamentos simples de operar, dispensando a presena de um profissional de TI
extremamente qualificado e dedicado para tal funo;
Menor custo (relao custo/benefcio super atraente).

A grande maioria dos sistemas NAS possui suporte a um grande nmero de protocolos para o
compartilhamento de arquivos, como NFS, SMB/CIFS e AFP (Apple Filing Protocol). Dessa forma,
um NAS pode atender diversos usurios em redes heterogneas, no se prendendo a determinados
tipos de clientes. Tambm pode conter um ou vrios discos e prover suporte a alguns nveis de
RAID para aumentar a segurana/performance no acesso aos dados.
Alm disso, um NAS pode operar como um iSCSI target, entregando blocos iSCSI para clientes

12
iSCSI. Muito til onde deseja-se utilizar um NAS em conjunto com um sistema de virtualizao.
Para exemplificar, as figuras a seguir tem por objetivo demonstrar alguns modelos de NAS, desde
modelos com poucos discos at modelos com vrios discos:

13
Existem vrias outras arquiteturas para o armazenamento de dados, como DAS (Direct-Attached
Storage) e SAN (Storage Area Network). De forma bsica, um DAS uma extenso de
armazenamento de dados para um servidor onde geralmente esse dispositivo fisicamente
conectado nesse servidor, e no via rede como um NAS. Alm disso, por estar conectado apenas em
um servidor, o espao de armazenamento no pode ser compartilhado para outro host. J uma SAN,
apesar de tambm ter a possibilidade de ser ligada em rede, prove apenas armazenamento a nvel de
bloco para os clientes (block-level) ao passo que um NAS prove armazenamento a nvel de arquivos
(file-level) apesar de alguns modelos de NAS poder tambm armazenamento a nvel de bloco.
Mais detalhes sobre uma SAN sero abordados no tpico a seguir.

1.5 Overview sobre SAN (Storage Area Network)


SAN o acrnimo para Storage Area Network. Trata-se de uma rede que proporciona acesso a
armazenamento de dados a nvel de blocos (block-level).
Com o passar do tempo e por questes de desempenho e segurana, muitas empresas criam especies
de ilhas ou segmentos de rede isolados ou protegidos onde so armazenados os equipamentos de
armazenamento de dados, geralmente storages. Geralmente, em uma SAN os dados no so
acessveis diretamente pelos usurios. Um ou vrios servidores possuem conexo direta com a SAN
e o acesso aos dados pelos clientes so realizados por intermdio destes (servidores). Isso aumenta a
segurana e performance no acesso aos dados.
Os storages so dispositivos de hardware, com sistema operacional embarcado e possuem recursos
semelhantes ao encontrados em um NAS, possuem vrios discos e suporte a esquemas complexos
de RAID para proteo dos dados e aumento de performance. Porm, originalmente trabalham
provendo armazenamento em forma de bloco. Alguns protocolos utilizados em uma SAN so:
Fibre Channel

iSCSI

ATA over Ethernet (AoE)

HyperSCSI

De forma a comparar sistemas NAS com SAN, um NAS prov armazenamento de dados a nvel de
File System (file-level), onde em contraste uma SAN prove armazenamento de dados a nvel de
bloco (block-level). Porm, existem implementaes hbridas onde podemos utilizar recursos tanto
de um NAS quanto os de um SAN para atender necessidades diversas.
Para exemplificar, as figuras a seguir tem por objetivo demonstrar alguns modelos de storage, desde
modelos com poucos discos at modelos com vrios discos:

14
15
1.6 Requerimentos de Hardware para Executar o FreeNAS
Conforme j mencionado, o FreeNAS baseado no FreeBSD. Dessa forma, os hardwares
suportados na instalao do FreeBSD 9.3 so os mesmos suportados pelo FreeNAS 9.3. Mais
detalhes podem na Hardware Compatibility List atravs do link a seguir:
https://www.freebsd.org/releases/9.3R/hardware.html

A partir da verso 9.2, o FreeNAS estava oferecendo suporte a processadores 32 e 64 bits. Porm,
na verso estvel atual 9.3 somente a verso 64 bits est disponvel. Dessa forma, um processador
multicore de 64 bits extremamente recomendado.
A quantidade de memria ram a ser utilizada pode variar dependendo de cada ambiente e dos
recursos que sero habilitados pelo FreeNAS. Porm, o mnimo recomendado so 8 GB.
Algumas consideraes importantes:
Se planejado a utilizao do recurso de deduplicao de dados, sero necessrios 5 GB a
mais por TB;
Se planejado a utilizao com Active Directory com muitos usurios, sero necessrios 2
GB a mais para utilizao do cache interno do daemom winbind;
Se planejado a utilizao do phpVirtualBox, a quantidade de memria ram deve ser
aumentada com base no nmero de maquinas virtuais que sero executadas;
Se planejado a utilizaa de volumes iSCSI, utilizar 16 GB no mnimo. Porm, para ter um
bom desempenho recomendado utilizao de 32 GB;
Se planejado a instalao do FreeNAS em uma estao diskless, recomendado
desabilitar o compartilhamento de memria para a placa de vdeo na BIOS do sistema.

No tocante a disco, o FreeNAS pode ser instalado tanto em um disco rgido (SATA, iSCSI, SSD,
entre outros) quanto em alguma mdia compactada de armazenamento, como um USB flash por
exemplo.
O valor de espao em disco mnimo para instalao do FreeNAS so 4 GB. Porm, algumas
consideraes so importantes:
O tamanho mnimo de 4 GB, onde esse tamanho capaz de armazenar o sistema
operacional e dois ambientes de boot. Porm, cada atualizao cria um novo ambiente de
boot onde, obviamente consome mais espao em disco. Dessa forma, recomendado
utilizao de 8 a 16 GB de espao em disco;
Considere gerenciar os ambientes de boot, de modo a excluir ambientes desnecessrios e/ou

16
no mais utilizados. Isso ajuda na reduo de espao em disco;
Se for utilizar uma mdia USB, considere utilizar o sistema de arquivos ZFS na mesma;

Em alguns casos quando da utilizao de mdias USB, o suporte ao USB 3.0 desabilitado
por padro e o boot no ser possvel para instalao do FreeNAS. Verifique para desabilitar
o USB 3.0 na BIOS ou verifique se seu hardware devidamente compatvel antes de
prosseguir.

Dessa forma, alm do que foi mecionado para instalao do FreeNAS, recomendado pelo menos
um disco diretamente conectado para ser utilizado para o armazenamento dos dados.
No tocante a rede, muitos drivers so suportados pelo FreeNAS, seguindo a linha de suporte no
FreeBSD. Uma interface de rede gigabit recomendada. Porm, para maior performance e
redundncia interessante utilizar duas ou mais interfaces de rede. Dessa forma podemos utilizar a
agregao das interfaces para maior desempenho e ao mesmo tempo ter redundncia pois caso
alguma interface de rede venha a falhar, outra interface pode atender todo sistema sem maiores
problemas.

1.7 Realizando o download do FreeNAS


O FreeNAS disponibilizado em formato ISO onde o download da verso estvel atual pode ser
encontrada na seguinte URL:
http://www.freenas.org/download-freenas-release.html
Observe que, alm do download da verso de instalao do FreeNAS, possvel realizar o
download de um arquivo destinado ao upgrade do FreeNAS:

17
Para realizar o download de outras verses do FreeNAS, o link a seguir pode ser utilizado:
http://iso.cdn.freenas.org/

1.8 Preparando o ambiente de Laboratrio com VirtualBox:


1.8.1 Instalao do VirtualBox em ambiente Linux

Introduo ao VirtualBox
O VirtualBox um poderoso sistema de virtualizao com suporte as arquiteturas x86 e
AMD64/Intel64 voltado tanto para uso corporativo quanto para uso domstico. Trata-se de uma
soluo de virtualizao acessvel e que seu cdigo fonte est disponvel sob licenciamento GPL
(General Public License) verso 2.
Atualmente, o VirtualBox pode ser instalado em uma grande variedade de sistemas operacionais
como Linux, Windows, Machintosh e Solaris e suporta tambm um grande nmero de sistemas
operacionais guest, ou seja, sistemas operacionais que podem ser virtualizados com o VirtualBox.
So eles: Windows (NT 4.0, Windows 2000, XP, 2003 Server, Vista, Wndows 7, Windows 8,
Windows 10, Linux (Kernels 2.4, 2.6. 3.x e 4.x), Solaris/OpenSolaris, OS/2 e sistemas BSD.

18
Atualmente, o VirtualBox est na verso 5.0 e est verso ser utilizada em nossos labortorios.
Para maiores informaes do produto, podemos consultar o site oficial:
https://www.virtualbox.org

Processo de Instalao
O mtodo escolhido para instalao do VirtualBox ser via pacote pr-compilado utilizando para
isso o repositrio oficial do VirtualBox.
Primeiramente, vamos editar o arquivo de configurao de repositrios /etc/apt/sources.list e inserir
no final do arquivo o repositrio do VirtualBox:

root@tux00:/tmp# vim /etc/apt/sources.list


# Inserir a linha seguinte no final do arquivo:
deb http://download.virtualbox.org/virtualbox/debian jessie contrib

Aps inserir o repositrio do VirtualBox, salvar o arquivo e adicionar a chave do repositrio:

# wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -

Atualizar a lista de pacotes do sistema e instalar o pacote do VirtualBox:

# aptitude update
# aptitude install virtualbox-5.0

Alguns pacotes adicionais sero necessrios (dependncias) e sero questionados quanto a sua
instalao. Basta confirmar a instalao:

root@tux00:/tmp# aptitude install virtualbox-5.0


The following NEW packages will be installed:
dkms{a} linux-headers-amd64{a} virtualbox-5.0
0 packages upgraded, 3 newly installed, 0 to remove and 3 not upgraded.
Need to get 64.1 MB/64.2 MB of archives. After unpacking 158 MB will be used.
Do you want to continue? [Y/n/?] Y

Basta aguardar alguns poucos minutos que a instalao ser concluda. Aps trmino da instalao,
basta executar o VirtualBox a partir do menu grfico do sistema operacional. Na figura a seguir
possvel visualizar a tela inicial do VirtualBox:

19
20
Aps instalao do VirtualBox, necessrio e recomendado instalao do pacote chamado
Extension Pack. Esse pacote, quando instalado, possibilita a utilizao de dispositivos USB 2.0 e
3.0 nas mquinas virtuais. Alm disso, os recursos de VirtualBox RDP e PXE boot estaro
disponveis tambm. Para instalao, devemos realizar o download do package a partir do seguinte
link:
http://download.virtualbox.org/virtualbox/5.0.14/Oracle_VM_VirtualBox_Extension_Pack-
5.0.14-105127.vbox-extpack

Aps download do arquivo, precisamos instalar o mesmo no VirtualBox. Para isso, execute o
VirtualBox, acesse o menu File Preferences Extensions E clique no boto Adds New
Package. Selecione o Extension Package para que este seja adicionado ao sistema. As figuras a
seguir iro ilustrar o processo:

21
22
Pronto! O VirtualBox est pronto para utilizao e as mquinas vituais j podem ser criadas.

1.8.2 Instalao do VirtualBox em ambiente Windows

Processo de Instalao
Para instalao do VirtualBox em ambiente Windows necessrio realizar o download do
executvel do programa, disponvel no seguinte link:
http://download.virtualbox.org/virtualbox/5.0.14/VirtualBox-5.0.14-105127-Win.exe

Aps realizar o download, basta executar o arquivo para que o processo de instalao seja iniciado.
Nas figuras a seguir ser possvel observar os passos para instalao do VirtualBox e criao de
uma VM:

23
24
25
26
27
28
Aps instalao do VirtualBox, necessrio e recomendado instalao do pacote chamado
Extension Pack. Esse pacote, quando instalado, possibilita a utilizao de dispositivos USB 2.0 e
3.0 nas mquinas virtuais. Alm disso, os recursos de VirtualBox RDP e PXE boot estaro
disponveis tambm. Aps executar o VirtualBox pela primeira vez e detectado conexo com
Internet, automticamente ser perguntando sobre a instalao do pacote:

29
30
31
Pronto! VirtualBox instalado com sucesso. Basta criar as VM's e iniciar a utilizao.

1.9 Instalao do FreeNAS


Nesse ponto, vamos realizar a instalao do FreeNAS. Aps realizar o download do FreeNAS,
vamos executar o VirtualBox e criar a mquina virtual a ser utilizada pelo FreeNAS.
As figuras a seguir iro demonstrar o processo de criao da mquina virtual (VM):

32
33
34
Aps criao da mquina virtual e configurao da mesma para iniciar o processo de boot atravs
do arquivo ISO de instalao do FreeNAS, iremos iniciar o processo de instalao.
As figuras a seguir iro demonstrar o processo de instalao do FreeNAS:

35
36
37
38
39
40
41
42
43
Vamos adicionar outra interface de rede em modo Bridge nas configuraes da maquina virtual:

44
45
46
Aps inserir as crednciais do usurio administrador, a pgina inicial da interface de gerenciamento
web ser exibida:

Nesse ponto a instalao do FreeNAS est concluda com sucesso!

1.9.1 Notas sobre Upgrading para novas verses


possvel fazer o upgrade do FreeNAS para novas verses sem a necessidade de reinstalar todo
sistema. Esse procedimento de upgrade pode ser realizado de duas maneiras:
Atravs do arquivo ISO de instalao da nova verso que desejada;

Atravs da interface grfica do FreeNAS, onde necessrio antes realizar o download do


pacote de atualizao .txz.

Muito Importante: Antes de iniciar o processo de atualizao, verifique para qual verso do
FreeNAS a sua verso atual/corrente permite ser atualizada. Isso muito importante. Verifique o
arquivo Release Notes da verso em utilizao e da nova verso pretendida para ter certeza de
que o processo desejado de upgrade possvel e pode ser realizado com segurana!
Sempre tenha backup dos dados mais importantes em outro local seguro e de fcil acesso.

A seguir, sero demonstradas ambas as maneiras de atualizao. Para efeito de testes, iremos criar
uma nova mquina virtual com uma instalao do FreeNAS na verso 9.2 e atualiza-la para a verso

47
estvel corrente, 9.3.
As figuras a seguir iro demonstrar o processo de instalao do FreeNAS 9.2 64 bits em uma nova
mquina virtual, previamente criada:

48
49
50
51
Conforme possvel observar na figura anterior, o processo de instalao foi realizado com sucesso.

52
Antes de iniciar o processo de upgrade, recomendado que:
Seja realizado um backup das configuraes do sistema atual (System General Save
Config). Armazene esse backup em um local seguro e de fcil acesso;
Se os volumes esto utilizando criptografia, certifique-se de ter uma cpia da chave de
criptografia e da passphrase. Esses dados sero necessrios para tornar os dados acessveis
aps o upgrade;
Parar todos os servios providos pelo FreeNAS, com objetivo de evitar problemas aos dados
armazenados;
Verifique uma janela para fazer o upgrade, tendo como preferncia horrios de baixa
utilizao. Se possvel, faa backup dos dados de extrema importncia em um local seguro
para evitar possveis falhas/imprevistos durante o upgrade;
Certifique-se para que o processo de upgrade no seja interrompido por nenhum motivo, ou
o acesso aos dados poder ser comprometido.

Para iniciar o processo de upgrade da verso 9.2 para verso 9.3 via arquivo ISO, basta reiniciar o
sistema e programa-lo para realizar o boot a partir do arquivo ISO de instalao do FreeNAS 9.3:

53
54
55
56
57
58
Observe que na figura a seguir esto sendo realizadas alteraes no banco de dados para deixar o
banco de dados compatvel com a nova verso do FreeNAS:

59
Pronto! Upgrade realizado com sucesso.

60
Para iniciar o processo de upgrade da verso 9.2 para verso 9.3 via interface grfica utilizando o
pacote .txz, basta acessar a interface de gerenciamento web, menu System Settings Advanced
Firmware Update.
Antes de iniciar o processo de upgrade, importante ressaltar que:
Durante o processo de upgrade, ser solicitado o caminho do arquivo de upgrade .txz, como
tambm o hash SHA256 do mesmo;
A nova imagem do sistema ser aberta (descompactada) em memria e ser escrita no
disco posteriormente;
Aps finalizar o processo de escrita em disco, o sistema ir rebootar duas vezes (a primeira
para iniciar o sistema na nova verso e a segunda para converter o banco de dados na nova
verso).

As figuras a seguir tem como objetivo demonstrar o processo de upgrade do FreeNAS via GUI:

61
62
63
Observe que um erro foi encontrado no processo de upgrade. Analisando ao mesmo tempo a CLI do

64
servidor, temos um indcio que o erro est relacionado a pouca quantidade de memria ram, uma
vez que o processo de upgrade utiliza a memria ram para descomprimir a imagem nova do
FreeNAS:

Aps aumentar a quantidade de memria ram, repetir o processo de upgrade e aguardar alguns
minutos. O sistema ser reiniciado de forma automtica quando o processo for finalizado:

65
66
Conforme demonstra a figura anterior, o processo de atualizao da base de dados foi realizado com
sucesso e o sistema ser reiniciado novamente. Aps isso, o sistema estar atualizado para a nova
verso do FreeNAS:

67
68
1.10 Configuraes iniciais providas pelo Wizard de Instalao
Aps o primeiro acesso a interface de gerenciamento web grfica (GUI) do FreeNAS, um wizard de
configurao ser automaticamente iniciado. O objetivo desse wizard agilizar as configuraes do
FreeNAS para prover compartilhamentos para acesso via rede.
Vale ressaltar que a utilizao desse wizard opcional. Isso significa que podemos clicar na opo
exit para finaliza-lo e realizar as configuraes necessarias posteriormente. Porm, iremos
demonstrar passo-a-passo das configuraes providas pelo wizard. importante ressaltar que a
mquina virtual que estamos usando para esse laboratrio possui 2 discos rgidos virtuais, sendo 1
para a instalao do FreeNAS e 1 destinado para criao do ZFS Pool. A figura a seguir demonstra a
configurao de hardware da mquina virtual:

Nota: Caso existe apenas o disco utilizado para instalao do FreeNAS, uma mensagem poder
ocorrer durante a tentativa da criao do ZFS Pool, pois o FreeNAS no detectou nenhum disco
disponvel para poder criar o ZFS Pool. Basta adicionar mais 1 disco virtual e repetir o processo. As
figuras a seguir demonstram as configuraes possveis providas pelo wizard:

69
Observe na figura acima que o total do ZFS pool criado o tamanho do disco adicional que estamos
utilizando na mquina virtual, cerca de 10 GB:

70
Observe na figura acima que estamos criando um compartilhamento NFS chamado iso_files.

71
Finalizado o wizard, basta clicar na opo Confirm para que as configuraes sejam efetivadas no
sistema. Basta aguardar alguns segundos que o FreeNAS ir aplicar as configuraes:

72
Novamente, vlido ressaltar que a execuo do wizard de configurao opcional. O mesmo pode
ser encerrado no primeiro logon na interface de gerenciamento web e as configuraes podem ser
realizadas posteriormente de forma manual.

1.11 Overview da interface de gerenciamento web


O FreeNAS uma ferramenta extremamente gerencivel. Podemos realizar o gerenciamento da
ferramenta tanto via interface grfica (GUI Graphical User Interface) ou via interface de comando
(CLI Command Line Interface). Apesar de muitos administradores terem preferncia pela
interface de linha de comando, a interface grfica do FreeNAS muito poderosa e intuitiva,
podendo ser extremamente til na grande parte das configuraes necessrias para operao do
FreeNAS.
A seguir, iremos demonstrar as principais opes da interface de gerenciamento web do FreeNAS,
dando nfase aos menus de configurao e explicando basicamente o que pode ser feito em cada
menu.

Menu System: Observe que possvel navegar nas opes do menu System tanto na lateral
esquerda quanto nas opes demonstradas na aba na pgina principal:

73
Conforme podemos observar, dentro do menu System podemos realizar vrias tarefas como:

74
Ajuste de hostname

Configurao de qual protocolo ser utilizado para gerenciamento web da ferramenta

Timezone, Linguagem e Keyboard Map

Syslog server (Servidores de Log) e servidores NTP (Network Time Protocol)

Selecionar/Gerenciar Imagens de boot do sistema

Configurao de banner MOTD (Message Of The Day)

Configurao para envio de alertas por e-mail para o admin da ferramenta

Configuraes do Kernel e scripts de inicializao do FreeNAS via Tunables

Atualizao do FreeNAS e gerenciamento de certificados digitais/CA

Backup e restore das configuraes do FreeNAS

Entre outras opes.

Menu Account: Como o prprio nome sugere, esse menu utilizado para o gerenciamento de
contas de usurio e grupos localmente no sistema, ou seja, cadastrados no prprio servidor
FreeNAS:

75
Menu Network: Esse menu responsvel pelas configuraes relacionadas a rede do servidor
FreeNAS. Nesse menu, basicamente podemos configurar:
Hostname e domnio

Ipv4 e Ipv6 gateway

Servidores DNS (Primrio, secundrio e tercirio)

IP do servidor Proxy HTTP

Hostname database para resoluo de nomes (/etc/hosts)

Configurao de interfaces (Endereo IP, Mascara de Subrede)

Agregao de interfaces de rede (Failover, FEC, LACP, Load Balance, Round Robin)

Roteamento Esttico e VLANs

Entre outras opes:

76
Menu Storage: Esse menu responsvel pelas configuraes de armazenamento do FreeNAS.
Nesse menu, podemos realizar as seguintes configuraes:
Volume Manager (Criao, Deleo de ZFS Pools);

Importaes de discos;

Importao de volumes;

Visualizao dos discos existentes no sistema;

Visualizao dos volumes existentes no sistema;

Tarefas de snapshot e replicao de dados;

Agendamento de scrubs nos ZFS Pools;

Vmware-Snaphots;

Entre outras opes:

77
78
Menu Sharing: Menu responsvel pelo gerenciamento dos compartilhamentos providos pelo
FreeNAS. Basicamente, podemos configurar:
Compartilhamentos AFP (Apple Filing Protocol)

Compartilhamentos NFS (Network File System)

Compartilhamentos WebDAV

Compartilhamentos CIFS

Compartilhamentos de bloco via iSCSI

Entre outras opes:

Menu Services: Menu responsvel pelo gerenciamento de todos os servios do FreeNAS. Nesse
menu podemos habilitar/desabilitar a execuo de cada servio e bem como alterar configuraes
relacionadas a cada servio:

79
Devido a facilidade de entendimento e navegao entre os menus, sugerimos que reserve um tempo
para acessar cada menu de configurao do FreeNAS para entender mais sobre a ferramenta.
Demonstramos os principais menus que podero ser utilizados com maior frequncia pelo
administrador, porm no se prenda somente nesses menus, estude os demais pois poder ser til!

80
Tpico 2: Administrao do FreeNAS

2.1 Administrao do Sistema


Conforme foi possvel visualizar no tpico anterior, o FreeNAS uma poderosa ferramenta que
pode atender qualquer tipo de ambiente, desde pequenos ambientes com poucos usurios at
grandes organizaes com milhares de usurios.
Nesse tpico, o objetivo geral abordar aspectos da administrao bsica do sistema, configuraes
de rede e armazenamento de dados. Ao trmino desse tpico esperado que o usurio possa ter
mais familiaridade com a ferramenta, e serve como preparao para aprender itens de configurao
mais elaborados/avanados que sero abordados nos tpicos seguintes.

2.1.1 Habilitando HTTPS para gerenciamento web, Configurando


servidor NTP, Ajustando banner MOTD, Configurando SMTP server
para envio de notificaes
Como visto anteriormente, possvel gerenciar o FreeNAS atravs da interface web e tambm via
cli. Atravs da interface web, o protocolo padro para o gerenciamento o HTTP (Hyper Text
Transfer Protocol, ou simplesmente um Protocolo para Transferncia de Pginas HTML). Trata-se
de um excelente protocolo, porm com alguns problemas de segurana em seu design, onde toda
informao que trafega sobre seus pacotes na rede esto em texto claro, ou seja, no recebem
nenhuma proteo e qualquer um que interceptar essa comunicao poder visualizar seu contedo.
Isso um grande problema quando deseja-se acessar sistemas via rede onde estes necessitam de
autenticao. Nesse cenrio, utilizando HTTP seria possvel capturar o trfego e visualizar as
crednciais do usurio sem maior esforo. Para contornar esse problema, vamos habilitar o
gerenciamento web atravs do protocolo HTTPS (Hyper Text Transfer Protocol Secure) onde toda
comunicao do cliente com servidor FreeNAS passar a ter uma proteo, ou seja, todos os dados
sero criptogrados e estaro ilegveis para usurios que no tem direito sobre os mesmos.
Para habilitar o HTTPS, precisamos criar os certificados digitais necessrios para proteger a
comunicao do cliente para com servidor FreeNAS.

1. Vamos criar uma unidade certificadora dentro do FreeNAS: Acessar o menu System aba
Cas Create Internal CA. Baste preencher as informaes conforme solicitadas. A seguir,
figura exemplificando o processo:

81
82
2. Aps criao da unidade certificadora interna (CA), vamos criar um certificado digital
interno e assin-lo com nossa CA interna do FreeNAS: Acessar o menu System aba
Certificates Create Internal Certificate. A figura a seguir exemplifica o processo:

83
3. O prximo passo habilitar o protocolo HTTPS: Acessar o menu System aba General
definir HTTPS na opo Protocol; definir o certificado interno criado no passo anterior na
opo Certificate conforme exemplifica a figura a seguir:

Aps clicar em Save, a interface web ser reiniciada para aplicar as novas configuraes. Aps
alguns segundos, a pgina via HTTPS ser automaticamente aberta:

84
Como estamos utilizando um certificado auto-assinado (no reconhecido por nenhuma entidade
certificadora externa), nosso browser ir questionar sobre a autenticidade do site. Basta ignorar e
prosseguir (mesmo ignorando esse alerta, nossa conexo est protegida):

85
O prximo passo configurar os servidores NTP. O NTP (Network Time Protocol) um protocolo
utilizado para obter as informaes de tempo (data, hora, minuto, segundo) de forma automtica a
partir de um servidor NTP. de extrema importncia manter a informao de data/hora correta
(gerao correta de logs, funcionamento correto de alguns protocolos, etc). Como exemplo, iremos
utilizar no FreeNAS os servidores NTP do projeto NTP.br. A lista dos servidores pode ser
visualizada a seguir:

dan@tux00:/tmp$ nslookup pool.ntp.br

Non-authoritative answer:
Name: pool.ntp.br
Address: 200.160.0.8
Name: pool.ntp.br
Address: 200.192.232.8
Name: pool.ntp.br
Address: 200.160.7.193
Name: pool.ntp.br
Address: 200.189.40.8
Name: pool.ntp.br
Address: 200.186.125.195
Name: pool.ntp.br
Address: 200.20.186.76
Name: pool.ntp.br
Address: 200.160.7.186

86
1. Aps acessar a interface de gerenciamento web do FreeNAS: Acesse o menu System aba
General opo NTP Servers. Alguns servidores NTP do projeto do FreeBSD estaro
disponveis. Basta remov-los e inserir os servidores do projeto NTP.br. A figura a seguir
exemplifica o processo:

A prxima configurao ajustar o banner MOTD (Message Of The Day). Trata-se de uma boa
prtica de segurana orientar os usurios (ou curiosos) no momento em que estes esto realizando o
acesso administrativo do FreeNAS que o servidor monitorado e o acesso somente para pessoas
autorizadas.
1. Para configurar uma mensagem, acessar a interface de gerenciamento web do FreeNAS,
menu System aba Advanced Opo MOTD banner Na caixa de texto ao lado,
escrever a mensagem desejada que ser exibida aos usurios na tentativa de conexo com o
servidor FreeNAS. A figura a seguir exemplifica o processo de configurao:

87
Para auxiliar no processo de administrao do FreeNAS, possvel configurar o envio de
notificaes por e-mail para o endereo de e-mail do administrador do sistema. Isso til para agir
preventivamente quando possvel ou para corrrigir algum problema antes mesmo que os usurios
tomem cincia.
1. Para configurar o envio de e-mails de alertas: Acessar a interface de gerenciamento web
menu System aba Email e preencher com as configuraes pertinentes de seu ambiente.
Vale ressaltar que o usurio root deve ter configurado o e-mail em suas propriedades. As
figuras a seguir tem por objetivo exemplificar o processo de configurao:

88
Aps inserir as configuraes, possvel testar o envio de um e-mail de teste conforme mostra a
figura acima. No esquea de clicar em Save para salvar as configuraes.

Conforme demonstra a figura acima, o e-mail de teste foi enviado com sucesso.

89
2.2 Administrao de Rede
Aps finalizada as configuraes inicias de sistema, iremos realizar configuraes relacionadas a
rede como endereamento IP das interfaces de rede, hostname do servidor, domnio, servidores
DNS e rotas estticas necessrias.
Nesse ponto, interessante ressaltar que a mquina virtual do FreeNAS utilizada no VirtualBox
possui 02 interfaces de rede sendo 01 em modo NAT e 01 em modo Bridge. Basicamente, a
interface em modo NAT recebe um endereamento IP automtico provido pelo VirtualBox e as
conexes da mquina virtual para outras redes (como Internet por exemplo) so mascaradas com o
IP da interface fsica do host que executa o VirtualBox. J a interface em modo Bridge capaz de
fazer parte da mesma rede na qual o host fsico faz parte, recebendo ou podendo ser configurada
com um endereo IP da mesma subrede IP:

90
Aps instalao do FreeNAS, ele automaticamente detecta as interfaces de rede e tenta obter
endereamento IP via DHCP por padro. Porm, como trata-se de um servidor, extremamente
recomendado alocar um endereo esttico com objetivo de evitar indisponibilidades nos servios
providos devido a possvel alterao do IP a cada reboot do servidor. Para configurar as interfaces
de rede do servidor, acesse a interface de gerenciamento web e siga os passos seguintes:
1. Acesse o menu Network aba Interfaces Add Interface. A primeira interface que
devemos adicionar a em0. Essa interface est configurada como NAT no VirtualBox e
deve ser configurada para obter endereamento IP via DHCP. Note que, aps configurar as
interfaces e clicar em OK uma possvel interrupo na rede ir ocorrer para que as
configuraes sejam devidamente aplicadas:

91
92
Repita o mesmo procedimento para interface de rede em1. Essa interface est como Bridge no
VirtualBox e iremos configura-la com endereamento IP esttico pois atravs dessa interface que
os clientes iro acessar os servios providos pelo servidor FreeNAS. Antes de prosseguir, observe
que no estamos configurando Default Gateway onde aps aplicar as configuraes as
comunicaes para outras subredes IP sero interrompidas:

93
Para configurar o default gateway do FreeNAS: Acesse o menu Network aba Global
Configuration Insira o IP do gateway na opo Ipv4 Default Gateway Save:

Nota Importante: Em muitos casos, como boa prtica de segurana, no utilizamos o gateway
default para o FreeNAS como forma de dificultar o acesso de um atacante remoto para com o
servidor FreeNAS. Dessa forma, inserimos rotas estticas para os hosts em outras redes na qual o
FreeNAS necessita se comunicar. Porm interessante ressaltar que os hosts presentes na mesma
subrede IP podem ser comunicar normalmente com o FreeNAS. O ideal, alm do mencionado at
ento, proteger o FreeNAS atrs de um firewall bem configurado ou deix-lo em um segmento de
rede isolado dos demais hosts da rede e controlar o acesso ao mesmo.

94
2.2.1 Ajustando hostname, nome de domnio, Servidores DNS,
Roteamento Esttico
1. Para ajustar o hostname do servidor FreeNAS acesse a interface de gerenciamento web
menu Network aba Global Configurations ajustar a opo Hostname para o valor
desejado;
2. Para ajustar o nome de domnio do servidor FreeNAS: Na mesma tela de configurao do
passo anterior, ajuste a opo Domain para o valor desejado. A figura a seguir exemplifica o
processo de configurao:

3. Para configurar os servidores DNS que o FreeNAS ir utilizar para resoluo de nomes: Na
mesma tela de configurao descrita no passo 1, inserir o endereo IP do servidor DNS na
opo Nameserver 1. Observe que possvel inserir at 3 servidores DNS:

95
4. Para configurar rotas estticas (supondo que no estamos utilizando o default gateway
explicitamente configurado), devemos acessar a interface de gerenciamento web menu
Network aba Static Routes Add Static Route. Iremos adicionar rotas estticas para os
servidores DNS e servidores NTP configurados no sistema:

Para validar o funcionamento das rotas estticas inseridas no sistema, vamos remover o default
gateway configurado no sistema (menu Network aba Global Configurations Remover o valor
da opo Ipv4 Default Gateway Salvar), abrir a console na opo 9 (SHELL) e fazer alguns
testes de conectividade com hosts na Internet e analisar o resultado. As figuras a seguir
exemplificam todo processo:

96
97
2.3 Administrao do Storage
Nessa etapa, iremos abordar o armazenamento dos dados providos pelo FreeNAS. Como vimos
anteriormente, o sistema de arquivos ZFS muito flexvel e traz consigo o conceito de
gerenciamento de volumes. Nos tpicos a seguir iremos abordar com maiores detalhes o processo
de utilizao do armazenamento provido pelo FreeNAS.

2.3.1 Criao de volumes (ZFS Volume em ZFS Pools)


Primeiramente devemos acessar o volume manager do FreeNAS e realizar a criao de um pool de
volumes, conhecido tcnicamente como ZFS Pool. Dentro desse pool, podemos inserir os discos
que pretendemos utilizar para o armazenamento dos dados.
1. Para criao do ZFS Pool, acessar a interface de gerenciamento web do FreeNAS menu
Storage aba Volumes Opo Volume Manager. Basta inserir o nome do volume e
adicionar os discos existentes na opo Available disks. Como temos somente 1 disco de
10 GB destina para o armazenamento dos dados no conseguimos utilizar nenhuma tcnica
de RAID provida pelo FreeNAS. Porm, caso possua mais de 1 disco basta adicion-lo e
escolher a tcnica de RAID que mais se encaixe com as suas necessidades. A figura a seguir
exemplifica o processo:

98
Aps alguns segundos, o ZFS Pool ser criado:

A partir da CLI:

99
O sistema de arquivo ZFS utiliza o conceito de Dataset como sendo um Filesystem
hierarquicamente logo abaixo do Volume conforme destaca a figura a seguir:

Na primeira linha podemos visualizar o Volume chamado zfs_pool_01 e na segunda linha


podemos visualizar o Dataset chamado zfs_pool_01. Todos os demais Datasets e Zvols criados
dentro desse ZFS Pool/Volume sero armazenados hierarquicamente abaixo do Dataset
zfs_pool_01.

2.3.2 Criao de Datasets (ZFS Dataset)


Continuando a explicao do tpico anterior, ao criarmos os Datasets, estes sero armazenados
hierarquicamente abaixo do Dataset principal conforme podemos visualizar na figura a seguir:

Criamos os Datasets engenharia e marketing, conforme demonstra as figuras anteriores.


Observe que para criar ambos Datasets foi necessrio selecionar o Dataset zfs_pool_01 e somente
depois clicar na opo Create Dataset na parte inferior da tela. Ambos Datasets nesse caso sero
utilizados para prover compartilhamentos para os clientes, seja via NFS, CIFS, AFP ou WebDAV.

2.3.3 Criao de Zvol (Volume ZFS)


Aqui iremos demonstrar a criao de outra unidade de armazenamento, chamado de volume e/ou
bloco. Basta acessar a interface de gerenciamento web menu Storage aba Volumes
selecionar o Dataset zfs_pool_01 clicar na opo Create zvol na parte inferior da tela. Cada

100
zvol deve possuir um nome nico dentro de cada ZFS Pool/Volume. A figura a seguir exemplifica o
processo de criao do zvol:

Observe que o zvol criado de nome vm1 no possui ponto de montagem pois no se trata de um

101
sistema de arquivos, trata-se de um dispositivo de bloco que poder ser compartilhado, por
exemplo, via iSCSI.

2.4 Backup das Configuraes


Como boa prtica para administrao de qualquer sistema baseado em configurao,
extremamente importante realizar backups com periodicidade regular das configuraes do sistema.
Alm de realizar o backup, necessrio armazena-lo em local seguro, restrito e ao mesmo tempo de
fcil acesso para o administrador do sistema.
Uma regra geral que podemos utilizar backup semanal das configuraes, por padro.
Adicionalmente, antes de fazer qualquer tipo de alterao nas configuraes, um novo backup deve
ser realizado na qual teremos um ponto de recuperao antes da alterao XPTO realizada.
Para salvar as configuraes correntes do FreeNAS:
1. Acessar a interface de gerenciamento web menu System aba General clicar na
opo Save Config. Observe que ser realizado download de um arquivo .db. As figuras a
seguir exemplificam o processo:

102
2.5 Restore das Configuraes
O processo de restore (restaurao) das configuraes relativamente simples, mas necessrio
reboot do servidor FreeNAS para concluir o processo. Para realizar a restaurao das configuraes
a partir de um backup vlido (arquivo .db):
1. Acesse a interface de gerenciamento web do FreeNAS menu System aba General
clicar na opo Upload Config. As figuras a seguir tem por objetivo exemplificar o
processo de restore:

103
Observe que, aps o primeiro reboot o FreeNAS realiza um backup no arquivo de banco de dados
das configuraes e cria um novo banco de dados com base nas configuraes presentes no arquivo
de restaurao. Aps concluir o processo de criao e atualizao do novo banco de dados, o
servidor ser reiniciado e estar pronto para utilizao:

104
Tpico 3: Trabalhando com Replicao e
Compartilhamento de Volumes

3.1 Trabalhando com Snapshots (Criando, gerenciando e


clonando)
Nesse tpico iremos abordar os recursos mais avanados providos pelo sistema de arquivos ZFS.
Conforme mencionado no tpico 1, um snapshot basicamente uma cpia fiel de todos os blocos de
um dataset. Porm, essa cpia somente leitura. Os novos dados so gravados em uma espcie de
live file system, mantendo os blocos antigos intactos, ou seja, no snapshot temos o file system
original e no live file system temos qualquer alterao realizada nos dados aps criao do
snapshot. Trata-se de um recurso muito interessante para proteo adicional dos dados, muito
utilizado principalmente em ambientes de virtualizao. Podemos, entretanto, criar um clone
writable (com suporte a escrita) desse snapshot. Dessa forma, este poder sofrer aes de escrita
normalmente como se fosse um novo sistema de arquivos (FileSystem).
Para essa atividade, vamos excluir todos os ZFS Pools/Volumes previamente criados no FreeNAS.
Vamos tambm adicionar 6 discos de 8 GB cada e destin-los ao armazenamento dos dados. Vamos
criar um novo ZFS Pool utilizando tcnicas de RAID-Z. Para destruir o ZFS Pool existente e todos
os Datasets:
1. Acessar a interface de gerenciamento web menu Storage aba Volumes Selecionar
cada Dataset e clicar na opo Destroy Dataset localizada na parte inferior da pgina:

105
2. Aps excluso dos Datasets, realizar a destruio do Pool:

Aps excluso do Pool, no teremos nenhum outro Pool criado:

3. Vamos adicionar os discos na mquina virtual do FreeNAS:

106
Aps inserir os novos discos, basta iniciar o FreeNAS. Vamos criar um novo ZFS Pool/Volume
utilizando os 6 discos de 8 GB utilizando o conceito de RAID-Z.
Nesse exemplo, iremos criar 02 VDEV's (Virtual Devices) onde cada um ir possuir 3 discos e
utilizar a tcnica RAIDZ (RAIDZ1 na qual exige no mnimo trs discos). Para criao do ZFS
Pool:
1. Acesse a interface de gerenciamento web do FreeNAS menu Storage aba Volumes
clicar na opo Volume Manager Inserir um nome nico para o nome do volume/pool.
Note que na opo Available disks possvel visualizar todos os discos disponveis.
Vamos utilizar apenas 3 discos utilizando o Volume layout como RAIDZ1 para o primeiro
VDEV e clicar em Add Extra Device para adicionar outro VDEV com os outros 3 discos:

107
Enquanto o FreeNAS realiza a operao de criao do Pool, podemos visualizar mensagens
automticas na console referentes ao processo de criao do Pool:

108
Aps alguns segundos, o ZFS Pool ser criado com sucesso. A figura a seguir confirma a criao do
Pool:

Podemos tambm verificar o status do ZFS Pool/Volume:

O snapshot criado sobre um ZFS Dataset. Dessa forma, vamos criar o Dataset chamado dados e
criar um snapshot deste Dataset:
1. Para criar o Dataset chamado dados, acessar a interface de gerenciamento web do
FreeNAS menu Storage aba Volumes Selecioanar o Dataset pool01 criado
juntamente com o ZFS Pool Clicar na opo Create Dataset localizada na parte
inferior:

109
Aps criao do Dataset dados:

Para criao do snapshot deste dataset:


1. Selecionar o Dataset dados Clicar na opo Create Snapshot na parte inferior:

110
Para visualizar o snapshot criado:
1. Acessar a aba Snapshots dentro do menu Storage:

111
Observe que no campo Available Actions temos algumas aes que podem ser executadas no
snapshot criado:

So elas:
Clone Snapshot

Destroy Snapshot

Rollback Snapshot

Clone Snapshot: Realiza um clone (uma cpia fiel) do snapshot, porm tornando o mesmo
writable, ou seja, possvel de realizar operaes de escrita. Observe que o clone ir criar um novo
FileSystem no mesmo ZFS Pool/Volume:

Aps criao do clone, observe que o novo Dataset j passa a ser exibido. Perceba que a sua
nomenclatura o nome do snapshot + -clone:

112
Destroy Snapshot: Essa opo (como o prprio nome sugere) realiza a destruio do snapshot.
Porm, se existir algum clone a partir desse snapshot (objeto filho) este no poder ser excludo
pois possui uma referncia para o Dataset originado no processo de clonagem. Primeiramente
necessrio excluir o Dataset do clone para depois excluir o snapshot:

Rollback Snapshot: Essa opo permite reverter o Dataset para o estado do snapshot. Essa opo
deve ser utilizada com cuidado pois, todas as alteraes realizadas depois da execuo do snapshot
sero automaticamente perdidas pois o Dataset ir retornar no estado do momento que foi realizado
o snapshot.
Algumas consideraes antes de utilizar essa opo de Rollback:
Faa um clone do snapshot que deseja reverter (rollback);

Compartilhe esse clone (via CIFS, NFS, etc) para que os usuaios possam ter acesso aos
seus dados;
Aps os usurios terem realizado backup dos seus dados desejados, destrua o clone;

Se for realmente recomendado voltar o Dataset para o ponto do snapshot, faa agora o
Rollback.

A figura a seguir exemplifica o processo de Rollback do Snapshot:

113
O processo de criao de snapshot pode ser agendado para que seja realizado automaticamente pelo
sistema. A configurao das tarefas de snapshots periodicos est disponvel no menu Storage aba
Periodic Snapshot Tasks.

Nota Importante: Novamente ressaltamos que um snapshot uma cpia somente leitura de um
volume ou dataset em um determinado ponto do tempo e essa cpia no consome espao adicional.
Aps efetuar um snapshot em um dataset, por exemplo, todas as alteraes realizadas no dataset
sero armazenadas em uma espcie de sistema de arquivos live (live dataset) e ai sim passam a
consumir espao adicional de armazenamento (consumo esse devido a insero/alterao de
informaes no dataset). Para ficar mais claro esse processo, vamos fazer um laboratrio prtico:
1. Primeiramente, vamos criar um novo ZFS Dataset e inserir dados no mesmo. Para criao
do ZFS Dataset, acesse a interface de gerenciamento web do FreeNAS menu Storage
aba Volume selecione o Dataset principal existente (no nosso exemplo pool01) e
clique em Create Dataset. Vamos cham-lo de teste01. Aps inserir o nome do Dataset,
clique em Add Dataset:

114
2.

2. Aps criao do ZFS Dataset chamado de teste01, vamos criar dados aleatrios apenas
para aumentar um pouco o espao utilizado dentro do Dataset. Acesse a CLI do FreeNAS
(seja via Console ou via SSH) para criarmos alguns dados aleatrios. Primeiramente:
Listando os ZFS Pools/Volumes existentes:

[root@freenas_lab] /mnt/pool01# zpool list


NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH
ALTROOT
freenas-boot 7.94G 528M 7.42G - - 6% 1.00x ONLINE -
pool01 35.8G 179M 35.6G - 0% 0% 1.00x ONLINE /mnt

115
Listando os ZFS Datasets existentes dentro do Pool teste01:

[root@freenas_lab] /mnt/pool01# zfs list -r pool01


NAME USED AVAIL REFER MOUNTPOINT
pool01 118M 23.0G 128K /mnt/pool01
pool01/.system 1.00M 23.0G 139K legacy
pool01/.system/configs-2fa742ae30da433ca735af52bcb65edb 128K 23.0G 128K legacy
pool01/.system/cores 128K 23.0G 128K legacy
pool01/.system/rrd-2fa742ae30da433ca735af52bcb65edb 128K 23.0G 128K legacy
pool01/.system/samba4 202K 23.0G 202K legacy
pool01/.system/syslog-2fa742ae30da433ca735af52bcb65edb 304K 23.0G 304K legacy
pool01/dados 115M 23.0G 115M /mnt/pool01/dados
pool01/teste01 128K 23.0G 128K /mnt/pool01/teste01

Observe que o ponto de montagem para o Dataset teste01 /mnt/pool01/teste01. Dessa forma,
vamos acessar o diretrio do ponto de montagem e criar alguns dados aleatrios com auxlio do
dd:

[root@freenas_lab] /mnt/pool01/teste01# pwd


/mnt/pool01/teste01
[root@freenas_lab] /mnt/pool01/teste01# dd if=/dev/random of=randomfile100 bs=100m count=1
&& dd if=/dev/random of=randomfile200 bs=200m count=1
1+0 records in
1+0 records out
104857600 bytes transferred in 1.722484 secs (60875801 bytes/sec)
1+0 records in
1+0 records out
209715200 bytes transferred in 7.127437 secs (29423649 bytes/sec)

[root@freenas_lab] /mnt/pool01/teste01# ls -lah


total 307328
drwxr-xr-x 2 root wheel 4B Feb 12 11:50 ./
drwxr-xr-x 4 root wheel 4B Feb 12 11:40 ../
-rw-r--r-- 1 root wheel 100M Feb 12 11:50 randomfile100
-rw-r--r-- 1 root wheel 200M Feb 12 11:50 randomfile200

Criamos 2 arquivos:
randomfile100 de 100 MB

randomfile200 de 200 MB

Observe atentamente que antes da criao dos arquivos, o espao utilizado do Dataset teste01 era
praticamente nada:

NAME USED AVAIL REFER MOUNTPOINT


pool01/teste01 128K 23.0G 128K /mnt/pool01/teste01

116
Aps criao dos arquivos:

NAME USED AVAIL REFER MOUNTPOINT


pool01/teste01 300M 22.7G 300M /mnt/pool01/teste01

Os campo USED indica a quantidade de espao que est sendo consumido por este Dataset
(teste01) e por todos os Datasets descentes deste (caso existam). O campo REFER indica a
quantidade de dados acessveis atravs deste Dataset. Quando um snapshot ou clone criado,
inicialmente este faz referncia a mesma quantidade de espao do campo REFER.

3. Agora, vamos criar um snapshot do ZFS Dataset teste01. Acese a interface de


gerenciamento web do FreeNAS menu Storage aba Volumes Selecione o Dataset
teste01 e clique na opo Create Snapshot:

Note que a criao do snapshot ocorre de forma imediata. Dentro do menu Storage, acesse a aba
Snapshots para poder visualizar o snapshot criado. Observe que o campo Reffer faz referncia ao
tamanho do Dataset:

117
Obtendo a mesma informao da figura anterior via CLI:

[root@freenas_lab] /mnt/pool01/teste01# zfs list -t snapshot -r pool01/teste01


NAME USED AVAIL REFER MOUNTPOINT
pool01/teste01@manual-20160212 0 - 300M -

4. Agora, vamos realizar algumas alteraes no Dataset teste01 inserindo novos dados e
alterando os dados existentes tambm:

[root@freenas_lab] /mnt/pool01/teste01# ls -lah


total 307328
drwxr-xr-x 2 root wheel 4B Feb 12 11:50 ./
drwxr-xr-x 4 root wheel 4B Feb 12 11:40 ../
-rw-r--r-- 1 root wheel 100M Feb 12 11:50 randomfile100
-rw-r--r-- 1 root wheel 200M Feb 12 11:50 randomfile200

[root@freenas_lab] /mnt/pool01/teste01# dd if=/dev/random of=randomfile100 bs=100m count=1


oseek=1 && dd if=/dev/random of=randomfile200 bs=200m count=1 oseek=1
1+0 records in
1+0 records out
104857600 bytes transferred in 2.462588 secs (42580244 bytes/sec)
1+0 records in
1+0 records out
209715200 bytes transferred in 15.661074 secs (13390857 bytes/sec)

[root@freenas_lab] /mnt/pool01/teste01# ls -lah


total 591957
drwxr-xr-x 2 root wheel 4B Feb 12 11:50 ./
drwxr-xr-x 4 root wheel 4B Feb 12 11:40 ../
-rw-r--r-- 1 root wheel 200M Feb 12 13:00 randomfile100
-rw-r--r-- 1 root wheel 400M Feb 12 13:00 randomfile200

[root@freenas_lab] /mnt/pool01/teste01# dd if=/dev/random of=randomfile300 bs=300m count=1


1+0 records in
1+0 records out
314572800 bytes transferred in 11.781564 secs (26700428 bytes/sec)
[root@freenas_lab] /mnt/pool01/teste01# ls -lah
total 776865
drwxr-xr-x 2 root wheel 5B Feb 12 13:01 ./
drwxr-xr-x 4 root wheel 4B Feb 12 11:40 ../
-rw-r--r-- 1 root wheel 200M Feb 12 13:00 randomfile100
-rw-r--r-- 1 root wheel 400M Feb 12 13:00 randomfile200
-rw-r--r-- 1 root wheel 300M Feb 12 13:02 randomfile300

118
Observe que o arquivo randomfile100 cresceu 100 MB e o arquivo randomfile200 cresceu 200
MB. Tambm, criamos um novo arquivo chamado randomfile300 com 300 MB. Todo esses dados
adicionais no foram escritos no snapshot, uma vez que este somente leitura. Dessa forma, o
snapshot mantem a verso orginal de ambos arquivos que sofreram alterao e, obviamente, no
contem o novo arquivo criado (randomfile300).

5. Vamos agora visualizar as estatticas do snapshot criado anteriormente:

Via CLI:

[root@freenas_lab] /mnt/pool01/teste01# zfs list -t snapshot -r pool01/teste01


NAME USED AVAIL REFER MOUNTPOINT
pool01/teste01@manual-20160212 128K - 300M -

Conforme podemos obervar, agora o snapshot est consumindo 128K, informao essa disponvel
na columa USED. Note que o nico espao consumido foram dos blocos alterados pela operao
de alterao do arquivo e pelos novos blocos adicionais devido a insero do novo arquivo.
Lembre-se que os novos dados/alteraes aps a criao do snapshot so inseridos no live system
(live dataset).
Agora, faa um novo snapshot do Dataset teste01. Vamos analisar as estatsticas:

Via CLI:

[root@freenas_lab] /mnt/pool01/teste01# zfs list -t snapshot -r pool01/teste01


NAME USED AVAIL REFER MOUNTPOINT
pool01/teste01@manual-20160212 128K - 300M -
pool01/teste01@manual-20160212_02 0 - 900M -

119
Dessa forma, podemos tirar algumas concluses:
A coluna REFER do primeiro snapshot faz referncia aos dados acessveis no momento da
criao do primeiro snapshot;
O primeiro snapshot utiliza 128 K. Isso pode ser visualizado na coluna USED;

A coluna REFER do segundo snapshot possui o tamanho do live system (live dataset),
ou seja, este engloba todos os dados sendo basicamente a somatria do valor do primeiro
snapshot, o arquivo inserido (randomfile300) e a alterao dos arquivos randomfile100 e
randomfile200;
Observe que o segundo snapshot no est utilizando nenhum espao. Isso pode ser
visualizado consultando a coluna USED.

6. Aps a criao do segundo snapshot, vamos realizar novamente alterao/insero de novos


dados no Dataset teste01 para verificar o comportamento do snapshot:

[root@freenas_lab] /mnt/pool01/teste01# zfs list -t snapshot -r pool01/teste01


NAME USED AVAIL REFER MOUNTPOINT
pool01/teste01@manual-20160212 128K - 300M -
pool01/teste01@manual-20160212_02 0 - 900M -

[root@freenas_lab] /mnt/pool01/teste01# dd if=/dev/random of=randomfile100 bs=100m count=1


oseek=1 && dd if=/dev/random of=randomfile200 bs=200m count=1 oseek=1
1+0 records in
1+0 records out
104857600 bytes transferred in 1.792552 secs (58496267 bytes/sec)
1+0 records in
1+0 records out
209715200 bytes transferred in 8.594130 secs (24402144 bytes/sec)

[root@freenas_lab] /mnt/pool01/teste01# dd if=/dev/random of=randomfile400 bs=400m count=1


1+0 records in
1+0 records out
419430400 bytes transferred in 44.632745 secs (9397370 bytes/sec)

[root@freenas_lab] /mnt/pool01/teste01# zfs list -t snapshot -r pool01/teste01


NAME USED AVAIL REFER MOUNTPOINT
pool01/teste01@manual-20160212 128K - 300M -
pool01/teste01@manual-20160212_02 300M - 900M -

120
Conforme podemos visualizar, o espao utilizado (USED) do segundo snapshot foi aumentada,
onde est sendo incluso o espao utilizado pela alterao dos arquivos randomfile100 e
randomfile200 e pela insero do arquivo randomfile400 e tambm devido a sobrecarga em
alguns metadados.
Nota: possvel tambm criar snapshots recursivos onde so incluidos todos os datasets
imediatamente abaixo do dataset pai. Para isso, basta marcar a opo Recursive snapshot:

Para exemplificar, criamos 02 datasets abaixo do dataset teste01 e criamos um snapshot


RECURSIVO no dataset teste01. Na figura a seguir podemos visualizar o resultado:

121
Via CLI:

[root@freenas_lab] /mnt/pool01/teste01# zfs list -t snapshot -r pool01/teste01


NAME USED AVAIL REFER MPOINT
pool01/teste01@manual-20160212 128K - 300M -
pool01/teste01@manual-20160212_02 300M - 900M -
pool01/teste01@manual-20160212_recursive_03 0 - 1.27G -
pool01/teste01/teste01_dados@manual-20160212_recursive_03 0 - 128K -
pool01/teste01/teste01_vms@manual-20160212_recursive_03 0 - 128K -

Para finalizar, vamos entender na prtica a opo de rollback de um snapshot. Vamos excluir o
arquivo randomfile400 existente dentro do Dataset teste01:

[root@freenas_lab] /mnt/pool01/teste01# ls -la


total 1331684
drwxr-xr-x 4 root wheel 8 Feb 12 14:04 ./
drwxr-xr-x 4 root wheel 4 Feb 12 11:40 ../
-rw-r--r-- 1 root wheel 209715200 Feb 12 13:49 randomfile100
-rw-r--r-- 1 root wheel 419430400 Feb 12 13:50 randomfile200
-rw-r--r-- 1 root wheel 314572800 Feb 12 13:02 randomfile300
-rw-r--r-- 1 root wheel 419430400 Feb 12 13:50 randomfile400
drwxr-xr-x 2 root wheel 2 Feb 12 14:03 teste01_dados/
drwxr-xr-x 2 root wheel 2 Feb 12 14:04 teste01_vms/

[root@freenas_lab] /mnt/pool01/teste01# rm -Rf randomfile400

[root@freenas_lab] /mnt/pool01/teste01# ls -lah


total 921940
drwxr-xr-x 4 root wheel 7B Feb 12 14:17 ./
drwxr-xr-x 4 root wheel 4B Feb 12 11:40 ../
-rw-r--r-- 1 root wheel 200M Feb 12 13:49 randomfile100
-rw-r--r-- 1 root wheel 400M Feb 12 13:50 randomfile200
-rw-r--r-- 1 root wheel 300M Feb 12 13:02 randomfile300
drwxr-xr-x 2 root wheel 2B Feb 12 14:03 teste01_dados/
drwxr-xr-x 2 root wheel 2B Feb 12 14:04 teste01_vms/

Aps excluso do arquivo, vamos realizar o rollback do ltimo snapshot criado do dataset
teste01:

122
Como no momento que realizamos o ltimo snapshot o arquivo randomfile400 j existia, aps
realizarmos o rollback do snapshot o mesmo ir retornar para o dataset teste01:

[root@freenas_lab] /mnt/pool01/teste01# ls -lah


total 1331684
drwxr-xr-x 4 root wheel 8B Feb 12 14:04 ./
drwxr-xr-x 4 root wheel 4B Feb 12 11:40 ../
-rw-r--r-- 1 root wheel 200M Feb 12 13:49 randomfile100
-rw-r--r-- 1 root wheel 400M Feb 12 13:50 randomfile200
-rw-r--r-- 1 root wheel 300M Feb 12 13:02 randomfile300
-rw-r--r-- 1 root wheel 400M Feb 12 13:50 randomfile400
drwxr-xr-x 2 root wheel 2B Feb 12 14:03 teste01_dados/
drwxr-xr-x 2 root wheel 2B Feb 12 14:04 teste01_vms/

123
3.2 Replicao de dados localmente e remotamente
A replicao dos dados uma funcionalidade muito importante e deve fazer parte do planejamento
e das rotinas do administrador. Basicamente, a replicao dos dados permite fazer cpias dos
snapshots tanto localmente quanto para sistemas remotos. extremamente recomendado que a
conexo utilizada para o processo de replicao remoto seja devidamente criptografa para proteo
dos dados e garantir a confidencialidade dos mesmos.
Alguns conceitos e terminologias so envolvidas nesse processo e devem ser entendidas. O sistema
que realiza a gerao dos snapshots chamado de PUSH e o sistema destinado a receber os
snapshots chamado de PULL.
Existem alguns pr-requisitos que devem ser atendidos para que o recurso de replicao possa ser
utilizado. So eles:
Pelo menos um ZFS Pool deve existir tanto no sistema PUSH como no sistema PULL;

Necessrio existir Snapshots Peridicos agendados para que as Tarefas de Replicao


possam ser utilizadas;
O processo de replicao dos snapshots ser via protocolo SSH (Secure Shell) utilizando
chaves para o processo de autenticao.

Vamos iniciar demonstrando o processo de replicao remotamente. Para isso, iremos utilizar outro
servidor FreeNAS para receber os snapshots. Nosso cenrio ser descrito a seguir:

Servidor/Hostname Rede Gerncia Rede Usurios/Servios Rede Replicao ZFS Pool/Volume ZFS Dataset
freenas_producao 10.0.2.15/24 192.168.255.252/28 172.31.0.1/30 dados vms
freenas_replicacao 10.0.2.16/24 192.168.255.253/28 172.31.0.2/30 dados-replica -

Nota: Vamos destinar apenas 1 disco de 8 GB para cada servidor para o armazenamento dos dados.
A configurao de rede para ambas as mquinas virtuais dever possuir 3 interfaces de rede, sendo a
rede de gerncia em modo NAT, rede usurios/servios em modo Bridge e a rede de replicao em
modo Inernal Network. Nesse modo, devemos inserir o nome da rede. Definimos esse nome sendo
replicacao conforme demonstra a figura a seguir:

124
Aps preparao de ambas mquinas virtuais devemos realizar a instalao do FreeNAS em ambas,
realizando as configuraes gerais e configuraes de rede aprendidas at este ponto.

125
Vamos agora criar o ZFS Pool no servidor FreeNAS de produo, conforme tabela apresentada
anteriormente:
1. Acessar a interface de gerenciamento web do servidor FreeNAS de produo
(freenas_producao) menu Storage aba Volumes Clicar na opo Volume Manager e
definir o nome do Volume como dados adicionando o nico disco existente:

2. Aps criao do ZFS Pool/Volume, selecionar o dataset dados (automaticamente criado


pelo Volume Manager) e criar o ZFS Dataset chamado vms:

126
3. Devemos agora criar o ZFS Pool/Volume no servidor que ir armazenar a replicao dos
snapshots. Para isso, acessar a interface de gerenciamento web do servidor de replicao
(freenas_replicacao) menu Storage aba Volumes Clicar em Volume Manager e
definir o nome do Volume como dados-replica e adicionar o nico disco disponvel:

127
4. Voltando para o servidor de produo, vamos acess-lo via console ou via SSH e criar dados
dentro do dataset vms:

[root@freenas_producao] ~# zfs list dados/vms


NAME USED AVAIL REFER MOUNTPOINT
dados/vms 96K 5.78G 96K /mnt/dados/vms
[root@freenas_producao] ~# cd /mnt/dados/vms

[root@freenas_producao] /mnt/dados/vms# dd if=/dev/random of=randomfile100 bs=100m


count=1
1+0 records in
1+0 records out
104857600 bytes transferred in 2.022578 secs (51843538 bytes/sec)

128
[root@freenas_producao] /mnt/dados/vms# dd if=/dev/random of=randomfile200 bs=100m
count=1
1+0 records in
1+0 records out
104857600 bytes transferred in 2.133535 secs (49147356 bytes/sec)
[root@freenas_producao] /mnt/dados/vms# dd if=/dev/random of=randomfile300 bs=300m
count=1
1+0 records in
1+0 records out
314572800 bytes transferred in 8.986648 secs (35004464 bytes/sec)
[root@freenas_producao] /mnt/dados/vms# dd if=/dev/random of=randomfile400 bs=400m
count=1
1+0 records in
1+0 records out
419430400 bytes transferred in 13.316837 secs (31496248 bytes/sec)

[root@freenas_producao] /mnt/dados/vms# zfs list dados/vms


NAME USED AVAIL REFER MOUNTPOINT
dados/vms 878M 4.92G 878M /mnt/dados/vms

5. Aps criarmos dados dentro do Dataset vms, vamos criar uma tarefa de snapshot
peridico para o Dataset vms. Essa tarefa de snapshot automtico pode ser criada tanto
para o ZFS Pool/Volume (que em nosso exemplo chamado de dados) quanto para os
ZFS Datasets (que em nosso exemplo o nico ZFS Dataset existente chamado de vms).
Vamos criar a tarefa de snapshot para o ZFS Dataset vms:

129
Explicando a tarefa de snapshot criada:
Na coluna Volume/Dataset possvel verificar que a tarefa de snapshot ir realizar snapshot
do ZFS Dataset dados/vms;
Trata-se de uma tarefa de snapshot que no considera os ZFS Datasets filhos, ou seja, no
est habilitado o snapshot recursivo;
A rotina ser executada a cada 15 minutos com nicio as 08:00 e trmino as 20:00 de
segunda a sexta-feira;
Os snapshots sero mantidos no sistema por 2 semanas. Importante ressaltar que esse tempo
de vida vlido somente para o sistema FreeNAS que gerou o snapshot. Se os snapshots
forem replicados para um sistema remoto, esse tempo de expirao no vale para o sistema
FreeNAS remoto.

Aps aguardar os primeiros 15 minutos aps a configurao da tarefa peridica de snapshot, j


podemos verificar que o primeiro snapshot foi realizado com sucesso:

6. O prximo passo configurar itens relacionados a conexo por onde ir ocorrer a


replicao. Conforme mencionamos anteriormente, a replicao dos snapshots ir ocorrer
sobre o protocolo SSH utilizando chave para autenticao (ao invs de usurio e senha).
Dessa forma, precisamos copiar a chave pblica de replicao do servidor de produo para
o servidor de replica. Para isso, acesse a interface de gerenciamento web do servidor de
produo (freenas_producao) menu Storage aba Replication Tasks Clique na opo
View Public Key. Devemos copiar o valor dessa chave pblica pois iremos utilizada no
servidor de replica:

130
7. No servidor de replica, acessar a interface de gerenciamento web menu Account aba
Users Selecionar o usurio root e clicar em Modify User. No campo SSH Public
Key devemos inserir a chave pblica de replicao do servidor de produo. Estamos
fazendo com usuaio root pois trata-se do usurio padro utilizado para o processo de
replicao:

Ainda no servidor replica (freenas_replicacao), devemos ativar o servio de SSH (caso este ainda
no esteja habilitado). Para ativ-lo basta acessar o menu Services passar o SSH para o status de
ON:

131
8. O ltimo passo criar a tarefa de replicao no servidor de produo. Para isso acesse o
menu Storage aba Replication Tasks clicar na opo Add Replication:

132
Explicando a configurao da tarefa de replicao:
A replicao ir ocorrer sobre o ZFS Dataset na qual est sendo gerado os snapshots (que em
nosso exemplo o dados/vms);
No servidor remoto (servidor de replicao) ser utilizado o ZFS Dataset chamado dados-
replica/vms-replica. Observe que estamos utilizando o nome completo do ZFS Dataset;
Observe que estamos utilizando os valores padro para Begin e End. Isso significa que a
replicao ir ocorrer quando um novo snapshot for criado;
O endereo IP do servidor de replicao 172.31.0.2. Observe que estamos utilizando a
interface em2 para o processo de replicao;
Observe que, aps inserir o endereo IP do host remoto e clicar na opo SSH Key Scan, a
chave do host remoto ser automaticamente preenchida (se isso no ocorrer, verifique se o
endereo do host remoto est correto e se o servio SSH est em execuo no host remoto).

Aps criao da tarefa de replicao, podemos visualizar a mesma dentro do menu Storage aba
Replication Tasks:

Na parte superior direita da interface de gerenciamento web do servidor de produo, podemos


visualizar a existente de alguns alertas (Alert):

Clicando sobre a opo Alert podemos visualizar problema na tentativa de replicao:

133
Analisando o erro, o processo de replicao no foi realizado com sucesso devido a no-existncia
do ZFS Dataset dados-replica/vms-replica no servidor de replicao. Dessa forma, vamos criar o
ZFS Dataset vms-replica no servidor de replicao e aguardar a prxima gerao de snapshot no
servidor de produo para verificar se teremos sucesso na replicao:

Para validar se o processo de replicao foi realizado com sucesso:


Quando a tarefa de replicao configurada no servidor de produo (PUSH), ele tenta
imediatamente fazer a replicao para o servidor de replicao (PULL). Se tudo ocorrer
bem, podemos visualizar os snapshots replicados no servidor de replicao no menu Storage
aba Snapshots:

134
Conforme podemos visualizar na figura anterior, o snapshot replicado considerado como um ZFS
Dataset no servidor de replicao e est disponvel para utilizao. Podemos acessar via SSH o
servidor de replicao (freenas_replicao) e confirmar isso. Para que o acesso SSH funcione,
necessrio permitir que o login do usurio root possa ser realizado atravs de senha. Isso pode ser
ajustado nas configuraes do servio SSH (menu Services SSH):

[root@freenas_replicacao] ~# zpool list


NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH
ALTROOT
dados-replica 5.97G 1.37G 4.60G - 14% 22% 1.00x ONLINE /mnt
freenas-boot 7.94G 523M 7.43G - - 6% 1.00x ONLINE -

[root@freenas_replicacao] ~# zfs list dados-replica


NAME USED AVAIL REFER MOUNTPOINT
dados-replica 1.37G 4.41G 96K /mnt/dados-replica
[root@freenas_replicacao] ~# zfs list -r dados-replica
NAME USED AVAIL REFER MOUNTPOINT
dados-replica 1.37G 4.41G 96K /mnt/dados-replica
dados-replica/.system 792K 4.41G 104K legacy
dados-replica/.system/configs-2fa742ae30da433ca735af52bcb65edb 96K 4.41G 96K legacy
dados-replica/.system/cores 96K 4.41G 96K legacy
dados-replica/.system/rrd-2fa742ae30da433ca735af52bcb65edb 96K 4.41G 96K legacy
dados-replica/.system/samba4 152K 4.41G 152K legacy
dados-replica/.system/syslog-2fa742ae30da433ca735af52bcb65edb 248K 4.41G 248K legacy
dados-replica/vms-replica 1.37G 4.41G 96K /mnt/dados-replica/vms-
replica
dados-replica/vms-replica/vms 1.37G 4.41G 1.37G /mnt/dados-
replica/vms-replica/vms

Conforme podemos visualizar no quadro anterior, o dataset replicado (vms) possui um ponto de
montagem no sistema (/mnt/dados-replica/vms-replica/vms) e pode ser acessado sem maiores
problemas:

[root@freenas_replicacao] /mnt/dados-replica/vms-replica/vms# pwd


/mnt/dados-replica/vms-replica/vms

135
[root@freenas_replicacao] /mnt/dados-replica/vms-replica/vms# ls -lah
total 1435052
drwxr-xr-x 2 root wheel 7B Feb 12 21:11 ./
drwxr-xr-x 3 root wheel 3B Feb 12 19:11 ../
-rw-r--r-- 1 root wheel 100M Feb 12 18:19 randomfile100
-rw-r--r-- 1 root wheel 100M Feb 12 18:19 randomfile200
-rw-r--r-- 1 root wheel 300M Feb 12 18:20 randomfile300
-rw-r--r-- 1 root wheel 400M Feb 12 18:20 randomfile400
-rw-r--r-- 1 root wheel 500M Feb 12 21:11 randomfile500

Nota: importante ressaltar que os snapshots no servidor de replicao (freenas_replicacao) no


so excludos automaticamente. Para resolver esse problema, podemos criar um shell script e
agend-lo como uma tarefa do cron para fazer esse processo de excluso de form automtica. Isso
evita que todo armazenamento do servidor de replicao seja comprometido devido a grande
quantidade de snapshots armazenados.
Outra opo (provida pela prpria tarefa de replicao), a Delete slate snapshots:

Essa opo quando marcada, faz com que o servidor de replicao (chamado de PULL) realize a
excluso automtica dos snapshots armazenados localmente que no mais estejam tambm no
servidor de produo (chamado de PUSH).
O processo de replicao local pode ser menos eficiente que o processo de replicao remoto, pois
se algum problema ocorrer com o servidor local, todos os dados podero ser comprometidos
(inclusive os dados replicados). Porm, a somatria de ambos os mtodos de replicao (local e
remoto) pode ser mais interessente. Para a replicao local, podemos adicionar discos extras no
servidor e criar um novo ZFS Pool/Volume, chamando-o de replica-local. Em teria, o processo
seria similar a uma replicao remota, porm nesse caso os dados seriam replicados localmente
(para outro ZFS Pool).
Vamos adicionar mais 2 discos de 8 GB cada em nosso servidor de produo (freenas_producao) e

136
realizar a criao de um novo ZFS Pool/Volume:

1. Aps insero dos novos discos no servidor de produo, ligue o servidor e acesse a
interface de gerenciamento web do FreeNAS menu Storage aba Volumes Inicie o
Volume Manager:

137
Observe que o nome do ZFS Pool/Volume foi definido como replica-local utilizando os 2 discos
em Mirror, ou seja, realizando espelhamento dos dados entre os discos (similar a um RAID-1):

2. O prximo passo criar o ZFS Dataset pai na qual ser utilizado para armazenar os
datasets replicados que sero como filho:

3. Antes de criar a tarefa de replicao, vamos copiar a chave pblica de replicao e inserir a
mesma como sendo a chave pblica SSH do usurio root:

138
4. Agora vamos criar a tarefa de replicao:

139
Aps criar a tarefa de replicao, caso j tenhamos rotinas peridicas de snapshot em execuo, a
replicao dos dados j ir iniciar de forma automtica conforme podemos visualizar na figura a
seguir. Observe a segunda tarefa de replicao (a mesma est com status de running, ou seja, em
execuo):

Dependendo da quantidade de snapshots existentes, a primeira replicao pode demorar um pouco.


Aps trmino da mesma, o status da tarefa de replicao passa para Up to Date e depois para
Succeeded conforme demonstram as figuras a seguir:

140
3.3 Trabalhando com compartilhamentos NFS
Basicamente, um compartilhamento nada mais do que uma forma de compartilhar recursos do
servidor FreeNAS para os usurios de uma rede. Atualmente, existem diversos protocolos capazes
de realizar essa funo. O Network File System, ou NFS, um protocolo para prover
compartilhamentos amplamente utilizados em sistemas *unix. Apesar disso, ele tambm pode ser
utilizado em outros sistenas operacionais, como por exemplo Windows e MAC OS X. Ele funciona
como um sistema de arquivos distribudo que permite que um usurio realize a montagem de um
diretrio remoto em sua estao local.
O NFS um protocolo cliente/servidor que utiliza chamadas RPC (Remote Procedure Call) para
auxiliar seu funcionamento. Trata-se de um protocolo aberto (RFC) onde cada fabricante pode
implement-lo em seus sistemas. Alm do NFS temos outros protocolos que permitem o
compartilhamento de dados para rede, como o CIFS. Iremos abordar o CIFS em mais detalhes em
tpicos seguintes.
Antes de criar um compartilhamento NFS devemos criar um ZFS Dataset para ser utilizado para o
compartilhamento:
1. Acessar a interface de gerenciamento web do servidor FreeNAS menu Storage aba
Volumes Selecionar o ZFS Dataset principal (em nosso exemplo chamado de
dados) Clicar na opo Create Dataset Definir o nome do Dataset como share-nfs:

141
2. Aps criar o ZFS Datset share-nfs, vamos criar o compartilhamento NFS. Acessar o menu
Sharing aba UNIX (NFS) Clicar na opo Add Unix (NFS) Share:

142
Conforme demonstra a figura acima, devemos inserir a path (caminho) do ponto de montagem do
ZFS Dataset que ser utilizado pelo compartilhamento NFS. Aps clicar em OK, se o servio NFS
ainda no estiver habilitado no sistema, uma notificao ser exibida solicitando a ativao do
servio. Basta clicar em Yes para que o servio NFS seja ativado:

143
possvel refinar as configuraes globais do servio NFS. Podemos, por exemplo, fazer com
que o servio NFS esteja disponvel apenas na interface em1 (interface na qual em nosso exemplo
destinada para conexes dos clientes aos servios oferecidos pelo servidor FreeNAS). Na opo
Bind IP Addres basta marcar o checkbox com IP referente a interface em1 e clicar em OK:

3. Aps criar o compartilhamento NFS chamado share-nfs podemos tambm refinar as


configuraes do compartilhamento, como por exemplo, inserir um comentrio que poder
ser visualizado para clientes NFS via GUI (Graphical User Interface), forar que o
compartilhamento ser utilizado por clientes somente com a permisso de leitura (til, por
exemplo, em casos onde deseja-se criar uma biblioteca de arquivos .ISO de instalao de
sistemas operacionais ou biblioteca de programas). Basta selecionar o compartilhamento
NFS e clicar na opo Edit localizada na parte inferior da tela, ajustar as opes e clicar
em OK:

144
Observe tambm que na edio do compartilhamento podemos acessar configuraes avanadas
atravs da opo Advanced Mode. Nas configuraes avanadas do compartilhamento NFS
podemos por exemplo, limitar quais subredes ou Ips/hostname podero acessar o compartilhamento
NFS, podemos desabilitar alertas para o syslog quando na ocorrncia de problemas com o
compartilhamento, especificar qual usurio e/ou grupo dever ser utilizado para montagem entre
outras opes. Vamos definir que somente a subrede IP 192.168.255.240/28 poder acessar esse
compartilhamento e definir como nobody as opes Mapall User e Mapall Group para que
no seja necessrio especificar nenhum usurio/grupo na montagem do compartilhamento por parte
do cliente:

145
4. Finalizada configurao, basta montar o compartilhamento NFS a partir de algum host
cliente. Vamos realizar a montagem do compartilhamento em um sistema Linux, utilizando a
distribuio Debian Jessie (8.2) x64:

root@tux00:/mnt# showmount -e 192.168.255.252


Export list for 192.168.255.252:
/mnt/dados/share-nfs 192.168.255.240

root@tux00:/mnt# mount -t nfs 192.168.255.252:/mnt/dados/share-nfs /mnt/nfs/

root@tux00:/mnt# df -Th | grep nfs


192.168.255.252:/mnt/dados/share-nfs nfs 4.5G 128K 4.5G 1% /mnt/nfs

Explicando o comando de montagem:


mount -t nfs: Especfica o tipo de compartilhamento;

192.168.255.252: Endereo IP do servidor FreeNAS na qual est provendo o


compartilhamento;
/mnt/dados/share-nfs: Nome do compartilhamento NFS provido pelo FreeNAS;

/mnt/nfs: Diretrio no sistema cliente que ser utilizado como ponto de montagem para o
compartilhamento NFS.

Para verificar se o compartilhamento realmente read-only, vamos tentar criar um arquivo texto
dentro do compartilhamento:

root@tux00:/mnt/nfs# touch teste.txt


touch: cannot touch teste.txt: Read-only file system

Continuando os testes, edite o compartilhamento NFS e desmarque a opo Read Only. Dessa
forma, habilitamos a permisso de escrita no compartilhamento NFS. Vamos repetir a tentativa de
criar um arquivo texto dentro do compartilhamento:

root@tux00:/mnt/nfs# touch teste.txt


touch: cannot touch teste.txt: Permission denied

Nota Importante: Como demonstrado, mesmo removendo a configurao de Read Only do


compartilhamento NFS no conseguimos escrever dentro do compartlhamento. O motivo disso
que cada volume ou dataset considerado um sistema de arquivos (filesystem) e permisses so
definidas para controlar os acessos. Dessa forma, o NFS no consegue passar os limites impostos
pelo sistema de arquivos. Em outras palavras, no basta ter a permisso do NFS para poder escrever

146
no compartilhamento. Tambm necessrio que as permisses do volume e/ou dataset permitam
essa operao. Vamos ajustar as permisses do dataset destinado ao compartilhamento NFS e repetir
os testes:

Observe que adicionamos a permisso de escrita para Other. Vamos repetir o teste de criao do
arquivo:

root@tux00:/mnt/nfs# pwd
/mnt/nfs
root@tux00:/mnt/nfs# touch teste.txt
root@tux00:/mnt/nfs#
root@tux00:/mnt/nfs# ls -la
total 5
drwxr-xrwx 2 root root 3 Feb 13 2016 .
drwxr-xr-x 3 root root 4096 Feb 4 20:20 ..
-rw-r--r-- 1 nobody root 0 Feb 13 2016 teste.txt

Observe que agora tivemos sucesso na criao do arquivo.

147
Para desmontar o compartilhamento no sistema cliente (caso necessrio):

root@tux00:/mnt# umount /mnt/nfs/

3.4 Trabalhando com WebDAV Shares


A partir da verso 9.3 do FreeNAS o mtodo de compartilhamento WebDAV passa a estar
disponvel para utilizao. Trata-se de um recurso que permite que usurios autenticados possam
acessar o contudo de um volume, dataset ou diretrio a partir do navegador web.
Nesse caso, no necessariamente precisamos criar um novo ZFS Dataset para prover esse
compartilhamento. Podemos, por exemplo, utilizar algum existente e prover o acesso via WebDAV.

1. Para exemplificar a configurao, vamos criar um novo ZFS Dataset com nome de share-
webdav e criar alguns arquivos dentro desse dataset:

2. Aps criao do ZFS Dataset share-webdav, vamos criar o compartilhamento WebDAV.


Acessar o menu Sharing aba WebDAV Clicar em Add WebDAV Share. A figura a
seguir exemplifica o processo:

148
Caso o servio WebDAV no esteja em execuo, o prprio assistente de criao do
compartilhamento ir solicitar permisso para ativ-lo. Basta clicar em Yes para que o servio
WebDAV seja habilitado:

149
possvel refinar as configuraes globais do servio WebDAV como por exemplo, definir qual
protocolo (HTTP/HTTPS) e porta sero utlizados, mtodo de autenticao HTTP e senha:

3. Finalizada a configurao, basta acessar a URL a seguir atravs do navegador web de um


host cliente:
http://192.168.255.252:8080/sharewebdav/

150
Vamos inserir alguns diretrios e arquivos dentro do dataset share-webdav e verificar como ser a
visualizao por parte dos clientes:

Nota Importante: At o momento (nesse release do FreeNAS), somente o usurio webdav


disponvel para acesso a esse tipo de compartilhamento.

151
3.5 Trabalhando com compartilhamentos CIFS/SMB
O FreeNAS utiliza o SAMBA para realizar o compartilhamento de volumes. Para isso, utilizado o
protocolo CIFS (Common Internet File System), na qual foi originado do protocolo SMB (Server
Message Block). Historicamente, surgiu o NetBIOS que implementava a capacidade de programas
se comunicarem com hardware de rede, tecnologia essa desenvolvida pela IBM em parceria com a
Sytec. Trabalhando em cima desse projeto, a Microsoft conseguiu fazer com que solicitaes de I/O
(leitura e escrita) de discos pudessem ser redirecionadas para o NetBIOS, tornando assim os dados
presentes no disco acessveis via rede. Nasceu ento o SMB. Com o passar do tempo, o SMB
recebeu muitas melhorias e passou a trabalhar melhor com a pilha TCP/IP sendo ento renomeado
para CIFS.
Sistemas Windows possuem suporte ao CIFS nativamente, porm possvel ser utilizado em
sistemas clientes como Linux, BSD e MAC OS X instalando pacote cliente do SAMBA.
Basicamente com SAMBA, podemos compartilhar arquivos e impressoras em uma rede
heterognea para atender uma grande variedade de clientes.
Como boa prtica, podemos criar um ZFS Dataset e utiliz-lo para criar o compartilhamento CIFS.
1. Para criar o ZFS Dataset, acesse a interface de gerenciamento web do FreeNAS menu
Storage aba Volumes Selecionar o ZFS Dataset padro (nesse caso o dados)
Clicar na opo Create Dataset. Vamos definir o nome do Dataset como share-cifs:

152
2. Aps criao do ZFS Dataset, vamos criar o compartilhamento CIFS. Acesse o menu
Sharing aba Windows (CIFS) Clicar na opo Add Windows (CIFS) Share. Basta
definir o caminho (path) do ponto de montagem do Dataset criado para esse
compartilhamento. Vamos definir o nome do compartilhamento como share-cifs:

Caso o servios CIFS ainda no esteja em execuo, o prprio assistente ir solicitar permisso para
realizar a ativao do servios. Basta clicar em Yes para que o servio seja ativado:

153
Podemos refinar as configuraes globais do servio CIFS. Basicamente, o menu para ajuste das
configuraes do protocolo CIFS similar ao contedo encontrado no arquivo de configurao
smb.conf de um servidor SAMBA. Dentre as vrias opes, vamos nesse primeiro momento apenas
definir que o acesso aos compartilhamentos CIFS somente podero ser realizados atravs da
interface de rede em1 (interface na qual utilizada para acesso dos clientes ao servios providos
pelo servidor FreeNAS):

154
Podemos tambm refinar as configuraes do prprio compartilhamento, editando o mesmo e
acessando o Advanced Mode. Podemos, entre outras configuraes, definir quais subredes IP
sero permitidas para acessar o compartilhamento, definir um comentrio que ser exibido para os
clientes, definir se o compartilhamento estar visvel para o ambiente de rede do cliente, se o acesso
guest permitido, se o compartilhamento somente leitura, crednciais e permisses necessrias
entre outras configuraes:

155
Para efeito de teste, marque a opo Allow Guest Access. Finalizada as configuraes, basta
clicar em OK.

3. Para testar o acesso ao compartilhamento CIFS, vamos primeiramente utilizar um cliente


Windows. Realize logon no sistema Windows Iniciar Executar e digite:
\\192.168.255.252\share-cifs

156
Como podemos visualizar na figura anterior, o acesso ao compartilhamento share-cifs foi
realizado com sucesso pelo cliente Windows. No servidor FreeNAS, podemos visualizar que esse
acesso foi realizado sem autenticao, mapeado atravs da conta padro do sistema nobody:

4. Vamos agora deletar o compartilhamento share-cifs e tambm o ZFS Dataset share-cifs.


Vamos criar outro compartilhamento chamado share-authcifs. O objetivo e que os clientes
acessem esse compartilhamento especificando um usurio e senha. Vamos criar esse
compartilhamento utilizando o Wizard localizado no menu da interface de gerenciamento
web:

157
Conforme demonstra a figura anterior, basta definir o nome do compartilhamento na opo Share
Name, marcar a opo Windows (CIFS) e clicar na opo Ownership para tratar as questes
de permissionamento e credncias de acesso ao compartilhamento. Podemos definir qual usurio e
grupo de usurio ser dono do compartilhamento e tambm quais sero as permisses destes no
compartilhamento. Aps definir essas opes, o prprio assistente de configurao se encarrega de
criar tambm o ZFS Dataset com as permisses de file system adequadas:

Aps definir o usurio e grupo dono do compartilhamento, definimos as permisses e clicamos em


Return:

158
Basta clicar em Add para adicionar o compartilhamento e clicar em Next para seguir em frente
no Wizard de configurao. No final do Wizard, ser necessrio confirmar para que as
configuraes realizadas entrem em funcionamento:

Aps alguns segundos o compartilhamento CIFS share-authcifs ser criado e estar disponvel
para utilizao:

A partir da estao cliente Windows, teste de acesso ao compartilhamento:


\\192.168.255.252\share-authcifs

159
160
O acesso autenticado foi realizado com sucesso por parte do cliente Windows. Observe que o
usurio utilizado user1 onde na qual faz parte do grupo de usurio ti. O usurio user1 pode
escrever tranquilamente no compartilhamento, uma vez que suas permisses permitem essa
operao:

161
Para montar o compartilhamento CIFS a partir de clientes Linux:

root@tux00:/mnt# mount.cifs //192.168.255.252/share-authcifs -o


username=user1,password=Teste@123 /mnt/cifs/

root@tux00:/mnt/cifs# ls -la
total 5
drwxrwxr-x 4 1001 1001 0 Feb 13 13:52 .
drwxr-xr-x 4 root root 4096 Feb 13 13:59 ..
drwxrwxr-x 2 1001 1001 0 Feb 13 13:51 diretorio1
drwxrwxr-x 2 1001 1001 0 Feb 13 13:52 diretorio2
-rwxrwxr-x 1 1001 1001 0 Feb 13 13:52 file1.txt
-rwxrwxr-x 1 1001 1001 0 Feb 13 13:52 file2.txt

Para demonstrar o compartilhamento CIFS no cliente Linux:

root@tux00:/mnt# umount /mnt/cifs/

Nota Importante: O recurso de Shadow Copy (VSS Volume Shadow Copy Services) pode ser
utilizado nos compartilhamentos CIFS providos pelo FreeNAS. Para isso, algumas consideraes
so vlidas antes da criao do compartilhamento:
Quando a tarefa de snapshots peridicos configurada para o volume/dataset utilizado pelo
compartilhamento CIFS, o recurso de Shadow Copy automaticamente habilitado para o
compartilhamento em questo;
As estaes Windows devem estar com as atualizaes mais recentes providas pelo
Windows Update. Isso garante que o servio do lado do cliente esteja OK para utilizar o
recurso de Shadow Copy;
O recurso de Shadow Copy no FreeNAS no suporta diretrios, ou seja, deve ser
configurado sobre um volume/dataset;
Shadow Copy no pode atravessar sistemas de arquivos. Isso significa que deve ser criado
compartilhamentos separados para os diretrios filhos e criar tarefas de snapshots
peridicos para os mesmos para assim ter o recurso de Shadow Copy nesses diretrios;
Shadow Copy no trabalha com snapshot manual (somente trabalha com tarefas de snapshot
automticas/peridicas);
Antes de ativar o compartilhamento CIFS com suporte a Shadow Copy, certifique-se de que
pelo menos 1 snapshot automtico j exista;
Usurios no podem deletar shadow copies a partir de suas estaes Windows. Isso deve ser
feito pelo administrador do FreeNAS atravs da interface de gerenciamento web;

162
A nica maneira de desabilitar o recurso de Shadow Copy para um volume/dataset
desabilitar as tarefas de snapshot peridico e deletar os snapshots associados com o
compartilhamento CIFS.

1. Para efeito de testes, vamos criar uma tarefa de snapshot peridico para o ZFS Dataset
dados/share-authcifs utilizado pelo compartilhamento CIFS:

163
Observe que a periodicidade de execuo dos snapshots a cada 15 minutos, tendo nicio a partir
das 09:00 e trmino a partir das 18:00 em todos os dias da semana.

2. Aps criar o agendamento, vamos reiniciar o servio CIFS, mudando a chave seletora para
OFF e depois para ON:

3. Editar o compartilhamento CIFS share-authcifs, acessar o modo de configurao


avanado e na opo Periodic Snapshot Task selecionar a rotina de snapshot peridico
criada anteriormente:

4. No sistema cliente Windows, acessar novamente o compartilhamento


\\192.168.255.252\share-authcifs. Clicar com boto direito sobre algum arquivo/diretrio
Propriedades aba Verses Anteriores ir exibir os snapshots j realizados:

164
3.6 Trabalhando com iSCSI targets
ISCSI um protocolo padro para consolidao/transporte de dados em redes de armazenamento de
dados. Basicamente, o protocolo iSCSI permite que o servidor FreeNAS funcione como dispositivo
SAN (Storage Area Network) sobre uma rede ethernet existente. Redes SAN tradicionalmente
utilizam redes/infraestrutura Fibre Channel onde existem Fibre Channel HBA's (interface de rede
HBA), Fibre Channel Switches e cabeamento especfico. Porm, o protocolo iSCSI pode ser
utilizado sobre uma estrutura de rede ethernet j existente, onde o custo/benefcio passa ser atraente
para esse tipo de implementao (uma vez que no ser necessrio construir uma rede SAN do
zero).
Antes de partirmos para as configuraes, importante entender algumas terminologias
relacionadas ao protocolo iSCSI:
CHAP: Trata-se de um mtodo de autenticao baseado em chave secreta compartilhada
(senha) e autenticao de 3 vias utilizado para determinar se determinado sistema tem
autorizao para acessar algum contedo provido por um storage. O cliente iSCSI (Initiator)
inicia o processo de autenticao e de tempos em tempos esse processo verificado para
confirmar se a sesso no foi sequestrada;
Mutual CHAP: Trata-se do processo CHAP onde as duas pontas da comunicao se
autenticam, ou seja, cliente e servidor se autenticam de maneira bidirecional;

165
Initiator: Trata-se do dispositivo iSCSI cliente responsvel por iniciar a comunicao com o
storage. necessrio ter um software no cliente para prover esse acesso;
Target: Trata-se do dispositivo iSCSI storage, ou seja, dispositivo que contm os devices
blocks que sero utilizados/mapeados pelos clientes iSCSI (Initiators). Cada iSCSI Target
possui um nome nico conhecido como IQN (iSCSI Qualified Name);
Internet Storage Name Service (iSNS): Protocolo utilizado para automatizar o processo de
descoberta por iSCSI Devices em uma rede TCP/IP;
Extent: Trata-se do device block ou arquivo a ser compartilhado que virtualizado pelo
iSCSI Target antes de ser entregue ou mapeado pelo iSCSI Initiator;
Portal: Indica quais endereos IP's e portas lgicas sero utilizados para receber as
conexes dos clientes;
LUN: Acrnimo para Logical Unit Number. Representa logicamente o device iSCSI. Um
cliente (Initiator) negocia a conexo com o Target iSCSI e estabele a conexo com a LUN
(disco ou partio lgica iSCSI). Aps estabelecer a conexo, o Initiator ento cria um File
System na LUN e passa a utiliz-la normalmente no sistema local.

Em resumo, para configurar o iSCSI no sistema FreeNAS devemos:


Revisar os paramtros globais do Target;

Criar pelo menos um Portal (Indicar quais Ips e Portas sero utilizados pelos clientes iSCSI
para conexo);
Determinar quais hosts podero se conectar utilizando iSCSI (criao de um Initiator);

Decidir quanto a utilizao ou no de autenticao para acesso as LUN's. Se for utilizar


autenticao, definir se ser utilizado CHAP ou Mutual CHAP e criar a Regra de
Autorizao (Authorized Access);
Criar um Target;

Criar um zvol (ZFS Volume). Esse zvol ser compartilhamento para os clientes iSCSI;

Criar um Extent e associar o um Target. Basicamente, vamos criar um Extent com base no
zvol a ser criado mencionado no passo anterior;
Iniciar o servio iSCSI no menu de Servios.

166
Vamos iniciar as configuraes de iSCSI no sistema FreeNAS:
1. Primeiramente, Target Global Configuration. Acessar a interface de gerenciamento web
menu Sharing aba Block (iSCSI) Opo Target Global Configuration. Nesse menu
temos configuraes que sero impostas a todos compartilhamentos iSCSI existentes no
sistema:

2. O prximo passo configurar Portals. Um Portal utilizado para especificar o endereo IP e


porta que sero utilizados para as conexes iSCSI. Acessar o menu Sharing aba Block
(iSCSI) Portals Add Portal:

167
3. Agora devemos configurar os Initiators, ou seja, quais sistemas clientes podero acessar os
recursos iSCSI providos pelo iSCSI Target (Servidor FreeNAS). Acesse o menu Sharing
aba Block (iSCSI) Initiators Add Initiator:

4. Se for utilizado autenticao via CHAP ou Mutual CHAP para acesso aos
compartilhamentos, necessrio criar uma regra de autorizao. Acessar o menu Sharing
aba Block (iSCSI) Authorized Access Add Authorized Access:

168
5. O prximo passo criar o Target. Basicamente, o iSCSI Target ir criar um device block que
ser acessvel para mltiplos iSCSI Initiators:

Nota Importante: Um iSCSI Target cria um device block podendo ser acessado por diversos iSCSI
Initiators. Muitos sistemas de clusterizao e virtualizao requerem a utilizao de device blocks,
onde mltiplos clientes se conectam em uma mesma LUN com acesso read/write. Porm, quando
estamos utilizando sistemas de arquivos tradicionais como EXT, XFS, FAT, NTFS, UFS ou at
mesmo ZFS, somente um iSCSI Initiator deve acessar a LUN com acesso read/write. Se vrios
Initiators tiverem acesso read/write podemos corromper os dados presentes na LUN. Se necessita
que vrios clientes acessem o mesmo volume, utilize para isso compartilhamentos CIFS e/ou NFS,
ou configure um volume individual para cada cliente iSCSI.

6. Vamos agora criar um zvol que ser compartilhado via iSCSI para os clientes. Acessar o
menu Storage aba Volumes Selecionar o ZFS Dataset padro (dados) Clicar na
opo Create zvol:

169
Aps criar o zvol, vamos criar o iSCSI Extent que ir utilizar esse zvol. Acessar o menu Sharing
aba Block (iSCSI) Extents Add Extents:

170
7. A ltima etapa de configurao associar o extent criado com o target. Acesse o menu
Sharing aba Block (iSCSI) Associated Targets Add Target/Extent:

8. O servio iSCSI pode no estar em execuo no sistema FreeNAS. Para verificar, acesse o
menu Services iSCSI;

9. Basta agora fazer testes a partir de hosts clientes. A partir de uma estao com Windows,
vamos utilizar o software Microsoft iSCSI Initiator para fazer o mapeamento da LUN
provida pelo FreeNAS. O primeiro passo executar a aplicao e inserir o IP do servidor
FreeNAS para realizar a descoberta do iSCSI Target:

171
Observe que o processo de descoberta foi concludo com sucesso, porm o taget est com status de
inativo:

172
Para se conectar ao target, basta seleciona-lo e clicar em Log On... Ser necessrio acessar as
configuraes avanadas para ativar autenticao via CHAP e especificar o usurio e senha para
conexo:

173
Aps especificar usurio e senha, observe que tivemos sucesso na conexo com target (status
Connected):

Podemos acessar o gerenciador de discos do Windows e verificar que trata-se do volume iSCSI
presente no FreeNAS. Basta inicializar o disco, criar um sistema de arquivos e atribuir uma unidade
lgica (letra) para poder utiliz-lo normalmente no sistema:

174
Tpico 4: Administrao Avanada do FreeNAS
Esse tpico tem como principal objetivo demonstrar algumas configuraes adicinais que podemos
considerar como avanadas na administrao do FreeNAS. Tratam-se de configuraes especficas
mas que podem ser encontradas em vrios tipos de ambientes.

4.1 Configuraes de rede avanada, agregao de VLANS via


CLI e interface web
Um rede LAN (Local Area Network) trata-se basicamente de uma rede geograficamente local, onde
todos os hosts (computadores, impressoras, servidores, entre outros) possuem conexo entre si e
podem compartilhar informaes, utilizando para interconexo dispositivos de hardware como hubs
e mais recentemente switches. Porm, dentro de uma LAN podemos ter uma diviso fsica dos
dispositivos, segmentando fisicamente o trfego de rede de determinados hosts utilizando switches
diferentes.
Uma VLAN (Virtual LAN) tambm pode prover a segmentao de redes LAN, porm de forma
lgica (da temos o termo Virtual). Com a utilizao de VLAN's, basicamente cada frame recebe
uma marcao conhecida como TAG de VLAN. Essa TAG contm qual nmero de ID
(Identificador) da VLAN na qual aquele frame faz parte. O switch, de posse dessa informao,
encaminha os frames para as portas que estiverem previamente configuradas para essa VLAN.

175
Naturalmente, quando utilizamos uma nova VLAN estamos criando um novo segmento de camada
2 e tambm de camada 3, fazendo uma comparao com o modelo de referncia OSI. Em resumo,
quando temos uma nova VLAN temos tambm uma nova subrede IP (vrios domnios de
broadcast).
Para exemplificar a utilizao de VLAN's no FreeNAS, vamos criar um laboratrio que permita a
configurao de VLAN's. Iremos utilizar uma mquina virtual que ir operar como um switch de 4
portas, onde em determinadas portas iremos trabalhar com VLAN's. A figura a seguir demonstra a
topologia que ser utilizada nesse laboratrio:

Conforme podemos observar na figura anterior, temos vrios hosts presentes na topologia. Iremos
explicar em detalhe cada host que ser utilizado:
Estao Linux Cliente: Trata-se de uma mquina virtual com sistema operacional Linux
instalado. Estamos utilizando o Debian Jessie x64 com pacote vlan instalado. A interface
de rede desse host est configurada para utilizar VLAN (ID 300);
Switch: Trata-se de uma mquina virtual com sistema operacional Linux instalado. Estamos
utilizando o Debian Jessie x64 com pacote vlan instalado. Vrias interfaces de rede iro
operar como gateway para os demais hosts da rede, onde em algumas delas iremos
implementar taggeamento por VLAN (802.1q). Essa mquina virtual ir operar como um

176
switch layer 3 (switch com funes de um roteador);
Servidor FreeNAS: Trata-se do servidor de armazenamento de dados (nosso NAS). Iremos
configurar uma interface utilizando VLAN e demonstrar o funcionamento;
Servidor MS AD: Trata-se de um host Windows que it utilizar uma interface de rede sem
taggeamento por VLAN. Isso significa que os frames do servidor Windows at o Switch
sero encaminhados sem receber taggeamento por VLAN.

Trabalhando com VLANs


1. Mquina Virtual: switch1
Iniciando com laboratrio, as 4 interfaces de rede da mquina virtual switch1 devero estar como
Internal Network utilizando a rede de nome vswitch:

Aps iniciar o sistema, instalar o pacote vlan:

# aptitude update
# aptitude install vlan

Carregar o mdulo responsvel pelo suporte ao taggeamento de VLAN (802.1q):

# modprobe 8021q

177
Criando as VLAN's e associando as mesmas em cada interface de rede fsica:

# vconfig add eth2 200


# vconfig add eth3 300

Configurar as interfaces de rede no arquivo /etc/network/interfaces:

# Interface de comunicao com servidor MS AD Windows:


auto eth0
iface eth0 inet static
address 172.31.1.1 netmask 255.255.255.0

# Interface de comunicao com servidor FreeNAS:


auto eth2
iface eth2 inet static
address 172.31.2.1 netmask 255.255.255.0

# Interface de comunicao com Estao Cliente Linux:


auto eth3
iface eth3 inet static
address 172.31.3.1 netmask 255.255.255.0

Habilitando o encaminhamento de pacotes no Kernel Linux. Inet.ipv4.ip_forward=1 permite o


roteamento de pacotes entre as VLAN's (entre as subredes):

# echo 1 > /proc/sys/net/ipv4/ip_forward # Forma temporria

# vim /etc/sysctl.conf
# Adicionar a entrada abaixo no final do arquivo
net.ipv4.ip_forward=1

# sysctl -p /etc/sysctl.conf

2. Mquina Virtual: Estao Cliente Linux


Na estao cliente Linux, vamos utilizar a interface de rede como Internal Network utilizando a
rede de nome vswitch:

178
Basicamente vamos instalar o pacote vlan e configurar a interface de rede (similar ao processo
anterior) no esqueendo de adicionar as rotas estticas necessrias:

# aptitude update
# aptitude install vlan

# vconfig add eth0 300

# vim /etc/network/interfaces
auto eth0
iface eth0 inet static
address 172.31.3.11 netmask 255.255.255.0

# route add -net 172.31.1.0 netmask 255.255.255.0 gw 172.31.3.1


# route add -net 172.31.2.0 netmask 255.255.255.0 gw 172.31.3.1

179
3. Mquina Virtual: Servidor MS AD
Na estao com Windows Server, a configurao da interface de rede tambm ser como Internal
Network utilizando a rede de nome vswitch:

Configurao de rede no sistema operacional:

180
4. Mquina Virtual: Servidor FreeNAS
No servidor FreeNAS, devemos ter pelo menos 2 interfaces de rede: 1 que ser utilizada para
gerenciamento do servidor e a outra utilizada para prover servios aos clientes via rede. Dessa
forma, uma interface ser configurada como Bridge que ser utilizada para gerenciamento e outra
interface como Internal Network utilizando a rede de nome vswitch que ser utilizada para
acesso dos clientes aos recursos providos pelo FreeNAS:

181
Vamos iniciar a configurao de VLAN no FreeNAS. Acessar a interface de gerenciamento web do
FreeNAS menu Network aba VLANs Add VLAN:

Observe que adicionamos uma interface virtual com tag 200 e fazendo referncia para a interface
fsica em0. Vamos agora configurar o endereamento IP na interface de vlan. Menu Network
aba Interfaces Add Interface:

182
Aps configurarmos o endereamento IP na interface de VLAN, devemos criar as rotas estticas
necessrias para que a comunicao com as outras redes do laboratrio possam ocorrer com
sucesso. Acesse o menu Network aba Static Routers Add Static Route:

183
5. Testes:
Finalizada a configurao em todas as estaes vamos realizar testes de conectividade de rede entre
os hosts do laboratrio. A partir do servidor Windows, podemos verificar que testes ICMP
originados em sua interface pode alcanar com sucesso todos os hosts da rede.
Teste ICMP OK do servidor Windows para as interfaces de rede do Switch1:

Teste ICMP OK do servidor Windows para o Servidor FreeNAS:

184
Teste ICMP OK do servidor Windows para Estao Cliente Linux:

Na mquina virtual operando como switch, podemos executar o tcpdump para verificar se os
pacotes esto recebendo devidamente o taggeamento de VLAN. Vamos direcionar o contedo do
trfego para um arquivo para posterior anlise off-line:

# tcpdump -vvv -i any -w dump.pcap

Aps alguns segundos de captura (enquanto os testes ICMP esto em execuo), podemos parar a
captura de pacotes e analisar o arquivo com alguma ferramenta grfica, como o Wireshark por
exemplo. Observe o bloco de comunicao demonstrado na figura a seguir:

Trata-se da comunicao do servidor FreeNAS (172.31.2.11) com cliente Linux (172.31.3.11). O


servidor FreeNAS est enviando 4 pacotes ICMP Echo Request e o cliente Linux est respondendo
com 4 pacotes ICMP Echo Reply. Alm disso, podemos analisar cada pacote e comprovar que a
TAG de VLAN est sendo inserida corretamente:

185
Nota Importante: A configurao de VLAN no FreeNAS pode ser realizada tambm via CLI,
porm as configuraes no sero automaticamente atualizadas na interface de gerenciamento web
do FreeNAS e no estaro presentes no banco de dados de configurao do FreeNAS. Isso significa
que, alm das configuraes realizadas via CLI no aparecem na interface web as mesmas sero
perdidas a caba reboot do servidor FreeNAS.
Uma possvel soluo seria criar a configurao via CLI e depois replic-la exatamente via interface
web. Dessa forma, a configurao passa a ser armazenada no banco de dados de configurao do
FreeNAS e ser carregada no processo boot do servidor. Exemplo:

# Criando a interface de vlan:


[root@freenas_server] ~# ifconfig vlan201 create

# Associando a interface de VLAN com um ID, interface fsica e inserindo endereamento IP:
[root@freenas_server] ~# ifconfig vlan201 172.31.4.11 netmask 255.255.255.0 vlan 201 vlandev
em0

# Para remover uma VLAN:


[root@freenas_server] ~# ifconfig vlan201 destroy

186
Trabalhando com Agregao de Links (Link Aggregations)
Conforme j mencionado algumas vezes, o FreeNAS baseado no BSD FreeBSD. Isso significa
que muitos aplicativos e ferramentas utilizadas/implementadas no FreeBSD esto tambm
disponveis no FreeNAS. A agregao de links (Link Aggregation) uma tecnologia utilizada para
agregar ou juntar duas ou mais interfaces de rede com objetivo de aumentar a largura de banda de
um sistema e prover redundncia em caso de falha de alguma interface dentro do agrupamento de
interfaces. O FreeNAS utilizada a interface lagg (tambm utilizada no FreeBSD) para prover os
recursos de link agregation e link failover.
Basicamente, o lagg proporciona a criao de uma interface virtual. Fazendo referncia para essa
interface virtual teremos duas ou mais interfaces fsicas de rede que podero proporcionar maior
largura de banda ou failover, dependendo da configurao realizada e protocolo de agregao
utilizado.
Atualmente, o driver lagg implementado no FreeNAS possui suporte aos seguintes protocolos de
agregao de links:
Failover: Trata-se do protocolo padro de funcionamento. Nesse mtodo, uma interface de
rede designada como ativa (Active Port/Master Port) e todo trfego encaminhado e
recebido por esta interface. As demais utilizadas sero utilizadas somente na ocorrncia de
falha da interface principal (Active/Master Port);
FEC: Trata-se de um mtodo utilizado para conexo com switches Cisco que utilizem a
tecnologia EtherChannel. um modo esttico de configurao (sem negociao dinmica
pelo protocolo de agregao). A configurao deve ser realizada no switch tambm;
LACP: Suporta o padro IEEE 802.1ad (Link Aggregation Control Protocol). Trata-se de
um protocolo dinnico para agregao de link. Utiliza o conceito de LAG (Link Aggregated
Groups) para realizar o agrupamento das interfaces utilizadas no agrupamento, todas
utilizando a mesma velocidade e modo de negociao (full-duplex, por exemplo). O trfego
ser balanceado nas intrefaces presentes no LAG e, na ocorrncia de falha de uma das
interfaces o trfego continua fluindo atravs das interfaces restantes no LAG. A
configurao deve ser realizada no switch tambm;
Load Balance: Trata-se de um mtodo esttico, sem negociao dinmica de protocolos de
agregao de link. Todo trfego encaminhado atravs das portas como ativas (Active
Ports). O encaminhamento realizado informaes de hash presentes nos cabealhos dos
pacotes. O switch requer suporte ao IEEE 802.1ad de forma esttica;
Round Robin: Nesse mtodo o trfego de sada passa pela tcnica round-robin sobre todas
as portas ativas. J o trfego de entrada utiliza somente uma interface de rede ativa. Esse
modo de utilizao faz com que os pacotes cheguem de forma desordenada no cliente. Isso
faz com que a taxa de transferncia seja reduzida e o cliente ter um maior consumo de CPU
pois o cliente ter mais trabalho para realizar a reordenao dos pacotes. O switch deve

187
possuir suporte a IEEE 802.1ad de forma esttica;
None: Esse mtodo desabilita qualquer trfego na interface sem desabilitar a interface lagg.

Nota Importante: interessante implementar os recursos de agregao de links e failover das


interfaces em sistemas critcos e que recebem grande quantidade de conexes de usurios. LACP e
outras formas de agregao no trabalham bem com sistemas de virtualizao e com conexes
iSCSI. Para este ltimo, interessante a utilizao de MPIO (Multipath I/O). Com a utilizao do
MPIO, vrias conexes so estabelecidas entre os hosts envolvidos e as informaes podem ser
transferidas pelas conexes disponveis, aumentando a performance e provendo certo nvel de
redundncia.

A seguir, iremos exemplificar a criao de uma interface LAG utilizando trs interfaces fsicas.
Nossa mquina virtual possui quatro interfaces de rede sendo uma destinada para gerncia do
FreeNAS e as demais utilizadas para prover os recursos para os clientes:
1. Acessar a interface de gerenciamento web do FreeNAS Menu Network aba Link
Aggregations Clicar na opo Add Link Aggregation. Devemos escolher qual protocolo
ser utilizado para agregao e selecionar quais interfaces sero utilizadas:

188
Aps criao da interface de agregao, podemos editar as opes e inserir as informaes de
endereamento IP que sero utilizadas na interface:

189
Podemos visualizar a criao da interface LAG, acessando o menu Network aba Interfaces:

Dependendo do protocolo utilizado para agregao dos links, podemos ajustar configuraes
adicionais. Quando estamos utilizando o mtodo Failover, podemos definir os nveis de
prioridade na utilizao as interfaces fsicas presentes no lag, ou seja, podemos definir qual
interface ficar ativa e quais interfaces sero utilizadas caso a interface ativa venha a falhar. Acesse
o menu Network aba Link Aggregations Selecione a interface lag criada anteriormente
Clicar na opo Edite Members. A figura a seguir demonstra a prioridade das interfaces. Quanto
menor a prioridade mais prefervel a interface para utilizao como interface master/ativa:

190
Analisando a interface lagg0 via CLI:

Para configurar uma interface LAG via CLI:

# ifconfig em1 up
# ifconfig em2 up
# ifconfig em3 up
# ifconfig lagg0 create
# ifconfig lagg0 up laggproto failover lagport em1 lagport em2 lagport em3 172.31.2.11/24

Nota Importante: Novamente importante ressaltar que as configuraes via CLI no so


permanentes pois no so inseridas no banco de dados interno de configurao do FreeNAS.
recomendado que as configuraes sejam feitas tambm na interface web.

4.2 Gerenciando zfs/zpool via CLI


Confome visto anteriormente, a interface de gerenciamento web do FreeNAS muito poderosa e
atravs dela podemos realizar toda configurao necessria para colocar o FreeNAS para funcionar
sem maiores problemas.

191
Porm, vrias tarefas tambm podem ser executadas via CLI conforme iremos abordar nesse tpico.
Temos duas poderosas ferramentas que podemos usar na CLI para trabalhar com ZFS Pools e com o
sistema de arquivos ZFS em si. So elas: zpool e zfs.
Muito importante ressaltar que todas as alteraes realizadas pela CLI iro entrar em funcionamento
de forma imediata porm no sero salvas no banco de dados de configurao do FreeNAS.
vlido entender/aprender sobre como operar via CLI, mas recomendado fazer os ajustes/alteraes
na interface de gerenciamento web do FreeNAS para que as mesmas sejam salvas no banco de
dados interno de configurao do FreeNAS.

Utilizando o zpool
A ferramenta zpool utilizada para configurar ZFS Storage Pools. Para recordar, um ZFS Pool
uma coleo de devices fscos que proporciona espao para armazenamento de dados. Todos os ZFS
Datasets presentes em um mesmo ZFS Pool iro compartilhar o espao disponvel no ZFS Pool.
Esses devices so conhecidos como vdev's (Virtual Devices) e so classificados/organizados de
acordo com a performance e tolerncia a falha que podem prover aos sistemas na qual esto sendo
utilizados. Os virtual devices suportados so:
disk

file

mirror

raidz (raid1, raid2, raid3)

spare

log

cache

Um grande nmero de opes existe para o comando zpool. Iremos demonstrar as principais e mais
utilizadas. Porm, extremamente importante analisar o manual do comando zpool para maiores
referncias/informaes. Isso pode ser feito atravs da CLI executando o comando man zpool.
Nesse ponto, vamos utilizar a CLI do servidor FreeNAS (seja por console ou por SSH) para
conhecer os comandos zpool e explicar a sada de cada comando para melhor entendimento.

1. Criando um ZFS Pool/Volume (Striped):


Antes de criar o ZFS Pool necessrio ter definido qual nvel de redundncia requerido para o
sistema e verificar se com os discos existentes isso possvel de ser atendido. Se no for

192
especificado o tipo do vdev, ser considerado a utilizao do modo striped onde os dados so
espalhados em todos os discos existentes:

# zpool create striped-pool /disks/disk1 /disks/disk2 /disks/disk3 /disks/disk4

Explicando:
zpool create: Comando para realizar a criao do ZFS Pool/Volume;

striped-pool: Nome do ZFS Pool;

/disks/diskX: Discos e/ou Arquivos que estaro presentes no ZFS Pool.

2. Criando um ZFS Pool/Volume (Mirrored):


Nesse caso, como o prprio nome sugere os devices do ZFS Pool sero espelhados proporcionando
um certo nvel de redundncia:

# zpool create poolespelho mirror /disks/disk4 /disks/disk5

3. Criando um ZFS Pool/Volume (RAIDZ):


Existem vrios nveis de utilizao do RAIDZ onde cada nvel pode proporcionar desempenho e
segurana no sentido de redundncia. Vamos criar um ZFS Pool em RAIDZ1 onde so necessrios
no mnimo 3 discos:

# zpool create poolraidz1 /disks/disk7 /disks/disk8 /disks/disk9

193
Observe que apenas um VDEV foi criado (raidz1). Podemos criar um ZFS Pool contendo mais do
que um VDEV. Isso aumenta a performance pois os dados sero distribuidos entre os VDEV's.:

# zpool create poolraidz1 raidz /disks/disk7 /disks/disk8 /disks/disk9 raidz /disks/disk10


/disks/disk11 /disks/disk12

4. Criando um ZFS Pool/Volume (RAID-10):


RAID (Redundant Array Of Inexpensive Disks) uma tecnologia que permite combinar mltiplos
discos fsicos em um nico disco lgico para propsitos de redundncia de dados, aumento de
performance ou, em alguns casos ambas opes simultaneamente. Temos vrias possibilidades de
implementar o RAID, onde cada possibilidade conhecida como nvel de RAID variando de
acordo com os recursos providos (disponibilidade, segurana, performance entre outros). Fazendo
um constraste do conceito padro de RAID com o conceito de RAIDZ encontrado no FreeNAS,
podemos criar um agrupamento de discos no FreeNAS que se comporte de forma similiar ao
conceito padro de RAID.
Nesse exemplo, vamos criar um agrupamento de disco em RAID nvel 10 contendo 4 discos:
Cada disco ser nomeado de 1 a 4. Exemplo: disk1, disk2, disk3 e disk4;

Os discos disk1 e disk2 sero parte de um VDEV;

194
Os discos disk3 e disk4 sero parte de outro VDEV;

Os dados sero gravados em ambos VDEV's simultaneamente. Quando um dado gravado


em um VDEV, o mesmo replicado para os discos presentes nesse VDEV (striping +
mirroring):

# zpool create bigpool mirror /disks/disk1 /disks/disk2 mirror /disks/disk3 /disks/disk4

5. Criando um ZFS Pool para Cache e Logs:


Conforme mencionado anteriormente, o sistema de arquivos ZFS possui um esquema de cache
muito eficiente. Esse cache possui alguns nveis e pode ser tanto realizado em memria (ARC)
quanto realizado em disco (L2ARC). extremamente recomendado a utilizao de cache em discos
de alta velocidade, como por exemplo discos SSD. Isso aumenta a performance do sistema como
um todo. Alm do cache em disco SSD, recomendado tambm o armazenamento de logs nesse
tipo de disco.
Vamos criar primeiramente um ZFS Pool para cache:

# zpool create cachepool mirror /disks/ssd1 /disks/ssd2

195
Agora, vamos criar outr ZFS Pool destinado ao armazenamento de logs:

# zpool create logpool mirror /disks/ssd3 /disks/ssd4

6. Visualizando todos os ZFS Pools/Volumes existentes:

# zpool list

196
Explicando:
A primeira coluna chamada NAME descreve o nome do ZFS Pool. Em nosso exemplo,
temos 3 ZFS Pool chamados dados, freenas-boot e replica-local;
As prximas 3 colunas demonstram informaes referente ao tamanho e espao utilizado
por cada ZFS Pool. O campo SIZE demonstra o tamanho total, ALLOC espao
utilizado e FREE espao disponvel;
A coluna EXPANDSZ demonstra espao em disco disponvel proveniente de expanso de
capacidade do ZFS Pool;
A coluna FRAG possvel visualizar a porcentagem de fragmentao dos dados do ZFS
Pool. Quando maior o valor de fragmentao, menor a performance do sistema de
arquivos;
A coluna CAP demonstra a porcentagem do espao disponvel que est sendo utilizada;

A coluna DEDUP demonstra a quantidade de deduplicao de arquivos que ocorreu no


sistema de arquivos. Por padro, a deduplicao vem desabilitada no ZFS Dataset mas pode
ser posteriormente habilitada;
A coluna HEALTH demonstra o status do VDEV. Serve para indicar qual a sade dos
discos. Nesse caso, ONLINE significa que tudo est OK. Porm, vrios status podem
ocorrer alm de ONLINE:
DEGRADED: Um ou mais componentes de um vdev esto offline/com problemas.
Possvel troca necessria, porm o sistema continua em funcionamento devido a
existncia de redundncia;
FAULTED: Semelhante ao DEGRADED porm, nesse caso no temos existncia de
redundncia. Necessrio reparo imediato;
OFFLINE: Quando o ZFS Pool explicitamente inserido no status de OFFLINE
(zpool offline);
ONLINE: OK e tudo em pleno funcionamento;

197
REMOVED: Device foi removido fisicamente enquanto o sistema estava em
funcionamento;
UNAVAIL: O device no pode ser detectado/aberto.

A coluna ALTROOT demonstra onde o ZFS Pool montado.

7. Visualizando um ZFS Pool em particular:

# zpool list dados

8. Verificando o status de todos os ZFS Pools/Volumes existentes:

# zpool status

198
9. Verificando o status de um ZFS Pool em particular:

# zpool status dados

Conforme podemos visualizar na figura anterior, vrios informaes relacionadas ao ZFS Pool esto
disponveis como seu nome, status, vdev's existentes entre outras informaes.

10. Verificao resumida sobre o status de um ZFS Pool:

# zpool status -x dados

11. Substituindo um disco dentro de um ZFS Pool:


Em algumas situaes poder ser necessrio substituir discos de um ZFS Pool. Em alguns tipos de
hardware, caso um disco j inserido no sistema seja removido e outro disco igual for inserido no
mesmo slot, possivelmente o prprio sistema de arquivos automaticamente ir levanta-lo para
ONLINE. Caso isso no ocorra, ser necessrio fazer manualmente. Em outras situes, podemos
querer substituir um disco inserindo outro disco presente no servidor, mas no presente no ZFS
Pool.
Verifique o ZFS Pool chamado bigpool:

199
Conforme podemos observar, o ZFS Pool bigpool possui 4 discos, segmentados em 2 VDEV's
(mirror-0 e mirror-1, formando um RAID-10). Vamos realizar a substituio de 2 discos sendo 1 de
cada VDEV:
Substituir o disco disk2 pelo disco disk13;

Substituir o disco disk4 pelo disco disk14.

# zpool replace bigpool /disks/disk2 /disks/disk13


# zpool replace bigpool /disks/disk4 /disks/disk14

Conforme podemos observar na figura anterior, a substituio (replace) dos discos foi realizada com
sucesso.

200
12. Colocando um disco com status de OFFLINE administrativamente:
Vamos inserir o disco /disks/disk14 como OFFLINE de maneira proposital. Conforme podemos
observar na figura seguinte, o disk14 est operando normalmente (ONLINE) e faz parte do ZFS
Pool bigpool:

# zpool offline bigpool /disks/disk14

Conforme podemos observar na figura anterior, aps inserir o disk14 para o status OFFLINE, o
ZFS Pool bigpool passou para o status DEGRADED. Isso significa que existe um problema no
ZFS Pool mas devido ao esquema de redundncia utilizado o sistema continua em funcionamento.
Observe tambm que o prprio comando zpool status fornece algumas dicas sobre como resolver
o problema. Nesse caso, temos duas possveis solues:
A primeira opo seria inserir o device disk14 para ONLINE (zpool online);

A segunda opo seria trocar o device disk14, utilizando o zpool replace para isso.

201
Vamos voltar o disk14 para o status ONLINE:

# zpool online bigpool /disks/disk14

13. Visualizando as propriedades de um ZFS Pool:


O sistema de arquivos ZFS utiliza propriedades para expressar as caractersticas de um ZFS Pool.
Exemplos de propriedades de um ZFS Pool so health, size, capacity e outras mais.
Como exemplo, vamos visualizar as propriedades do ZFS Pool bigpool:

# zpool get all bigpool

202
Conforme podemos observar na figura anterior, a sada do comando zpool get possui 4 colunas
que sero descritas em detalhes:
NAME: Representa o nome do ZFS Pool;

PROPERTY: Representa o nome da propriedade do ZFS Pool;

VALUE: Representa o valor que est sendo atribudo a determinada propriedade;

SOURCE: Especifca onde a propriedade est sendo definida e/ou aplicada.

14. Visualizando o valor de uma propriedade em especifco de um ZFS Pool:


Podemos visualizar somente o valor de uma propriedade em particular. Isso facilita a verificao
quando j se tem em mente o que necessrio verificar. Por exemplo, vamos verificar o valor da
propriedade size do ZFS Pool chamado bigpool:

# zpool get size bigpool

15. Alterando valores das propriedades de um ZFS Pool:


Alm de visualizar as propriedades de um ZFS Pool, podemos tambm altera-las para atender
necessidades especifcas. Para esse processo, utilizamos o comando zpool set.
Por exemplo, vamos visualizar o valor da propriedade comment do ZFS Pool chamado bigpool:

# zpool get comment bigpool

Conforme demonstra a figura anterior, no temos nenhum comentrio definido. Vamos inserir um
comentrio:

# zpool set comment=Utilizado para Virtualizao bigpool

203
Nota: possvel alterar as propriedades de um ZFS Pool no momento de sua criao, atravs da
opo -o. Por exemplo, vamos criar um ZFS Pool chamado bigpool2 utilizando um nico vdev
com 1 disco (strip) e inserir um comentrio:

# zpool create -o comment=Pool de Testes bigpool2 /disks/disk15

16. Visualizando o histrico de alteraes das propriedades de um ZFS Pool:


Cada ZFS Pool registra e mantem uma cpia de todas as alteraes realizadas nas propriedades aps
a sua criao. Esse histrico no inclui rotinas como desligamento do sistema ou boot do sistema,
mas sim informaes relacionadas as propriedades do ZFS Pool. Esse recurso muito til para
controlar e at mesmo analisar quais aes foram realizadas no ZFS Pool. excelente, por exemplo,
para auditorias e resoluo de problemas.
Como exemplo, vamos verificar o histrico do ZFS Pool bigpool:

# zpool history bigpool

Conforme podemos visualizar na figura anterior, temos registros desde a criao do ZFS Pool,
registros de trocas (replace) de discos, alterando o status de OFFLINE/ONLINE at alterao
do comentrio do ZFS Pool. Infelizmente no gravado o registro de qual usurio fez as alteraes,
mas com base nas informaes disponveis, podemos correlaciona-las com outros logs do sistemas e
descobrir as informaes desejadas.

17. Verificando as features habilitadas (enabled) para um ZFS Pool:


As features ou recursos providos pelo sistema de arquivos ZFS para um ZFS Pool so como
propriedades para um Pool e podem ser visualizadas com o comando zpool get. As features com
valor definido como enabled no campo VALUE significa que a feature est disponvel para

204
utilizao mas no est em utilizao no momento:

# zpool get all bigpool | grep feature | grep -v active | grep -v disabled

18. Verificando as features desabilitadas (disabled) para um ZFS Pool:


As features ou recursos com valor disabled so features que no esto disponveis para utilizao:

# zpool get all bigpool | grep feature | grep -v active | grep -v enabled

19. Verificando as features ativas (active) para um ZFS Pool:


As features ou recursos com valor active so features que esto disponveis (enabled) e esto
ativas no sistema:

# zpool get all bigpool | grep feature | grep -v enabled | grep -v disabled

20. Removendo um ZFS Pool:


O ato de remover um ZFS Pool no signifca que os dados presentes nos discos sero apagados. A
remoo de um Pool apenas remove o ponteiro de acesso aos dados presentes nos discos do Pool.
Como exemplo, vamos remover o ZFS Pool chamado bigpool2:

# zpool destroy bigpool2

205
Utilizando o zfs
A ferramenta zfs utilizada para configurao de ZFS Datasets dentro de ZFS Pools/Volumes.
Basicamente, um ZFS Dataset um sistema de arquivos e este possui diretrio no sistema que
utilizado como ponto de montagem para acesso aos dados.
Exemplo de ponto de montagem:
pool/{filesystem/volume/snapshot}

O tamanho mximo para o nome de um ZFS Dataset 256 bytes.

Um ZFS Dataset pode ser um:


File System: Pode ser um sistema de arquivos e possuir um diretrio como ponto de
montagem para acesso aos dados;
Volume: Pode ser um volume lgico exportado como um device block (dispositivo de
bloco) e utilizado, por exemplo, em ambientes SAN mapeado por iSCSI;
Snapshot: Trata-se de uma verso read-only de um determinado sistema de arquivos ou
volume em um determinado momento do tempo. A nomemclatura de um snapshot segue um
padro como:
Para File Systems: filesystem@nome_snapshot

Para Volumes: volume@nome_snapshot

Clone: Trata-se de uma verso writable de um snapshot, ou seja, com suporte a operaes
de escrita. Um clone somente pode ser criado a partir de um snapshot e, dessa forma ambos
(snapshot e clone) possuem uma relao de pai e filho onde necessrio que o snapshot
exista para que o clone exista. Dessa forma, para excluir o snapshot necessrio excluir o
clone, pois ambos possuem essa dependncia. Porm, essa relao de dependncia pode ser
removida, promovendo (subcomando promote) o clone como file system independente.

Dessa forma, fica claro que um ZFS Pool/Volume uma coleo lgica de diversos ZFS Datasets.
O ZFS Pool tambm a raiz (root) na hierarquia do sistema de arquivos ZFS e pode ser acessado,
montado, tirado snapshots, ajustado propriedades e outras funes mais.
Um grande nmero de recursos/caractersticas existe em um ZFS Dataset. Iremos ressaltar os mais
importantes/utilizados. Porm, extremamente recomendado a visualizao do manual do comando
zfs, acessvel via CLI atravs do 'man zfs.
Nesse ponto, vamos utilizar a CLI do servidor FreeNAS (seja por console ou por SSH) para
conhecer os comandos zfs e explicar a sada de cada comando para melhor entendimento.

206
1. Criando um ZFS Dataset dentro de um ZFS Pool:
Vamos utilizar como exemplo o ZFS Pool chamado bigpool. Vamos destru-lo e criar outro ZFS
Pool para alocao dos ZFS Datasets dentro desse ZFS Pool:

# zpool destroy bigpool


# zpool create bigpool raidz2 /disks/disk1 /disks/disk2 /disks/disk3 /disks/disk4 /disks/disk5 raidz2
/disks/disk6 /disks/disk7 /disks/disk8 /disks/disk9 /disks/disk10

Aps criao do ZFS Pool, vamos criar o ZFS Dataset chamado de data:

# zfs create bigpool/data

207
Conforme podemos visualizar na figura anterior, o ZFS Dataset data foi criado com sucesso e est
acessvel atravs do ponto de montagem /bigpool/data.

2. Visualizando todos os ZFS Datasets exisntes no sistema:


possvel visualizar todos os ZFS Datasets presentes no sistema, atravs do seguinte comando:

# zfs list

Explicando:
A primeira coluna NAME utilizada para demonstrar o nome do ZFS Dataset;

As colunas USED e REFER possvel visualizar a quantidade de espao em disco que


est sendo utilizado pelo referido ZFS Dataset;
A coluna AVAIL demonstra a quantidade de espao restante disponvel para ser utilizado
no ZFS Pool ou Dataset;
A coluna MOUNTPOINT demonstra qual o ponto de montagem utilizado pelo ZFS
Dataset.

208
3. Visualizando um ZFS Dataset em especfico:

# zfs list bigpool/data

4. Especificando o tipo do ZFS Dataset na visualizao:


Conforme mencionado anteriormente, um ZFS Dataset pode ser um File System, um Volume, um
Snapshot ou at mesmo um Clone. Para isso, utilizamos a flag -t type juntamente com o comando
zfs list.
Verificando todos os ZFS Datasets do tipo File System presente no sistema:

# zfs list -t filesystem

Visualizando todos os ZFS Datasets do tipo Snapshot:

# zfs list -t snapshot

209
5. Criando um ZFS Dataset filho:
Podemos criar ZFS Datasets filhos de ZFS Datasets j existentes. Por exemplo, podemos criar o
ZFS Dataset chamado engenharia hierarquicamente abaixo do ZFS Dataset data. Isso pode ser
feito especificando o caminho completo do ZFS Dataset:

# zfs create bigpool/data/engenharia

O ZFS Dataset filho criado ir herdar vrias propriedades do Dataset pai, como por exemplo, o
ponto de montagem utilizado pelo Dataset pai entre outras propriedades.

6. Criando Volumes:
Volumes so outro tipo muito comum de ZFS Dataset. Tambm conhecidos como zvol so
utilizados como device blocks (dispositivos de bloco) utilizado comumente em ambientes SAN via
iSCSI. Para criao de um volume, utilizamos a flag/opo -V.
Como exemplo, vamos criar um volume chamado iso abaixo do ZFS Pool bigpool:

210
# zfs create -V 500M bigpool/iso

Conforme demonstra a figura anterior, o zvol chamado iso foi criado com sucesso. possvel
visualizar todos os volumes existentes no sistema:

# zfs list -t volume

Outro detalhe importante: No momento da criao do zvol definimos qual ser seu tamanho, ou
seja, o espao que ser reservado dentro do ZFS Pool para ser utilizado pelo zvol. Automaticamente
um espao adicional reservado para o armazenamento dos metadados que sero utilizados pelo
volume. Em nosso exemplo, criamos o zvol com 500MB e aps a sua criao o mesmo possui
516MB.
Tambm um zvol/volume no possui ponto de montagem pois no um sistema de arquivos. Trata-
se de um device block e pode ser visualizado dentro de /dev/zvol:

7. Renomeando um ZFS Dataset:


possvel renomear um ZFS Dataset existente no sistema. Porm, importente saber que no
momento da execuo do processo, ir ocorrer indisponibilidade no acesso aos dados pois o ponto
de montagem ser refeito (no caso de um sistema de arquivos) e a path do zvol/volume tambm ser
alterada.
Como exemplo, vamos renomear o zvol chamado iso para newiso:

# zfs rename bigpool/iso bigpool/newiso

211
8. Movendo um ZFS Dataset:
Podemos mover um ZFS Dataset de um local para outro local na rvore do sistema de arquivos
ZFS. Isso pode ser til em algumas situaes, onde por exemplo, deseja-se mover um ZFS Dataset
para ser como filho de outro ZFS Dataset existente, gerenciado por outra equipe.
Como exemplo, vamos mover o ZFS Dataset engenharia (bigpool/data/engenharia) para outro
ZFS Dataset chamado bigpool/data/projetos :

# zfs create bigpool/data/projetos


# zfs rename bigpool/data/engenharia bigpool/data/projetos/engenharia

9. Destruindo um ZFS Dataset:


Podemos destruir/excluir um ZFS Dataset atravs do comando zfs destroy. Algumas flags/opes
podem ser utilizadas em conjunto:
-r: Destroi/elimina recursivamente o dataset especficado no comando zfs destroy como
tambm todos os datasets e snapshots filhos desse dataset. Essa opo deve ser utilizado
com cuidado;
-R: Destroi/elimina um dataset clonado (clone);

-v: Opo verbose. Com a utilizao da mesma, mensagens sero mostradas na tela para
acompanhamento do processo;
-n: Opo para fazer um dry run, ou seja, um teste de como seria a excluso mas sem
realizar a excluso. uma boa opo executar o zfs destroy com as opes -vn antes de
realizar a excluso propriamente.

212
Exemplo de excluso do ZFS Dataset bigpool/data/projetos/engenharia:

# zfs destroy -vn bigpool/data/projetos/engenharia


# zfs destroy bigpool/data/projetos/engenharia

10. Visualizando as propriedades de um ZFS Dataset:


Similiar a um ZFS Pool, um ZFS Dataset possui muitas configuraes a qual chamamos de
propriedades. As propriedades de um ZFS Dataset controla como este deve operar no sistema.
Muitas propriedades podem ser definidas no momento da criao do dataset, mas tambm podemos
alterar as propriedades depois que o dataset estiver em funcionamento/utilizao. Cada ZFS Dataset
filho herda propriedades do ZFS Dataset pai:

# zfs get all bigpool/data/projetos

Alm de visualizar todas as propriedades de um ZFS Dataset, podemos visualizar propriedades


especficas:

# zfs get compression bigpool/data/projetos

213
Podemos tambm visualizar propriedades mltiplas:

# zfs list -o name,quota,reservation bigpool/data/projetos

11. Alterando as propriedades de um ZFS Dataset:


possvel alterar os valores das propriedades de um ZFS Dataset. Vamos, por exemplo, habilitar a
compresso para o ZFS Dataset bigpool/data/projetos na qual est atualmente desativada:

Para habilitar a compresso:

# zfs set compression=on bigpool/data/projetos

4.3 Configurao de servios como integrao com Servios


de Diretrio, SSH, FTP, Rsync, TFTP, DDNS e desabilitando
servios desnecessrios
O FreeNAS possui suporte a uma grande variedade de servios e protocolos integrados, so eles:
AFP

CIFS

Domain Controller

Dynamic DNS

FTP

214
iSCSI

LLDP

NFS

Rsync

S.M.A.R.T.

SNMP

SSH

TFTP

UPS

WebDAV

Para acessar o menu de servios via interface de gerenciamento web, acessar o menu Services:

Conforme podemos observar na figura anterior, cada servio pode ser ativado e desativado,
movendo as opes em ON para ativar e OFF para desativar. Alm disso, cada servio pode ser
configurado atravs da chave ao lado de cada servio. A figura a seguir demonstra as opes de
configurao do servio/protocolo CIFS:

215
vlido ressaltar aps instalao do FreeNAS todos os servios, com exceo do S.M.A.R.T., vem
desabilitado por padro. O servio S.M.A.R.T. utiliza o daemon smartd que responsvel por
monitorar a sade do sistema, monitorando discos ATA/SATA, SCSI/SAS e tambm discos de
estado slido (SSD). O propsito principal desse servio monitorar a confiabilidade do disco e
prever possveis falhas antes mesmo que elas aconteam, utilizando para isso dados coletados no
monitoramento e uma srie de testes realizados.
Para configurar o S.M.A.R.T., algumas etapas so necessrias:
Criar uma tarefa de teste no menu Tasks S.M.A.R.T. Tests Add S.M.A.R.T. Test;

Habilitar ou desabilitar a verificao em cada disco de um volume. recomendado que


todos os discos sejam verificados;
Iniciar o servio no meu Services S.M.A.R.T.

1. Vamos criar uma tarefa para execuo do S.M.A.R.T.:

216
Explicando:
Type: Indica que ser realizada uma verificao do tipo Short (curta);

Hour: Indica em qual horrio ser iniciada a rotina de verificao;

Day of month: Indica em qual dia do ms ser iniciada a rotina de verificao;

Month: Indica em quais meses a rotina ser executada;

Day of Week: Indica em quais dias da semana a rotina ser executada.

2. Iniciar o servio S.M.A.R.T. no menu Services.

Servios de Diretrio com MS Active Directory


O FreeNAS pode ser configurado para operar como um controlador de domnio para uma rede ou
ser inserido em um domnio MS Active Directory para poder acessar recursos presentes no mesmo.
O Active Directory um servio responsvel por compartilhar e gerenciar recursos em uma rede
Windows. Pode ser configurado em servidores com sistema operacional Windows Server ou em
sistemas operacionais Linux atravs do SAMBA 4.
Iremos utilizar o MS Active Directory para prover recursos de autenticao e autorizao, onde
iremos utilizar usurios e grupos existentes na base do Active Directory para acessar os recursos
providos pelo FreeNAS. Em nosso cenrio de laboratrio, temos um MS Active Directory
configurado em um sistema operacional Windows Server 2012 Datacenter utilizando a verso de
avaliao (Evaluation) disponibilizada pela Microsoft:

217
Para realizar o download da verso de avaliao do Windows Server 2012/2012R2 necessrio
fazer um cadastro no site da Microsoft. Para usurios que possuem conta no hotmail, possvel
utilizar essas crednciais para download. Segue link para download:
https://www.microsoft.com/pt-br/evalcenter/evaluate-windows-server-2012-r2

1. Devemos configurar corretamente os servidores DNS que o servidor FreeNAS ir utilizar,


de modo que o sistema FreeNAS possa resolver o nome de domnio MS Active Directory
sem maiores problemas. Em nosso cenrio de laboratrio temos uma mquina virtual com
Windows Server 2012 com as roles de AD DC e DNS instaladas. Esse servidor nosso
servidor de domnio e servidor DNS para nossa rede de laboratrio. Criamos uma interface
de rede do tipo Internal Network com nome ad no VirtualBox para que o servidor de
domnio possa se comunicar com o servidor FreeNAS (o servidor FreeNAS tambm deve
possuir uma interface com as mesmas caractersticas):

218
Continuando, o servidor FreeNAS passa a ter o servidor de domnio como DNS primrio. Vamos
ajustar nas configuraes do FreeNAS:

219
2. Na CLI do servidor FreeNAS, verificar se possvel resolver o nome do domnio. Nesse
ponto vamos verificar se a resoluo DNS est funcionando de forma adequada:

3. No servidor Windows Server, inserir uma entrada (do tipo A com PTR) no DNS referente ao
servidor FreeNAS:

Realizando testes de resoluo a partir do servidor de domnio (Servidor Windows):

220
4. Aps sucesso na realizao de todos os testes, vamos configurar o servio de diretrio no
FreeNAS. Acessar a interface de gerenciamento web menu Directory aba Active
Directory:

Explicando:
Domain Name (DNS/Realm-Name): FQDN do domnio. Em nosso exemplo, o FQDN do
domnio tuxnetwork.local.net;

221
Domain Account Name: Usurio do domnio com privilgios para leitura da base do AD.
Podemos utilizar o usurio administrator ou, como melhor prtica de segurana, criar
outro usurio para essa funo;
Domain Account Password: Senha do usurio;

Enable: Devemos marcar esse box para ativar a utilizao do servio de diretrio.

Observe tambm na figura anterior a existncia do Advanced Mode. Podemos inserir opes
adicionais como em qual servidor DC o servidor FreeNAS deverar consultar e qual Kerberos Realm
utilizar:

Aps finalizar as configuraes, clicar em Save para aplica-las. Para verificar o funcionamento,
podemos acessar a CLI e aplicar alguns comandos para verificar se os usurios e grupos do MS AD
sero trazidos para o servidor FreeNAS.

222
Verificando a conexo do servidor FreeNAS com servidor MS AD:

# wbinfo -t

Verificando os usurios:

# wbinfo -u

Verificando os grupos de usurios:

# wbinfo -g

223
Nota Importante: Aps clicarmos em Save para salvar as configuraes, o sistema ir levar
alguns minutos para literalmente aplicar todas as configuraes. Observe que o boto Save aps
clicado ir ficar como Please wait...:

nesse momento que o servidor FreeNAS est tentando se comunicando com servidor MS Active
Directory para aplicar as configuraes. Enquanto o processo est em andamento, acessamos o
servidor FreeNAS via SSH e podemos observar sucesso na visualizao de usurios e grupos do
MS AD (wbinfo -u e wbinfo -g). Porm, durante o processo, ocorre uma desconexo do servidor
FreeNAS com o domnio gerando a mensagem The service failed to restart, conforme demonstra
a figura a seguir:

224
Aps esse evento, no temos mais conexo com domnio e os comandos para verificao de
usurios e grupos no MS AD no mais funcionam:

Aps algumas pesquisas (enquanto essa apstila est sendo escrita), esses sintomas apontam para
um possvel bug com identificao #13474 ainda aberto, ou seja, sem resoluo:
https://bugs.freenas.org/issues/13474

Est prevista resoluo desse bug no prximo SU Candidate:

225
Link para visualizao da imagem anterior:
https://bugs.freenas.org/projects/freenas/issues?c%5B%5D=tracker&c%5B%5D=status&c
%5B%5D=priority&c%5B%5D=subject&c%5B%5D=assigned_to&c%5B
%5D=updated_on&c%5B%5D=fixed_version&f%5B%5D=status_id&f%5B
%5D=tracker_id&f%5B%5D=&group_by=&op%5Bstatus_id%5D=%2A&op
%5Btracker_id%5D=%3D&page=2&set_filter=1&utf8=%E2%9C%93&v%5Btracker_id
%5D%5B%5D=1

Os mesmos procedimentos realizados no release 9.3 do FreeNAS foram realizados no release 9.2 do
FreeNAS (FreeNAS-9.2.0-RELEASE-x64) e os resultados foram positivos, ou seja, a integrao do
servidor FreeNAS com domnio MS AD ocorreu sem maiores problemas.

Servios de Diretrio com OpenLDAP


O FreeNAS possui suporte ao protocolo LDAP, na qual possvel acessar servios de diretrio
baseados na aplicao OpenLDAP. Basicamente, o OpenLDAP um projeto Open Source
desenvolvido e mantido pelo fundao OpenLDAP (OpenLDAP Foundation) que implementa uma
infraestrutura de servios de diretrio baseado no protocolo LDAP, tanto suportando a verso 2
quanto a verso 3 do protocolo LDAP.
Basicamente, um diretrio pode armazenar vrias informaes de uma infraestrutura de redes como
usurio, senhas, computadores, impressoras, permisses, agenda de telefones, configuraes e
muotas outras informaes. Alm disso, o servio de diretrio provido pelo OpenLDAP
extremamente flexvel, ou seja, para cada tipo de informao que deseja-se armazenar basta
informar qual schema ser utilizado. O schema serve para instruir o daemon do OpenLDAP sobre
como determinada informao deve ser armazenada em seu banco de dados, referenciado na
terminologia do OpenLDAP como backend.
Vamos utilizar o OpenLDAP como base de consultas de usurio, grupos e senhas para prover
servios de autenticao e autorizao, ou seja, vamos exigir que os usurios acessem os recursos
providos pelo FreeNAS atravs da insero de usurio e senha e, essas informaes sero
consultadas pelo FreeNAS no banco de dados do OpenLDAP e no localmente no FreeNAS.
Em nosso laboratrio estamos utilizando uma mquina virtual com sistema operacional Debian
Jessie x64 com OpenLDAP verso 2.4.43 instalado via pacote source (cdigo fonte). Para que o
servidor OpenLDAP possa se comunicar com servidor FreeNAS, ambas mquinas virtuais possuem
uma interface de rede do tipo Internal Network utilizando uma rede de nome
openldap_network, conforme demonstram as figuras a seguir:

226
Certifique-se de que ambos servidores (OpenLDAP e FreeNAS) tenham comunicao de rede entre
si.

227
A base de dados do OpenLDAP j possui alguns usurios cadastrados, conforme demonstra a
consulta realizada no diretrio:

root@debian8:/tmp# ldapsearch -x -D "cn=admin,dc=tuxnetwork,dc=local,dc=net" -b


'dc=tuxnetwork,dc=local,dc=net' -W 'uid'

Enter LDAP Password:


# extended LDIF
#
# LDAPv3
# base <dc=tuxnetwork,dc=local,dc=net> with scope subtree
# filter: (objectclass=*)
# requesting: uid
#

# tuxnetwork.local.net
dn: dc=tuxnetwork,dc=local,dc=net

# admin, tuxnetwork.local.net
dn: cn=admin,dc=tuxnetwork,dc=local,dc=net

# usuarios, tuxnetwork.local.net
dn: ou=usuarios,dc=tuxnetwork,dc=local,dc=net

# grupos, tuxnetwork.local.net
dn: ou=grupos,dc=tuxnetwork,dc=local,dc=net

# computadores, tuxnetwork.local.net
dn: ou=computadores,dc=tuxnetwork,dc=local,dc=net

# joao.silva, usuarios, tuxnetwork.local.net


dn: uid=joao.silva,ou=usuarios,dc=tuxnetwork,dc=local,dc=net
uid: joao.silva

# carlos.adriano, usuarios, tuxnetwork.local.net


dn: uid=carlos.adriano,ou=usuarios,dc=tuxnetwork,dc=local,dc=net
uid: carlos.adriano

# pedro.augusto, usuarios, tuxnetwork.local.net


dn: uid=pedro.augusto,ou=usuarios,dc=tuxnetwork,dc=local,dc=net
uid: pedro.augusto

# freenasadmin, tuxnetwork.local.net
dn: uid=freenasadmin,dc=tuxnetwork,dc=local,dc=net
uid: freenasadmin

# search result
search: 2

228
result: 0 Success

# numResponses: 10
# numEntries: 9

1. Para configurar a integrao com OpenLDAP devemos acessar a interface de gerenciamento


web do FreeNAS menu Directory aba LDAP e inserir as configuraes conforme
figura a seguir:

Explicando:
Hostname: Nome ou endereo IP do servidor OpenLDAP;

Base DN: DN (Distinguished Name) da base do OpenLDAP, ou seja, o nvel mais alto da
rvore do diretrio;
Bind DN: Nome da conta de usurio que ser utilizada para fazer a leitura da base do
OpenLDAP;
Bind Password: Senha do usuario especficado na opo Bind DN;

Enable: Quando marcado, habilita a configurao.

229
Aps clicar em Save, basta aguardar alguns segundos enquanto a configurao aplicada.
Observe que recebemos uma mensagem de alerta no final do processo:

Isso signifca que o servidor OpenLDAP no possui suporte ao SAMBA e que compartilhamentos
do tipo CIFS no iro funcionar com usurios cadastrados na base do OpenLDAP.

2. Para verificar o funcionamento da integrao do OpenLDAP com FreeNAS, podemos


acessar a interface CLI via SSH e aplica o comando:

# getent passwd

Conforme podemos visualizar na figura anterior, as 4 ltimas linhas so usurios importados do


diretrio do OpenLDAP para o sistema local. Podemos criar ZFS Datasets e ajustar as permisses
de modo que esses usurios possam ser utilizados. Por exemplo, na criao de um
compartilhamento NFS, podemos verificar que os usurios do OpenLDAP esto disponveis na
opo Maproot User conforme demonstra a figura a seguir. O usurio carlos.adriano um
usurio cadastrado na base de dados do OpenLDAP:

230
4.4 Realizando tuning no sistema de arquivos ZFS
Para utilizar o sistema de arquivos ZFS, ao menos 1 GB de meria RAM necessrio independente
de qual sistema operacional utilizado. Porm, para termos um melhor desempenho e para atender
requisitos de diversos tipos de ambientes recomendado mais memria (de acordo com cada
necessidade). Dependendo da carga de trabalho do sistema que est utilizando o ZFS, podemos
fazer alguns ajustes (tuning) para que este possa funcionar sem causar problemas e/ou negao de
servio para o sistema como um todo (evitar exausto de memria ram).
Para auxiliar nessa atividade, o prprio FreeNAS possui uma opo de autotune acessvel atravs
do menu System aba Advanced opo Enable autotune. Essa opo muito til pois o
prprio sistema ir avaliar os melhores valores para as opes a serem ajustadas com base na
quantidade de memria ram existente. Trata-se de um tuning seguro e racional para fazer com que
o sistema continue em operao e preserve uma quantidade de memria ram para execuo dos
demais daemons/servios. Em algumas situaes, o autotune pode restringir a quantidade de
memria ram utilizada pelo cache ARC deixando (possivelmente) o sistema mais lento. Isso um
sinal para que mais memria seja adicionado e/ou o sistema FreeNAS seja migrado para um
servidor com configuraes de hardware mais adequadas.
1. Para habilitar o autotune, acessar a interface de gerenciamento web do FreeNAS menu
System aba Advanced marcar o box Enable autotune:

231
2. Aps habilitar o autotune, o sistema ir ajustar alguns parmetros do kernel como
vfs.zfs.arc_max e vm.kmem_size que sero utilizados no prximo boot do sistema:

Explicando:
vfs.zfs.arc_max: Trata-se do valor mximo de memria ram que ser alocado para ser
utilizado pelo ZFS ARC (cache do sistema de arquivos ZFS). Geralmente ele utiliza quase
toda quantidade de memria disponvel, deixando pouco para o sistema;
vm.kmem_size: Basicamente, trata-se da quantidade de memria ram que o kernel do
sistema ir receber para operar. Esse valor deve ser igual ou menor ao valor de
vm.kmem_size_max.

3. Antes de reiniciar o sistema, acesse a CLI para verificarmos os valores atuais dos
parmetros que sero tunados:

232
Aplique reboot no sistema e verifique novamente:

Observe que os valores aps o reboot do servidor so outros. Isso significa que os valores definidos
pelo autotune j esto em funcionamento. Vale ressaltar que a mquina virtual de laboratrio na
qual o servidor FreeNAS est em execuo possui 2 GB de memria ram.

4.5 Laboratrio Adicional:


Esse laboratrio adicional tem como principal objetivo demonstrar a integrao do FreeNAS com
vrios outros sistemas operacionais amplamente utilizados no mercado atualmente. No servidor
FreeNAS iremos criar um volume (zvol) destinado a cada servidor, onde estes iro se conectar aos
volumes utilizando o protocolo iSCSI.
A tabela a seguir demonstra um resumo dos servidores que iremos utilizar no laboratrio:
Sistema Operacional Hostname IP Gerncia IP iSCSI
FreeNAS 9.3 STABLE release 201602031011 freenas.tuxnetwork.local.net 172.31.255.12 172.31.1.10
Citrix XenServer 6.5.0 xenserver.tuxnetwork.local.net 172.31.255.11 172.31.1.11
Vmware ESXi 6.0 vmware_esxi.tuxnetwork.local.net 172.31.255.10 172.31.1.12
Windows Server 2012 R2 x64 Datacenter Edition windows.tuxnetwork.local.net 172.31.255.9 172.31.1.13
Debian Jessie x64 linux.tuxnetwork.local.net 172.31.255.8 172.31.1.14
FreeBSD 10.2 RELEASE x64 freebsd.tuxnetwork.local.net 172.31.255.7 172.31.1.15

Para realizar desse laboratrio iremos utilizar o sistema de virtualizao Vmware Workstation
11.1.0 build-2496824 instalado sobre o sistema operacional Debian Jessie x64. Trata-se de um
software licenciado, porm a verso de demonstrao do software pode ser baixada gratuitamente
no site da Vmware. Ser necessrio criar uma conta no MyVMware para poder realizar o download
do software. Segue o link para referncia:
https://my.vmware.com/web/vmware/login

O processo de instalao do Vmware Workstation simples, similar a grande maioria dos


programas. O motivo de utilizamos o Vmware para esse laboratrio um melhor suporte para os
sistemas de virtualizao que iremos utilizar (Citrix XenServer e Vmware ESXi), alm de
proporcionar ao leitor a possibilidade de utilizar e conhecer mais uma ferramenta de virtualizao.
Para no estender muito, no iremos comentar os passos de instalao dos sistemas que compoem o
laboratrio. Uma rpida consulta na Internet possvel encontrar boas referncias sobre o processo.

233
4.5.1 Criando volume iSCSI e entregando para o Citrix XenServer
Esse laboratrio similiar ao j realizado referente a compartilhamentos iSCSI. Vamos criar um
zvol no servidor FreeNAS e configurar o iSCSI Target para que o servidor XenServer (iSCSI
Initiator) possa utilizar esse volume.
Vamos iniciar as configuraes de iSCSI no sistema FreeNAS:

1. Primeiramente, Target Global Configuration. Acessar a interface de gerenciamento web


menu Sharing aba Block (iSCSI) Opo Target Global Configuration. Nesse menu
temos configuraes que sero impostas a todos compartilhamentos iSCSI existentes no
sistema:

2. O prximo passo configurar Portals. Um Portal utilizado para especificar o endereo IP e


porta que sero utilizados para as conexes iSCSI. Acessar o menu Sharing aba Block
(iSCSI) Portals Add Portal:

234
3. Agora devemos configurar os Initiators, ou seja, quais sistemas clientes podero acessar os
recursos iSCSI providos pelo iSCSI Target (Servidor FreeNAS). Acesse o menu Sharing
aba Block (iSCSI) Initiators Add Initiator:

Vamos adicionar um Initiator para cada servidor, restringindo o acesso ao endereo IP de cada
servidor. Aps insero, teremos algo parecido com a figura a seguir:

235
4. Se for utilizado autenticao via CHAP ou Mutual CHAP para acesso aos
compartilhamentos, necessrio criar uma regra de autorizao. Acessar o menu Sharing
aba Block (iSCSI) Authorized Access Add Authorized Access. Vamos criar uma regra
de autorizao para cada servidor, onde o usurio de cada regra ser o hostname de cada
servidor:

Aps criao das regras de autorizao para os demais servidores, teremos algo semelhante ao
demonstrado na figura seguinte:

236
5. O prximo passo criar o Target. Basicamente, o iSCSI Target ir criar um device block que
ser acessvel para mltiplos iSCSI Initiators. Nesse caso, vamos criar um Target para cada
servidor, associando na criao do Target as opes de cada servidor criadas nos passos
anteriores:

Aps criao do Target para os demais servidores, teremos algo semelhante a figura a seguir:

237
6. Vamos agora criar um zvol de 1 GB para cada servidor. O nome de cada zvol ser o
hostname de cada servidor. Acessar o menu Storage aba Volumes Selecionar o ZFS
Dataset padro (dados) Clicar na opo Create zvol. Aps criarmos todos os zvols,
teremos algo semelhente ao demonstrado na figura a seguir:

Aps criao dos volumes (zvol), vamos criar o iSCSI Extent para cada zvol. Acessar o menu
Sharing aba Block (iSCSI) Extents Add Extents. O nome de cada Extente ser o hostname
de cada servidor:

238
7. A ltima etapa de configurao associar o extent criado com o target. Acesse o menu
Sharing aba Block (iSCSI) Associated Targets Add Target/Extent. Vamos criar uma
entrada para cada associao de Target/Extent que ser utilizada pelos servidores. Aps
criao das associaes, teremos algo semelhante a figura a seguir:

8. O servio iSCSI pode no estar em execuo no sistema FreeNAS. Para verificar, acesse o
menu Services iSCSI;

9. Basta agora fazer testes a partir de hosts clientes. Vamos o software XenCenter para
gerenciamento do servidor de virtualizao Citrix XenServer. O prprio XenServer possui
compilado em seu kernel o suporte ao iSCSI Initiator, ou seja, o XenServer j possui um
cliente iSCSI disponvel para utilizao. No XenCenter, menu Storage New SR. Seguir
conforme as figuras a seguir:

239
240
241
Conforme podemos visualizar na figura anterior, o SR (Storage Repository) foi criado com sucesso.

242
4.5.2 Criando volume iSCSI e entregando para o Vmware ESXi
Conforme demonstrado anteriormente, o ambiente por parte do iSCSI Target (servidor FreeNAS) j
foi devidamente configurado para que os clientes iSCSI (iSCSI Initiators) possam realizar o
mapeamento dos volumes. Nesse exemplo, iremos mapear um volume via iSCSI utilizando o
sistema de virtualizao Vmware ESXi 6.0. Para realizar as configuraes no Vmware, iremos
utilizar o software cliente vShepe Client.

1. Acessar o servidor vmware atravs do software cliente Vmware vShepe Client. Antes de
realizar o mapeamento do disco, ser necessrio configurar o Storage Adapter responsvel
pela conexo iSCSI com o iSCSI Target. Acessar a aba Configuration menu Storage
Adapters Add Storage Adapter iSCSI (ser necessrio adicionar o adaptador que far o
papel de iSCSI Initiator). Na figura a seguir, essa interface est denominada vmhba33:

2. Aps instalar a interface iSCSI, clicar com boto direito sobre a mesma e acessar o menu
Propridades aba Dynamic Discovery Add. Nessa etapa iremos adicionar o servidor
iSCSI (Target) que possui o volume a ser mapeado, nesse caso trata-se do servidor
FreeNAS. Observe que necessrio utilizar autenticao via CHAP para que o processo
funcione corretamente:

243
Aps clicar em OK e fechar a janela de configurao, recomendado a realizao de um scan
para tentar descobrir os volumes no servidor iSCSI informado. Clique em YES:

244
Aps trmino do processo de rescan, tivemos sucesso na descoberta do volume via iSCS
conforme podemos observar no menu Details:

245
Em Details, selecionar Devices. Clicar com o boto direito sobre o device mostrado e escolher
a opo Manage Paths.... possvel observar mais detalhes sobre o mapeamento do volume:

246
Aps entregarmos o volume iSCSI para o sistema Vmware, basta utilizamos seja criando um novo
storage com base nesse volume ou extendendo o disco local.

4.5.3 Criando volume iSCSI e entregando para Sistemas Windows


Server
No sistema operacional Windows Server 2012 R2 Datacenter Edition x64 podemos utilizar o cliente
iSCSI disponvel nativamente no sistema, chamado de iSCSI Initiator.

1. Para executar o iSCSI Initiator, clicar no menu Iniciar Ferramentas Administrativas


iSCSI Initiator conforme demonstra a figura a seguir:

2. No iSCSI Initiator aba Discovery Discovery Portal e adicionar o IP do servidor


FreeNAS (iSCSI Target):

247
3. Aps realizar a descoberta por volumes, abrir a aba Targets selecionar o volume e inserir
autenticao via CHAP para realizar a montagem do volume. possvel ver sucesso na
conexo com volume iSCSI:

248
4. O ltimo passo abrir o Disk Management do Windows, inicializar o novo disco (1 GB),
criar uma partio e utiliza-lo normalmente no sistema:

249
4.5.4 Criando volume iSCSI e entregando para Sistemas Linux
(Debian/CentOS)
Em sistemas Debian necessrio instalar o pacote open-iscsi para que o sistema possa operar como
iSCSI Initiator e realizar o mapeamento dos volumes providos pelo servidor FreeNAS. Nesse
laboratrio iremos utilizar uma mquina virtual com Debian Jessie x64.

1. Realizando a instalao do pacote open-iscsi no Debian:

# aptitude update
# aptitude install open-iscsi

2. Aps instalao do open-iscsi, vamos realizar um backup do arquivo de configurao e


edita-lo de acordo com as informaes de nosso ambiente:

# cd /etc/iscsi
# cp -p iscsid.conf iscsid.conf.backup

3. Editar o arquivo de configurao /etc/iscsi/iscsid.conf. Descomentar as linhas 53, 57 e 58 e


nas linhas 57 e 58 inserir as informaes para se autenticar no volume provido pelo servidor
FreeNAS:

250
Aps trmino das alteraes, salvar o arquivo e reiniciar o daemon do open-iscsi:

# /etc/init.d/open-iscsi restart

4. Iniciar o processo de descoberta do volume no iSCSI Target (Servidor FreeNAS):

# iscsiadm -m discovery -t sendtargets -p 172.31.1.10

Onde:
-p 172.31.1.10: Indicamos o endereo IP do iSCSI Target (Servidor FreeNAS).

Conforme podemos visualizar na figura anterior, o processo de descoberta foi realizado com
sucesso.

5. O prximo passo realizar o login no Target:

# iscsiadm -m node --login

251
Podemos confirmar o estabelecimento da conexo:

6. Pronto, o volume iSCSI est pronto e j pode ser utilizado no sistema local. Observe na
figura a seguir que o volume iSCSI j est sendo reconhecido como /dev/sdb. Este device j
pode ser formatado e montado em um diretrio para utilizao:

Em sistemas como CentOS, a funo de iSCSI Initiator pode ser provida pelo pacote iscsi-initiator-
utils. Para instalao do pacote:

# yum install iscsi-initiator-utils

O processo de mapeamento do volume similiar ao demonstrado no sistema Debian.

4.5.5 Criando volume iSCSI e entregando para Sistemas BSD (FreeBSD)


Para esse laboratrio vamos utilizar uma mquina virtual com FreeBSD release 10.2.

252
1. Primeiramente, devemos habilitar a execuo do daemon iscsid inserindo a seguinte entrada
no final do arquivo de configurao /etc/rc.conf:

# ee /etc/rc.conf
# inserir a linha abaixo no final do arquivo:
iscsid_enable=YES

2. Devemos iniciar o daemon:

# service iscsid start

3. O prximo passo criar o arquivo de configurao contendo as informaes como iSCSI


Target Address, iSCSI Target Name e credenciais de autenticao por CHAP:

# ee /etc/iscsi.conf

t0 {
TargetAddress = 172.31.1.10
TargetName = iqn.2005-10.org.freenas.ctl:freebsd
AuthMethod = CHAP
chapIName = freebsd
chapSecret = freebsd123456
}

4. Aps criao do arquivo, vamos realizar a conexo com iSCSI Target atravs do nickname
(apelido) definido no arquivo de configurao /etc/iscsi.conf:

# iscsictl -An t0

Onde:
t0: Nome do nickname definido no arquivo de configurao para o Target do servidor
FreeNAS.

A figura a seguir demonstra o sucesso na conexo com volume iSCSI. O volume foi identificado
como device da1:

253
4.6 Entendendo o Banco de Dados do FreeNAS
Conforme mencionado anteriormente, todas as configuraes realizadas na interface de
gerenciamento web do FreeNAS so armazenadas em um banco de dados de configuraes no
formato SQL (Structured Query Language). Basicamente o SQL uma linguagem de consulta
estruturada utilizada pela grande maioria dos bancos de dados relacionais existentes. Dessa forma, a
linguagem SQL divida em subconjuntos de acordo com as operaes que se deseje realizar no
banco de dados, seja insero, atualizao, consulta de dados entre outras operaes. Todas essas
operaes so implementadas por um sistema gerenciador de banco de dados, conhecido como
SGDB. No caso do FreeNAS, o SGDB utilizado o Sqlite. O Sqlite uma biblioteca em linguagem
C que implementa um banco de dados embutido, ou seja, se comporta como um SGDB. O uso do
SQLite recomendado onde a simplicidade da administrao, implementao e manuteno so
mais importantes que incontveis recursos que SGBDs mais voltados para aplicaes complexas
possivelmente implementam. As situaes onde a simplicidade a melhor escolha so muito mais
freqentes do que pode-se imaginar.
O arquivo do banco de dados do FreeNAS o seguinte:

/data/freenas-v1.db

extremamente recomendado que toda e qualquer operao no banco de dados do FreeNAS seja
realizada com muita cautela, afinal trata-se do banco de dados de configurao do sistema. Antes de
qualquer edio no arquivo via SQL, recomendado um backup das configuraes via interface de
gerenciamento web (conforme demonstrado em tpicos anteriores). Tambm interessante fazer
uma cpia do prprio arquivo .db, por exemplo:

# cp -p /data/freenas-v1.db /data/freenas-v1_backup.db

Para acessar o banco de dados do FreeNAS via CLI:

# sqlite3 /data/freenas-v1.db

Para verificar as tabelas existentes dentro do banco de dados do FreeNAS:

sqlite> .tables

254
Para verificar o schema (estrutura) de uma tabela em especfico. Nesse exemplo, vamos verificar a
estrutura da tabela responsvel pelas rotas estticas:

sqlite> .schema network_staticroute


CREATE TABLE "network_staticroute" ("sr_description" varchar(120) NOT NULL,
"sr_destination" varchar(120) NOT NULL, "id" integer PRIMARY KEY, "sr_gateway"
varchar(42) NOT NULL);

Para consultar os dados presentes em uma tabela do banco de dados, utilizamos a instruo SQL
select. O exemplo a seguir demonstrado sobre a tabela network_staticroute. Observe
atentamente que no final de cada instruo SQL necessrio finaliza-la com o caractere ; (ponto e
vrgula) para que funcione corretamente:

sqlite> select * from network_staticroute;


Nameserver1|200.204.0.10/32|1|192.168.255.254
Nameserver2|200.204.0.138/32|2|192.168.255.254
Nameserver3|8.8.8.8/32|3|192.168.255.254
NTP1|200.160.0.8/32|4|192.168.255.254
NTP2|200.192.232.8/32|5|192.168.255.254

Para inserir novos dados em uma tabela do banco de dados, utilizamos a instruo SQL insert. O
exemplo a seguir demonstrado sobre a tabela network_staticroute. Vamos inserir um novo
registro como sendo uma nova rota esttica:

sqlite> insert into network_staticroute values ("Nameserver4" , "8.8.4.4/32" , "6" ,


"192.168.255.254");

Explicando o comando insert anterior:


insert into: Instruo SQL para insero de dados;

network_staticroute: Nome da tabela na qual o novo registro com os dados sero inseridos;

values: Instruo utilizada para especificar os dados que sero inseridos. Observe que os
dados so separados por ponto e vrgula;
Namserver4: Descrio da rota esttica;

8.8.4.4/32: Subrede/IP de destino;

6: ID do registro na tabela de rotas estticas;

192.168.255.254: Default gateway que ser utilizado para alcanar a subrede/IP de destino
(nesse exemplo 8.8.4.4).

255
Nota Importante: Aps inserir os dados via banco de dados, estes iro aparecer automaticamente
na interface de gerenciamento web do FreeNAS.

Para atualizar dados presentes no banco de dados do FreeNAS, utilizamos a instruo SQL
update. O exemplo a seguir demonstrado sobre a tabela network_staticroute. Vamos atualizar
o default gateway da rota esttica com id igual a 6 inserida no exemplo anterior. O valor atual do
default gateway para essa rota esttica 192.168.255.254. Vamos alter-lo para 192.168.255.1:

sqlite> update network_staticroute set sr_gateway="192.168.255.1" where id="6";

Aps aplicao do comando update, podemos visualizar que a alterao foi realizada com
sucesso:

sqlite> select * from network_staticroute where id=6;


Nameserver4|8.8.4.4/32|6|192.168.255.1

Para deletar um registro de dados do banco de dados utilizamos a instruo SQL delete. O
exemplo a seguir demonstrado sobre a tabela network_staticroute. Vamos excluir o registro com
id igual a 6 inserido anteriormente:

sqlite> delete from network_staticroute where id=6;

Tpico 5: Aulas Extras


Esse tpico contm aulas extras focando na instalao do FreeNAS 9.10 e tambm no upgrade da
verso 9.3 para verso 9.10. Tambm, ser demonstrado operao com plugins, jails e integrao do
FreeNAS com a soluo de backup open source Bacula.

5.1 Instalao do FreeNAS 9.10 e Upgrade do FreeNAS 9.3


para 9.10
Recentemente o release 9.10 foi lanado. Nesse novo release, muitos bugs presentes na verso
anterior (9.3) foram corrigidos bem como novas funcionalidade foram adicionadas.
Para realizar download da verso 9.10 do FreeNAS, basta acessar o seguinte link:
http://www.freenas.org/download/

256
O arquivo de ReleaseNotes para essa nova verso do FreeNAS pode ser visualizado atravs do
seguinte link:
http://download.freenas.org/latest/ReleaseNotes

A listagem completa dos bugs que foram corrigidos est disponvel no seguinte link:
http://download.freenas.org/latest/ChangeLog

O processo de instalao da verso 9.10 do FreeNAS similar ao processo de instalao j


abordado da verso 9.3.
J o processo de upgrade da verso 9.3 para verso 9.10 somente pode ser realizado atravs do
arquivo .ISO de instalao da verso 9.10. Nesse caso, o processo de upgrade via interface de
gerenciamento web via arquivo .txz no est disponvel.
No processo de upgrade via arquivo .ISO, basta programar o FreeNAS 9.3 para realizar o boot via
arquivo .ISO de instalao da verso 9.10 e escolher a opo Upgrade.

5.2 Overview sobre Plugins para o FreeNAS


A partir da verso 8.2 do FreeNAS o suporte a instalao de softwares adicionais foi implementado.
Tais softwares adicionais so chamados de Plugins.
Essa arquitetura de Plugins baseado no FreeBSD Jails e PC-BSD 9.x PBI's. Isso permite que os
administradores do FreeNAS realize a instalao e configurao de aplicaes adicionais para o
ambiente, provendo dessa forma novos recursos/funcionalidades.
As aplicaes providas pelos Plugins so executadas no que chamados de Plugins Jails. O recurso
de Jail basicamente um mecanismo capaz de implementar a virtualizao/isolao de uma
aplicao a nvel de sistema operacional, provendo vrios benefcios, dentre eles maior segurana
para execuo da aplicao.
A partir do FreeNAS 9.x existem dois mtodos que podem ser utilizados para instalao de Plugins.
So eles:

Mtodo 01 Plugin Method


Nesse mtodo de instalao o administrador do FreeNAS pode instalar e configurar os plugins
disponveis atravs da interface de gerenciamento web. Esse mtodo de instalao bem simples de
realizar, porm o administrador fica limitado aos plugins disponibilizados na interface web. Para
cada aplicao instalada ser criada automticamente uma Jail (gaiola) para que a aplicao possa

257
ser executada somente nesse espao.

Mtodo 02 Jail Method


Nesse mtodo de instalao temos um maior controle sobre a aplicao sendo instalada, porm
exige que o administrador do sistema tenha familiaridade em operar com a CLI (Command Line
Interface).
Iremos demonstrar a instalao de Plugins atravs do mtodo 01.
Vrios benefcios podem ser encontrados atravs da instalao de Plugins via interface de
gerenciamento web. Como por exemplo:
Possibilidade de visualizar graficamente os plugins disponveis para instalao e plugins
devidamente j instalados;
Opes para gerenciamento dos plugins instalados como por exemplo iniciar plugins, parar
plugins e deletar plugins;
Alguns plugins possuem configuraes adicionais e, em alguns casos, essas configuraes
podem ser realizadas tambm pela interface de gerenciamento web.

Para visualizar os Plugins disponveis no FreeNAS:


Acessar a interface de gerenciamento web Menu Plugins clicar na opo Available

Nota Importante: Para poder instalar um plugin ou mesmo visualizar os plugins disponveis para
instalao necessrio ter pelo menos um volume ZFS existente no sistema FreeNAS. Caso
contrrio, ao acessar o menu Plugins a seguinte mensagem de erro ser exibida:

Dessa forma, realize a criao do volume ZFS para prosseguir com o acesso ao menu de Plugins:

258
5.3 Instalao de Plugins no FreeNAS (bacula-sd)
Como exemplo, vamos instalar o Plugin chamado bacula-sd. Basta selecionar o Plugin bacula-
sd e clicar na opo Install. Aguardar alguns minutos para que a instalao possa ser realizada
com sucesso.
Nota Importante: recomendado esperar que o processo de instalao do Plugin seja finalizado
por completo antes de realizar novas atividades dentro do sistema FreeNAS.

Aps finalizar o processo de instalao, podemos visualizar o Plugin instalado atravs do menu
Plugins aba Installed:

259
5.4 Gerenciamento dos Plugins para o FreeNAS
Conforme podemos visualizar na figura anterior, vrios informaes esto disponveis a respeito do
Plugin instalado (bacula-sd):
Nome do Plugin;

Verso do Plugin;

PBI (verso do plugin e para qual plataforma este plugin pode ser utilizado);

Nome do Jail que ser utilizado pelo Plugin.

Acessando o FreeNAS via CLI (Command Line Interface), podemos visualizar que um ponto de
montagem no filesystem para ser utilizado pelo Jail foi criado. Podemos visualizar isso atravs da
aplicao do comando df:

Nota Importante: vlido ressaltar que alguns plugins no podem ser iniciados sem que a sua
configurao seja devidamente realizada com antecedncia:
Essa configurao pode ser tanto via interface grfica (quando o plugin possui esse suporte);

Ou via CLI, atravs da edio dos arquivos de configurao relacionados ao referido plugin.

Algumas aplicaes imstaladas requerem acesso ao storage para funcionamento. Dessa forma,
necessrio clicar na Jail utilizada pela aplicao e fazer os ajustes necessrios. No devemos
esqueer que para cada plugin instalado via interface grfica uma jail ser criada para que a
aplicao seja executada sobre a jail.

260
5.5 Entendendo em mais detalhes o que um Jail
A partir do FreeNAS 9.X, dois tipos de Jail so suportados:
FreeBSD Jail: Opo padro de utilizao para Jail. Esse mtodo proporciona virtualizao
da aplicao a nvel de sistema operacional, tornando a aplicao em execuo da Jail
totalmente independente ao sistema FreeNAS;
Virtualbox Template Jail: Um modelo (template) fornecido. Atravs desse template
possvel instalar instncias do phpVirtualBox que ir funcionar como front-end para o
sistema de virtualizao VirtualBox. Dessa forma, qualquer sistema operacional pode ser
instalado:
Muita ateno com os recursos de hardware existentes no servidor FreeNAS;

Evitar exaustao de recursos;

Fazer um correto dimencionamento para evitar problemas futuros;

Tenho mesmo que usar esse recurso???

Nota Importante: Quando cada Jail criada, para que a mesma possa funcionar de forma
independente do servidor FreeNAS, a opo VIMAGE deve ser desmarcada.
Dessa forma, cada Jail possuir um endereamento IP diferente do servidor FreeNAS, porm da
mesma subrede IP. No caso da existncia de mltiplas interfaces de rede no FreeNAS, a interface
escolhida para ser utilizada nas Jail's a interface na qual o recurso de default gateway est
disponvel:
A interface de rede virtual epair ser criada pelo FreeNAS para cada Jail em execuo
(running state);
Essa interface de rede virtual faz uma associao com qual interface de rede fsica ser
utilizada de forma efetiva pelas aplicaes em execuo em cada Jail.

Se a interface fsica em0 for utilizada no FreeNAS como interface utilizada como acesso ao default
gateway, as seguintes interfaces virtuais sero criadas de forma automtica:
Bridge0, epair0a, epair1a, epair2a;

A interface fsica em0 ser adicionada a bridge criada, como tambm as interfaces epair.

261
Exemplos:
Interface fsica utilizada no FreeNAS de laboratrio, na qual possui default gateway (em1):

Interface bridge e epair. Observe as opes member dentro da interface bridge0. possvel
observar claramente as associaes realizadas entre interface fsica e interfaces virtuais:

Acessando a Jail chamada bacula-sd_1 criada de forma automtica no processo de instalao do


plugin bacula-sd:
Acesso a interface de gerenciamento web do FreeNAS Menu Jails aba Jails;

Selecionar a Jail existente (bacula-sd) e clicar na opo Shell:

262
Uma CLI ser disponibilizada. Essa a CLI da Jail onde a mesma dedicada para execuo da
aplicao bacula-sd. Podemos aplicar o comando ifconfig e visualizar as interfaces de rede.
Visualizando a interface em1 da Jail:

263
Visualizando as interfaces bridge e epair da Jail:

Ao editar as configuraes da Jail bacula-sd possvel comprovar que a opo VIMAGE est
desmarcada, o que faz com que a Jail responda de forma independente na rede:

264
Outras opes podem ser ajustadas para uma Jail em especfico, como por exemplo, qual storage ela
ir utilizar do servidor FreeNAS.
recomendado que cada Jail utilize um ZFS Dataset em separado. Isso facilita todo gerenciamento
(snapshot, replicao, clone, permisses, etc).
Para configurar o storage para Jail do bacula-sd, acessar a interface de gerenciamento web do
FreeNAS menu Jail aba Storage. Basta selecinar a Jail e clicar em Edit para acessar as
configuraes.
A figura a seguir exemplifica o processo de configurao de storage:

265
5.6 Laboratrio: Integrao do FreeNAS com a soluo de
backup Bacula
O FreeNAS pode ser utilizado como ponto de armazenamento para a soluo de backup em rede
Bacula. O Bacula a ferramenta open source lder de mercado no segmento de backup.
Basicamente o Bacula uma suite de programas que permite que o administrador realize o
gerenciamento dos backups, recuperao e verificao dos dados via rede.
Trata-se de uma soluo baseada no modelo cliente/servidor, que possui trs servios/daemons
principais, so eles:
Bacula DIR = Director Daemon

Bacula SD = Storage Daemon

Bacula FD = File Daemon

Cada servio/daemon possui funcionalidades distintas dentro da arquitetura de backup utilizando


Bacula. O mesmo servidor pode executar todos os servios/daemons, porm podemos executar o
bacula-dir em um servidor XPTO e os demais daemons, como o bacula-sd (por exemplo), em outro
servidor XYZ. Todas as informaes referente as rotinas de backup, clientes que iro ser protegidos
com as rotinas de backup, agendamentos, etc so armazenadas em um banco de dados, comumente
PostgreSQL ou MySQL. Tais informaes chamamos tecnicamente de Catlogo.

266
A figura a seguir exemplifica a topologia completa da soluo de backup Bacula:

Podemos utilizar 02 mtodos para realizar a integrao do FreeNAS com Bacula:

Mtodo 01: Utilizando Plugin do bacula-sd no FreeNAS;


Nesse mtodo, o servidor FreeNAS ir executar o servio/daemon bacula-sd do Bacula, passando a
ser o storage para o armazenamento dos volumes criados pelo Bacula para o armazenamento dos
dados backupeados. A transferncia dos dados ser gerenciada pelos prprios servios/daemons
do Bacula.

Mtodo 02: Utilizando Share NFS no FreeNAS;


Nesse mtodo, um compartilhamento NFS criado no servidor FreeNAS. O servidor Bacula realiza
a montagem desse compartilhamento NFS em seu sistema, tornando o acesso possvel via ponto de
montagem (/mnt/nfs, por exemplo). A transferncia dos dados ser via protocolo NFS. Como
alternativa ao NFS podemos tambm utilizar compartilhamentos do tipo iSCSI ou CIFS. Iremos
utilizar o Mtodo 01 em nosso Laboratrio!

267
Topologia do Laboratrio para o Mtodo 01 Utilizando Plugin do bacula-sd no FreeNAS
Servidor Bacula:
Verso do Bacula 5.2.12, pacote source (fonte);

Download: https://sourceforge.net/projects/bacula/files/bacula/5.2.12/;

Todos os daemons em execuo (dir, sd e fd);

Sistema Operacional Debian Jessie 8.3 x64;

Download: http://cdimage.debian.org/debian-cd/8.3.0/amd64/iso-cd/ ;

Interfaces de Rede do Servidor Bacula:

01 interface de rede em modo Bridge no VirtualBox para gerenciamento;

01 interface de rede em modo Internal Network (vswitch) para comunicao com


servidor FreeNAS.

Servidor FreeNAS:
Release 9.10 x64;

Download: http://www.freenas.org/download-freenas-release/ ;

Plugin bacula-sd instalado;

Interfaces de Rede do Servidor FreeNAS:

01 interface de rede em modo Bridge no VirtualBox para gerenciamento;

01 interface de rede em modo Internal Network (vswitch) para comunicao com


servidor Bacula;
Discos:

01 disco virtual de 10 GB para criao do ZFS Pool / ZFS Dataset que ser utilizado
pela Jail do plugin bacula-sd.

Nota Importante: Estamos utilizando a verso 5.2.12 do Bacula Server (Director) para manter a
compatibilidade de verso com o plugin do Bacula que ser utilizado no FreeNAS release 9.10.
Testes de integrao com Bacula Server (Director) na verso 7.4 foram realizados sem sucesso
utilizando o bacula-sd verso 5.2.12 disponvel no FreeNAS.
Isso devido as verso do Director Daemon e Storage daemon no serem a mesma uma
exigncia que ambos daemons possuam a mesma verso:

268
http://blog.bacula.org/category/releases/

Configuraes no Servidor Bacula:


Nesse ponto o servidor Bacula j deve estar operacional:

Interfaces de rede do servidor Bacula:

Ajustar o arquivo de configurao do Bacula Director (etc/bacula/bacula-dir.conf) e inserir a


entrada Storage que ir apontar para o servidor FreeNAS:

269
Aplicar restart no servio/daemon do Bacula Director. Caso estiver utilizando hostname ou
FQDN na opo Storage do Bacula Directory, tenha certeza de que a resoluo de nomes est
ocorrendo de forma adequada:

Configuraes no Servidor FreeNAS:


No servidor FreeNAS realizar a instalao do Plugin bacula-sd:
Menu Plugins aba Available selecionar o plugin bacula-sd Install.

Feito a instalao, o plugin bacula-sd poder ser visualizado na aba Installed. Uma jail ser criada
para execuo desse plugin (Menu Jails aba Jails):

Devemos adicionar um Storage para a Jail do bacula-sd. Esse processo basicamente permitir que
a Jail tenha acesso a um ZFS Dataset especifco. Dessa forma, os volumes do Bacula utilizaro esse
ZFS Dataset. Aps criar o ZFS Dataset, adicionar a Jail bacula-sd:
Menu Jails aba Storage Add Storage.

A figura a seguir exemplifica o processo:

270
Onde:
Source: Ponto de montagem do ZFS Dataset no sistema FreeNAS;

Destination: Ponto de montagem do ZFS Dataset no sistema em execuo dentro da Jail.

Devemos configurar a parte de rede da Jail do bacula-sd para que a Jail se comporte como um
sistema indepedente do servidor FreeNAS. Nesse caso, a Jail ir possuir um endereamento IP na
mesma subrede IP do servidor FreeNAS na qual ser utilizado para conexo do servidor Bacula.
Devemos selecionar a Jail do bacula-sd e editar as suas configuraes. Ajustar os campos:
Ipv4 Address;

Ipv4 Netmask;

Selecionar a interface de rede fsica na opo NIC;

Desmarcar a opo VIMAGE.

O prximo passo ajustar as configuraes do arquivo de configurao do storage daemon no


servidor FreeNAS. Para essa tarefa, vamos acessar a Jail via Shell e fazer as configuraes via CLI
(Command Line Interface):

271
Acessar a interface de gerenciamento web do FreeNAS Menu Jails aba Jails
Selecionar a jail do bacula-sd Clicar na opo Shell na parte inferior da tela.

A figura a seguir exemplifica o processo:

Acessar o diretrio /usr/pbi/bacula-sd-amd64/etc/bacula e editar o arquivo de configurao bacula-


sd.conf. Ajustar a entrada Storage conforme ilustra a figura a seguir:

Ainda no arquivo de configurao bacula-sd.conf, ajustar as entradas Director conforme ilustra


a figura a seguir:

272
Ainda no arquivo de configurao bacula-sd.conf, ajustar a entrada Device conforme ilustra a
figura a seguir. Observe que aqui que indicamos a path absoluta de onde os volumes do Bacula
sero armazenados:

Ainda no arquivo de configurao bacula-sd.conf, para finalizar, ajustar a entrada Messages


conforme ilustra a figura a seguir:

Para que o servio/daemon do bacula-sd possa ser executado, devemos inserir uma linha de
configurao no arquivo /etc/rc.conf dentro da Jail do bacula-sd permitindo isso. Editar o arquivo

273
/etc/rc.conf (ee /etc/rc.conf);
Inserir no final do arquivo a linha:
bacula_sd_enable=YES

Iniciar o servio/daemon do bacula-sd:


/usr/pbi/bacula-sd-amd64/etc/rc.d/bacula-sd start

A figura a seguir exemplifica o processo:

Realizao de Testes:
No servidor Bacula, realizar teste de conexo com Storage FreeNAS:

274
No servidor Bacula, executando um job de backup:

No ponto de montagem dentro da Jail possvel verificar a presena dos volumes do Bacula:

Importante: Para que tudo funcione, as permisses do ZFS Dataset utilizado como Storage para a
Jail e as permisses de Filesystem dentro da Jail para o ponto de montagem devem estar ajustadas
adequadamente. Como exemplo, deixamos aberta (777) apenas para exemplificar o processo.
As figuras a seguir demonstram as permisses tanto do ZFS Dataset utilizado quanto do ponto de
montagem na Jail:

275
276
5.7 Provendo compartilhamentos para clientes Macintosh
(MAC OS X) via AFP (Apple File Protocol/Apple File
Shares)
O FreeNAS utiliza o servio/daemon chamado Netatalk AFP Server para prover
compartilhamentos para clientes com sistemas Apple. O servio/daemon Netatalk trata-se de uma
soluo Open Source para implementao do protocolo AFP (Apple File Protocol / Apple Share
Server). Pode ser implementado em vrios sistemas *NIX / *BSD para prover compartilhamentos
para clientes Apple. Mais detalhes: http://netatalk.sourceforge.net/3.0/htmldocs.
No servidor FreeNAS de laboratrio, vamos criar um ZFS Pool chamado mac-pool composto por
apenas 01 disco rgido virtual de 10 GB.
Criao de 03 ZFS Datasets:
01 ZFS Dataset para acesso Guest;

01 ZFS Dataset para acesso autenticado;

01 ZFS Dataset para backup dos dados do usurio autenticado (recurso Time Machine do
MAC OS X).

O primeiro passo realizar a criao do ZFS Pool chamado mac-pool para armazenamento dos
ZFS Datasets a serem utilizados pelos clientes Macintosh. Para realizar a criao do ZFS Pool:
Acessar a interface de gerenciamento web do FreeNAS menu Storage aba Volumes
Clicar em Volume Manager;
Criar o ZFS Pool com nome mac-pool;

Adicionar o disco rgido virtual disponvel de 10 GB nesse ZFS Pool;

Vamos utilizar 03 ZFS Datasets hierarquicamente abaixo do ZFS Pool, onde:

mac-guest 2 GB

mac-auth 2 GB

mac-time_machine 2 GB

277
278
Aps criao dos ZFS Datasets necessrios, vamos criar o compartilhamento AFP mac-auth (acesso
autenticado):
Menu Sharing aba Apple (AFP) Clicar em Add Apple (AFP) Share:

279
Onde:
Path: Ponto de montagem do ZFS Dataset na qual ser utilizado para o compartilhamento;

Name: Nome do compartilhamento que ser exibido para os clientes Macintosh.

Vamos organizar os usurios Apple em um grupo no sistema chamado mac-users. Para criao do
grupo de usurios:
Menu Account aba Groups Clicar na opo Add Group:

Vamos criar um usurio chamado mac-user001 e fazer com que este seja integrante do grupo
mac-users:

Vamos agora editar o compartilhamento AFP mac-auth e acessar as configuraes avanadas


atravs da opo Advanced Mode. Basicamente, vamos definir:
Allow List: @mac-users

Read-write Access: @mac-users

280
Dessa forma, esperado que somente os usurios presentes no grupo de usurios chamado mac-
users possa ter acesso ao compartilhamento mac-auth. E, alm disso, somente os usurios
presentes no grupo mac-users podero ter acesso de escrita no compartilhamento.

Vamos agora realizar os testes no cliente com MAC OS X. Primeiramente, configurao de rede no
MAC OS X para acessar os servios providos pelo servidor FreeNAS. Testes:
Testes de conectividade por ICMP para validar conexo;

Testes de acesso ao compartilhamento mac-auth.

As figuras a seguir tem como objetivo exemplificar o processo:


Configurao de rede no cliente MAC OS X:

281
Teste de conectividade do cliente Apple (MAC OS X) com servidor FreeNAS:

No MAC OS X, acessar a partir do menu Go a opo Connect to Server:


Digitar:
afp://<servidor_freenas>

afp://172.31.200.200

282
Inserir as crednciais de acesso do usurio mac-user001:

Nota Importante: Alm das tratativas de permisses no compartilhamento AFP, necessrio tratar
as permisses do ZFS Dataset (Filesystem) para que os usurios do grupo mac-users possam
gravar no compartilhamento. O usurio dono do ZFS Dataset mac-auth vamos deixar com valor
padro (root). O grupo dono do ZFS Dataset mac-auth vamos alterar de wheel para o grupo
mac-users. E vamos ajustar as permisses de acesso para 770, onde:
Primeiro 7 = Acesso FULL (read/write/execute) para usurio dono;

Segundo 7 = Acesso FULL (read/write/execute) para grupo dono;

0 = Sem acesso para outros usurios.

A figura a seguir exemplifica o processo de configurao:

283
Aps ajuste das permisses podemos acessar o compartilhamento e gravar arquivos e diretrios
normalmente:

284
Acessando o servidor FreeNAS via CLI, podemos visualizar os arquivos presentes dentro do ponto
de montagem do ZFS Dataset utilizado pelo compartilhamento AFP:

Agora, com auxlio do Wizard vamos criar o compartilhamento AFP mac-guest com objetivo de
permitir acesso guest (sem autenticao) para o compartilhamento. Todos os acessos sero
mapeados via usurio nobody (usurio do sistema). Nas configuraes do servio/daemon AFP o
box Guest Access deve estar marcado para que seja permitido conexes guest a
compartilhamento. As permisses de Filesystem devem estar adequadas. Utilizando o Wizard para a
criao do compartilhamento, este j realizada todos os ajustes de permisses necessrios, bem
como a criao do ZFS Dataset.
Configuraes do servio AFP:

285
Para executar o Wizard, basta acessa o Menu

286
Aps concluso do Wizard, tanto o ZFS Dataset mac-guest quanto o compartilhamento AFP
foram criados com sucesso:

A partir do cliente Apple (MAC OS X), fazer testes para validar acesso ao compartilhamento mac-
guest:
Observe que o acesso realizado com sucesso;

E que estamos conectados via usurio Guest.

A figura a seguir evidncia o processo de acesso como Guest:

287
Podemos criar arquivos/diretrios sem nenhuma restrio dentro do compartilhamento. Observe que
tambm possvel visualizar os diretrios criados via CLI no FreeNAS:

Nota Importante: possvel utilizar compartilhamentos AFP tanto exigindo autenticao quanto
sem exigir autenticao (acesso Guest). Do ponto de vista do servidor FreeNAS nada muda, porm,
quando o usurio for realizar o acesso basta este especificar o compartilhamento no momento do
acesso.
Exemplo de acesso a compartilhamento com autenticao:

Exemplo de acesso a compartilhamento guest (sem autenticao):

288
5.7.1 Configurando o servio Time Machine no MAC OS X para backup
dos dados do usurio para o Servidor FreeNAS
O MAC OS X possui um servio chamado de Time Machine utilizado para criar agendamentos para
backup automtico do sistema e bem como arquivos do usurio.
Nesse cenrio, iremos configurar o servio Time Machine do MAC OS X para enviar de forma
automtica e agendada backups do usurio para um compartilhamento AFP, devidamente
configurado para funcionar como Time Machine Share.
Uma recomendao criar um compartilhamento AFP Time Machine para cada usurio que for
utilizar esse recurso juntamente com o servidor FreeNAS. Ou seja, o servidor FreeNAS servir
como Backup Server para os clientes MAC OS X.
O primeiro passo criar o ZFS Dataset mac-time_machine. Vamos ajustar as permisses do ZFS
Dataset mac-time_machine para que o usurio mac-user001 seja usurio dono. Demais
permisses 700:

289
Importante tambm definir qual uma Quota mxima para utilizao do ZFS Dataset mac-
time_machine. Nesse exemplo, definimos Quota mxima para 2 GiB:

A seguir, criar o compartilhamento AFP ativando a opo Time Machine e ajustando as


permisses de acesso para o usurio mac-user001:

290
O prximo passo configurar o servio Time Machine no MAC OS X:
Acessar o menu System Preferences Time Machine. Basta selecionar a chave seletora
para a posio ON;
Automticamente o servio de Time Machine ir encontrar o compartilhamento mac-
time_machine provido pelo servidor FreeNAS;
Basta selecionar o compartilhamento e clicar na opo Use Backup Disk;

Ser necessrio inserir as crednciais de acesso do usurio mac-user001.

As figuras a seguir tem por objetivo exemplificar o processo de configurao:

291
292
Nota Importante: Aps ativado com sucesso o recurso de Time Machine, o primeiro backup
FULL ir ocorrer automaticamente aps 2 minutos (120 segundos).
Fazendo esse backup FULL com sucesso, backups INCREMENTAIS iro ocorrer a cada 1 hora
no perodo de 24 horas. Depois, 1 backup por dia. Depois, 1 backup por ms.
Os backups mais antigos sero automaticamente deletados para poder armazenar novos backups
(rotacionamento automtico dos backups). Certifique-se que tenha espao suficiente disponvel no
servidor FreeNAS para armazenar o montante de informaes!

Nota Importante 2: Caso necessrio, podemos extender o ZFS Pool mac-pool. Devemos
primeiramente adicionar mais discos a VM e fazer os ajustes necessrios via Volume Manager:
Acessar o menu Storage aba Volumes Volume Manager. Em Volume to Extend
escolher o volume mac-pool e selecionar o disco que deseja inserir para o ZFS Pool.

As figuras a seguir exemplificam o processo:

293
294
5.8 Laboratrio: Trabalhando com Encriptao de Volumes
FreeNAS possui suporte a criptografia de disco desde a sua verso 8.3.1 (full disk encryption on
ZFS Volumes).
Geli Utilitrio responsvel pelo controle do processo de criptografia:
Mais detalhes: http://www.freebsd.org/cgi/man.cgi?query=geli.

A encriptao utilizada no volume ZFS no FreeNAS no a mesma utilizada em sistema Oracle,


uma vez que sistemas Oracle utilizam esquemas de criptografia proprietrios.
A encriptao no FreeNAS a nvel de disco (Full Encryption) e no a nvel de file system (per-
filesystem).
A utilizao do processo de criptografia somente recomendada nos casos onde deseja-se
armazenar informaes de extrema sensibilidade.
Caso o disco encriptado seja removido do ZFS Pool, os dados presentes neste estaro ilegveis para
quem no possui permisso para acess-los.
A chave de acesso (chave para descriptografar) os discos deve ser protegida em local seguro e de
acesso controlado. Se a chave for perdida, os dados nunca mais podero ser acessados. Faa backup
regularmente da chave, de preferncia em vrios locais diferentes. Uma chave de encriptao ser
criada para cada ZFS Pool. No caso da existncia de vrios ZFS Pool, cada um ter a sua chave de
encriptao. Quando maior a quantidade de discos que sero criptografados, mais
processamento ser exigido do servidor FreeNAS.
Quando os dados so gravados (writing), o processo de encriptao ocorre de forma automtica.
Quando os dados so lidos (reading), o processo de decriptao ocorre on-the-fly.
Dados presentes no cache ARC do ZFS e em memria no esto criptografados. So criptografados
somente quando passado para o disco. A rea de swap sempre criptografada mesmo estando em
volumes sem criptografia.
No existe uma forma de converter um ZFS Pool sem criptgrafia para operar com criptografia:
Os dados devem ser backupeados;

O ZFS Pool sem criptografia deve ser destrudo;

Um novo ZFS Pool com suporte a encriptao deve ser criado;

Backup dos dados deve ser restaurado nesse novo ZFS Pool com suporte a encriptao.

295
ZFS Pools hibrdos no so permitidos, ou seja, todos os VDEV's devem utilizar criptgrafia.
Quando um ZFS Pool com suporte a encriptao precisa ser extendido, o prprio Volume Manager
realiza a encriptao dos novos discos inseridos.
Para nosso laboratrio vamos adicionar mais 03 discos virtuais de 10 GB cada e criar um novo ZFS
Pool chamado criptopool. Nesse ZFS Pool vamos habilitar a criptografia
(encriptao/encryption):

Onde:
Disk1 at disk3 ser destinado ao ZFS Pool criptopool;

Estamos utilizando FreeNAS 9.3.

O prximo passo criar o ZFS Pool criptopool com suporte a encriptao:


Acessar a interface de gerenciamento web do FreeNAS menu Storage aba Volumes
Volume Manager;
Definir o nome do ZFS pool em Volume Name;

Marcar a opo Encryption;

Selecionar os discos que estaro presente nesse ZFS Pool em Available Disks;

Selecionar o Volume layout;

Clicar em Add Volume para adicionar/criar o ZFS Pool.

296
As figuras a seguir exemplificam o processo de criao do ZFS Pool com suporte a encriptao:

297
O prximo passo criar uma Passphrase para o ZFS Pool criptopool:
Acessar o menu Storage aba Volumes Selecionar o ZFS Pool criptopool e clicar na
opo Create Passphrase

Agora faa download da Key e armazena a mesma em um local seguro e restrito:


Selecionar o ZFS Pool criptopool e clicar na opo

Ser necessrio definir uma root password para essa key:

298
Vamos criar um ZFS Dataset chamado criptovol001. Acessando o servidor FreeNAS via SSH
possvel verificar detalhes sobre o ZFS Pool criptopool e Dataset criptovol001:

Conforme j visto anteriormente, todo ZFS Dataset possui um ponto de montagem no sistema ZFS.
Dessa forma, vamos acessar o ponto de montagem do Dataset criptovol001 e realizar a criao de
alguns arquivos e diretrios:

299
Quando estamos trabalhando com encriptao, podemos selecionar o ZFS Pool aplicar um Lock
no mesmo, ou seja, desmont-lo e prevenir a sua utilizao. Aps aplicar esse recurso, todos os ZFS
Datasets hierarquicamente abaixo ficaro indisponveis de forma imediata. Para aplicar um Lock
no ZFS Pool criptopool para selecion-lo e clicar na opo com um cadeado na parte inferior.

As figuras a seguir tem por objetivo demonstrar o processo de Lock do ZFS Pool:

300
Nota Importante: Observe o campo Status na qual demonstra que o ZFS Pool est em Locked,
ou seja, todos ZFS Datasets esto indisponveis (protegidos).
Essa opo deve ser utilizada com muito cuidado pois impactos ao ambiente podero ser
ocasionados!
Para destravar (unlock) o ZFS Pool criptopool necessrio inserir a Passphrase para o ZFS
Pool.

A figura a seguir demonstra o processo de unlock do ZFS Pool:

O processo de unlock do ZFS Pool pode demorar alguns momentos.

301
Nota Importante: Caso necessrio reiniciar o servidor FreeNAS, o ZFS Pool encriptado ir
retornar com status em LOCKED:

Clique na opo do cadeado para destravar o ZFS Pool criptopool:

Para realizar o processo de extending em um ZFS Pool encriptado necessrio ter em mente que
tanto a Passphrase quanto a Recovery Key sero resetadas. Dessa forma, logo aps o processo
de exteding o administrador do FreeNAS dever gerar uma nova Passphrase e uma nova
Recovery Key.
Em resumo:
A Passphrase, recovery key e encryption key necessitam ser protegidas;

Nunca releve a Passphrase para pessoas no so autorizadas;

Faa backup regular da recovery key em vrios locais seguros e de fcil acesso;

Todas essas informaes sero necessrias para gerenciamento do ZFS Pool encriptado
(lock, unlock, troca de discos, etc).

302
Simulando a falha de um disco rgido e troca por outro disco rgido:
Desligar o servidor FreeNAS;

Remover o disco disk3.vdi da VM do FreeNAS no VirtualBox;

Insero de um novo disco (disk4.vdi) na VM do FreeNAS no VirtualBox:

Aps remoo do disk3.vdi e insero do disk4.vdi, ligar a VM do FreeNAS;

Destravar o ZFS Pool criptopool;

Ser possvel detectar que o ZFS Pool estar com status de DEGRADED devido a
remoo do disk3.vdi:

Verificando status do ZFS Pool criptopool via CLI:

303
Alert do sistema:

No menu Storage aba Volumes Selecionar o ZFS Pool criptopool e clicar na opo
Volume Status:
Selecionar o novo disco que estar com status de UNAVAIL e clicar no boto
Replace para que este possa fazer parte do ZFS Pool e corrigir o status de
DEGRADED do ZFS Pool.

304
As figuras a seguir tem por objetivo exemplificar o processo de configurao:

Basta aguardar alguns momentos que o processo de Resilver (similar ao rebuild do RAID) ser
realizado e tanto o novo disco quanto o ZFS Pool ficaro com status em ONLINE:

305
Verificando status do ZFS Pool criptopool aps Resilver do novo disco via CLI:

Aplicar reboot no servidor FreeNAS. Criar uma nova Passphrase para o ZFS Pool, pois no
processo de Resilver do disco a Passphrase foi resetada. Adicionar uma nova Recovery Key e
fazer download da mesma:
Clicar no ZFS Pool criptopool e clicar na opo Add recovery key:

Aplicar um Lock no ZFS Pool criptopool. Destravar o ZFS Pool criptopool com a nova
Passphrase e com a nova Recovery Key.

306
Referncias
Todas as URL's utilizadas para auxiliar na confeco dessa apostila tnica esto relacionadas a
seguir. O acesso a cada URL foi confirmado novamente em 21/02/2016 entre 22:00 e 23:00:

http://doc.freenas.org/9.3/freenas.html

http://olddoc.freenas.org/index.php/Main_Page

http://www.freenas.org/about/history.html

http://www.freenas.org/faq/

https://www.freebsd.org/doc/handbook/zfs-term.html

https://wiki.freebsd.org/RootOnZFS

http://open-zfs.org/wiki/Main_Page

https://wiki.freebsd.org/ZFSTuningGuide

https://en.wikipedia.org/wiki/Network-attached_storage#Description

https://en.wikipedia.org/wiki/Storage_area_network

https://en.wikipedia.org/wiki/Network_File_System

https://pt.wikipedia.org/wiki/SQL

https://pt.wikipedia.org/wiki/Sistema_de_gerenciamento_de_banco_de_dados

https://pt.wikipedia.org/wiki/SQLite

307