+ Responder ao Tópico



  1. #1

    Padrão Alta disponibilidade de espaço em disco

    Caros amigos,

    Eu já pesquisei em vários lugares mas não encontrei nada que me ajudasse.

    A situação é a seguinte, eu quero montar um cluster com várias maquinas, para simplificar a mensagem vou dar um exemplo simplificado.

    Eu quero pegar uns 5 maquinas com um HD de 250GB cada, então eu quero montar de forma que todos os dados sejam distribuídos em todas as maquinas de forma a gerar um espaço total de 1250Gb, ou seja é tipo um RAID 0 sendo que distribuído em várias máquinas não em uma só.

    A solução mais próxima foi o DRBD, sendo que o DRBD faz é um espelhamento e eu não quero espelhamento, mas sim a soma de todos os espaços.

    Alguem pode me ajudar?

    Obrigado

  2. #2

    Padrão

    Max,

    Só numa resposta rápida, eu não sei ao certo se isso seria possível de ser feito mas posso te afirmar que é altamente desaconselhável.

    O princípio do RAID é que você tenha discos espelhados ou a união de discos para formar um volume maior. No caso da união de discos, deve haver um dispositivo capaz de reconhecer a eventual falha de um dos discos envolvidos no processo, para que os dados daquele possam ser rapidamente replicados para um spare.

    Este controle de falha é virtualmente impossível quando se fala em máquinas diferentes, já que você terá diversos pontos de falhas além da falha física de disco. Você poderá ter uma fonte queimada, uma placa de rede que não funciona, uma máquina que não liga, etc.. Em qualquer destas falha, você vai perder parte dos seus dados e pode inclusive corromper todo o volume.

    Se você quer ter essa união dos discos, a melhor forma e a mais segura, é montar mesmo um storage, nem que seja colocar todos os discos em uma única máquina e fazer o boot via rede ou disquete e montar os discos via NFS. Ou usar o LTSP[1] para dar boot nas máquinas. Também é arriscado, se perder a máquina que vai ficar como servidor, já era o seu cluster

    [1] http://www.ltsp.org/

  3. #3

    Padrão

    galahad,

    Obrigado por tentar me ajudar, mas eu tenho consciência dos problemas envolvidos, inclusive de falhas, na minha ideia é que de faz o diretório /home distribuído nessas maquinas e não um boot remoto, de forma tal que se uma das maquinas falhar eu vou perder dados sim, mas não será todo o /home, somente os arquivos que estavam na dada maquina, mas também não estou muito preocupado com isso, porque eu farei backup delas de forma que poderei recuperar o backup em outra maquina que ainda estiver funcionando.

    Eu continuei pesquisando mesmo depois de postar a mensagem aqui, e as soluções que mais se aproximaram para o meu caso foram o FreeNAS e Openfiler. Alguem já tede experiências de uso com um desses dois ou mesmo algo similar?

    Obrigado.

  4. #4

    Padrão

    Cara, o que eu já vi funcionando assim é um sistema chamado dCache, mas ele tem alguns bugzinhos (precisa ser vigiado quando não funciona), e se não me engano precisa de um protocolo específico de acesso (srm) leia a documentação para se informar, ou se tiver coragem, o dCache book. (no dCache é opcional um servidor de replicas, ou seja ele garante que um mesmo dado exista em pelo menos 2 discos diferentes do seu pool, ou mais até, é configurável, o número mínimo, e máximo de cópias)

    Outra idéia, é usar o GFS, mas desse só ouvi falar nunca vi em ação não, parece que é mais transparente e descentralizado (o acesso me parece ser semelhante ao NFS), tendo inclusive ferramentas de manutenção (fsck) para seu array (mas isso foram as maravilhas que ouvi, o mundo real é outra história né)
    Última edição por Laedrus; 09-12-2008 às 11:24.

  5. #5

    Padrão

    Laedrus,

    Gostei das suas sugestões, confesso que a principio gostei do GFS, mas testarei outras opções também, afinal eu vou testar o máximo possível que é para avaliar as diferentes opções para só então utilizar em um ambiente de produção.

    Se alguém tiver mais sugestões eu agradeço.

  6. #6

    Padrão

    Citação Postado originalmente por rmaximo Ver Post
    galahad,

    Obrigado por tentar me ajudar, mas eu tenho consciência dos problemas envolvidos, inclusive de falhas, na minha ideia é que de faz o diretório /home distribuído nessas maquinas e não um boot remoto, de forma tal que se uma das maquinas falhar eu vou perder dados sim, mas não será todo o /home, somente os arquivos que estavam na dada maquina, mas também não estou muito preocupado com isso, porque eu farei backup delas de forma que poderei recuperar o backup em outra maquina que ainda estiver funcionando.

    Eu continuei pesquisando mesmo depois de postar a mensagem aqui, e as soluções que mais se aproximaram para o meu caso foram o FreeNAS e Openfiler. Alguem já tede experiências de uso com um desses dois ou mesmo algo similar?

    Obrigado.
    se você quer disponibilizar o /home nesse servidor, já pensou em usar NIS?

    NIS

  7. #7

    Padrão

    estou pra fazer isso daqui um tempo também, então me diga amigo, o que achou do GFS? o que eu preciso pra levantar um storage via GFS, e qual realmente o tipo de acesso?

  8. #8

    Padrão

    acho que o problema dele é burlar o problema do tamanho em espaço em disco, a vantagem desses sistemas é que daqui a um ano ele adiciona mais máquinas e fica com 5 TB se quiser =)

  9. #9

    Padrão

    Citação Postado originalmente por Fravo Ver Post
    se você quer disponibilizar o /home nesse servidor, já pensou em usar NIS?

    NIS
    Você está falando de NIS (Network Information Service)? Eu não quero isso não, eu quero usar em uma maquina o espaço em disco disponível de outras e sair somando até chegar em algum Terabytes de espaço.

    ate+

  10. #10

    Padrão

    Citação Postado originalmente por Laedrus Ver Post
    estou pra fazer isso daqui um tempo também, então me diga amigo, o que achou do GFS? o que eu preciso pra levantar um storage via GFS, e qual realmente o tipo de acesso?
    Os detalhes eu ainda não verifiquei, eu olhei rapidamente para poder lhe responder, só agora que eu vou estuda-lo, mas certamente quando eu tiver algum teste concluído eu postarei aqui para quem se interessar também.

  11. #11

    Padrão

    Citação Postado originalmente por Laedrus Ver Post
    acho que o problema dele é burlar o problema do tamanho em espaço em disco, a vantagem desses sistemas é que daqui a um ano ele adiciona mais máquinas e fica com 5 TB se quiser =)
    A idéia é exatamente essa.

  12. #12

    Padrão

    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!

  13. #13

    Padrão

    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+

  14. #14

    Padrão

    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+

  15. #15

    Padrão Parabéns

    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

  16. #16

    Padrão

    Obrigado e como você deve ter notado, a minha intenção não era de escrever nem um artigo nem tão pouco um howto, até porque não tenho muito tempo para isso, mas coloquei as informações sobre problemas que me deparei e que a documentação oficial não explica muito bem, mas estou disposto a ajudar qualquer um que esteja implementando e que esteja com problemas e precise de ajuda.

    ate+