200

Apache Ozone

Visão Geral

Ozone é um armazenamento de objetos redundante e distribuído otimizado para cargas de trabalho de Big Data. O principal ponto de design do ozone é a escalabilidade, e ele visa escalar para bilhões de objetos.

Ozone separa o gerenciamento de namespace e o gerenciamento de espaço de bloco; isso ajuda o ozone a escalar muito melhor. O namespace é gerenciado por um daemon chamado Ozone Manager (OM), e o espaço de bloco é gerenciado pelo Storage Container Manager (SCM).

Ozone consiste em volumes, buckets e chaves. Um volume é semelhante a um diretório inicial no mundo do ozone. Somente um administrador pode criá-lo.

Os volumes são usados ​​para armazenar buckets. Depois que um volume é criado, os usuários podem criar quantos buckets forem necessários. Ozone armazena dados como chaves que vivem dentro desses buckets.

O namespace do Ozone é composto por muitos volumes de armazenamento. Os volumes de armazenamento também são usados ​​como base para a contabilidade de armazenamento.

O diagrama de blocos mostra os principais componentes do Ozone.

Diagrama do bloco Ozone

O Ozone Manager é o gerenciador de namespace, o Storage Container Manager gerencia a camada física e de dados e o Recon é a interface de gerenciamento do Ozone.

Diferentes Perspectivas

Diferentes Perspectivas

Qualquer sistema distribuído pode ser visto de diferentes perspectivas. Uma maneira de olhar para o Ozone é imaginá-lo como o Ozone Manager como um serviço de namespace construído sobre o HDDS, um armazenamento de bloco distribuído.

Outra maneira de visualizar o Ozone é olhar para as camadas funcionais; temos uma camada de gerenciamento de dados de metadados, composta pelo Ozone Manager e pelo Storage Container Manager.

Temos uma camada de armazenamento de dados, que são basicamente os nós de dados e eles são gerenciados pelo SCM.

A camada de replicação, fornecida pelo Apache Ratis, é usada para replicar metadados (OM e SCM) e também usada para consistência quando os dados são modificados nos nós de dados.

Temos um servidor de gerenciamento chamado Recon, que se comunica com todos os outros componentes do Ozone e fornece uma API de gerenciamento unificada e UX para o Ozone.

Temos um barramento de protocolo que permite que o Ozone seja estendido por meio de outros protocolos. Atualmente, temos apenas suporte ao protocolo S3 construído por meio do barramento de protocolo. O barramento de protocolo fornece uma noção genérica de que você pode implementar novos protocolos de sistema de arquivos ou armazenamento de objetos que chamam o protocolo O3 Native.

Arquitetura do Apache Ozone

A arquitetura do Apache Ozone foi projetada para gerenciar bilhões de objetos com escalabilidade e resiliência. Ele separa a gestão do namespace do gerenciamento de blocos, utilizando os seguintes componentes principais:

  1. Ozone Manager (OM):

    • Gerencia o namespace (volumes, buckets e chaves).

    • Utiliza o protocolo Ratis para garantir consistência em clusters distribuídos.

  2. Storage Container Manager (SCM):

    • Gerencia containers, que são a unidade de replicação.

    • Coordena o posicionamento e replicação dos dados entre os DataNodes.

  3. DataNodes:

    • Armazenam fisicamente os dados em containers.

    • Garantem alta disponibilidade e replicação eficiente.

  4. Recon:

    • Ferramenta de monitoramento e análise do cluster Ozone.

    • Coleta métricas detalhadas para administração e diagnóstico.

  5. Protocolo Ratis:

    • Implementa consenso distribuído para garantir replicação consistente.

Fluxo de Operações no Ozone

  • Gravação de Dados:

    • O cliente solicita ao OM a alocação de blocos nos DataNodes.

    • Os dados são gravados diretamente nos DataNodes e replicados conforme necessário.

  • Leitura de Dados:

    • O cliente consulta o OM para localizar os dados.

    • Os dados são recuperados diretamente dos DataNodes.

  • Replicação de Dados:

    • O SCM gerencia a replicação entre DataNodes para garantir tolerância a falhas.


Expectativas de Performance

O Ozone emprega técnicas avançadas para alcançar alta performance, como:

  • Replicação via RAFT para containers abertos.

  • Replicação assíncrona para containers fechados (dados frios).


Recursos do Apache Ozone

O Apache Ozone oferece um conjunto robusto de recursos para atender às demandas de armazenamento de dados massivos. Aqui estão os mais destacados:

  • Compatibilidade com S3:

    • APIs que permitem integração com sistemas baseados em nuvem.

    • Ideal para migrações de dados e arquiteturas híbridas.

  • Integração com Hadoop:

    • Alternativa direta ao HDFS, sem necessidade de ajustes em frameworks como Apache Spark, Hive e YARN.

  • Alta Disponibilidade:

    • Baseado no Hadoop Distributed Data Store (HDDS), garante replicação consistente e tolerância a falhas.

  • Suporte Multimodal:

    • Permite armazenamento como sistema de arquivos ou objetos, dependendo do caso de uso.

  • Escalabilidade Horizontal:

    • Suporta bilhões de objetos, sendo ideal para aplicações em Big Data e Cloud Native.

  • Reconhecimento de Topologia:

    • Otimiza pipelines de leitura e escrita com base no posicionamento dos nós no cluster.