MooseFS – Sistema de arquivos distribuído

Conceito e instalação do master

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
Instalação

Instalação do backup (metalogger)

É importante ter, também, um servidor de backup, que a documentação do MooseFS chama de metalogger. A instalação é semelhante ao master:

# groupadd mfs
# useradd -g mfs mfs
# cd /usr/src
# tar -zxvf mfs-1.6.15.tar.gz
# cd mfs-1.6.15

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

# make
# make install
# cd /etc/mfs
# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg

Adicione o servidor master no /etc/hosts:

192.168.56.1 mfsmaster

Agora, vamos subir o serviço:

# /usr/sbin/mfsmetalogger start

Agora, já podemos ver o servidor backup através da interface gráfica:

Linux: MooseFS - Sistema de arquivos distribuído

Agora, vamos instalar o servidores que realmente armazenarão os dados. A documentação chama-os de chunkservers.

Instalação dos chunkservers

A instalação dos chunkserver é bem semelhante aos demais, mudando apenas alguns parâmetros no ./configure:

# groupadd mfs
# useradd -g mfs mfs
# cd /usr/src
# tar -zxvf mfs-1.6.15.tar.gz
# cd mfs-1.6.15

# ./configure –prefix=/usr –sysconfdir=/etc –localstatedir=/var/lib –with-default-user=mfs –with-default-group=mfs –disable-mfsmaster

# make
# make install
# cd /etc/mfs
# cp mfschunkserver.cfg.dist mfschunkserver.cfg
# cp mfshdd.cfg.dist mfshdd.cfg

Dentro do arquivo mfshdd.cfg, você diz quais são as pastas que serão usadas no MooseFS. Seguindo o exemplo da documentação, incluímos duas pastas:

  • /mnt/mfschunks1
  • /mnt/mfschunks2

Salve o arquivo. Agora, vamos dar as permissões apropriadas para as pastas:

# chown -R mfs:mfs /mnt/mfschunks1
# chown -R mfs:mfs /mnt/mfschunks2

Não podemos esquecer de colocar o master no /etc/hosts:

192.168.56.1 mfsmaster

Agora, é só subir o serviço:

# /usr/sbin/mfschunkserver start

Agora, podemos ver o primeiro servidor chunk na interface gráfica:

Linux: MooseFS - Sistema de arquivos distribuído

Da mesma forma, instalamos o segundo chunkserver:

Linux: MooseFS - Sistema de arquivos distribuído

Você pode instalar mais servidores de chunk, se quiser.

Instalação do cliente

Vamos instalar o cliente, ou seja, a estação que acessará os dados. Primeiro, vamos instalar o FUSE:

# apt-get install fuse

Agora, vamos instalar o MooseFS:

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

# make
# make install

Adicione a linha abaixo, no arquivo /etc/hosts:

192.168.56.1 mfsmaster

Criamos o ponto de montagem:

# mkdir -p /mnt/mfs

E agora, vamos montar o disco:

# /usr/bin/mfsmount /mnt/mfs -H mfsmaster

Agora, podemos executar um df para ver o espaço em disco disponível:

$ df -h /mnt/mfs
Sist. Arq. Tam Usad Dispon. Uso% Montado em
mfsmaster:9421 31G 3,4G 28G 11% /mnt/mfs 

Repare que o espaço total é a soma de todos os três servidores de chunk. Temos 31 GB de espaço, sendo 3.4 disponível:

Linux: MooseFS - Sistema de arquivos distribuído

No menu Mount, da interface WEB, podemos ver os clientes que estão usando o serviço MooseFS:

Linux: MooseFS - Sistema de arquivos distribuído

Para aumentar o espaço disponível no MooseFS é só adicionar outros chunkservers.

Rolar para cima