A idéia é exatamente essa.
Versão Imprimível
Max,
vou aguardar seus comentários sobre o GFS, essa é uma solução que eu desconhecia, mas que realmente pode ser muito interessante. :)
Muito obrigado!
Caros amigos,
Estou postando para dar noticias sobre a questão levantada por mim. Eu ainda não implementei nem comecei os testes preliminares, isso porque ainda não recebi carta branca para iniciar esse projeto, portanto eu por enquanto estou somente pesquisando sobre o assunto e verificando as possibilidades e no momento encontrei uma solução chamada Lustre que me pareceu muito interessante e pelo que eu li, parece fazer exatamente o que eu estou querendo.
Quando eu iniciar os testes, certamente postarei aqui para que possamos compartilhar dessa informação.
Obrigado a todos que tentaram e que me ajudaram.
ate+
Caros amigos,
Primeiramente, obrigado a todos que me ajudaram ou tentaram me ajudar, estou escrevendo essa mensagem para informa-los que finalmente consegui fazer o que queria e tentarei explicar rapidamente como que eu montei esse sistema para poder ajudar outras pessoas que possam precisar do mesmo esquema.
Para montar esse cluster, eu utilizei o Lustre. Escolhi ele porque ele faz o que eu queria e além do mas é muito simples para faze-lo funcionar, ao contrário do GFS que me pareceu muito complicado para implementar.
O Lustre funciona via módulo do kernel, como atualmente ele não vem junto com o Kernel, provavelmente será necessário recompilar o kernel, na página do Lustre encontram-se pacotes rpm com o kernel recompilado, mas somente para as versões red hat enterprise e suse, no repositório do ubuntu já tem alguns pacotes do lustre, porém não tem o kernel, nem os módulos, mas provavelmente em pouco tempo isso deve mudar.
Não entrarei em detalhes de recompilação, porque muda de distribuição para distribuição, então supondo o seu kernel já esteja com o "patch" do lustre aplicado e com todos os módulos compilados, o que você precisa é definir quem será o servidor principal.
Para o funcionamento do lustre é necessário 3 serviços MGS, MDT e OST, não vou entrar em detalhes sobre cada um, pois está bem explicado no próprio site, mas um deles é ersponsável por armazena as informações dos arquivos, como nome, data, permissão, o outro é responsável por armazenar as informações de em qual servidor está cada pedaço do arquivo e por ultimo o responsável pelo armazenamento do dado em si.
Primeiro é necessário criar o MGS e MDT, eles podem ser separados, mas nesse exemplo eles estão juntos, e eles precisarão de uma partição separada para poder trabalhar. Primeiro você precisa formatar a partição com o seguinte comando:
mkfs.lustre --fsname spfs --mdt --mgs /dev/sda2
onde:
--fsname spfs: define o nome do sistema de arquivo. Esse pode ser um nome qualquer, e esse nome é usado para identificar quais sistemas de arquivo precisam ser unidos para formar um só com o espaço somado.
--mdt: define que a partição será usada como MDT
--mgs: define que a partição será usada como MGS
/dev/sda2: partição a ser formatada
Depois de formatado você precisa montar a partição com o comando:
mount -t lustre /dev/sda2 /mnt/test/
Esse foi um ponto que quebrei muito a cabeça pra descobrir, porque não existe nenhuma informação, nesse exemplo você monta a partição recem formatada, mas o diretorio /mnt/test/ não é um diretorio acessível, não adianta você tentar entrar ou listar os arquivos dessa pasta depois de montado que ele não mostra nada, na realidade ele dá um erro dizendo ou que não é um diretorio ou que o sistema de arquivos está como somente leitura. A montagem server somente para dizer para o modulo do kernel que a partição está pronta e que pode ser usada pelo modulo do kernel.
Outro grande detalhe, é que a partição do MGS e MDT não entram na somatoria final, esse partição server somente para o lustre gravar os dados dos arquivos e suas localizações, a partição que será efetivamente utilizada como espaço é a do OST que veremos mais abaixo.
Na maquina que compartilhará os espaço em disco, você terá que formatar também como no passo anterior, mas o comando será:
mkfs.lustre --fsname spfs --ost --mgsnode=x.x.x.x@tcp /dev/sda2
onde:
--fsname spfs: veja que o nome do sistema de arquivos é o mesmo que você definiu anteriormente.
--ost: define que a partição será usada como OST
--mgsnode=x.x.x.x@tcp: indica a localização do servidor MGS, onde x.x.x.x é o ip do MGS
/dev/sda2: partição a ser formatada
Depois disso também será necessário montar essa partição, pelo mesmo motivo explicado anteriormente
mount -t lustre /dev/sda2 /mnt/ost0
Como no caso anterior, o diretório /mnt/ost0 não será acessível.
Com isso terminou-se a configuração do cluster, se você quiser adicionar mais servidores para somar mais espaço, é só você configura-lo como outro OST com o mesmo comando.
Certamente você está doido pra saber o que fazer agora, se todas as partições montadas até o momento são inacessíves, mas lembre que apesar disso, é obrigado que elas estejam montadas ou o cluster não vai funcionar.
Para utilizar o espaço somado, é só entrar na maquina de onde deseja acessar a montar o cluster lustre com o seguinte comando:
mount -t lustre x.x.x.x@tcp:/spfs /mnt/spfs
onde:
x.x.x.x@tcp:/spfs: x.x.x.x é o IP do servidor MGS o "/spfs" é o nome do sistema de arquivos, o mesmo nome definido anteriormente pelo parametro " --fsname spfs".
/mnt/spfs: é o ponto de montagem de destino.
Agora sim o diretorio /mnt/spfs estará acessível e com todo o espaço somado.
Se agluem quiser acrescentar algo ou tirar alguma dúvida, sinta-se a vontade que ajudarei.
ate+
Cara,
Parabéns pelo pseudo "artigo" hehehehe
Agora entendi melhor como funciona o Lustre.
Logo, logo ... terei que colocar essa coisinha para brilhar em um cluster que tenho por aqui.
Falow abraços