Обеспечение непрерывной работы 1С — критически важная задача для любого бизнеса. Ситуация, когда выход из строя одного диска парализует работу всей компании на полдня, сигнализирует о необходимости пересмотра архитектуры. Рассмотрим подробно, как создать систему, которая продолжит функционировать даже при аппаратных сбоях.
Прежде чем приступать к программным кластерам, разберем ситуацию с физическими носителями. В рассматриваемом случае «отвалился» RAID, что привело к переустановке системы. Важно понимать: не все RAID-массивы одинаково полезны для отказоустойчивости.
Проанализируем основные типы массивов для 1С:
Выясним причину долгого восстановления в исходном примере: скорее всего, отсутствовал Hot Spare (диск горячей замены) или мониторинг состояния массива. Настроим систему так, чтобы при отказе одного диска запасной подхватывал нагрузку автоматически.
Автор темы столкнулся с вопросом: зачем в схемах отказоустойчивости выделяют отдельный сервер лицензий? Разберем по шагам логику работы кластера 1С.
Когда мы создаем кластер из двух рабочих серверов (Центральный и Резервный), платформа позволяет настроить Уровень отказоустойчивости. Рассмотрим это подробнее:
Если мы установим уровень отказоустойчивости равным 1, это будет означать, что кластер сохранит работоспособность при выходе из строя одного любого сервера. Платформа будет автоматически реплицировать данные о сеансах пользователей между рабочими серверами.
Почему нужен отдельный сервер лицензирования?
Программные лицензии 1С привязываются к ключевым параметрам сервера (процессор, материнская плата, BIOS). Если лицензия активирована на «Компьютере 1», и он сгорает, то «Компьютер 2» не сможет использовать эти лицензии. Чтобы решить эту проблему, мы создаем Сервис лицензирования на отдельном узле (часто это легкая виртуальная машина). Этот сервис занимается только раздачей лицензий всем рабочим серверам кластера. Таким образом, работоспособность лицензий не зависит от состояния конкретного рабочего сервера, на котором выполняется код 1С.
Перейдем к самому важному — сохранности базы данных. Простого копирования файлов недостаточно. Рассмотрим два основных сценария:
Для Microsoft SQL Server мы рекомендуем технологию Always On Availability Groups. Посмотрим на алгоритм работы:
Если мы используем Linux и Postgres, то простая Master-Slave репликация требует ручного переключения, что увеличивает время простоя. Для автоматизации мы применим связку Patroni + etcd + HAProxy.
Проанализируем ситуацию: Patroni следит за состоянием Postgres. Если Master-сервер становится недоступен, Patroni выбирает новую «главную» реплику, а HAProxy переключает на нее сервер 1С. Лаг репликации в такой схеме обычно составляет менее 1 секунды, что практически незаметно для пользователей.
Если бюджет ограничен и мы не можем позволить себе полноценный кластер, рассмотрим вариант «холодного» или «теплого» резерва:
Transaction Log (лога транзакций) каждые 15–30 минут. Это позволит восстановить базу в случае аварии с минимальными потерями данных.Рассмотрим современный подход — гипервизоры (VMware, Hyper-V, Proxmox). Вместо того чтобы городить сложные кластеры внутри ОС, мы можем настроить High Availability (HA) на уровне виртуализации.
Если физическое железо сервера выходит из строя, гипервизор просто перезапускает виртуальную машину с 1С на другом живом физическом сервере. Время простоя сокращается до 2–3 минут (время загрузки ОС), что для многих компаний на 50 пользователей является вполне приемлемым результатом без необходимости покупки дорогостоящих лицензий на SQL Enterprise.
Подведем итог: для построения надежной системы на 50 пользователей мы рекомендуем использовать RAID 10 на серверах, настроить кластер 1С с уровнем отказоустойчивости 1 и выделить сервис лицензирования. В качестве СУБД оптимально использовать MS SQL с технологией Always On или PostgreSQL под управлением Patroni. Не забывайте про регулярную проверку возможности восстановления из бэкапов — это последняя линия обороны вашего бизнеса.