Архитектура SSM
Обзор
SSM (Smart Storage Manager) — это инструмент для оптимизации хранения данных в HDFS, который анализирует метаданные и позволяет выбрать более эффективный способ хранения и управления данными в соответствии с созданными пользователем правилами и политиками.
SSM считает количество обращений к данным в кластере (access count) и позволяет классифицировать их в зависимости от их "температуры": популярные данные маркируются как горячие (HOT), редко используемые данные как холодные (COLD), а умеренно используемые данные как теплые (WARM). Точные критерии классификации данных определяются правилами, установленными пользователями.
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 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 Agent
SSM Agent (Smart Agent) — это специальный процесс для выполнения задач, отправляемых сервером SSM. Чтобы расширить возможности обработки задач SSM, в кластере может быть запущено несколько агентов.
SSM Client
SSM Client (SmartDFSClient, Smart Client) — это обертка над клиентом HDFS, которая собирает данные для сервера SSM и предоставляет приложениям возможность читать сжатые файлы.
Когда приложение использует клиент для доступа к файлам в HDFS, SmartDFSClient сообщает об этом SSM Server. Событие регистрируется на сервере и он обновляет счетчик доступа к соответствующим данным в SSM Metastore.