Novas métricas de armazenamento de objetos

Novas métricas de armazenamento de objetosFortaleza Voadora de Nele-Diel

Comando de armazenamento de objetos S3 Armazenamento em nuvem Mail.ru traduzi um artigo sobre quais critérios são importantes na escolha de um armazenamento de objetos. A seguir está o texto na perspectiva do autor.

Quando se trata de armazenamento de objetos, as pessoas normalmente pensam apenas em uma coisa: preço por TB/GB. É claro que essa métrica é importante, mas torna a abordagem unilateral e equipara o armazenamento de objetos a uma ferramenta de armazenamento de arquivos. Além disso, essa abordagem reduz a importância do armazenamento de objetos para a pilha de tecnologia empresarial.

Ao escolher o armazenamento de objetos, você deve prestar atenção a cinco características:

  • desempenho;
  • escalabilidade;
  • Compatível com S3;
  • resposta a falhas;
  • integridade.

Essas cinco características são novas métricas para armazenamento de objetos, juntamente com o custo. Vamos dar uma olhada em todos eles.

Desempenho

Os armazenamentos de objetos tradicionais carecem de desempenho. Os prestadores de serviços sacrificavam-no constantemente em busca de preços baixos. No entanto, com o armazenamento de objetos moderno as coisas são diferentes.

Vários sistemas de armazenamento se aproximam ou até excedem a velocidade do Hadoop. Requisitos modernos para velocidades de leitura e gravação: de 10 GB/s para discos rígidos a 35 GB/s para NVMe. 

Essa taxa de transferência é suficiente para Spark, Presto, Tensorflow, Teradata, Vertica, Splunk e outras estruturas de computação modernas na pilha analítica. O fato de os bancos de dados MPP estarem sendo configurados para armazenamento de objetos sugere que eles estão sendo cada vez mais usados ​​como armazenamento primário.

Se o seu sistema de armazenamento não fornecer a velocidade necessária, você não poderá usar os dados e extrair valor deles. Mesmo se você recuperar dados do armazenamento de objetos para uma estrutura de processamento na memória, ainda precisará de largura de banda para transferir os dados de e para a memória. Os armazenamentos de objetos legados não têm o suficiente.

Este é o ponto principal: a nova métrica de desempenho é a taxa de transferência, não a latência. É necessário para dados em escala e é a norma na infraestrutura de dados moderna.

Embora os benchmarks sejam uma boa maneira de determinar o desempenho, eles não podem ser medidos com precisão antes de executar o aplicativo no ambiente. Somente depois disso você poderá dizer onde exatamente está o gargalo: no software, nos discos, na rede ou no nível da computação.

Escalabilidade

Escalabilidade refere-se ao número de petabytes que cabem em um namespace. O que os fornecedores afirmam é escalabilidade fácil, o que eles não dizem é que, à medida que aumentam, os sistemas monolíticos massivos tornam-se frágeis, complexos, instáveis ​​e caros.

A nova métrica de escalabilidade é o número de namespaces ou clientes que você pode atender. A métrica é obtida diretamente de hiperescaladores, onde os blocos de construção de armazenamento são pequenos, mas escalam para bilhões de unidades. Em geral, esta é uma métrica de nuvem.

Quando os blocos de construção são pequenos, é mais fácil otimizá-los para segurança, controle de acesso, gerenciamento de políticas, gerenciamento do ciclo de vida e atualizações sem interrupções. E, em última análise, garantir a produtividade. O tamanho do bloco de construção é uma função da controlabilidade da região de falha, que é a forma como os sistemas altamente resilientes são construídos.

A multilocação tem muitas características. Embora a dimensão fale sobre como as organizações fornecem acesso a dados e aplicações, também se refere às próprias aplicações e à lógica por trás de isolá-las umas das outras.

Características de uma abordagem moderna para multiclientes:

  • Em pouco tempo, o número de clientes pode crescer de várias centenas para vários milhões.
  • Os clientes estão completamente isolados uns dos outros. Isso permite que eles executem diferentes versões do mesmo software e armazenem objetos com diferentes configurações, permissões, recursos, níveis de segurança e manutenção. Isso é necessário ao dimensionar para novos servidores, atualizações e regiões geográficas.
  • O armazenamento é elasticamente escalável e os recursos são fornecidos sob demanda.
  • Cada operação é controlada por uma API e automatizada sem intervenção humana.
  • O software pode ser hospedado em contêineres e usar sistemas de orquestração padrão, como Kubernetes.

Compatível com S3

A API do Amazon S3 é o padrão de fato para armazenamento de objetos. Todo fornecedor de software de armazenamento de objetos afirma compatibilidade com ele. A compatibilidade com S3 é binária: ou está totalmente implementada ou não.

Na prática, existem centenas ou milhares de cenários extremos em que algo dá errado ao usar o armazenamento de objetos. Especialmente de fornecedores de software e serviços proprietários. Seus principais casos de uso são arquivamento direto ou backup, portanto há poucos motivos para chamar a API, os casos de uso são homogêneos.

O software de código aberto tem vantagens significativas. Abrange a maioria dos cenários de edge, dado o tamanho e a variedade de aplicativos, sistemas operacionais e arquiteturas de hardware.

Tudo isso é importante para desenvolvedores de aplicativos, por isso vale a pena testar o aplicativo com provedores de armazenamento. O código aberto facilita o processo – é mais fácil entender qual plataforma é a certa para sua aplicação. O provedor pode ser usado como ponto único de entrada no armazenamento, o que significa que atenderá às suas necessidades. 

Código aberto significa: os aplicativos não estão vinculados a um fornecedor e são mais transparentes. Isso garante um longo ciclo de vida do aplicativo.

E mais algumas notas sobre código aberto e S3. 

Se você estiver executando um aplicativo de big data, o S3 SELECT melhora o desempenho e a eficiência em uma ordem de magnitude. Isso é feito usando SQL para recuperar apenas os objetos necessários do armazenamento.

O ponto principal é o suporte para notificações de bucket. As notificações de bucket facilitam a computação sem servidor, um componente importante de qualquer arquitetura de microsserviço entregue como um serviço. Dado que o armazenamento de objetos é efetivamente armazenamento em nuvem, esse recurso se torna crítico quando o armazenamento de objetos é usado por aplicativos baseados em nuvem.

Por fim, a implementação do S3 deve oferecer suporte às APIs de criptografia do lado do servidor do Amazon S3: SSE-C, SSE-S3, SSE-KMS. Melhor ainda, o S3 suporta proteção contra adulteração que é verdadeiramente segura. 

Resposta às falhas

Uma métrica que provavelmente é frequentemente esquecida é como o sistema lida com falhas. As falhas acontecem por vários motivos e o armazenamento de objetos deve lidar com todos eles.

Por exemplo, existe um único ponto de falha, a métrica disso é zero.

Infelizmente, muitos sistemas de armazenamento de objetos usam nós especiais que devem ser habilitados para que o cluster funcione corretamente. Isso inclui nós de nomes ou servidores de metadados - isso cria um ponto único de falha.

Mesmo onde existem vários pontos de falha, a capacidade de resistir a falhas catastróficas é fundamental. Os discos falham, os servidores falham. A chave é criar software projetado para lidar com falhas como uma condição normal. Se um disco ou nó falhar, esse software continuará funcionando sem alterações.

A proteção integrada contra eliminação e degradação de dados garante que você possa perder tantos discos ou nós quantos blocos de paridade tiver – geralmente metade dos discos. Só então o software não conseguirá retornar dados.

A falha raramente é testada sob carga, mas tais testes são necessários. A simulação de uma falha de carga mostrará os custos totais incorridos após a falha.

Consistência

Uma pontuação de consistência de 100% também é chamada de consistência estrita. A consistência é um componente chave de qualquer sistema de armazenamento, mas uma consistência forte é rara. Por exemplo, ListObject do Amazon S3 não é estritamente consistente, é consistente apenas no final.

O que significa consistência estrita? Para todas as operações após uma operação PUT confirmada, deve ocorrer o seguinte:

  • O valor atualizado fica visível durante a leitura de qualquer nó.
  • A atualização está protegida contra redundância de falha de nó.

Isso significa que se você desligar o plugue no meio de uma gravação, nada será perdido. O sistema nunca retorna dados corrompidos ou desatualizados. Este é um padrão elevado que é importante em muitos cenários, desde aplicativos transacionais até backup e recuperação.

Conclusão

Estas são novas métricas de armazenamento de objetos que refletem os padrões de uso nas organizações atuais, onde desempenho, consistência, escalabilidade, domínios de falha e compatibilidade S3 são os blocos de construção para aplicativos em nuvem e análise de big data. Recomendo usar esta lista além do preço ao construir pilhas de dados modernas. 

Sobre o armazenamento de objetos Mail.ru Cloud Solutions: Arquitetura S3. 3 anos de evolução do Mail.ru Cloud Storage.

O que mais ler:

  1. Um exemplo de aplicativo orientado a eventos baseado em webhooks no armazenamento de objetos S3 Mail.ru Cloud Solutions.
  2. Mais que Ceph: armazenamento em bloco na nuvem MCS 
  3. Trabalhando com armazenamento de objetos Mail.ru Cloud Solutions S3 como um sistema de arquivos.
  4. Nosso canal Telegram com novidades sobre atualizações de armazenamento S3 e outros produtos

Fonte: habr.com

Adicionar um comentário