MooseFS - Sistema de arquivos distribuído

MooseFS é sistema de arquivos distribuído por vários equipamentos em rede, tolerante a falhas e altamente expansível. Neste artigo, vamos entender como o MooseFS funciona, bem como instalar, configurar, usar e ver como é fácil expandir o volume de forma transparente para o usuário.

[ Hits: 14.664 ]

Por: Ricardo Lino Olonca em 11/04/2014


Conceito e instalação do master



O MooseFS é um sistema de arquivos distribuído. Em sua forma tradicional, possui um servidor (master) que é o responsável pelo controle dos arquivos que ficam espalhados pelos diversos storages (chunks).

Os usuários enxergam apenas o servidor master; os servidores de chunk são invisíveis para eles. Um servidor de backup (logger), funciona como uma cópia do master, para o caso de falhas.

Instalação do master

Primeiramente, vamos instalar o master. É necessário instalar as dependências. No Debian 7, execute:

# apt-get install fuse gawk libfuse-dev libghc-zlib-dev libruby pkg-config python

Agora, vamos criar o usuário mfs, responsável pelo MooseFS:

# groupadd mfs
# useradd -g mfs mfs


Agora, baixe o arquivo compactado contendo o código fonte do programa no endereço abaixo:
É necessário se cadastrar no site para receber um e-mail com o link do programa. O programa é o mesmo para o master, o logger e os chunks. O que muda, são os parâmetros de compilação.

Após baixarmos o arquivo, vamos descompactá-lo:

# tar -zxvf mfs-1.6.27-1.tar.gz

Agora, vamos entrar na pasta criada:

# cd mfs-1.6.27

Vamos compilar e instalar o programa:

# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount
# make
# make install


O servidor master está instalado. Vamos ao processo de configuração. Entre na pasta /etc/mfs:

# cd /etc/mfs

Nesta pasta, há arquivos de exemplo que podem ser usados. Vamos copiá-los:

# cp mfsmaster.cfg.dist mfsmaster.cfg
# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
# cp mfsexports.cfg.dist mfsexports.cfg


O arquivo mais importante para nós, neste momento, é o mfsexports.cfg. Ele contém a relação dos diretórios que serão montados e as suas permissões.

Este arquivo está bem documentado. Por exemplo, para fornecer o diretório /var/moosefs para a VLAN 192.168.56.0/24, inclua a linha abaixo:

192.168.56.0/24 /var/moosefs rw,alldirs,maproot=0

Agora, vamos até a pasta /var/lib/mfs para copiarmos o arquivo de metadados binário. Neste momento, esse arquivo está vazio:

# cd /var/lib/mfs
# cp metadata.mfs.empty metadata.mfs


Agora, adicione a linha abaixo no arquivo /etc/hosts:

192.168.56.1 mfsmaster

Agora você pode subir o servidor master com o comando:

# /usr/sbin/mfsmaster start
 working directory: /var/lib/mfs
 lockfile created and locked
 initializing mfsmaster modules ...
 loading sessions ... ok
 sessions file has been loaded
 exports file has been loaded
 mfstopology: incomplete definition in line: 7
 mfstopology: incomplete definition in line: 7
 mfstopology: incomplete definition in line: 22
 mfstopology: incomplete definition in line: 22
 mfstopology: incomplete definition in line: 28
 mfstopology: incomplete definition in line: 28
 topology file has been loaded
 loading metadata ...
 loading objects (files,directories,etc.) ... ok
 loading names ... ok
 loading deletion timestamps ... ok
 loading chunks data ... ok
 checking filesystem consistency ... ok
 connecting files and chunks ... ok
 all inodes: 24
 directory inodes: 1
 file inodes: 23
 chunks: 75
 metadata file has been loaded
 stats file has been loaded
 master <-> metaloggers module: listen on *:9419
 master <-> chunkservers module: listen on *:9420
 main master server module: listen on *:9421
 mfsmaster daemon initialized properly


Para administrar o MooseFS, há um sistema WEB que deve ser iniciado com o comando abaixo:

# /usr/sbin/mfscgiserv
 lockfile created and locked
 starting simple cgi server (host: any , port: 9425 , rootpath: /usr/share/mfscgi)


Agora, acesse: http://192.168.56.1:9425
Linux: MooseFS - Sistema de arquivos distribuído


    Próxima página

Páginas do artigo
   1. Conceito e instalação do master
   2. Instalação
Outros artigos deste autor

Entendendo TCP/IP (Parte 5) - Portas TCP/UDP

O fim está próximo

Entendendo o TCP/IP

Entendendo TCP/IP (parte 2) - Endereços IP

Entendendo TCP/IP (Parte 6) - Firewall

Leitura recomendada

File Globbing ou Englobamento - Introdução

Proxy reverso com Apache + cache + compactação + estatísticas

GmailFS - sua conta de e-mail como um sistema de arquivos no Slackware 10.2

Expandindo partição em LVM

Montando Volumes no Docker

  
Comentários
[1] Comentário enviado por jonesvital em 03/01/2015 - 16:39h

Parabéns pelo artigo. Muito bem explicado e fácil de entender. Eu montei um ambiente parecido com o do artigo e funcionou muito bem. O desempenho foi melhor do que eu esperava, principalmente por ser um ambiente de apenas de máquinas virtuais. O MooseFS é realmente um sistema incrível. Tive que fazer apenas uma pequena alteração na instalação dos clientes. No comando ./configure NÃO podia incluir o parâmetro "--disable-mfsmount". Pois se eu incluísse, o comando "/usr/bin/mfsmount /mnt/mfs -H mfsmaster" retornava "/usr/bin/mfsmount: Arquivo ou diretorio não encontrado". Simplesmente exclui o parâmetro, reinstalei e funcionou perfeitamente.

Só tenho uma dúvida, eu precisava que maquinas Rwindows tivessem acesso ao sistema como clientes, vc saberia como instalar?

Mais uma vez, parabéns pelo artigo!!!

[2] Comentário enviado por ricardoolonca em 03/01/2015 - 22:39h

Ola, jonesvital. Obrigado pelo comentário.

Quando escrevi o artigo não havia suporte para Windows. Para fazer isso eu instalo o Samba no Mfsmaster.

Hoje eu uso o Moosefs com 6 servidores totalizando 5Tb. Na maquina menor eu instslei o sistema operacional em um raid 1 utilizando 2 discos de 40Gb e os dados do MFS ficam em 5 discos de 80Gb em raid 5 totalizando 320Gb. Funciona muito bem. Só é necessário monitorar quando um disco da problema.

[3] Comentário enviado por jonesvital em 05/01/2015 - 10:19h

Bom dia Ricardo,

Eu instalei o samba no mfsmaster, mas não funcionou, tem que fazer alguma configuração específica no samba? qual pasta deve ser compartilhada?

[4] Comentário enviado por ricardoolonca em 05/01/2015 - 10:49h

No meu caso do Mfsmaster também é o cliente, mas você pode instalar o samba na máquina que roda o mfsmount. Ou seja, na máquina em que você rodar o comando "/usr/bin/mfsmount /mnt/mfs -H mfsmaster" instale o samba e compartilhe a pasta /mnt/mfs.

[5] Comentário enviado por jonesvital em 05/01/2015 - 11:38h

Desculpe a pergunta, mas isso não quebra o paralelismo do sistema? Se vc coloca o mfsmaster como cliente dele msm e compartilha a pasta que ele monta, os arquivos não acabam passando pelo próprio master tbm? Pq pelo que eu entendi na documentação do MooseFS, o master funciona apenas como um "catalogo de endereços" (link: http://www.moosefs.org/), onde ele apenas diz onde estão os arquivos e os próprios clientes vão buscar os arquivos nos respectivos chunkservers. Isso não geraria um gargalo no master? Por favor, me corrija se eu estiver errado!!

[6] Comentário enviado por ricardoolonca em 06/01/2015 - 11:47h

Correto, jonesvital. O ideal é ter o Mfsmaster somente como master, mesmo. Se você tiver como usar um servidor somente como cliente é bem melhor colocar o samba neste cliente. Então este servidor será cliente do MFS e ao mesmo tempo servidor do Samba. Mas nem sempre isso é possível. No meu caso o Mfsmaster é um servidor um pouco mais parrudo em termos de processamento e memória do que os chunck servers.

[7] Comentário enviado por jonesvital em 06/01/2015 - 13:52h

Entendi. Vou fazer uns testes aqui, Obrigado :)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts