Администрирование мультитиринга
Администрирование мультитиринга включает управление конфигурацией классов хранения через API Hilt, активацию приватных классов хранения для проектов и управление сервисом фоновой миграции между тирами.
В разделе:
- Администрирование конфигурации классов хранения.
- Активация приватных классов хранения для проекта.
- Управление сервисом миграции между тирами.
Конфигурацией логических классов и физических тиров (см. Класс хранения (Storage Class)) управляет API Hilt.
Метод | Endpoint | Описание |
|---|---|---|
|
| Создать новый логический класс |
|
| Получить список всех логических классов |
|
| Получить конфигурацию логического класса |
|
| Обновить конфигурацию логического класса |
|
| Удалить логический класс |
Пример тела запроса на создание логического класса:
{"id": "ST","name": "STANDARD","physical_id": "HOT","allowed_transitions": ["IA", "GL"],"feature": {"compression": "","private": false,"min_storage_days": 0,"restored": false}}
Метод | Endpoint | Описание |
|---|---|---|
|
| Создать новый физический тир |
|
| Получить список всех физических тиров |
|
| Получить конфигурацию физического тира |
|
| Обновить конфигурацию физического тира |
|
| Удалить физический тир |
Пример тела запроса на создание физического тира:
{"id": "HOT","name": "Hot storage","api_urls": ["http://storage-api-hot:8080"],"nylon_etcd_prefix": "/nylon/hot","auth": {"type": "none"}}
Класс хранения с атрибутом feature.private = true (см. Атрибуты класса хранения) недоступен для использования на проектах по умолчанию: нельзя указать такой класс в PUT/CopyObject, пока администратор не активирует его для конкретного проекта.
Активация и деактивация приватного класса для проекта выполняется через API Hilt:
POST /v2/projects/storage_class/activate— активировать приватный класс для проекта;POST /v2/projects/storage_class/deactivate— деактивировать приватный класс для проекта.
Фоновая миграция объектов (см. Фоновая миграция объектов между тирами) выполняется отдельным сервисом, запускаемым администратором по требованию (on demand) с указанием логического класса хранения.
Администрирование выполняется через команды hb storage migrate (алиас mg):
create— создание задачи миграции;delete— удаление задачи миграции;info— получение информации о задачах миграции;list— список задач миграции;list-shards— список доступных шардов Matter из Etcd;retry— повтор неудавшейся или остановленной задачи миграции;stop— остановка или приостановка задачи миграции (удержание состояния).
Подробное описание каждой подкоманды см. в Операции со Storage.
Нагрузку от миграции на Matter и Storage ограничивает Pacer — набор лимитеров, настраиваемых через конфигурацию сервиса миграции (sc-migrate-worker) при запуске.
Параметр | Описание |
|---|---|
| Максимальный RPS |
| Максимальный RPS |
| Максимальная суммарная скорость передачи данных между тирами через Storage, байт в секунду (не RPS), целое число. Значение |
Отдельно от Pacer частоту запросов к Storage при переносе данных объекта между тирами ограничивает параметр migrate.rate_limit (целое число, запросов в секунду). Он работает как токен-бакет с burst=1: первый запрос уходит немедленно, далее — не чаще N запросов в секунду. Значение 0 или отсутствие значения снимает лимит, по умолчанию — 100. Этот параметр стоит настраивать, чтобы защитить Storage-ноды от всплеска PUT/GET-запросов при массовой миграции.