Upgrade HomeServer – Part 5 – Ansible

Nos últimos anos, plataformas como o Chef e o Puppet ganharam alguma fama no mundo da gestão de configurações de servidores e aplicações, no entanto são softwares complexos para a sua normal utilização.

É aqui que entra o Ansible. Devo dizer que não conhecia este software e apenas o encontrei quando fazia uma pesquisa para a configuração do servidor e assim fiquei a conhecer mais uma tecnologia que na verdade me deu uma grande ajuda na implementação deste projecto.

O ansible basicamente usa um ficheiro para executar várias tarefas no sistema, estas tarefas utilizando a tecnologia SSH para remotamente as executar.

No Ansible, os equipamentos não necessitam de qualquer instalação previa, ou seja funciona tudo como se os comandos fossem introduzidos pelo utilizador na propria maquina.

Encontrei esta imagem num outro local o que poderá exemplificar o modo de funcionamento

 

O Ansible faz uso de um de “template” chamado “hosts” para determinar os servidores a serem geridos. Trata-se de um arquivo texto simples que lista os servidores individuais ou grupos de servidores (por exemplo, servidores de DNS, servidores web etc).

Site Oficial: https://www.ansible.com/

E assim dou por terminado a introdução às plataformas sendo que nos proximos dias irei publicar artigos referentes à instalação dos mesmos.

Intro

Part 2 – SnapRaid

Part 3 – MergerFS

Part4 – Docker

Upgrade HomeServer – Part 4 – Docker

O Docker é um aplicativo que pode tornar a vida de um administrador de sistemas bastante mais facil e que tem vindo nos últimos tempos a receber bastantes projectos baseados nesta tecnologia.

A minha intenção ao usar o Docker, não é mais do que estar um pouco mais atualizado, abranger conhecimentos de algo novo que tem mudado algumas filosofias de trabalho.

QUando instalamos uma aplicação nova e de repente por alguma razão temos de a migrar para outro servidor muitas das vezes já não nos lembramos daquelas configurações pequeninas que podem fazer toda a diferença.

Além do tempo que se perde para fazer toda uma configuração e se algo falha no ambiente produtivo? Um caos… É aqui que o Docker pode ajudar bastante.

Vamos imaginar o Docker pode ser descrito como um contentor num navio. Cada contentor pode conter um ou vários  serviços (httpd, mysqld, etc)

Estes contentores usam uma tecnologia chamada Linux Containers (lxc) ao invés de métodos de virtualização normais. O lxc utiliza o mesmo kernel do servidor host, tornando tudo muito rápido.

Um contentor (container) é um processo isolado. Por isso é que fazer o “start” de um contentor(container) é muito rápido, tal como iniciar um processo normal.

Mas isto não é uma VM?
Bem, é melhor, imagine-se que ao criarmos uma VM temos de lhe instalar o SO, configurar a rede etc etc etc e o tempo que isto demora a arrancar, a manter etc? Temos de contabilizar tudo. Mas e se pudessemos “virtualizar” apenas os ficheiros daquela aplicação, daquele serviço?
Isto é o docker.

Podemos criar nosso container uma vez e movê-lo praticamente para qualquer tipo de servidor (seja ele virtual ou fisico). No caso de uma falha, simplesmente configuramos um servidor com o Docker instalado e copiamos o container para ele.

O Docker utiliza Linux Containers (LXC), que são executados no mesmo sistema operativo do servidor principal. Isto permite o uso compartilhado de diversos recursos do SO. Ele também utiliza AuFS para o sistema de ficheiros e gere a rede automaticamente.

Um sistema completamente virtualizado, geralmente demora alguns minutos para iniciar, enquanto containers LXC demoram segundos, sendo algumas vezes menos de um segundo.

Para maiores informações podemos aceder ao site deste projecto: www.docker.com

 

Intro

Part 2 – SnapRaid

Part 3 – MergerFS

Upgrade HomeServer – Part 3 – Mergerfs

O MergerFs é um aplicativo que permite aceder a multiplas diretorias através de um unico ponto.

Ou seja, se tivermos a seguinte estrutura:

  • /mnt/disk1
  • /mnt/disk2
  • /mnt/disk3

Podemos aceder a algo do genero /mnt/storage e veremos a informação presente nos 3 locais.

Parece complicado mas não é como podemos analisar na imagem seguinte:

mergerfs

 

Mas como efetua ele a divisão dos dados sempre que gravamos algo? Bem o bom deste sistema é que permite uma total configuração desta operação. Segundo a documentação do mesmo verificamos o seguinte:

eplfs (existing path, least free space) Se o caminho a granvar existe em varias drivers então recorre à politica lfs.
epmfs (existing path, most free space) Se o caminho a gravar existe em várias drives utiliza o que estiver com maior espaço livre.
ff (first found) De acordo com a ordem das drivers, utiliza a primeira que esteja configurada.
lfs (least free space) Escolhe a drive com menos espaço livre mas dentro do limite definido com a opção minfreespace
mfs (most free space) Escolhe a drive com o maior espaço livre
newest (newest file)  Escolhe o local onde foi gravado o ultimo ficheiro.
rand (random) Grava aleatoriamente em qualquer uma das drives.

 

Mais informação poderá ser encontrada no site oficial: https://github.com/trapexit/mergerfs

 

 

Part 1

Part 2

 

Upgrade HomeServer – Part 2 – Snap Raid

O SnapRaid é um programa de backup para discos.

Este grava a informação de paridade num dos discos e pode recuperar a informação até 6 discos. Este aplicativo é maioritariamente dedicado para servidores de media center com muitos ficheiros de grande tamanho e que raramente são alterados.

As grandes vantagens deste são:

  • Todos os dados são alvo de “hashing” de forma a manter a integridade e para evitar ficheiros corruptos
  • Se na eventualidade de falha de mais do que um disco e que evite por este facto a recuperação dos dados apenas é perdida a informação dos discos danificados e dos restantes encontra-se salvaguardada
  • Permite a recuperação de ficheiros eliminados
  • Pode ser implementado com discos que já contenham dados
  • Os discos podem ter tamanhos distintos
  • Possibilidade de adicionar discos a qualquer altura
  • Para aceder a um determinado ficheiro presente num dos discos apenas esse disco inicia a rotação, todos os outros estão parados mantendo assim algum silencio… e poupando na conta da eletricidade 🙂

site oficial: www.snapraid.it

 

Part 1 – Intro

 

Upgrade HomeServer – Part 1 – Intro

2016 já entrou aí em força há 3 meses mas só agora decidi seguir a recomendação de um amigo e começar um pequeno “pet” project para me ir entretendo nos tempos livres mas além de tudo como diria essa pessoa “pensar em algo que não importa”.

Ora então depois de muito pensar no que me poderia meter, teria de ser algo que me desse alguma vontade caso contrario iria ficar perdido em conjunto com todas as outras coisas, pelo que me decidi a atualizar o meu pequeno servidor lá de casa.

O equipamento em questão é um HP MicroServer N41L com a seguinte configuração:

  • Processador AMD Turion
  • 5 discos, 1TB+500GB(x3)+320GB para o SO
  • 4GB RAM

Estive com a plataforma OpenMediaVault (OMV) instalado durante muito tempo (anos) mas achei que estaria na altura de mudar todo o sistema.

Isto pois quando o instalei inicialmente apesar de ter colocado os discos em RAID não me precavi para uma situação com que me tenho deparado… Falta de espaço. Ora então foi juntar o util ao agradavel e decidi meter mãos à obra..

O primeiro passo foi a compra de um disco de 2TB para substituir um de 500GB, neste caso o ST2000DM001. Como iria alterar o sistema de ficheiros por completo e este equipamento serve de NAS lá para casa foi então altura de eliminar muita coisa que la tinha e sabia que conseguiria arranjar novamente.

Procedi então à troca de um dos discos de 500GB pelo de 2TB aumentando assim em 1TB o espaço disponivel (não me enganei nas contas, já lá chegaremos).

O passo seguinte era a instalação de todo o sistema, e aqui é que perdi um pouco mais de tempo a investigar, queria algo novo algo que desse “luta” e não apenas uma solução de “next next next finish”.

O OMV é um sistema brilhante, funciona perfeitamente mas é muito GUI queria algo sem isso, algo que me fizesse aprender e investigar. Uma das funcionalidades que me deveria permitir era um dia mais tarde quando quisesse trocar um disco bastar apenas tirar e colocar outro e os dados lá estariam.

Decidi-me então por uma solução baseada em 3 tecnologias totalmente novas para mim:
* Ubuntu Server (iniciei o projecto com debian puro mas não me habituei à falta de pacotes que este trazia pelo que na segunda tentiva foi com ubuntu)

  • snapraid
  • mergerfs
  • docker
  • Ansible

Agora mais tarde irei descriminar cada um deles e o processo todo.