Saltar para o conteúdo principal

Apache Ozone

Object Storage

Apache Ozone icon
Recurso disponível somente a partir da versão 2.3.0.

Ozone é um sistema de armazenamento de objetos redundante e distribuído, otimizado para cargas de trabalho de Big Data. O principal foco do design do Ozone é a escalabilidade, visando crescer até milhares de milhões de objetos.

Ozone separa a gestão do namespace da gestão do espaço de blocos, o que lhe permite escalar de forma muito mais eficiente. O namespace é gerido por um daemon chamado Ozone Manager (OM), enquanto o espaço de blocos é gerido pelo Storage Container Manager (SCM).

Ozone é composto por volumes, buckets e chaves. Um volume é semelhante a um diretório pessoal no ecossistema Ozone. Apenas um administrador pode criá-lo.

Os volumes são utilizados para armazenar buckets. Uma vez criado um volume, os utilizadores podem criar quantos buckets forem necessários. Ozone armazena os dados como chaves que residem dentro destes buckets.

O namespace do Ozone é composto por múltiplos volumes de armazenamento, que também são usados como base para a contabilização do armazenamento.

O diagrama de blocos abaixo ilustra os principais componentes do Ozone.

Armazenamento de Dados - Ozone
Armazenamento de Dados - Ozone

O Ozone Manager é responsável pela gestão do namespace, o Storage Container Manager gere a camada física e de dados, e o Recon funciona como a interface de gestão do Ozone.

Diferentes Perspetivas

Ozone Funcional
Ozone Funcional

Qualquer sistema distribuído pode ser analisado sob diferentes perspetivas. Uma forma de ver o Ozone é imaginá-lo como o Ozone Manager, um serviço de namespace construído sobre o HDDS, um sistema de armazenamento de blocos distribuído.

Outra maneira de visualizar o Ozone é através das suas camadas funcionais. Existe uma camada de gestão de metadados, composta pelo Ozone Manager e pelo Storage Container Manager.

Existe também uma camada de armazenamento de dados, que é constituída pelos nós de dados e gerida pelo SCM.

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

Existe um servidor de gestão chamado Recon, que comunica com todos os outros componentes do Ozone e fornece uma API de gestão unificada e uma interface de utilizador para o Ozone.

Ozone possui um barramento de protocolo que permite a sua extensão através de outros protocolos. Atualmente, suporta apenas o protocolo S3, que foi implementado através do barramento de protocolo. Este barramento fornece um mecanismo genérico que possibilita a implementação de novos protocolos de sistema de ficheiros ou de armazenamento de objetos que interagem com o protocolo O3 Native.

Arquitetura do Apache Ozone

A arquitetura do Apache Ozone foi concebida para gerenciar milhares de milhões de objectos com escalabilidade e resiliência. Ela separa o gerenciamento de namespace do gerenciamento de blocos, usando os seguintes componentes principais:

Ozone Manager (OM):

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

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

  • Storage Container Manager (SCM)**:

    • Gere os contentores, que são a unidade de replicação.

    • Coordena o posicionamento e a replicação de dados entre DataNodes.

  • DataNodes:

    • Armazenam fisicamente os dados em contentores.

    • Garantem alta disponibilidade e replicação eficiente.

  • Recon:

    • Ferramenta de monitorização e análise do cluster de Ozono.

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

  • Protocolo Ratis**:

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

    Fluxo de operações no Ozono

  • Registo de dados

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

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

  • Leitura de dados**:

    • O cliente pede ao OM para localizar dados.

    • Os dados são recuperados diretamente dos DataNodes.

  • Replicação de dados**:

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

Expectativas de desempenho

O Ozono emprega técnicas avançadas para atingir um elevado desempenho, tais como:

Replicação via RAFT para contentores abertos.

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

Caraterísticas do Apache Ozone

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

Compatibilidade S3:

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

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

  • Integração com o Hadoop**:

Alternativa direta ao HDFS, sem necessidade de adaptações a frameworks como o 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 o armazenamento como um sistema de ficheiros ou objetos, dependendo do caso de uso.

  • Escalabilidade horizontal**:

Suporta milhares de milhões de objectos, tornando-o ideal para aplicações de Big Data e Cloud Native.

  • Reconhecimento de topologia**:

Otimiza os pipelines de leitura e gravação com base no posicionamento dos nós no cluster.

Detalhes do Projeto Apache Ozone

O Apache Ozone é construído principalmente em Java, que é a linguagem de base para todo o ecossistema Hadoop, incluindo HDFS, YARN e outros componentes relacionados. Essa escolha permite que o Ozone se integre perfeitamente ao Hadoop e às estruturas associadas, como Spark, Hive e MapReduce.

Detalhes do Projeto Apache Ozone
Detalhes do Projeto Apache Ozone

Fontes

Apache Software Foundation