Concrete Logo
Hamburger button

Bucket S3 x storage gateway x NFS x GlusterFS

  • Blog
  • 19 de Novembro de 2012
Share

Objetivo: Comparar as soluções de armazenamento de dados compartilhados na AWS.

File system distribuído do tempo do Luca: NFS

O Network File System ainda é muito utilizado e você pode tê-lo como ponto único de armazenamento de dados. Entretanto, suas aplicações não poderão ter demanda intensiva de I/O, já que o sistema operacional possui uma limitação de 1024 threads por padrão. Existe a possibilidade de um tuning nos seus limites de arquivos abertos em disco e processos no sistema operacional, porém isto resolverá seu “problema” até determinado número de threads. Se pensarmos em uma aplicação PHP onde o conteúdo (arquivos de extensão .php) estejam neste servidor NFS nós teremos um funil neste ponto pois o seu interpretador PHP terá X threads simultâneas acessando determinado arquivo. Entende-se que utilizar um NFS é bom para pequenos ambientes. Recomendamos conhecer as opções mais modernas.

Opções principais na Amazon

1°: Bucket S3

O S3 é a melhor solução para armazenamento de dados distribuido com alta disponibilidade dos dados, porém não possui performance comparável com o armazenamento local típico do sistema operacional. Além disso, não fornecerá um ponto de montagem no seu sistema operacional a não ser que utilize a API S3fs, que é community e não possui suporte pela AWS. Assim, um bucket S3 fica como melhor solução para armazenamento de dados na nuvem com alta disponibilidade, não para storage de propósito geral.

Uma novidade divulgada essa semana que torna o S3 ainda mais interessante é a opção de gravação automática no Glacier. O Glacier oferece arquivamento de baixíssimo custo (a partir de US$ 0,01/GB por mês) e é otimizado para dados pouco acessados, nos quais um tempo de recuperação de algumas horas é aceitável.

2° Storage Gateway:

O Storage Gateway é um um produto a ser utilizado para que sejam feitas transferências de arquivos entre sua rede e a infraestrutura AWS (Bucket S3) com um pequeno delay, servindo como um ponto de concentração para essa transferência de dados, basicamente pode ser utilizado de duas formas:

– Gateway-Cached Volumes: Você irá postar os seus arquivos no bucket S3, e eles estarão disponíveis no disco dentro de sua infraestrutura, é válido para caso tenha que acessar seus arquivos de sua infraestrutura externa de forma mais simples pois assim terá um disco em seu sistema operacional e poderá criar compartilhar através de seu sistema operacional.

– Gateway-Stored Volumes: Você terá os seus dados em um disco local sendo enviados a um bucket S3 de tempos em tempos. É interessante para caso tenha acessos que necessitam de um backup dos dados de sua infraestrutura externa na AWS Amazon.

Entende-se assim que o Storage Gateway é indicado para quando haja transferência de dados constantemente entre infraestrutura externa e infraestrutura AWS Amazon.Caso tenha interesse pode assistir ao vídeo explicativo ou também através do material explicativo ambos no site oficial.

3° GlusterFS:

Você irá conectar os discos de seus servidores deixando os dados distribuídos. Há basicamente duas formas de utilização:

– Utilizar os discos em seus servidores de aplicação para que escrevam e leiam o arquivo localmente, tendo um delay curto do tempo de “cópia” do dado até os outros servidores para que o dado seja populado. Isto traz ganho de performance pela escrita e leitura serem locais.

– Criar um grupo de servidores e utilizar como storage. Essa opção também é válida e inclusive pode ser utilizado o NFS para a montagem do storage. Essa opção irá lhe gerar um ponto único de acesso porém a escrita será feita em um local externo e não mais em um local interno, gerando um custo superior de performance. Porém seus dados estarão centralizados.

Fazendo um comparativo entendemos que a primeira opção é melhor quando necessitamos de performance. A utilização do GlusterFS e NFS nos dão a possibilidade de gerenciar o volume de discos através do Logical Volume Manager (LVM) onde podemos ter diversos discos agregados gerando um ou mais volumes com a possibilidade de serem ampliados ou reduzidos. Se usarmos o GlusterFS podemos inclusive utilizar esses servidores com os discos somados, chegando a um storage em rede com capacidade ampla de armazenamento.

Veja mais sobre GlusterFS em: https://www.gluster.org/
Os pacotes de instalação em: https://download.gluster.org/pub/gluster/glusterfs/3.3/3.3.1/

Como instalar: https://gluster.org/community/documentation/index.php/Gluster_3.2:_Installing_GlusterFS_on_Red_Hat_Package_Manager_%28RPM%29_Distributions

Material base para configurações: https://hpc.admin-magazine.com/Articles/GlusterFS/%28offset%29/6