Eu tenho uma nuvem básica em execução no Ubuntu Server (9.04) e Eucalyptus. A Walrus (implementação S3 compatível com API do Eucalyptus) armazena arquivos no controlador de nuvem. No entanto, cada um dos outros 4 servidores possui armazenamento de 1 TB, o que é pouco utilizado. Estou procurando uma maneira de agrupar todo o armazenamento para usar todos os recursos disponíveis. Tenho pesquisado várias opções, incluindo PVFS, Luster, HDFS (Hadoop).
Meu único requisito é que ele precise ser escalável e que funcione bem no Ubuntu. Gostaria muito de receber alguém que tenha experiência com essas tecnologias e espero ouvir suas sugestões.
ubuntu
storage
cloud-computing
Jaunty
fonte
fonte
Respostas:
Embora eu não tenha implementado pessoalmente em nenhum lugar de nossos sistemas, observei bastante o Gluster . Conheço algumas pessoas em sites grandes que usam isso e aparentemente funciona muito bem. Eles o usam na produção para algumas aplicações de HPC para serviços pesados.
fonte
O GlusterFS pareceria a solução ideal para mim. Para o cara que afirma que Gluster exige muito esforço para montar, devo dizer que ele provavelmente nunca tentou. A partir do Gluster 3.2, os utilitários de configuração são impressionantes e são necessários 2 ou 3 comandos para aumentar e compartilhar um volume de gluster na rede. A montagem de volumes de gluster é igualmente simples.
No lado positivo, também oferece muito mais flexibilidade que o NFS. Faz striping, relication, georeplication, é claro compatível com POSIX e assim por diante. Há uma extensão chamada HekaFS, que também adiciona SSL e mecanismos de autenticação mais avançados, o que provavelmente é interessante para a computação em nuvem. Também escala! É o F / OSS e está sendo desenvolvido pela RedHat que comprou recentemente o Gluster.
fonte
Você já olhou para o mogileFS? http://danga.com/mogilefs/
Não é um sistema de arquivos no sentido tradicional, mas é bom para distribuir dados de arquivos em um cluster (com replicação e redundância levadas em consideração).
Se você estiver servindo arquivos para um aplicativo Web, precisará de algo para servi-los. Eu sugeriria um script PHP que usa a solicitação HTTP como a chave de pesquisa para encontrar o arquivo que você deseja no mogile FS. Você pode então ler o conteúdo do arquivo em um buffer e fazer eco / imprimi-lo.
O MogileFS já é bastante rápido, mas você pode combinar o mogileFS com o memcache para acelerar o acesso aos arquivos mais usados.
fonte
Com o Luster, você precisa ter um kernel especial nos servidores, e eu só teria servidores como servidores e nada mais.
Estranhamente, a resposta mais sensata é o NFS. Nós usamos o NFS na nuvem da Amazon. Pode não ser tão dimensionável quanto alguns sistemas de arquivos, mas a simplicidade não deve ser esquecida. Um espaço de nome único provavelmente não vale o esforço necessário para implementar.
fonte
Você ainda está procurando o HDFS? Um dos caras da Cloudera deu uma palestra no VelocityConf este ano sobre o Hadoop e o HDFS focado no gerenciamento de clusters de big data, então ele falou bastante sobre o HDFS. Os slides são bastante informativos. Não trabalhei pessoalmente com o HDFS, mas conversei com algumas pessoas aleatórias do Velocity que o estão usando no Ubuntu para fazer várias análises de dados.
fonte
Colocar algum tipo de sistema de arquivos compartilhado atrás de um ambiente de virtualização é bastante comum. Você tem muitas opções, dependendo do que deseja realizar.
A solução mais simples é provavelmente o NFS, porque isso será suportado nativamente por qualquer distribuição que você esteja executando. O NFS pode funcionar razoavelmente bem como um sistema de arquivos de back-end de virtualização, embora não seja a coisa mais rápida por aí.
Se você estiver executando um cluster RedHat (ou derivado), terá um bom suporte pronto para uso para o GFS2, o sistema de arquivos em cluster do RedHat. Isso não aumenta para centenas de nós, mas é bom para clusters menores.
Além disso, você está começando a entrar no leque de coisas como Luster, Glusterfs, GPFS e assim por diante. Todos esses são sistemas de arquivos paralelos de alto desempenho, mas exigem muito mais trabalho para configurar do que as outras opções aqui. Se você tem um ambiente amplo, vale a pena examinar.
fonte
Eu concordo com o @larsks em que o NFS é a melhor opção; configure alguns destinos iSCSI, NFS, pronto. isso será dimensionado para cerca de 5 a 10 nós; YMMV com base em E / S, capacidade de rede etc. (alternativamente, configure o iSCSI com suporte a E / S de caminhos múltiplos).
Se você precisar de algo com mais de 20 nós, convém investigar o Ceph . O Lustre é promissor e estável, mas é um produto Oracle (F / OSS) e eu não gosto pessoalmente do Oracle. :)
Ceph também é bastante ativo; o lançamento mais recente foi há 5 dias.
fonte
O XtreemFS pode ser uma solução para você. É bastante simples de instalar e configurar, também existem pacotes para o Ubuntu.
fonte
O MooseFS (Sistema de arquivos distribuídos) se adapta às suas necessidades. É escalável e funciona bem no Ubuntu. Também pode ser útil para você ver como instalar / atualizar o MooseFS a partir do repositório oficialmente suportado no Ubuntu .
fonte
Não sei o que você está fazendo, mas isso parece um aplicativo potencialmente interessante para o CouchDB .
fonte
Você pode tentar o PVFS2 . É muito mais fácil configurar do que o Luster e geralmente mais rápido que o Gluster.
fonte