Перейти к основному содержимому

3.0. Обзор

Компоненты Apache Ozone

Apache Ozone состоит из нескольких ключевых компонентов, которые обеспечивают распределённое хранение данных, управление метаданными, консистентность и высокую доступность. Ниже приведён обзор основных компонентов системы Ozone и их функций.


1. Ozone Manager (OM)

Ozone Manager (OM) управляет метаданными системы и отвечает за операции, связанные с объектами и их пространствами имен, такими как:

  • Создание, удаление и модификация ключей (объектов).
  • Управление бакетами и volume (логические единицы хранения).
  • Обработка API-запросов от клиентов для операций чтения и записи.

OM использует протокол консенсуса Raft (реализованный в Apache Ratis) для обеспечения консистентности метаданных в условиях распределённой среды.


2. Storage Container Manager (SCM)

SCM управляет физическими узлами хранения (DataNodes) и распределяет данные по контейнерам. Основные задачи SCM:

  • Отслеживание DataNodes и управление их состоянием.
  • Распределение блоков данных и их репликация между узлами.
  • Мониторинг хранилищ контейнеров для обеспечения отказоустойчивости.
  • Обеспечение балансировки нагрузки на DataNodes.

SCM также использует Raft для обеспечения консистентности и управляет пулом идентификаторов контейнеров для выделения новых единиц хранения.


3. DataNodes

DataNodes – это узлы, на которых фактически хранятся данные. Каждый DataNode выполняет следующие функции:

  • Хранение блоков и контейнеров данных.
  • Репликация данных для обеспечения отказоустойчивости.
  • Отправка отчетов SCM о состоянии хранилища.
  • Обработка запросов от клиентов для операций с данными (чтение, запись).

DataNodes являются аналогом узлов хранения в HDFS, но работают с контейнерами данных, что позволяет поддерживать миллиарды объектов.


4. Репликация и контейнеры

Ozone использует контейнеры как основную единицу хранения. Контейнеры – это логические группы данных, которые распределяются между DataNodes. Они реплицируются для обеспечения высокой доступности и отказоустойчивости. SCM управляет процессом репликации контейнеров.


5. Raft-протокол (Apache Ratis)

Для обеспечения консистентности и координации между распределёнными компонентами Ozone (OM и SCM) используется протокол Raft. Ratis обеспечивает:

  • Линейную консистентность при изменениях в метаданных.
  • Высокую доступность за счёт репликации данных.
  • Механизмы автоматического восстановления при сбоях узлов.

6. Клиентский интерфейс и API

Apache Ozone поддерживает несколько интерфейсов для взаимодействия с данными:

  • Ozone API – собственный API для создания и управления объектами.
  • S3 API совместимость – возможность работы с Ozone как с S3-совместимым хранилищем, что упрощает интеграцию с облачными сервисами.
  • Hadoop Compatible File System (HCFS) – Ozone поддерживает доступ к данным через интерфейсы, совместимые с HDFS.

7. Volume, Bucket и Key

Ozone использует иерархическую модель для управления данными:

  • Volume – верхний уровень, в котором содержатся бакеты. Volume создаются для разделения ресурсов между пользователями или проектами.
  • Bucket – контейнер для ключей (объектов). Аналог бакета в S3.
  • Key – конечный объект данных (файл или блок), который хранится в бакете. Каждый ключ связан с метаданными и данными, хранящимися в контейнерах.

8. Инструменты управления и мониторинга

Ozone предлагает удобные инструменты для управления и мониторинга:

  • Командная строка (Ozone CLI) – управление кластерами и объектами.
  • Графический интерфейс – веб-консоль для мониторинга и администрирования.
  • Интеграция с Prometheus и Grafana – для мониторинга состояния кластера в реальном времени.