Построение отказоустойчивого кластера 1С: Предприятие 8.3. Требования назначения функциональности. MythBusters

18.10.24

Интеграция - Облачные сервисы, хостинг

Одна из завершающих публикаций цикла "В облако на работу:.. Рецепты от Капитана", в ходе которых был собран полнофункциональный рабочий контур 1С в сети на отечественной Ред ОС. С веб-серверами, доменной авторизацией, архивированием и прочая, прочая... На закуску разбираемся с отказоустойчивостью. В этой публикации для серверов 1С заодно попробуем подобно сериалу «Разрушители легенд» подтвердить или опровергнуть пару устойчивых мифов о требованиях назначения функциональности.

 

В начале июля, в чрезвычайно жаркое время, под вечер,
один молодой человек вышел из своей каморки,
которую нанимал от жильцов в С — м переулке,
на улицу и медленно, как бы в нерешимости, отправился к К — ну мосту.
На улице жара стояла страшная, к тому же духота, толкотня,
всюду известка, леса, кирпич, пыль и та особенная летняя вонь,
столь известная каждому петербуржцу, не имеющему возможности нанять дачу,
— всё это разом неприятно потрясло и без того уже расстроенные нервы юноши. 

©Ф. М. Достоевский. Преступление и наказание

 

Впрочем о чем это я...Давайте вернемся к 1С.

В прошлой, достаточно объемной статье мы собрали отказоустойчивый кластер PostgreSQL, в этой соберем отказоустойчивый кластер из двух серверов 1С.

Это на порядок проще и к тому же можно делать в графическом интерфейсе, что приятно глазу.

Не стоило бы тревожить клавиатуру и отвлекать почтенную публику из-за таких несложных действий.

Занимает это с учетом записи видео и принтскринов минут 15.

Однако хотелось бы, чтобы такие сервисы, как журнал регистрации и полнотекстового поиска, не мотались, как институтка на гусарском балу, а были в меру доступности привязаны к определенному серверу.С этого момента и начинаются недопонимания или как красиво говорила Фелин Херманс - замешательство (см. публикацию Гостья из будущего. Обзор книги Фелин Херманс "Ум программиста. Как понять и осмыслить любой код")

То есть статья будет не о том как собрать отказоустойчивый кластер 1С Предприятие 8.3, в ней мы разберем несколько утверждений сказанных с высоких трибун технических конференций о требованиях назначения функциональности.

Известно, что слово сказанное со сцены, оказывает магическое действие на слушателей, этим пользовался еще Остап Бендер, а с появлением широкополосного интернета это влияние только усилилось.

Как не вспомнить известную фразу:
 

"Главная проблема цитат в интернете в том,
что люди сразу верят в их подлинность"
В. И. Ленин
этого не говорил

 

 

Хотя описание, достаточно внятное, есть на ИТС

Еще лучше, найти на том же ИТС описание текстовых файлов настроек и посмотреть как и что в них изменяется при изменении в консоли администрирования.

Это даст с одной стороны более глубокое понимание процесса, а с другой, отличный инструмент для управления кластером со стороны DevOps, например уверенное отключение регламентных заданий, если это контур разработки.

В благословенные времена, когда семинары проходили не онлайн, а в конференц-холлах, обязательно на галерке сидел технически продвинутый человек, который рвал на себе волосы, показывая пальцем в докладчика и тихим шепотом советуя так не делать.

Причем количество волос на голове этого человека намекало, на скольки конференциях он уже побывал.

Мне в этом отношении комфортнее, я по другую сторону монитора и я не собираюсь ни в кого кидать помидоры.

Скорее дать метод, которым желающие смогут проверить справедливость любого утверждения о настройках кластера 1С, ведь это обычный текстовый файл и понять как было/стало можно любой утилитой сравнения файлов.

Проверим его, например, на пересоздании кластера.

Все эксперименты, которые описаны в публикации не надо воспроизводить на рабочих серверах!

Для клиентских соединений применяется более сложная логика, подробнее на ИТС - 2.2.7.3.3. Назначение рабочих процессов!

Скопируем файл списка кластеров srvribrg.lst с рабочего сервера, остановим сервис 1С, удалим все файлы из рабочего каталога центрального сервера и запустим сервис 1С.

Создастся новый кластер с новым GUID

Это можно увидеть, сравнив файлы



Принцип вы поняли, только нам будет нужен файл реестра кластера 1CV8Clst.lst из каталога reg_<номер_порта_кластера> в данном случае reg_1541

Тем кто не любит много букв

В этой публикации рассмотрим построение отказоустойчивого кластера 1С и требования назначения функциональности.

Кто не любит читать вообще, может посмотреть видео.

rutube
vk

Остальные, добро пожаловать.

Кто прочитает до конца, получит бонус: Скрипт обновления платформы 1С на рабочих серверах с сохранением настроек и т.п.

Постановка задачи

Поскольку настройка серверов получилась уже достаточно сложная, то удостоверимся, что все включилось и работает, для контура, который не запускался три месяца, это очень актуально.

Спасибо коллегам из компании ©Serverspace, что они не удалили весь контур.


 

#Статус и состояние сервиса etcd
systemctl status etcd.service --no-pager -l
ENDPOINTS=red8-cln01.test.loc:2379,red-srv.test.loc:2379,red8-srv.test.loc:2379
etcdctl --write-out=table --endpoints=$ENDPOINTS endpoint status

#Статус и состояние сервиса vip-manager
systemctl status vip-manager.service --no-pager -l

#Статус и состояние сервиса patroni
systemctl status patroni.service --no-pager -l
/usr/local/bin/patronictl --config-file /etc/patroni/patroni.yml topology cluster-1c

#Статус и состояние сервиса сервера 1С
systemctl status srv1cv8-8.3.24.1467@default --no-pager -l

 

 

Контроллер домена, сервер Windows 2012 R2, домен AD уровня Windows 2012. dc.test.loc

Рабочая станция Windows 10. win-cln01.test.loc

Рабочая станция РедОС 8. red8-cln01.test.loc

Сервер 1С РедОС 8 настроенный. red8-srv.test.loc

Сервер 1С РедОС 8 настраиваемый. red-srv.test.loc

Postgres 16 от PostgresPro

1С Предприятие 64-х 8.3.24.1467

все в домене test.loc. 

Имя домена *.local не рекомендуют коллеги РедОС.

все по железу 4ГБ RAM 50ГБ SSD 2 Ядра CPU

все развернуто в облаке из оригинальных iso образов производителей для чистоты эксперимента.

Исходное состояние - два независимых локальных кластера на двух серверах 1С


 

На раз-два-три

  1. Выбираем один из серверов, который будет образцом, удаляем у второго сервера 1С собственный кластер
  2. Добавляем его в кластер соседа
  3. Устанавливаем флажок "Центральный сервер" в свойствах добавленного сервера
  4. Устанавливаем уровень отказоустойчивости в свойствах кластера
  5. Настраиваем требования назначения функциональности
  6. Не забываем в строке соединения базы(баз) 1С прописать оба сервера через запятую без пробелов.

 

 

Целевое состояние - отказоустойчивый кластер с балансировкой нагрузки на двух серверах 1С

Далее переходим к проверке некоторых утверждений aka ©MythBusters.


 

Самое распространенное из них
 

№1 Требования назначения функциональности применятся при перезагрузке сервера 1С

 


Сохраняем исходный файл 1CV8Clst.lst

Назначаем журнал регистрации на один сервер, полнотекстового поиска на другой.

Сохраняем файл еще раз в другой каталог

Сравниваем и видим что заполнилась секция с настройками требований назначения функциональности.

Перезагружаемся в любом порядке и видим что файл настроек кластера не поменялся.

Как и расположение сервисов, легко увидеть их подкаталоги внутри каталога ИБ.



Зато его меняет применение требований назначения функциональности в свойствах кластера.

Видно, что примененные требования попали совсем в другую секцию файла.



И уже после этого указанные сервисы расходятся по назначенным серверам.

Итог: утверждение №1 это миф

 

№2 Требования назначения функциональности применяются по алфавитному упорядочиванию серверов 1С

 


Часть последователей этого утверждения знает, видело на ИТС фразу:
Обход серверов и требований выполняется в порядке следования этих объектов в консоли кластера.
но искренне верит, что сервера в консоли кластера 1С упорядочены по алфавиту.

Возможно потому, что сервера упорядочены в правой панели просмотра консоли администрирования.

Даже не надо заглядывать в файл 1CV8Clst.lst чтобы убедится, что сервера в консоли упорядочиваются в порядке добавления.

Достаточно удалить идущий первым по алфавиту и добавить его заново, теперь он будет вторым.

Соответственно и требования назначения функциональности с него будут обработаны позже.

В нашем примере, если мы создали требование назначения функциональности для журнала регистрации с типом требования "Назначать" на обоих серверах, то если они оба доступны, оно сработает для верхнего в консоли администрирования, а не в алфавитном порядке.

Если верхний сервер недоступен, то менеджер кластера применит требование назначения функциональности со следующего по порядку.

Главное, чтобы оно там было с типом требования "Назначать".

Если его нет больше ни на одном сервере или оно есть с типом требования "Авто", то мы получим ошибку вида "Сервис недоступен" 

Итог: утверждение №2 это миф

 

Как разновидность утверждения №2 встречается №3 Для типа требования "Назначать" имеет значение свойство "Приоритет"

 


При разборе предыдущего примера мы увидели, что это не так и на ИТС буквами по белому написано:
Обход серверов и требований выполняется в порядке следования этих объектов в консоли кластера.

Сложно поверить, но это действительно так. Это не ошибка платформы, а действительно логика ее разработчиков

Итог: утверждение №3 это миф

В этом месте обычно резонный вопрос: Зачем тогда вообще свойство "Приоритет"?

Для типа требования "Авто"

В итоге мы приходим к правильному пути конфигурирования требований назначения функциональности

Для того чтобы сервис назначался на один из серверов при его доступности, вне зависимости от расположения в консоли кластера и обеспечивалась отказоустойчивость решения, то есть при недоступности этого сервера, назначался на следующий, надо тип требования установить в "Авто", а приоритет в более высокое значение,



чем на остальных серверах, где также тип требования установить в "Авто".


 

Тем, кто дочитал до конца, обещанный скрипт обновления платформы 1С на РедОС и совместимых с ним.

Использование программы: $PROGNAME параметр1 параметр2

Первый параметр это номер обновляемой версии 1С, если 0 то чистая установка

Второй параметр это номер новой версии 1С"

Файл установки 1С должен находиться в одном каталоге со скриптом

Если указан номер обновляемой версии 1С, то должен существовать каталог установки

Что он умеет.

  • Распаковать архив установки
  • Сохранить файлы старых служб с возможными нетиповыми настройками
  • Установить новую версию платформы 1С
  • Удалить старую версию платформы 1С
  • Заменить версию платформы в веб публикациях
  • Запустить службы

Если непонятно, запишу видео

На гитхаб выкладывать пока не планирую, хочу сделать версию на 1С:Исполнителе.
Это кошерно, интересно хватит ли у него возможностей, для этого надо его выучить)

 

Планы на будущее:

Осталась положить вишенку на торт - провести нагрузочное тестирование и определиться с быстродействием сервера.

Это финал любого порядочного внедрения.

Благодарности:

Благодарю компанию ©Serverspace за предоставленное оборудование, без поддержки собрать такой пингвинариум мне было бы негде.

Желающие знают, где меня искать, время за пределами рабочего.

Статья продолжает серию публикаций:

Серия "Рецепты от Капитана" на всякий случай

Вступайте в нашу телеграмм-группу Инфостарт

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Управление взаимоотношениями с клиентами (CRM) Телефония, SIP Облачные сервисы, хостинг 1С:Предприятие 8 1C:Бухгалтерия Управленческий учет Платные (руб)

Продукт интеграции возможностей Облачной АТС Билайн в систему 1С Предприятие 8. Звонки прямо из программы 1С, уведомления о текущих звонках, регистрация пропущенных и завершенных вызовов, ведение журнала, анализ данных об использовании мобильной связи.

12000 руб.

20.03.2019    24852    57    0    

40

WEB-интеграция Облачные сервисы, хостинг 1С 8.3 1С 8.5 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Россия Абонемент ($m)

Внешняя обработка предназначена для автоматической выгрузки файлов из локального или серверного каталога на Яндекс.Диск через официальный REST API Яндекса. Решение удобно использовать для регулярной передачи отчетов, обменных файлов, архивов, выгрузок из 1С и других документов в облачное хранилище без ручного копирования через браузер или клиент Яндекс.Диска.

3 стартмани

18.05.2026    277    4    Rom_Kat    0    

4

Сервера Системный администратор Программист 1С:Предприятие 8 Бесплатно (free)

Пошаговый опыт миграции файловой базы 1С УНФ 1.6 с арендованного сервера на собственную железку в частный дом. Разбираем: сборку ПК за 50 тыс. руб., нюансы публикации базы через IIS на Windows 11, решение проблем с правами доступа и настройку проброса портов на роутере TP-Link, а так же настройка ежедневного бекапа c архивацией в облако встроенными средствами Windows. Итог — быстрая работа через веб-клиент без арендных платежей и кошмаров о потере данных

12.05.2026    817    war41k    34    

10

Сервера Системный администратор 1С 8.3 Бесплатно (free)

Единое место размещения программных лицензий упрощает их администрирование, контроль и обслуживание. Но размещение нескольких серверных лицензий на одном сервере лицензирования не рекомендуется, если в этом нет технической необходимости. Почему? Возможно, потому, что один сервер 1С может захватить несколько серверных лицензий, оставив другой без лицензии.

24.04.2026    741    info_AlexS    3    

0

Облачные сервисы, хостинг Системный администратор Программист Бесплатно (free)

Рассказываем, как родилась идея готового облака 1С и какие инновации сделали его полноценной PaaS-платформой. Материал будет полезен тем, кто ищет способ упростить взаимодействие с 1С, сохранив масштабируемость и надежность корпоративных систем.

14.04.2026    621    militarymax    0    

2

Linux Системный администратор Программист 1С:Предприятие 8 Абонемент ($m)

Графическое приложение на базе PyQt6, которое предоставляет простой интерфейс для очистки локального кэша баз данных 1С Предприятие для ОС Linux. Простая, понятная для пользователей утилита, не требующая прав администратора Скомпилированная в исполняемый файл

06.04.2026    828    capitan    0    

2

Сервера Программист Бесплатно (free)

Разбираем автономный сервер с непривычной стороны – через призму безопасности и реальных рисков его использования. Показываем, как можно выполнять выгрузку базы и изменять конфигурацию без следов в журнале регистрации, а также объясняем механизм раскрытия паролей подключения к СУБД. Отдельно рассматриваем, почему эти сценарии становятся возможны и какие ошибки в настройке инфраструктуры к этому приводят. В завершение рассказываем, какие меры защиты помогают предотвратить подобные ситуации и снизить риски.

30.03.2026    3069    ardn    10    

17
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Восьмой 99 21.10.24 09:23 Сейчас в теме
Мое уважение и почтение мастеру за статью!
2. capitan 2576 22.10.24 22:26 Сейчас в теме
(1) И вам мое почтение и благодарность за лучший комментарий)
Надеюсь публикации этой серии сэкономят вам пару тройку часов вашего драгоценного времени
Восьмой; +1 Ответить
3. Восьмой 99 27.10.24 16:40 Сейчас в теме
(2) Более чем)
Скажите Коллега Вы случайно не знаете как победить зависание синтаксис помощника в конфигураторе на астре лин? Я так понял 1С в СП использует какой-то древний виндовый движок и как победить зависание при вызове СП я так и не смог.
4. capitan 2576 29.10.24 10:12 Сейчас в теме
(3) На РЕД ОС открывается с точно такой же скоростью что и в винде
Не наблюдаю такой проблемы
5. Восьмой 99 31.10.24 09:37 Сейчас в теме
(4)
Ясно, значит буду думать в сторону переезда на РедОС.
Коллега подскажите Ред это получается чистое ядро Лин 6.1 или это всетаки наследики Ubuntu/Debian ?
6. SpartakM 76 18.02.25 09:57 Сейчас в теме
коллеги, может подскажите: в кластере 3 сервера. все с установленным флагом "центральный сервер". указываю - уровень отказоустойчивости - 1, должны дублироваться сеансы пользователей. этого почему то не происходит. можете подсказать, как понять - почему этого может не происходить?
7. amid_niko 03.12.25 11:37 Сейчас в теме
Спорная информация приведена в статье или она актуальна для 8.2?

Цитирую: "В нашем примере, если мы создали требование назначения функциональности для журнала регистрации с типом требования "Назначать" на обоих серверах, то если они оба доступны, оно сработает для верхнего в консоли администрирования, а не в алфавитном порядке."

В документации к 8.3.27 написано:

● Затем полученный список рабочих серверов сортируется по признаку типа требования так, что первыми оказываются рабочие сервера с явным указанием использования. Рабочие сервера, для которых подходящее требование содержит явный запрет на использование ‑ исключаются из списка доступных рабочих серверов. При этом назначение выполняется следующим образом:

● Есть рабочие сервера с явным указанием использования: в этом случае объект требования будет обслужен одним из этих рабочих серверов.

● Нет рабочих серверов с явным указанием использования: происходит попытка использовать рабочие сервера с автоматическим указанием использования или те рабочие серверы, для которых не указано требований.

Тут речь идет о списке серверов (сервера во множественном числе), между которыми происходит выбор. В статье автора же дела обстоят так, что кластер обходит сервера в поиске назначения и если находит, дальше не ищет. Эта информация противоречит документации.
Для отправки сообщения требуется регистрация/авторизация