Архитектура SSM

Обзор

SSM (Smart Storage Manager) — это инструмент для оптимизации хранения данных в HDFS, который анализирует метаданные и позволяет выбрать более эффективный способ хранения и управления данными в соответствии с созданными пользователем правилами и политиками.

SSM считает количество обращений к данным в кластере (access count) и позволяет классифицировать их в зависимости от их "температуры": популярные данные маркируются как горячие (HOT), редко используемые данные как холодные (COLD), а умеренно используемые данные как теплые (WARM). Точные критерии классификации данных определяются правилами, установленными пользователями.

Архитектура SSM
Архитектура SSM
Архитектура SSM
Архитектура SSM

SSM добавляет в HDFS следующие возможности:

  • Перемещение данных — перемещение данных между различными типами хранилищ в зависимости от существующих правил.

  • Асинхронная репликация — репликация данных между разными кластерами с HDFS или между HDFS и облачным хранилищем. SSM отслеживает операции изменения данных, такие как создание, удаление, добавление и переименование, чтобы обеспечить синхронизацию данных в реальном времени и избежать вычислительных затрат MapReduce.

  • Оптимизация хранения маленьких файлов — сжатие небольших файлов в один файл-контейнер. Он хранится в HDFS и данные в нем доступны для приложений верхнего уровня.

  • Erasure coding (EC) — гибкая настройка включения Erasure coding или репликации и управление файлами с разными политиками EС с помощью правил.

  • Сжатие — сжатие данных в HDFS без ограничения доступа к ним для внешних приложений.

SSM предоставляет веб-интерфейс, с помощью которого можно создавать правила, запускать действия, проверять статус их выполнения и следить за статистикой кластера.

Вы можете управлять SSM и его компонентами с помощью ADCM или обновлять файлы конфигурации вручную. Дополнительно о параметрах конфигурации SSM читайте на странице Конфигурационные параметры.

SSM Server

Сервер SSM (SSM Server, Smart Server) — основной компонент SSM. Он отвечает за сбор метаданных из NameNode, срабатывание правил и выполнение действий.

Сервер просматривает файл edits на NameNode, анализирует его и сохраняет в своей базе данных — SSM Metastore. Если информация, полученная из кластера, подходит под определенное правило, сервер запускает соответствующее действие.

Пользователь может взаимодействовать с сервером через API:

  • API администратора

  • API приложений

Для достижения высокой доступности (High Availability, HA) можно развернуть дополнительные SSM-серверы. В этом случае лишние серверы будут действовать как резервные (Standby).

Сценарий аварийного переключения сервера SSM
Сценарий аварийного переключения сервера SSM
Сценарий аварийного переключения сервера SSM
Сценарий аварийного переключения сервера SSM

Если активный сервер не работает, один из резервных серверов становится активным и все запросы переадресуются не него.

Правила

Правила (SSM rules) — это сценарии, которые пользователи могут создавать для автоматизации задач управления данными в HDFS. Правила написаны на собственном языке SSM (domain-specific language) и состоят из четырех частей: обект, триггер, условие и команда (действие).

Например, если к определенным данным обращались более 3 раз за последние 10 минут, пользователь может классифицировать такие данные как "горячие" и создать правило, согласно которому SSM автоматически переместит их на более быстрый носитель.

Более подробно о том, как создавать правила для SSM читайте в статьях Определение правил в SSM и Примеры использования правил в SSM.

Действия

Действие (SSM action) — это одноразовая операция, выполняемая SSM при срабатывании правила или при ручном запуске пользователем. Каждое действие выполняется выделенным сервисом-планировщиком:

  • Mover Scheduler — отвечает за операции, связанные с перемещением данных;

  • Copy Scheduler — копирует данные;

  • EC Scheduler — управляет файлами, для которых применен Erasure Coding;

  • SmallFiles Scheduler — управляет контейнерами с маленькими файлами;

  • NameSpace service — просматривает информацию из edits log на NameNode;

  • Metrics service — собирает метрики (access count).

Взаимодействие компонентов SSM
Взаимодействие компонентов SSM
Взаимодействие компонентов SSM
Взаимодействие компонентов SSM

Более подробно о действиях в SSM читайте в статье Определение действий в SSM.

SSM Agent

SSM Agent (Smart Agent) — это специальный процесс для выполнения задач, отправляемых сервером SSM. Чтобы расширить возможности обработки задач SSM, в кластере может быть запущено несколько агентов.

SSM Client

SSM Client (SmartDFSClient, Smart Client) — это обертка над клиентом HDFS, которая собирает данные для сервера SSM и предоставляет приложениям возможность читать сжатые файлы.

Когда приложение использует клиент для доступа к файлам в HDFS, SmartDFSClient сообщает об этом SSM Server. Событие регистрируется на сервере и он обновляет счетчик доступа к соответствующим данным в SSM Metastore.

SSM Metastore

SSM Metastore — это SQL-база данных, в которой хранится информация о количестве обращений к файлам, пользовательские правила и метрики.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней