Skip to main content

Как работает отказоустойчивый ПринтМенеджер

Как работает отказоустойчивый ПринтМенеджер Назначение Принтум поддерживает отказоустойчивую конфигурацию ПринтМенеджера. Она используется для: минимизации downtime; балансировки нагрузки; работы при отказе узлов. Общая схема HAProxy | +---------+---------+ | | v v ПринтМенеджер 1 ПринтМенеджер 2 Как работает балансировка HAProxy: распределяет запросы; проверяет доступность узлов; исключает недоступные узлы. Что происходит при отказе узла Если один узел недоступен: HAProxy перенаправляет запросы; пользователи продолжают работать; печать продолжается. Что важно помнить Отказоустойчивость не означает отсутствие деградации. Во время переключения возможны временные задержки. После восстановления узел возвращается в пул балансировки. Что НЕ гарантирует HA Отказоустойчивая конфигурация ПринтМенеджера обеспечивает непрерывность работы при отказе отдельного узла, однако имеет ряд принципиальных ограничений: Не гарантирует отсутствие деградации при failover. Во время переключения между узлами возможны временные задержки и ошибки для активных сессий. Не гарантирует zero downtime. Переключение занимает время; кратковременный простой возможен. Не гарантирует real-time статистику при отказе Мониторинга. Если сервер Мониторинга недоступен, данные о печати не передаются в реальном времени. Не заменяет резервное копирование. HA защищает от отказа узла, но не от потери данных. Резервные копии необходимо создавать независимо. Не защищает от отказа PostgreSQL или NFS. Общие компоненты (база данных, сетевое хранилище) являются единой точкой отказа и требуют отдельного обеспечения отказоустойчивости. Деградационный режим В распределённых установках Мониторинг обычно расположен в центральном ЦОДе, а ПринтМенеджер — в филиалах. Схема построена так, чтобы при пропадании связи между филиалом и центром печать не останавливалась. Вот как это работает: Локальный ПринтМенеджер в филиале имеет собственные очереди и обслуживает пользователей филиала. Он подключается к Мониторингу для синхронизации пользователей и МФУ, но может работать автономно. Если связь между ПринтМенеджером и Мониторингом пропадает, пользователи в филиале продолжают печать, копирование и сканирование. Очереди и правила локально продолжают работать. В деградационном режиме новые пользователи и изменения конфигурации из домена не передаются в филиал, а статистика о заданиях и счётчиках не выгружается в Мониторинг. После восстановления канала связи все накопленные данные синхронизируются, Мониторинг получает статистику, а ПринтМенеджер обновляет список пользователей и устройств. Деградационный режим нужен в филиалах с ненадёжными каналами. В организациях, где филиалы соединены с ЦОДом надёжными линиями связи, достаточно централизованной конфигурации без локальных ПринтМенеджеров — отказоустойчивость достигается кластеризацией центральных серверов. Детали кластера ПринтМенеджеров Для непрерывной работы сервиса печати при отказе одного или двух серверов используется кластер ПринтМенеджеров. Основные принципы: Минимум три ноды. Алгоритм отказоустойчивости требует 2F+1 узлов, чтобы пережить отказ F узлов. При двух нодах отказ одной приведёт к потере кворума. Балансировщик нагрузки (например, HAProxy) распределяет задания между серверами. Балансировщик можно настроить с резервированием, но сам Принтум поставляется с автоматизированными шаблонами настройки HAProxy. Обособленные сервисы : база данных Принтум и файловое хранилище (куда помещаются документы и теневые копии) размещаются на отдельном сервере или кластере. Отказ сервера с базой данных не должен останавливать всю систему, поэтому базу данных и файловое хранилище необходимо реплицировать на стороне заказчика. Разделение ролей : Мониторинг, ПринтМенеджер, база данных и файловое хранилище могут быть на разных серверах. На практике часто Мониторинг и один из ПринтМенеджеров размещают на одном хосте, остальные ПринтМенеджер — на отдельных. Как работает кластер (пошагово) Пользователь отправляет задание на виртуальный МФУ Принтум. Балансировщик выбирает живой узел ПринтМенеджера и передаёт задание. ПринтМенеджер обрабатывает задание, хранит метаданные в общей базе, сохраняет файл в общую папку и отправляет на физический МФУ после авторизации. Если один из ПринтМенеджеров выходит из строя, балансировщик исключает его из пула; остальные узлы продолжают работу без прерывания сервиса. Пока не восстановится кворум, система должна поддерживать минимум две активные ноды. Администраторы восстанавливают упавший сервер или вводят новый. Система автоматически синхронизирует очереди и статистику через Мониторинг. Зона ответственности заказчика Принтум обеспечивает отказоустойчивость приложений, однако ответственность за инфраструктуру остаётся за заказчиком: репликация базы данных и файлового хранилища; отказоустойчивость сети и балансировщика; резервное копирование и аварийное восстановление (DR) серверов. Вывод Для надёжной работы Принтум в филиалах с ненадёжной связью выбирайте распределённую архитектуру с локальными ПринтМенеджерами. При необходимости непрерывной работы в централизованных установках используйте кластер из трёх и более ПринтМенеджеров с балансировщиком нагрузки и репликацией базы данных. Деградационный режим и кластеризация не исключают друг друга и могут быть комбинированы в крупных проектах.