Компоненты и надёжность¶
Инсталляция Catena состоит из немногих частей, и у каждой — свой носитель состояния и свои гарантии. Эта страница — карта: что где хранится, что переживает потерю чего и на чём держится совместимость при обновлениях. Поведение кластера при отказе central разобрано отдельно — Автономия стримера.
Из чего состоит инсталляция¶
- Сервис catena на central-машине — управляющий контур и локальный стример в одном процессе.
- PostgreSQL — хранилище состояния central. Единственное: собственного каталога состояния у central нет.
- Сервисы стримеров — вещание; у каждого свой state-каталог и свои диски архива.
- Хранилище метрик — встроенное, в памяти процесса, с горизонтом в несколько часов; история для графиков, не архив.
Что хранится в PostgreSQL¶
Всё, что составляет desired state и учёт инсталляции:
- конфигурации каналов и конфиги стримеров;
- реестр стримеров — записи с идентичностью и ключами машин;
- раскладка каналов, журнал решений и прогонов лейаутера;
- CDN-зоны;
- журнал закрытых сессий;
- TLS-материал central — ACME-аккаунт и выписанные сертификаты.
Следствие простое: цел бэкап базы — цела инсталляция. Как его снимать и восстанавливать — Бэкап и восстановление.
Что хранится на стримере¶
State-каталог /var/lib/catena каждой машины:
server.idи кэш активации — идентичность машины для лицензирования;- идентичность стримера в кластере — ключ, которым он предъявляет себя central;
- кэш применённого среза конфигурации — то, что даёт тёплый старт без central;
- локальный журнал закрытых сессий до того, как его заберёт central.
Архив DVR живёт не здесь — на отдельных дисках, заданных в настройках стримера.
Что переживает потерю чего¶
| Потеряно | Что происходит | Что делать |
|---|---|---|
| Процесс central | Эфир и запись продолжаются; управление и зрительский путь через central замирают | Автономия стримера; процесс поднимается — кластер срастается сам |
| База PostgreSQL | Как выше, плюс потерян desired state | Восстановить из дампа — стримеры переподключаются сами |
| База и бэкапа нет | Эфир продолжается; стримеры осиротели | Переподцепить каждый: сброс state + новый токен |
| State-каталог стримера | Машина теряет идентичность — и лицензионную, и кластерную | Присоединить машину заново; каналы переразместятся |
| Диск DVR | Теряется архив этого диска; эфир не затронут | Лампы диска в диагностике |
| Хранилище метрик (рестарт процесса) | Теряется история графиков за несколько часов | Ничего — накопится заново |
Гарантии совместимости¶
- Разные версии соседствуют. Обменный протокол расширяется только добавлением: неизвестные поля обязаны игнорироваться обеими сторонами, поэтому central и стримеры соседних версий работают вместе.
- Схема базы совместима в окне двух версий. Более новая схема под старым кодом — норма; это делает возможным и поэтапное обновление, и откат бинарника без отката базы.
- Регистрация не идемпотентна — сознательно. Повторное присоединение той же машины даёт новую запись реестра, а дубли по
server_idреестр помечает и оставляет решение оператору — см. Список стримеров.