Opções do sistema de arquivos Linux para armazenamento compartilhado iSCSI

7

Estou tentando determinar minha 'melhor escolha' para um sistema de arquivos usar para um dispositivo de armazenamento compartilhado que será montado via iSCSI em um número indeterminado de servidores.

Configuração:

  • Matriz Synology RS2212 + de 27 TB, iSCSI LUN / target que permite várias sessões
  • 10-20 caixas de linux baseadas em CentOS, principalmente servidores web
  • O armazenamento compartilhado hospedará conteúdo da web estático (mídia, principalmente imagens)

Essencialmente, preciso montar esse grande volume compartilhado em muitos servidores da Web, e espero que o número continue a crescer com o tempo. Temos usado o NFS no passado, mas problemas de desempenho estão nos forçando a procurar outros métodos. (leia-se: o ajuste do NFS parece às vezes magia negra, especialmente quando se lida com milhões de imagens pequenas).

Normalmente, não deve haver um problema com as colisões de gravação no dispositivo, pois há apenas algumas máquinas centrais com capacidade para alterar o conteúdo, mas sei que, se as montarmos dessa forma, precisaremos algum método para bloquear o arquivo enquanto um está trabalhando com ele para que não acabemos com a corrupção. No passado, nos baseamos no NFS para lidar com isso. Então, agora eu estou olhando para sistemas de arquivos com reconhecimento de cluster (a menos que eu esteja faltando alguma coisa, daí este post).

Até agora, encontrei duas opções principais para isso, mas não tenho certeza de que elas sejam uma ótima opção:

RHEL Clustering e GFS2 - parece o ajuste natural para o meu ambiente, mas me deixa um pouco desconfortável se sentir "trancado" em uma distro dessa maneira. Forçar-me-ia a avançar com outras opções se eu precisasse adicionar servidores com um sabor diferente. Não é um show-stopper mas na minha mente. A maior preocupação é ler repetidamente no RHEL documentação que seu cluster suporta apenas 16 nós. Se for esse o caso, definitivamente não vai escalar bem o suficiente para mim. Isso é exato ou estou lendo errado?

OCFS - O sistema de arquivos de cluster da Oracle também recebe muita atenção quando eu pesquiso no Google, mas eu não sei muito sobre isso. O aspecto mais problemático é que eu teria que executar o Kernel da Empresa Inquebrável, o que causaria muita interrupção na movimentação de todos os meus servidores para isso. Mais uma vez, não é um show-stopper, mas eu preciso de provas convincentes para ir por esse caminho, especialmente quando experimentar esta metodologia.

Estou faltando alguma coisa? Existe uma abordagem melhor que eu deveria estar usando? Eu até considerei mudar completamente a arquitetura para permitir que alguns servidores "front-end" montassem a partição iSCSI e então fizessem o compartilhamento NFS deles conforme necessário, e / ou usassem um proxy reverso nginx para distribuir a mídia para os servidores web. .

Tem alguma idéia inteligente que você confiaria usando neste cenário?

    
por user2012899 26.02.2013 / 19:09

2 respostas

6

Para o seu caso, eu ainda continuaria com um sistema de arquivos de rede. Você já se deparou com problemas de escalonamento com o NFS, então é hora de olhar para outra coisa. Há algumas boas opções por aí:

  • Gluster . É um projeto RH, portanto, é extremamente bem suportado no CentOS e expandido para "lotes de caminho". Centenas / milhares de clientes são totalmente factíveis, especialmente em um ambiente de leitura pesada como você parece estar. Eu estou usando atualmente com o Ubuntu, então há suporte em debian-land.
  • Ceph . Como o Gluster, é um sistema de arquivos de rede da próxima geração que também fornece um recurso de montagem direta. Também projetado para dimensionamento de "lotes de caminho". Não está ligado à Red Hat como Gluster.

Ambos estão sendo usados atualmente na infraestrutura em escala de nuvem.

Sistemas de arquivos de montagem direta, como gfs2 e ocfs, realmente têm gargalos de escala. O problema de bloqueio de arquivos entre sistemas, para não mencionar a coerência de cache entre hosts, é bastante difícil de resolver e é o principal problema de dimensionamento. Outros sistemas de arquivos em cluster, como o VMFS da VMware, também têm limitações de montagem máximas "pequenas dezenas" pelo mesmo motivo.

Os sistemas de arquivos de rede que não são NFS foram projetados para escalar para concorrência muito grande. As opções mencionadas acima têm duplicação e até mesmo suporte ao volume distribuído para ajudar a evitar pontos únicos de falha.

    
por 26.02.2013 / 19:31
0

Você pode usar uma solução flexível e strong que suporta clustering, multipathing, múltiplos plex e cache como o VXFS (Veritas Storage Fundation) com SF-CACHE. Se você melhorar as colisões de escrita ou a corrupção de fs, é possível reconstruir o sistema de arquivos com os redologs do VXFS e também é possível reconstruir um grupo de discos riscado se houver alguns erros lun de hardware.

PS: + O OCFS é projetado para o DATABASE do Oracle Cluster, não para aplicativos da Web!

    
por 05.02.2016 / 12:58