Cloud Computing

2 abr, 2018

Minio Cluster: Armazenamento de Objetos Compatível S3 com Jelastic Paas

Publicidade

Minio é um armazenamento de objetos econômico, totalmente compatível com o Amazon S3 (Simple Storage Service). Esta solução é mais adequada para armazenar dados não estruturados, como fotos, vídeos, arquivos de registro, etc. Ele pode ser usado para suportar uma ampla gama de casos de uso, incluindo arquivamento de dados, análise de grandes dados, backup e recuperação de desastres.

O Minio implementa uma arquitetura de microrganização para criar um cluster (fornecendo um grande número de pequenas instâncias de armazenamento interconectadas) e garantir sua escalabilidade e alta disponibilidade.

Junto a isso, a integração dos sistemas de armazenamento de massa comumente utilizados nos sistemas de codificação de correção de erros Reed-Solomon permite manter a operacionalidade do cluster e garantir a restauração completa dos dados, mesmo em um caso em que a metade das instâncias Minio disponíveis falhe.

Abaixo, fornecemos um guia passo a passo sobre como essa solução de armazenamento em cluster pode ser instalada no Jelstic PaaS em apenas alguns cliques devido à possibilidade incorporada da automação avançada de processos.

Além disso, mostraremos como gerenciar o Minio através de uma interface web fácil de usar e através do aplicativo de console dedicado, terminando com uma breve exploração do custo-eficiência da solução apresentada.

Então, sem mais delongas, vamos começar!

Instalação do Cluster de Armazenamento em Nuvem Minio

Com a ajuda do pacote Minio Cluster Jelastic de instalação em um clique especialmente desenvolvido, você está apto a criar o número necessário de contêineres Minio Docker de uma só vez, sendo eles automaticamente interconectados em um armazenamento confiável, compatível com S3.

Desta forma, tudo o que você precisa fazer para obter o seu próprio cluster de armazenamento de objetos pronto e em funcionamento dentro da nuvem, é executar alguns passos simples, descritos abaixo.

1. Então, entre no painel de controle Jelastic na plataforma escolhida e clique em Marketplace no painel de ferramentas superior para encontrar a solução Minio Cluster.

Dicas

  • Caso o pacote Minio Cluster não esteja disponível no Marketplace do seu provedor de hospedagem, você pode simplesmente importar o link para o arquivo manifest.jps do repositório apropriado.

https://github.com/jelastic-jps/minio/blob/master/manifest.jps

  • Ainda não tem uma conta Jelastic? Então siga o link Deploy to Jelastic ou clique no botão com o mesmo nome dentro da descrição adequada do repositório no GitHub para se inscrever instantaneamente e obter o armazenamento Minio em cluster implantado automaticamente.

Clique no botão Install para continuar.

2. Em alguns segundos, você receberá o formulário de instalação correspondente.

Aqui você precisa especificar os parâmetros necessários para o armazenamento de dados em cluster, preenchendo os seguintes campos:

  • Número de nodes: especifique o tamanho do cluster necessário, escolhendo entre as opções predefinidas para criar 1 (para desenvolvimento), 4, 8 ou 16 nodes Minio – cada um deles será tratado em um contêiner separado, que são distribuídos entre os servidores de hardware disponíveis para ganhar alta disponibilidade
  • Ambiente: digite o nome preferido para o seu cluster de armazenamento Minio (que, juntamente com o seu domínio da plataforma, constituirá um nome de ambiente interno)
  • Nome de exibição: opcionalmente, adicione um nome alias a ser exibido para o ambiente no painel de controle
  • Região: selecione um conjunto de hardware para o seu ambiente ser hospedado (esta opção está ativa somente se várias regiões estiverem disponíveis)

Quando estiver pronto, instale o pacote clicando no botão de mesmo nome no canto inferior direito.

3. Aguarde alguns minutos para o Jelastic criar e configurar automaticamente o seu cluster. Uma vez que esta operação esteja concluída, o sistema irá informá-lo sobre a instalação bem-sucedida, exibindo o quadro pop-up correspondente.

Aqui, você verá o URL de acesso do Painel do administrador (clique em Open in browser para um redirecionamento rápido) e as credenciais geradas automaticamente (Chave de acesso e Chave secreta), que serão necessárias para autenticação posterior.

4. Ao se referir à página inicial do ambiente, uma nova guia será aberta, onde você precisará especificar suas chaves de Acesso e Secreta para entrada.

Observação: Caso você tenha fechado ocasionalmente o pop-up de sucesso sem copiar as chaves, ambos podem ser encontrados no arquivo .minio > config.json ou na notificação de e-mail, recebida após a implantação do pacote.

Agora, você pode gerenciar seus arquivos com a ajuda de uma interface web amigável. Por exemplo, use o botão + no canto inferior direito para criar um novo “tanque” e fazer upload dos arquivos necessários para o armazenamento.

Observação: As configurações de cluster padrão pressupõem que a conexão com seu cluster Minio é estabelecida por meio do Shared Load Balancer do Jelastic. Na maioria das plataformas Jelastic, esse elemento de infraestrutura tem uma restrição no tamanho do arquivo enviado – até 512 MB. Portanto, para operar com arquivos maiores, você precisa anexar um endereço IP Público a pelo menos um dos nodes do cluster:

Com isso, adicionar IP Público oferece algumas possibilidades extras – por exemplo, você pode vincular um nome de domínio personalizado ao endereço recebido e uma conexão segura ao cluster, gerando e anexando o certificado SSL personalizado, associado ao domínio apropriado.

É isso aí! Agora seu cluster de armazenamento confiável está pronto e preparado para o trabalho.

Minio Client para acessar o Cluster de armazenamento de objetos

Além do painel de administração da web, você pode acessar seu cluster de armazenamento Minio através de um cliente de console dedicado para executar seu gerenciamento de dados via terminal. Para isso, baixe o cliente Minio do web site oficial, instale-o e siga os passos abaixo:

1. Crie um alias local para o seu armazenamento Minio com o seguinte comando:

./mc config host add {storage} {cluster_domain} {access_key} {secret_key}

Onde:

  • {storage} – um alias local para seu cluster Minio (por exemplo, minio-storage)
  • {cluster_domain} – nome de domínio do seu cluster de armazenamento Minio (https://minio.jelastic.com em nosso caso) ou seu IP Público (no seguinte formato: http://192.168.1.1)
  • {accessKey} e {secretKey}: as credenciais correspondentes para o acesso ao cluster (já consideramos onde encontrá-las na seção do artigo anterior)

2. Em seguida, você precisa criar um novo “tanque”, onde seus dados serão armazenados:

/mc mb {storage}/{bucket}

Substitua o marcador de posição {bucket} pelo nome preferencial (por exemplo, my-bucket).

3. Agora, você pode carregar qualquer arquivo ou pasta (basta adicionar o sinalizador -r apropriado) ao seu servidor de armazenamento, usando o seguinte comando:

./mc cp {upload} {storage}/{bucket}

Aqui, o marcador de posição {upload} é um caminho para uma pasta (arquivo), que deve ser carregada. Por exemplo, fizemos o upload de todos os arquivos com a extensão .svg da pasta Download em uma máquina local para o armazenamento.

Dicas

Descubra o guia detalhado sobre o cliente Minio na documentação oficial.

Minio é compatível com o AWS CLI para funcionar com serviços de armazenamento em nuvem S3 e suporta um conjunto de bibliotecas API Java para implementar alguns fluxos de trabalho de dados complexos.

Consumo de Recurso de Armazenamento do Objeto em Minio

O cluster Minio consome menos de 1 cloudlet (igual a 128 MiB de RAM e 400 MHz de CPU) por node no modo inativo. Com isso, as configurações padrão do pacote assumem que cada instância do Minio pode ser dimensionada verticalmente até 16 cloudlets (ou seja, 2 GiB de RAM e 6,4 GHz de CPU).

Por exemplo, como é mostrado na imagem abaixo, para um armazenamento em cluster com 4 nodes Minio, o uso total de RAM será de apenas 142 MiB. Dessa forma, devido à abordagem de precificação de “pay-as-you-use” da Jelastic, você será cobrado apenas por um único cloudlet por node, mas não por todo o limite de escala de 16 cloudlets!

Dica: Se necessário, os limites de escalonamento padrão podem ser aumentados manualmente por meio do assistente de topologia após a instalação do cluster.

Sendo uma solução econômica, o cluster Minio da Jelastic também fornece uma proteção de dados avançada contra falhas de hardware e corrupção silenciosa de dados por meio de código de apagamento e somas de verificação. Isso permite suportar a falha de até metade das instâncias do cluster e ainda conseguir recuperar os dados.

Para garantir essa confiabilidade, apenas 50% do espaço total em disco do cluster está disponível para uso. Por exemplo, se você hospedar 4 nodes Minio com limite de 100 GB por contêiner (o valor necessário também pode ser ajustado por meio do assistente de topologia), seu cluster de armazenamento S3 poderá reter 50% * 4 * 100 GB, o que equivale a 200 GB dados.

É isso aí! Agora você sabe como lidar facilmente com uma configuração econômica de cluster de armazenamento Minio dentro do Jelastic PaaS e seu gerenciamento adicional. Tente imediatamente obter uma solução que tolere uma falha de metade de suas instâncias sem qualquer perda de dados e compartilhe sua experiência na seção de comentários abaixo.

Como sempre, caso você enfrente algum problema ao instalar ou gerenciar seu cluster Minio no Jelastic, sinta-se à vontade para solicitar a assistência do nosso especialista técnico no Stackoverflow.

***

Tetiana Markova faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela Redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: https://jelastic.com/blog/s3-minio-cloud-storage-cluster-in-containers/