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

3.1. Ozone Manager

Компоненты Apache Ozone: Ozone Manager (OM)

Ozone Manager (OM) — это один из ключевых компонентов Apache Ozone, отвечающий за управление метаданными и пространствами имён (volumes, buckets, keys). OM играет центральную роль в системе, принимая запросы от клиентов и обеспечивая координацию работы с данными. В этом разделе рассматриваются функции, архитектура и задачи Ozone Manager.


1. Роль Ozone Manager в Apache Ozone

Ozone Manager управляет всеми операциями, связанными с:

  • Volumes (Томами): Создание, удаление и управление доступом.
  • Buckets (Бакетами): Создание бакетов и настройка политик (репликация, квоты, версионирование).
  • Keys (Ключами/Объектами): Регистрация ключей и управление их метаданными.

OM не хранит сами данные, а управляет метаданными о том, где и как хранятся объекты. Он взаимодействует с Storage Container Manager (SCM) для получения информации о контейнерах и блоках данных.


2. Основные функции Ozone Manager

  1. Управление пространством имён:

    • Создание и удаление volumes и buckets.
    • Назначение владельцев и квот для томов.
    • Управление политиками хранения.
  2. Обработка запросов клиентов:

    • OM принимает запросы от клиентов на операции с метаданными (создание томов, бакетов и ключей).
    • Работает в связке с SCM для выделения контейнеров для хранения блоков данных.
  3. Обеспечение консистентности данных:

    • OM использует протокол Raft (реализованный через Apache Ratis) для согласованности и надёжности данных.
    • Все изменения в метаданных записываются в журналы транзакций.
  4. Отказоустойчивость и репликация:

    • OM может быть запущен в режиме кластеризации, при котором несколько экземпляров OM работают вместе для обеспечения высокой доступности.

3. Архитектура Ozone Manager

  1. OM Leader-Follower:
    В кластере OM один экземпляр работает как лидер, а остальные — как фолловеры. Лидер обрабатывает все запросы на запись, а фолловеры синхронизируют свои данные.

  2. Raft-протокол:
    Для поддержания согласованности метаданных OM использует Raft, обеспечивая линейную консистентность и устойчивость к сбоям.

  3. Журнал операций (Transaction Log):
    OM ведёт журнал всех операций с метаданными. В случае сбоя узла эти журналы используются для восстановления состояния.


4. Настройка и управление Ozone Manager

Запуск Ozone Manager

OM можно запустить с помощью следующей команды:

bin/ozone om --daemon start

Остановка Ozone Manager

bin/ozone om --daemon stop

Проверка статуса Ozone Manager

bin/ozone admin service list

5. Конфигурация Ozone Manager

Основные параметры Ozone Manager задаются в файле ozone-site.xml.

Пример настроек:

<configuration>
<property>
<name>ozone.om.address</name>
<value>om1.example.com:9878</value>
</property>

<property>
<name>ozone.om.nodes</name>
<value>om1,om2,om3</value>
</property>

<property>
<name>ozone.om.ratis.port</name>
<value>19200</value>
</property>

<property>
<name>ozone.om.snapshot.interval</name>
<value>10min</value>
</property>
</configuration>
  • ozone.om.address: Указывает IP-адрес и порт OM.
  • ozone.om.nodes: Перечисляет все узлы OM в кластере.
  • ozone.om.ratis.port: Порт для протокола Raft.
  • ozone.om.snapshot.interval: Интервал создания снимков метаданных.

6. Резервное копирование и восстановление метаданных OM

OM автоматически создаёт снимки метаданных (snapshots), которые можно использовать для восстановления в случае сбоя.

Создание снимка вручную

bin/ozone admin om snapshot create

Восстановление из снимка

bin/ozone admin om snapshot restore --snapshot=<snapshot-path>

7. Мониторинг и логирование OM

Логи Ozone Manager можно найти в директории /var/log/ozone/.

Просмотр логов в реальном времени:

tail -f /var/log/ozone/om.log

Мониторинг состояния узла OM:

Используйте команду для проверки активных служб:

bin/ozone admin service list

8. Отказоустойчивость и кластеризация Ozone Manager

OM поддерживает кластерный режим для обеспечения высокой доступности. Несколько экземпляров OM работают как кластер, обеспечивая доступность данных даже при сбоях отдельных узлов.

Пример настройки нескольких узлов OM:

В файле ozone-site.xml укажите список узлов OM:

<property>
<name>ozone.om.nodes</name>
<value>om1,om2,om3</value>
</property>

<property>
<name>ozone.om.address.om1</name>
<value>om1.example.com:9878</value>
</property>

<property>
<name>ozone.om.address.om2</name>
<value>om2.example.com:9878</value>
</property>

<property>
<name>ozone.om.address.om3</name>
<value>om3.example.com:9878</value>
</property>

После настройки запустите каждый экземпляр OM на своём узле:

bin/ozone om --daemon start