Backup com servidor FreeNAS

Neste post abordarei uma solução simples e funcional para backup em redes caseiras ou até mesmo de pequenos negócios, utilizando FreeNAS (FreeBSD) como servidor e maquinas Windows e Linux como clientes. Não entrarei em detalhes de configuração, pois este não é o objetivo, ok?




Antes de mais nada, esta não seria a melhor solução para backup, mas funciona bem, resolve o problema, não derruba a rede com tráfego excessivo de dados, é simples de implementar, de baixo custo e baixa manutenção.




Porque utilizar o FreeNAS 7?
Pequeno (cabe em um pen drive de 500mb), leve, rápido, de fácil instalação, interface administrativa simples e completa (web-based), protocolo rsync previamente instalado e com opções de configuração gráfica via interface administrativa. Como o FreeNAS é um software voltado para armazenamento de dados, a configuração de servidores (por exemplo samba) é extremamente simples, o que possibilita várias formas de restauração e consulta de dados armazenados, bem como seu aplicativo de exploração “QuiXplore” (web-based).


SERVIDOR
Sugiro que o sistema operacional seja instalado em uma memória de estado sólido ou até mesmo um pen drive (de 1 a 2 gb), além da segurança (SSD), a partição ou disco utilizado não poderá ser utilizada para armazenamento de nada além do S.O.. Em conjunto, para armazenamento, sugiro HD(s) de 2TB.

Nesta solução de backup utilizaremos o FreeNAS como um servidor Rsync para que os clientes (computadores com windows e linux) possam sincronizar seus dados em tempos determinados, sem a necessidade de criação de regras de autenticação em compartilhamentos windows e/ou linux (o que muitas vezes gera dores de cabeça e transtornos).

Para evitar que os dados sejam acessados de forma indevida ou hackeados, sugiro que seja habilitado, no servidor Rsync, apenas a opção de escrita de dados, garantindo assim que nenhum dispositivo, interno ou externo, possa ler os dados ali armazenados (via rsync), impossibilitando a extração sem autorização. O gerenciamento de versões é feito no próprio cliente que, após o primeiro backup completo, envia para o servidor apenas os arquivos modificados.

Dependendo do ambiente onde o servidor estará funcionando, pode ser interessante o desligamento diário programado, pois com as oscilações constantes de energia, não vale a pena arriscar chegar no dia seguinte e encontrar o brinquedinho tostado.

O BACKUP
Nesta solução, cada computador cliente efetua seu backup de forma agendada da seguinte forma:

  • Os agendamentos são feitos no software do cliente;
  • Cada cliente possui 3 agendamentos com intervalo de 30 minutos (garantindo novas tentativas em caso de servidor desligado ou rede instável);
  • Em cada agendamento são feitas 5 tentativas de backup (o processo é interrompido em caso de sucesso).

OBS.: o "volume shadow copy" não está implementado neste ambiente, portanto arquivos em uso (abertos) não serão enviados para o servidor, ou seja, o backup do mesmo só será feito se eles estiverem fechados. Para sanar este problema, pode-e implementar o recurso ou então disponibilizar um script de backup manual para guardar os arquivos restantes no período desejado.

ALGUMAS CONFIGURAÇÕES
Configurações básicas do sistema:
Versão do sistema: FreeNAS-i386-0.7.2.6694
IP do servidor: 192.168.0.xxx
Administração do sistema via browser: 192.168.0.xxx
Administração de pastas e arquivos via browser: 192.168.0.xxx/quixplorer

CLIENTES

Linux
A configuração do cliente Rsync linux é extremamente simples, principalmente pelo fato de que as grandes distribuições já o tem instalado. Em nosso caso, trataremos apenas a distribuição Ubuntu.

Para criar os agendamentos podemos utilizar o software chamado “Gnome Schedule Manager”, que não é nada mais nada menos do que uma interface gráfica para inserção e controle de “Cron Jobs”. O comando para a utilização do Rsync neste aplicativo é exatamente o mesmo utilizado na linha de comando, obedecendo sua estrutura: “rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
”. Nesta linha também podem ser adicionadas várias exclusões, como por exemplo arquivos wav, mp3, avi, mov, etc (se a solução é empresarial, talvez seja bem conveniente).

Para o backup manual pode ser criado um arquivo texto sem extensão, o qual deve receber permissão de execução e pode ser colocado em uma pasta oculta (evitando alterações). Para a execução pode ser criado um lançador de "execução em terminal" direcionado para este arquivo.

Exemplo do comando para Gnome Schedule:
rsync -vzrutR --exclude='*.sys' --exclude='*.xbel' --exclude='*.DAT' --exclude='*.dat.*' --exclude='*.tmp' --exclude='*.msi' --exclude='*.exe' --exclude='*.INI' --exclude='*.dat' --exclude='*.ini' --exclude='*.lnk' --exclude='*.srt' --exclude='*.vob' --exclude='*.sub' --exclude='*.bup' --exclude='*.ifo' --exclude='*.mp3' --exclude='*.wma' --exclude='*.wav' --exclude='*.avi' --exclude='*.mp4' --exclude='*.mov' --exclude='*.wmv' --exclude=".*/" --exclude="Tempĺates/" --exclude="Ubuntu One/" --exclude="Examples/" --exclude="Música/" --exclude="Exemplos/" --exclude="Público/" ./ 192.168.0.xxx::RsyncBackupName

./ = devido ao fato de que o Gnome Schedule trata a pasta pessoal como pasta inicial de trabalho
192.168.0.xxx = ip do servidor FreeNAS
RsyncBackupName = nome dado ao backup deste usuário

Exemplo do comando utilizado para backup manual:
rsync -vzrutR --exclude='*.sys' --exclude='*.xbel' --exclude='*.DAT' --exclude='*.dat.*' --exclude='*.tmp' --exclude='*.msi' --exclude='*.exe' --exclude='*.INI' --exclude='*.dat' --exclude='*.ini' --exclude='*.lnk' --exclude='*.srt' --exclude='*.vob' --exclude='*.sub' --exclude='*.bup' --exclude='*.ifo' --exclude='*.mp3' --exclude='*.wma' --exclude='*.wav' --exclude='*.avi' --exclude='*.mp4' --exclude='*.mov' --exclude='*.wmv' --exclude=".*/" --exclude="Tempĺates/" --exclude="Ubuntu One/" --exclude="Examples/" --exclude="Música/" --exclude="Exemplos/" --exclude="Público/" /home/usuario/ 192.168.0.xxx::RsyncBackupName

/home/usuario/ = pasta de trabalho do usuário
192.168.0.xxx = ip do servidor FreeNAS
RsyncBackupName = nome dado ao backup deste usuário

Windows
Para clientes windows utilizaremos o software open source “Delta Copy”, onde podem ser inseridos agendamentos bem como as exclusões.

Para o backup manual pode ser criado um arquivo “.bat” dentro da pasta c:\DeltaCopy\ (pasta onde o software é originalmente instalado), com atalho no desktop, contendo o comando Rsync conforme a estrutura utilizada pela versão instalada (para adquirir o comando, basta clicar com o botão direito no perfil criado dentro do Delta Copy e depois selecionar a opção “mostrar comando”).

Exemplo do comando no Windows:
rsync.exe -v -rlt -z --chmod=a=rw,Da+x --exclude='NTUSER.DAT*' --exclude='bootmgr' --exclude='autoexec.bat' --exclude='BOOTSECT.BAK' --exclude='*.sys' --exclude='*.xbel' --exclude='*.DAT' --exclude='*.dat.*' --exclude='*.tmp' --exclude='*.msi' --exclude='*.exe' --exclude="Links/" --exclude="My Music/" --exclude="Saved Games/" --exclude="Searches/" --exclude="Tracing/" --exclude="audio_ts/" --exclude="video_ts/" --exclude="Application Data/" --exclude="Config.Msi/" --exclude="Program Files (x86)" "/cygdrive/C//" "192.168.0.xxx::RsyncBackupName//"

/cygdrive/C// = pasta C:\ do sistema operacional
192.168.0.xxx = ip do servidor FreeNAS
RsyncBackupName = nome dado ao backup deste usuário

Pronto, sua estrutura está montada. Agora basta monitorar, habilitar o acesso web para cada utilizador, para que possam verificar se seus arquivos estão sendo guardados corretamente e, se achar necessário, habilitar compartilhamentos SMB para que cada usuário possa restaurar arquivos desejados.
Backup com servidor FreeNAS Backup com servidor FreeNAS Reviewed by Vartroy on agosto 14, 2011 Rating: 5

Nenhum comentário:

Tecnologia do Blogger.