INTRODUÇÃO

O armazenamento de dados flexível e escalável é um requisito de linha de base para a maioria dos aplicativos e serviços desenvolvidos com técnicas e ferramentas modernas. Seja para armazenar grandes ou pequenas quantidades de imagens, vídeos ou blobs de texto, os desenvolvedores de aplicativos precisam de uma solução para o armazenamento e recuperação de conteúdo gerado por usuários, logs, backups e assim por diante.

Com as complexas implantações, contêineres e infraestrutura efêmera de hoje, os dias de simplesmente salvar arquivos em disco em um único servidor se foram. Os provedores de nuvem desenvolveram serviços para atender às necessidades de armazenamento das implantações modernas de aplicativos e se encaixam principalmente em duas categorias: armazenamento de objetos e armazenamento em bloco.

O QUE É O ARMAZENAMENTO EM BLOCO

Os serviços de armazenamento em bloco são relativamente simples e familiares. Eles fornecem um dispositivo de armazenamento em bloco tradicional – como um disco rígido – pela rede. Os provedores de nuvem geralmente têm produtos que podem provisionar um dispositivo de armazenamento em bloco de qualquer tamanho e anexá-lo à sua máquina virtual.

A partir daí, você o trataria como um disco normal. Você pode formatá-lo com um sistema de arquivos e armazenar arquivos nele, combinar vários dispositivos em uma matriz RAID ou configurar um banco de dados para gravar diretamente no dispositivo de bloco, evitando a sobrecarga total do sistema de arquivos. Além disso, os dispositivos de armazenamento em bloco conectados à rede geralmente têm algumas vantagens exclusivas em relação aos discos rígidos normais:

  • Você pode facilmente tirar instantâneos ao vivo de todo o dispositivo para fins de backup
  • Os dispositivos de armazenamento em bloco podem ser redimensionados para acomodar necessidades crescentes
  • Você pode desconectar e mover facilmente dispositivos de armazenamento em bloco entre máquinas

Essa é uma configuração muito flexível que pode ser útil para praticamente qualquer tipo de aplicativo. Vamos resumir algumas vantagens e desvantagens da tecnologia.

ALGUMAS VANTAGENS DO ARMAZENAMENTO EM BLOCO SÃO:

  • O armazenamento em bloco é um paradigma familiar. Pessoas e software compreendem e dão suporte a arquivos e sistemas de arquivos quase universalmente
  • Os dispositivos de bloco são bem suportados. Toda linguagem de programação pode facilmente ler e gravar arquivos
  • Permissões do sistema de arquivos e controles de acesso são familiares e bem compreendidos
  • Os dispositivos de armazenamento em bloco fornecem E / S de baixa latência, portanto são adequados para uso em bancos de dados.

AS DESVANTAGENS DO ARMAZENAMENTO EM BLOCO SÃO:

  • O armazenamento está vinculado a um servidor por vez
  • Blocos e sistemas de arquivos têm metadados limitados sobre as informações armazenadas (data de criação, proprietário, tamanho). Quaisquer informações adicionais sobre o que você está armazenando terão que ser tratadas no nível do aplicativo e do banco de dados, que é uma complexidade adicional para o desenvolvedor se preocupar.
  • Você precisa pagar por todo o espaço de armazenamento em bloco alocado, mesmo se não estiver usando
  • Você pode acessar apenas o armazenamento em bloco através de um servidor em execução
  • O armazenamento em bloco precisa de mais trabalho prático e configuração versus armazenamento de objetos (opções do sistema de arquivos, permissões, controle de versão, backups etc.)

Devido às suas características rápidas de E / S, os serviços de armazenamento em bloco são adequados para armazenar dados em bancos de dados tradicionais. Além disso, muitos aplicativos herdados que exigem armazenamento normal do sistema de arquivos precisarão usar um dispositivo de armazenamento em bloco.

Se o seu provedor de nuvem não oferecer um serviço de armazenamento em bloco, você poderá executar o seu usando o OpenStack Cinder , Ceph ou o serviço iSCSI interno disponível em muitos dispositivos NAS.

O QUE É ARMAZENAMENTO DE OBJETOS

No mundo moderno da computação em nuvem, o armazenamento de objetos é o armazenamento e a recuperação de blobs não estruturados de dados e metadados usando uma API HTTP. Em vez de dividir os arquivos em blocos para armazená-los em disco usando um sistema de arquivos, lidamos com objetos inteiros armazenados na rede. Esses objetos podem ser um arquivo de imagem, logs, arquivos HTML ou qualquer blob independente de bytes. Eles não são estruturadosporque não há esquema ou formato específico que precisam seguir.

O armazenamento de objetos decolou porque simplificou bastante a experiência do desenvolvedor. Como a API consiste em solicitações HTTP padrão, as bibliotecas foram rapidamente desenvolvidas para a maioria das linguagens de programação. Salvar um blob de dados tornou-se tão fácil quanto uma solicitação HTTP PUT no armazenamento de objetos. Recuperar o arquivo e os metadados é uma solicitação GET normal. Além disso, a maioria dos serviços de armazenamento de objetos também pode servir os arquivos publicamente para seus usuários, eliminando a necessidade de manter um servidor da Web para hospedar ativos estáticos.

Além disso, os serviços de armazenamento de objetos cobram apenas pelo espaço de armazenamento usado (alguns também cobram por solicitação HTTP e pela largura de banda de transferência). Este é um benefício para pequenos desenvolvedores, que podem obter armazenamento e hospedagem de ativos de classe mundial a custos que variam com o uso.

O armazenamento de objetos não é a solução certa para todas as situações. Vejamos um resumo dos benefícios e desvantagens.

Algumas vantagens do armazenamento de objetos são:

  • Uma API HTTP simples, com clientes disponíveis para todos os principais sistemas operacionais e linguagens de programação
  • Uma estrutura de custos que significa que você paga apenas pelo que usa
  • A veiculação pública integrada de ativos estáticos significa menos um servidor para você executar
  • Alguns armazenamentos de objetos oferecem integração CDN integrada, que armazena em cache seus ativos em todo o mundo para acelerar downloads e carregamentos de páginas para seus usuários
  • Controle de versão opcional significa que você pode recuperar versões antigas de objetos para recuperar de substituições acidentais de dados
  • Os serviços de armazenamento de objetos podem escalar facilmente de necessidades modestas a casos de uso realmente intensos, sem que o desenvolvedor precise lançar mais recursos ou rearchitect para lidar com a carga
  • O uso de um serviço de armazenamento de objetos significa que você não precisa manter discos rígidos e matrizes RAID, pois isso é tratado pelo provedor de serviços
  • Ser capaz de armazenar blocos de metadados ao lado do seu blob de dados pode simplificar ainda mais a arquitetura do aplicativo

Algumas desvantagens do armazenamento de objetos são:

  • Você não pode usar serviços de armazenamento de objetos para fazer backup de um banco de dados tradicional, devido à alta latência desses serviços
  • O armazenamento de objetos não permite alterar apenas um pedaço de um blob de dados; você deve ler e gravar um objeto inteiro de uma só vez. Isso tem algumas implicações de desempenho. Por exemplo, em um sistema de arquivos, você pode facilmente anexar uma única linha ao final de um arquivo de log. Em um sistema de armazenamento de objetos, você precisa recuperar o objeto, adicionar a nova linha e gravar o objeto inteiro de volta. Isso torna o armazenamento de objetos menos ideal para dados que são alterados com muita frequência
  • Os sistemas operacionais não podem montar facilmente um armazenamento de objetos como um disco normal. Existem alguns clientes e adaptadores para ajudar nisso, mas, em geral, o uso e a navegação em um armazenamento de objetos não é tão simples quanto folhear diretórios em um navegador de arquivos.

Devido a essas propriedades, o armazenamento de objetos é útil para hospedar ativos estáticos, salvando conteúdo gerado pelo usuário, como imagens e filmes, armazenando arquivos de backup e armazenando logs, por exemplo.

Existem algumas soluções de armazenamento de objetos auto-hospedadas, embora você renuncie a alguns dos benefícios de uma solução hospedada (como não ter que se preocupar com discos rígidos e problemas de dimensionamento). Você pode experimentar o Minio , um servidor de armazenamento de objetos popular, escrito no idioma Go, ou Ceph , ou OpenStack Swift .



ESTAS ABAIXO SÃO NOSSAS REDES SOCIAIS

Apoia-se:

ESTE É NOSSO APOIA-SE, DOE QUALQUER VALOR MENSAL PARA NOS AJUDAR.

DOAR 1 REAL DOAR 5 REAIS DOAR 10 REAIS DOAR 25 REAIS DOAR 50 REAIS DOAR 100 REAIS