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

См. также

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

В последние годы спор «облако или локалка» стал одним из самых горячих в мире работы с нейросетями. Давайте разберемся.

03.08.2026    1683    dsdred    47    

10

Облачные сервисы, хостинг Программист Пользователь 1С 8.3 Абонемент ($m)

Штатный механизм рассылки отчетов в 1С:Предприятие удобен для отправки отчетов для дальнейшего их анализа (в том числе bi системами), но из-за неоднородности инфраструктуры существующие способы доставки могут не всегда подходить. Для решения этой проблемы можно использовать s3 совместимые хранилища, и в этом поможет мое расширение.

2 стартмани

29.07.2026    258    0    smirnov0ser    0    

1

Администрирование веб-серверов Сервера HighLoad оптимизация Системный администратор Программист Бесплатно (free)

Каждый вечер в час закрытия смен 200 касс розничной сети начинали «залипать», и у всех было готовое объяснение: блокировки. Аудит ожиданий в час пика показал: блокировок — ноль. Сессии ждали не друг друга, а свободных потоков: заводские cost threshold for parallelism = 5 и MAXDOP = 0 на 48-ядерном сервере отправляли даже лёгкие запросы разбегаться по всем ядрам, и две трети запросов стояли в очереди за потоками. Разбираем детектив: почему рефлекс «вечером тормозит — значит, блокировки» подменяет диагностику, как читается картина ожиданий, причём тут сосед по инстансу с отчётом на 24 потока и 4,3 часа — и как две динамические настройки без перезапуска сняли проблему в тот же вечер. С чек-листом «блокировки или параллелизм».

28.07.2026    1235    nedomolkov.ivan    4    

8

Администрирование СУБД Linux Системный администратор Программист Россия Бесплатно (free)

30 декабря, пик предновогодних продаж, и тут — полная катастрофа. Сервер с 1С в единственной торговой точке пал жертвой вируса-шифровальщика. Бизнес встал, выручка — ноль, резервных копий нет. Знакомая ситуация? Но вместо того, чтобы просто переустановить «убитую» Windows, мы пошли другим путем. В свежей статье я честно рассказываю: почему сервер на «дешевых комплектующих» — это бомба замедленного действия. Как вирус проник в систему, если кассир работает исправно? Зачем микробизнесу смотреть в сторону бесплатного Linux (и при чем тут лицензии на Windows Server + MS SQL). Реально ли подружить 1С, торговое оборудование и «неродной» интерфейс? Спойлер: Сервер ожил, базу восстановили (да, это было больно), а клиент теперь спит спокойно.

20.07.2026    1692    maxber    7    

3

Сервера Системный администратор Программист 1С 8.3 1С 8.5 1С:Библиотека стандартных подсистем Абонемент ($m)

Небольшая модификация стандартной обработки 1С "Управление серверами". Добавлена возможность изменять порядок серверов и сохранять измененный порядок в настройках.

1 стартмани

29.06.2026    458    2    Sam13    0    

2

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

В данной статье мы поговорим о том, какое оборудование нужно под разные сценарии нагрузки, сколько стоит сервер 1С в 2026 году и как перенести базу 1С на новый сервер без потерь и длительных простоев.

24.06.2026    3663    Koder_    8    

0

Сервера Мониторинг Системный администратор 1С 8.3 Россия Абонемент ($m)

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

1 стартмани

12.06.2026    692    2    dimg    1    

4

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

Рассматриваем переход от классической инфраструктуры к облачным моделям и причины, по которым бизнес все чаще выбирает PaaS: скорость внедрения, снижение затрат и отказоустойчивость. Разбираем, какую роль Kubernetes играет в автоматизации, масштабировании и управлении контейнеризированными приложениями, а также можно ли считать 1С Cloud Native-приложением. На примере архитектуры кластера 1С показываем, как компоненты сервера упаковываются в контейнеры, какие ограничения возникают из-за монолитной природы 1С и как их можно обходить. В финальной части объясняем, как Prometheus, Grafana, Loki/ELK и другие инструменты мониторинга помогают контролировать состояние сервиса и делать облачную платформу удобнее для бизнеса.

02.06.2026    1442    militarymax    0    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Восьмой 99 21.10.24 09:23 Сейчас в теме
Мое уважение и почтение мастеру за статью!
2. capitan 2593 22.10.24 22:26 Сейчас в теме
(1) И вам мое почтение и благодарность за лучший комментарий)
Надеюсь публикации этой серии сэкономят вам пару тройку часов вашего драгоценного времени
Восьмой; +1 Ответить
3. Восьмой 99 27.10.24 16:40 Сейчас в теме
(2) Более чем)
Скажите Коллега Вы случайно не знаете как победить зависание синтаксис помощника в конфигураторе на астре лин? Я так понял 1С в СП использует какой-то древний виндовый движок и как победить зависание при вызове СП я так и не смог.
4. capitan 2593 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 написано:

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

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

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

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