9.1. Расширение кластера
Масштабирование и отказоустойчивость Apache Ozone: Расширение кластера
Apache Ozone разработан для масштабирования в горизонтальном направлении, что позволяет добавлять новые узлы для увеличения ёмкости хранилища и производительности. По мере роста объёмов данных и нагрузки на кластер, можно добавлять дополнительные DataNodes, а также масштабировать Ozone Manager (OM) и Storage Container Manager (SCM) для обеспечения отказоустойчивости и равномерного распределения нагрузки.
1. Добавление новых DataNodes
DataNodes отвечают за физическое хранение данных в кластере, и их добавление увеличивает ёмкость хранилища и общую производительность. После добавления новых DataNodes Ozone автоматически распределяет новые контейнеры на дополнительные узлы, а существующие данные можно перераспределить с помощью балансировки.
Шаги по добавлению нового DataNode
-
Установите Apache Ozone на новом узле: Установите Ozone и настройте файл конфигурации
ozone-site.xml
для подключения к существующему кластеру. -
Настройте параметры DataNode: Проверьте и настройте основные параметры для DataNode, такие как
ozone.scm.names
(указывающий адрес SCM) иozone.om.address
(адрес OM), чтобы узел мог связаться с управляющи ми компонентами.<property>
<name>ozone.scm.names</name>
<value>scm1.example.com</value>
</property>
<property>
<name>ozone.om.address</name>
<value>om1.example.com</value>
</property> -
Запустите DataNode: Используйте следующую команду для запуска DataNode на новом узле:
bin/ozone datanode --daemon start
-
Проверьте, что новый узел добавлен в кластер: Выполните команду на SCM для получения списка всех активных узлов DataNode, включая недавно добавленный:
bin/ozone admin datanode list
После добавления DataNode может потребоваться выполнить балансировку контейнеров, чтобы перераспределить данные между узлами.
Балансировка данных
Запустите балансировку контейнеров, чтобы распределить данные между новыми и существующими узлами:
bin/ozone admin datanode rebalance
2. Масштабирование Ozone Manager (OM)
Ozone Manager управляет метаданными и обработкой операций с томами, бакетами и ключами. В случае крупных кластеров рекомендуется настроить OM в режиме высокой доступности (HA), чтобы распределить нагрузку и обеспечить отказоустойчивость.
Настройка OM в режиме высокой доступности
-
Создайте несколько экземпляров OM: Запустите несколько экземпляров OM на разных узлах для создания кластера OM.
-
Настройте Raft-кластер для OM: Включите поддержку Raft-протокола для синхронизации данных между экземплярами 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: Запустите каждый экземпляр OM на указанных узлах с помощью команды:
bin/ozone om --daemon start
-
Проверьте синхронизацию: В кластере OM один узел работает как лидер, а остальные — как фолловеры. Все изменения в метаданных записываются на лидере и передаются фолловерам через Raft.
3. Масштабирование Storage Container Manager (SCM)
Storage Container Manager (SCM) управляет контейнерами и репликацией данных. Для крупных кластеров рекомендуется настроить SCM в режиме высокой доступности с несколькими экземплярами SCM.
Настройка SCM в режиме высокой доступности
-
Создайте несколько экземпляров SCM: Запустите несколько экземпляров SCM на разных узлах, чтобы обеспечить отказоустойчивость.
-
Настройте Raft-кластер для SCM: Укажите все узлы SCM в конфигурации
ozone-site.xml
:<property>
<name>ozone.scm.nodes</name>
<value>scm1,scm2,scm3</value>
</property>
<property>
<name>ozone.scm.address.scm1</name>
<value>scm1.example.com:9861</value>
</property>
<property>
<name>ozone.scm.address.scm2</name>
<value>scm2.example.com:9861</value>
</property>
<property>
<name>ozone.scm.address.scm3</name>
<value>scm3.example.com:9861</value>
</property> -
Запустите каждый экземпляр SCM: Запустите каждый экземпляр SCM на указанных узлах с помощью команды:
bin/ozone scm --daemon start
-
Проверьте состояние SCM-кластера: Как и в случае с OM, один из экземпляров SCM будет лидером, а остальные фолловерами, синхронизирующими данные через Raft.
4. Мониторинг и управление кластером после расширения
После добавления новых узлов в кластер Ozone важно отслеживать состояние кластера и контролировать балансировку нагрузки.
Проверка состояния кластера
-
Мониторинг узлов DataNode: Используйте команду для просмотра всех активных узлов DataNode:
bin/ozone admin datanode list
-
Проверка состояния OM и SCM: Используйте команду для получения списка активных служб:
bin/ozone admin service list
-
Использование Recon для мониторинга: Recon предоставляет удобный интерфейс для отслеживания состояния кластера, распределения контейнеров и репликации данных. Recon позволяет получить полную картину состояния кластера, включая состояние узлов, репликацию и загрузку.
Балансировка нагрузки
Если после расширения кластера данные распределены неравномерно, запустите балансировку контейнеров:
bin/ozone admin datanode rebalance
Балан сировка гарантирует равномерное распределение данных и улучшает общую производительность кластера.
5. Рекомендации по расширению кластера
-
Планирование ресурсов: При увеличении объёмов данных и нагрузки добавляйте узлы DataNode, чтобы обеспечить достаточную ёмкость хранилища и производительность.
-
Настройка высокой доступности: Для крупных кластеров и критически важных данных настройте OM и SCM в режиме высокой доступности, чтобы минимизировать риски отказов.
-
Балансировка данных: После добавления новых узлов всегда запускайте балансировку контейнеров, чтобы распределить данные равномерно и избежать перегрузки отдельных узлов.
-
Мониторинг после расширения: Используйте Recon и системы мониторинга для контроля за состоянием узлов и обнаружения потенциальных проблем, связа нных с нагрузкой.
-
Обновление конфигурации: Если узлы кластера распределены по нескольким регионам, настройте параметры сети (например, интервалы heartbeat и восстановления реплик) для повышения эффективности распределённого кластера.
Итог
Расширение кластера Apache Ozone позволяет увеличить ёмкость и производительность, а также повысить отказоустойчивость системы. Добавление новых узлов DataNode, настройка высокой доступности для OM и SCM, а также регулярная балансировка данных помогают поддерживать эффективную работу кластера и обеспечить надёжное хранение данных.