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