Отказоустойчивость и деградационные сценарии Printum
Page Type: Overview Component: Printum Domain: Architecture Product Versions: All OS: Not applicable Status: Draft Related Components:
- ПринтМенеджер
- Мониторинг
- Сетевой агент
Отказоустойчивость и деградационные сценарии Printum
Printum разрабатывался для предприятий с высокими требованиями к непрерывности печати и постоянному сбору статистики. Система должна продолжать работать даже при отказах серверов или проблемах со связью. Эта статья описывает две ключевые темы: деградационный режим (branch‑mode при разрыве связи) и высокую доступность (кластер из нескольких серверов управления печатью).
Деградационный режим
В распределённых установках Мониторинг обычно расположен в центральном ЦОДе, а ПринтМенеджер — в филиалах. Схема построена так, чтобы при пропадании связи между филиалом и центром печать не останавливалась. Вот как это работает:
- Локальный ПринтМенеджер в филиале имеет собственные очереди и обслуживает пользователей филиала. Он подключается к Мониторинг для синхронизации пользователей и МФУ, но может работать автономно.
- Если связь между ПринтМенеджер и Мониторинг пропадает, пользователи в филиале продолжают печать, копирование и сканирование. Очереди и правила локально продолжают работать.
- В деградационном режиме новые пользователи и изменения конфигурации из домена не передаются в филиал, а статистика о заданиях и счётчиках не выгружается в Мониторинг.
- После восстановления канала связи все накопленные данные синхронизируются, Мониторинг получает статистику, а ПринтМенеджер обновляет список пользователей и устройств.
Деградационный режим нужен в филиалах с ненадёжными каналами. В организациях, где филиалы соединены с ЦОДом надёжными линиями связи, достаточно централизованной конфигурации без локальных ПринтМенеджер — отказоустойчивость достигается кластеризацией центральных серверов.
Высокая доступность ПринтМенеджер
Для непрерывной работы сервиса печати при отказе одного или двух серверов используется кластер ПринтМенеджер. Основные принципы:
- Минимум три ноды. Алгоритм отказоустойчивости требует 2F+1 узлов, чтобы пережить отказ F узлов. При двух нодах отказ одной приведёт к потере кворума.
- Балансировщик нагрузки (например, HAProxy) распределяет задания между серверами. Балансировщик можно настроить с резервированием, но сам Printum поставляется с автоматизированными шаблонами настройки HAProxy.
- Обособленные сервисы: база данных Printum и файловое хранилище (куда помещаются документы и теневые копии) размещаются на отдельном сервере или кластере. Отказ сервера с базой данных не должен останавливать всю систему, поэтому базу данных и файловое хранилище необходимо реплицировать на стороне заказчика.
- Разделение ролей: Мониторинг, ПринтМенеджер, база данных и файловое хранилище могут быть на разных серверах. На практике часто Мониторинг и один из ПринтМенеджер размещают на одном хосте, остальные PM — на отдельных.
Как работает кластер
- Пользователь отправляет задание на виртуальный МФУ Printum.
- Балансировщик выбирает живой узел ПринтМенеджер и передаёт задание.
- ПринтМенеджер обрабатывает задание, хранит метаданные в общей базе, сохраняет файл в общую папку и отправляет на физический МФУ после авторизации.
- Если один из ПринтМенеджер выходит из строя, балансировщик исключает его из пула; остальные узлы продолжают работу без прерывания сервиса. Пока не восстановится кворум, система должна поддерживать минимум две активные ноды.
- Администраторы восстанавливают упавший сервер или вводят новый. Система автоматически синхронизирует очереди и статистику через Мониторинг.
Зона ответственности заказчика
Printum обеспечивает отказоустойчивость приложений, однако ответственность за инфраструктуру остаётся за заказчиком:
- репликация базы данных и файлового хранилища;
- отказоустойчивость сети и балансировщика;
- резервное копирование и аварийное восстановление (DR) серверов.
Вывод
Для надёжной работы Printum в филиалах с ненадёжной связью выбирайте распределённую архитектуру с локальными ПринтМенеджер. При необходимости непрерывной работы в централизованных установках используйте кластер из трёх и более ПринтМенеджер с балансировщиком нагрузки и репликацией базы данных. Деградационный режим и кластеризация не исключают друг друга и могут быть комбинированы в крупных проектах.