В кластере нет серверов под управлением ос windows в 1с

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

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

Открывается по ссылке Настроить раздела Компания- Больше возможностей – Регламентные операции — Поиск данных.

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

Также полнотекстовый поиск предоставляет такие возможности как: поддержка транслитерации (написание русских слов символами латиницы в соответствии с ГОСТ); поддержка замещения (написание части символов в русских словах одноклавишными латинскими символами); нечеткий поиск (буквы в найденных словах могут отличаться).

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

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

Временное отключение полнотекстового поиска

  • Флажок Использовать полнотекстовый поиск включен по умолчанию. Полнотекстовый поиск имеет смысл отключать в случае, если необходимо немного повысить быстродействие программы и пользователям не требуется поиск данных в программе. 

Размер индексируемых данных

  • С помощью соответствующего флажка можно Ограничить максимальный размер индексируемых данных. По умолчанию ограничение равно 1 Мб. Это может быть востребовано, если ресурсы компьютера, на котором установлена программа, ограничены.

Обновление индекса полнотекстового поиска

  • Для того чтобы можно было осуществлять поиск по всем введенным в программу данным, необходимо регулярно актуализировать индекс полнотекстового поиска. Для регулярного автоматического обновления индекса предназначены регламентные задания Обновление индекса ППД и Слияние индекса ППД (выполняется раз в сутки). 
  • Если индекс уже был обновлен, то отображается Дата актуальности индекса — дата последнего обновления индекса. 
  • Если в программе есть данные, которые не прошли индексирование, то становится доступна кнопка Обновить индекс и выводится Статус индекса «Требуется обновление».

Очистка индекса полнотекстового поиска

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

Проверка индекса полнотекстового поиска

  • В любой момент можно проверить состояние индекса полнотекстового поиска с помощью кнопки Проверить индекс.

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

Автоматическое извлечение текстов

Извлечение текстов из файлов необходимо для полнотекстового поиска в программе.

Для настройки необходимо с помощью переключателя выбрать:

  • В кластере серверов настроено выполнение на сервере под управлением ОС Windows — в этом случае становится доступной команда Настроить расписание, с помощью которой можно настроить регламентное задание . Укажите расписание и другие параметры регламентного задания по извлечению текстов из файлов.

Данный вариант подходит, когда в Администрировании серверов 1С Предприятия задано следующее правило для сервера под управлением ОС MicrosoftWindows: 

    • Объект требования: Клиентское соединение с ИБ. 
    • Тип требования: Назначать. 
    • Имя ИБ: не указывается. 
    • Значение дополнительного параметра: BackgroundJob.CommonModule.ПолнотекстовыйПоискСервер.ОбновлениеИндексаППДПоРасписанию.

  • В кластере нет серверов под управлением ОС Windows (все сервера в кластере только под управлением ОС Linux) — в этом случае с помощью команды Запустить извлечение текстов можно начать извлечение текстов в тонком клиенте на рабочей станции под управлением ОС Windows.
    • Если в клиент-серверном варианте один или несколько рабочих процессов сервера работают под Linux, а часть или все клиенты подключаются с помощью веб-клиента, то в информационной базе могут быть добавлены файлы, текст из которых не извлечен, и соответственно эти файлы не могут быть найдены полнотекстовым поиском по содержимому. В этом случае на одном из клиентских компьютеров, работающих под управлением ОС MicrosoftWindows, нужно запустить тонкий или толстый клиент, и на нем выполнить команду Извлечение текстов, для того чтобы в автоматическом режиме извлекать текст из файлов. По умолчанию интервал времени выполнения равен 60 секундам. 

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

Когда требуется создание кластера серверов 1C? В тех случаях, когда нужно решить любую из этих проблем:

  • Сбой или поломка оборудования. Вы можете создать резервный кластер серверов;
  • Недостаточную безопасность БД. Появляется возможность шифрования данных;
  • Неравномерное распределение нагрузки. Разделение процессов позволяет эффективнее управлять клиентскими соединениями и запросами;
  • Нестабильность работы. Правильно настроенный кластер серверов 1С повышает стабильность работы установленных приложений.

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

Итак, как создать кластер серверов 1C? Рассказываем на примере версии 1C:8.3.

Аренда облачного сервера для разработки, хостинга, обученияПодробнее

Шаг 1. Создаём центральный сервер

В кластер 1С можно добавить минимум два сервера приложений. Предположим, что у нас нет ни одного. Давайте создадим кластер из двух серверов 1C. Для этого заходим в консоль администрирования 1C:8.3, находим там Central 1C:Enterprise 8.3 server (название раздела может меняться в зависимости от версии вашей платформы).

Central 1C:Enterprise 8.3 server в консоли

Нажимаем на него правой кнопкой мыши и выбираем «Создать» — «Центральный сервер 1C:Предприятия 8.3».

Создаём Центральный сервер 1C:Предприятия 8.3

Присваиваем имя серверу. Пусть будет, например, 1cAppServer. Остальные поля оставляем без изменений.

Присваиваем имя серверу

Если всё сделано правильно, в консоли появится центральный сервер.

центральный сервер в консоли

Шаг 2. Переименовываем локальный кластер

Раскрываем вкладку 1cAppServer и находим там «Кластеры» — «Локальный сервер».

Локальный сервер

Нажимаем на него правой кнопкой мыши, выбираем «Свойства».

Свойства локального сервера

Переименовываем в Cluster 1C.

Переименовываем локальный сервер

Шаг 3. Создаём второй центральный сервер

По схеме из первого шага создаём второй центральный сервер и называем его 1cServer2

Создаём второй центральный сервер

В консоли теперь отображается два сервера.

Два сервера в консоли

Шаг 4. Убираем лишнее

В разделе «Кластеры» в 1cServer2 открываем локальный кластер и удаляем его. Он создаётся автоматически, но нам не требуется.

Удаляем локальный кластер 1C

Шаг 5. Подготавливаем кластер

Открываем 1cAppServer — «Кластеры» — Cluster 1C.

Открываем кластер 1C

Выбираем «Рабочие серверы» — «Создать» — «Рабочий сервер».

Создаём рабочий сервер

Присваиваем имя 1cServer2, указываем то же самое в поле «Компьютер» — это будет его сетевое описание. Остальные поля не меняем.

Присваиваем имя

Шаг 6. Формируем кластер 1C

Вы видите, что в консоли есть два рабочих сервера. Нажмите правой кнопкой мыши на 1cServer2 — «Свойства» и отметьте чекбокс «Центральный сервер». Сохраните изменения.

Формируем кластер 1C

Шаг 7. Проверка

Во вкладке 1cServer2 — «Разделы» должен появиться Cluster 1C. Если вы его не видите, нужно перезагрузить консоль администрирования 1C. Закройте её и откройте заново — кластер будет отображаться.

Кластер 1C в рабочем состоянии

Можно работать с кластером серверов 1C.

Содержание

  1. Инструкция по настройке рабочих серверов с Технологической Платформой 1С:Предприятие
  2. 1. Определить, сколько информационных баз будут использоваться в кластере для работы пользователей
  3. 2. Определить, сколько пользователей будет работать одновременно
  4. 3. Настроить профили пользователей ОС, от которых будут запускаться процессы кластера
  5. 4. Настроить логирование и дампы
  6. 5. Проверить настройки операционной системы
  7. 5.1. Настроить рабочий сервер
  8. 5.2. Настроить рабочий сервер
  9. 5.3. Убедиться, что брадмауэр операционной системы настроен таким образом, что не запрещает процессам кластера взаимодействовать корректно.
  10. 5.4. Убедиться, что на рабочих серверах кластера одновременно не используется IPv4 и IPv6.
  11. 5.5. Убедиться, что схема управления питанием — «Высокая производительность».
  12. 5.6. Убедиться, что установлены компоненты Microsoft Data Access Components
  13. 6. Необходимо настроить сетевой стек для обеспечения возможности обработки большого числа подключений
  14. 7. Настроить кластер серверов
  15. 7.1. Необходимо добавить рабочие серверы в кластер
  16. 7.2. Настроить условия перезапуска
  17. 7.3. Настроить расположение каталога кластера
  18. 7.4. Настроить число соединений и информационных баз на процесс
  19. 7.5. Выполнить настройки для случая нескольких рабочих серверов в кластере.
  20. 8. Первый запуск
  21. 9. Отказоустойчивость
  22. 9.1. Проверить лицензии.
  23. 9.2. Установить флаг «Центральный сервер».
  24. 9.3. Установить флаг «Уровень отказоустойчивости»
  25. 9.4. Скорректировать строку соединения
  26. 10. Замечания
  27. 10.1. Не настраивайте exec backup (или аналогичные утилиты) на директории кластера серверов
  28. 10.2. Не настраивайте сжатие данных дисков с директорией кластера
  29. 10.3. Не забывайте про периодическое выполнение дефрагментации дисков ОС Windows.
  30. 10.4. Настроить защиту от вирусов.
  31. Заметки сисадмина о интересных вещах из мира IT, инструкции и рецензии. Настраиваем Компьютеры/Сервера/1С/SIP-телефонию в Москве
  32. Как настроить сервер 1С по умолчанию для ПРОФ лицензии после 2019-09-10
  33. Сервер 1С КОРП
  34. Значения свойств сервера 1С:Предприятие 8 “по умолчанию”
  35. Настройки публикации на веб-сервере

Инструкция по настройке рабочих серверов с Технологической Платформой 1С:Предприятие

Ниже приводится инструкция по настройке рабочих серверов с Технологической Платформой 1С:Предприятие.

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

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

1. Определить, сколько информационных баз будут использоваться в кластере для работы пользователей

Существует несколько вариантов развертывания:

  • в продуктивной среде и подготовительной зоне;
  • в тестовой зоне;
  • в зоне разработки.

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

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

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

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

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

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

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

2. Определить, сколько пользователей будет работать одновременно

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

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

  • Конфигурации системы;
  • Сценария работы пользователей;
  • Числа одновременно работающих пользователей;
  • Используемых версий программных продуктов.

3. Настроить профили пользователей ОС, от которых будут запускаться процессы кластера

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

Это может быть необходимо для того, чтобы код, который выполняется в rphost точно не мог обратиться к каким-либо определенным данным на рабочем сервере или выполнить операцию с административными правами.

Для этого нужно:

  • Подготовить файл swpuser.ini (http://its.1c.ru/db/v837doc/bookmark/adm/TI000000418);
  • Создать пользователей операционной системы, от имени которых будут запускаться процессы кластера;
  • Создать профили соответствующих пользователей;
  • Настроить ограничение прав доступа пользователей к каталогам на уровне ОС, к которым процессы не должны иметь доступ;

Для того, чтобы создать профили пользователей ОС достаточно один раз войти от их имени в ОС Windows.

4. Настроить логирование и дампы

Для этого необходимо настроить:

  • Технологический журнал
  • Сбор дампов процессов кластера средствами Платформы (указнием в logcfg.xml секции dump) либо Windows Error Reporting Services

Хорошей практикой будет настроить сбор WER для rmngr и ragent, но не указывать rphost.

5. Проверить настройки операционной системы

5.1. Настроить рабочий сервер

5.2. Настроить рабочий сервер

Необходимо настроить рабочий сервер в соответствии с инструкцией, которая позволяет избежать ошибки «An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full»

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

Информация по клиент-серверному варианту работы здесь;

Обратите внимание на используемые порты, которые указываются в параметрах центрального сервера,

в свойствах кластера серверов,

и рабочих серверов кластера.

5.4. Убедиться, что на рабочих серверах кластера одновременно не используется IPv4 и IPv6.

5.5. Убедиться, что схема управления питанием — «Высокая производительность».

5.6. Убедиться, что установлены компоненты Microsoft Data Access Components

Этот пункт нужен для настройки с СУБД MS SQL Server.

В противном случае будете получать ошибку вида: «Компоненты OLE DB провайдера не найдены».

Скачать MDAC можно с официальных ресурсов microsoft.

6. Необходимо настроить сетевой стек для обеспечения возможности обработки большого числа подключений

Настройки, которые необходимо выполнить (в дополнение к настройке 5.2. Настроить рабочий сервер в соответствии с инструкцией):

  • Запустить regedit и в ветке HKLMSystemCurrentControlSetServicesTcpipParameters указать
    • MaxFreeTcbs= 100000
    • TcpTimedWaitDelay= 30
    • MaxUserPort= 65534
  • Запустить regedit и в ветке HKLMSystemCurrentControlSetServicesAFDParameters указать
    • EnableDynamicBacklog= 1
    • MinimumDynamicBacklog= 20
    • MaximumDynamicBacklog= 20000
    • DynamicBacklogGrowthDelta= 10
  • Устанавливаем диапазон исходящих портов (10000; 65535)
    • Выполнить: netsh int ipv4 set dynamicport tcp start=10000 num=64510
    • Выполнить: netsh int ipv4 set dynamicport udp start=10000 num=64510

7. Настроить кластер серверов

7.1. Необходимо добавить рабочие серверы в кластер

Информация по работе со списком серверов кластера тут: http://its.1c.ru/db/v837doc#bookmark:cs:TI000000157

7.2. Настроить условия перезапуска

Настроить условия перезапуска по превышению порога памяти.

7.3. Настроить расположение каталога кластера

Необходимо убедиться, что

  • на дисках достаточно места;
  • сеансовые данные расположены на быстрых дисках;

7.4. Настроить число соединений и информационных баз на процесс

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

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

Не стоит просто так уменьшать параметр «Число соединений на процесс» или «Число информационных баз на процесс».

Если у вас нет технического обоснования, почему именно так лучше, рекомендуем оставить значения по умолчанию

7.5. Выполнить настройки для случая нескольких рабочих серверов в кластере.

  • Обязательно должно быть явно указано расположение:
    • сервиса журнала регистрации;
    • сервиса полнотекстового поиска данных;
    • сервиса работы с внешними источниками данных;

    Обязательно нужно продумать

    • расположение клиентских и серверных лицензий и сервисов лицензирования;
    • расположение сеансовых данных.

8. Первый запуск

На этом этапе следует выполнить следующие шаги:

  • Запустить кластер серверов, создать информационную базу;
  • Зарегистрировать программные лицензии;
  • Убедиться, что пользователь может войти в информационную базу без ошибок.

9. Отказоустойчивость

В случае необходимости настройки отказоустойчивого кластера, выполните следующие шаги.

9.1. Проверить лицензии.

Убедитесь, что на рабочих серверах, которые должны выполнять роль Центральных серверов достаточно лицензий для работы всех пользователей в информационной системе при отсутствии одного из Центральных серверов в случае возможного (теоретически) отказа.

9.2. Установить флаг «Центральный сервер».

Установить флаг как на рисунке ниже.

9.3. Установить флаг «Уровень отказоустойчивости»

Установить параметр, пример на рисунке ниже.

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

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

9.4. Скорректировать строку соединения

Необходимо скорректировать строку соединения с информационной базой.

Имеется возможность указания списка резервирования с помощью строки соединения с информационной базой или в соответствующем поле свойств информационной базы.

Список указывается в формате Server1, Server2:Port, Server3.

10. Замечания

10.1. Не настраивайте exec backup (или аналогичные утилиты) на директории кластера серверов

Причина в том, что в этих директориях могут располагаться хранилища с сеансовыми данными, выполнять backup которых не нужно, а создание backp-а которых будет приводить к избыточным накладным расходам.

10.2. Не настраивайте сжатие данных дисков с директорией кластера

10.3. Не забывайте про периодическое выполнение дефрагментации дисков ОС Windows.

10.4. Настроить защиту от вирусов.

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

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

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

Источник

Заметки сисадмина о интересных вещах из мира IT, инструкции и рецензии. Настраиваем Компьютеры/Сервера/1С/SIP-телефонию в Москве

Как настроить сервер 1С по умолчанию для ПРОФ лицензии после 2019-09-10


Все данные по настройкам сервера для работы ПРОФ лицензии.

Для успешного применения решений на платформе 1С:Предприятие в крупных масштабных проектах фирмой “1С” еще в 2014 году был выпущен новый тип лицензий на платформу – 1С:Предприятие 8 КОРП.

Сервер 1С КОРП

Сервер “1С:Предприятия 8.3 КОРП” предоставляет пользователю расширенные возможности по сравнению с сервером уровня ПРОФ:

  • фоновое обновление конфигурации базы данных;
  • дополнительное управление распределением по рабочим серверам кластера в разрезе информационных баз, видов клиентских приложений и фоновых заданий:
    • сервисов кластера;
    • соединений с информационными базами;
  • гибкое управление нагрузкой в кластере:
    • безопасный расход памяти за один вызов;
    • количество ИБ на процесс;
    • объем памяти рабочих процессов, до которого сервер считается производительным;
    • максимальный объем памяти рабочих процессов;
    • стратегия балансировки (по памяти, по производительности);
  • внешнее управление сеансами;
  • механизм управления потреблением ресурсов;
  • профили безопасности;
  • возможность обновления тонкого клиента с сервера;
  • возможность публикации списка баз и обновлений тонкого клиента через http;
  • возможность использования “1С:Сервера взаимодействия”.

Ранее возможность использования расширенной функциональности платформы уровня КОРП только декларировалась в лицензионных соглашениях на лицензии уровня КОРП, но не контролировалась технически и была доступна пользователям с лицензиями версии ПРОФ, но в новых версиях платформы “1С:Предприятие 8.3” такая защита была реализована, при этом отметим 2 особенности:

  • защита реализована начиная с версий 8.3.12.1852, 8.3.13.1791 и 8.3.14.1592 платформы;
  • до 10 сеансов включительно доступен полный функционал уровня КОРП;

Таким образом для лицензий 1С:Предприятие уровня ПРОФ являются недопустимыми значения свойств, отличных от значений по умолчанию:

  • Максимальный объем памяти рабочих процессов
  • Безопасный расход памяти за один вызов
  • Объем памяти рабочих процессов, до которого сервер считается производительным
  • Количество ИБ на процесс
  • Режим распределения нагрузки
  • Допустимое отклонение количества ошибок сервера

Начиная с 10.09.2019 года некоторые пользователи лицензий 1С:Предприятие 8 ПРОФ, выходящие за рамки описанных выше ограничений, начали получать предупреждение с текстом:

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

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

Для продолжения работы после 09.09.2019 г. пользователям лицензий 1С:Предприятие 8 необходимо приобрести лицензии уровня КОРП или вернуть значения данных свойств к значениям “по умолчанию”.

Значения свойств сервера 1С:Предприятие 8 “по умолчанию”

Для возможности продолжения работы используя имеющиеся лицензии 1С:Предприятие уровня ПРОФ без их апгрейда до уровня КОРП необходимо привести параметры свойств кластера сервера 1С:Предприятие 8 и параметров рабочего сервера 1С:Предприятие к значениям “по умолчанию”.

Обратите внимание, что внешний вид окон, доступность полей и значения некоторых параметров при использовании платформы 1С:Предприятие версии 8.3.15.* может отличаться от предыдущих версий.

Значения “по умолчанию” параметров кластера 1С:Предприятие

Для версии 8.3.15

Значения параметров кластера

Параметр Значение
Защищенное соединение Значение по умолчанию R09; выключено.

Отвечает за уровень безопасности кластера. Выбирается из списка (возможные значения: выключено, только соединение, постоянно).

Интервал перезапуска __ секунд Значение по умолчанию –

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

Допустимый объем памяти __ KB Значение по умолчанию –

Исключен из настроек начиная с версии 8.3.15

Устанавливает предельный объем виртуального адресного пространства, после постоянного превышения которого в течение определенного времени (см. следующий параметр) рабочий процесс или менеджер кластера будет автоматически перезапущен. Нулевое значение означает, что критический объем памяти не задан и автоматический перезапуск процессов не выполняется.

Интервал превышения допустимого объема памяти __ секунд Значение по умолчанию –

Исключен из настроек начиная с версии 8.3.15

Определяет интервал времени постоянного превышения предельного объема виртуального адресного пространства, занимаемого рабочим процессом или менеджером кластера (см. предыдущий параметр), после которого выполняется автоматический перезапуск процесса. Нулевое значение означает, что автоматически перезапуск рабочих процессов не выполняется.

Принудительно завершать проблемные процессы Значение по-умолчанию – отключено

Флаг появился начиная с версии 8.3.15

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

Записывать дамп процесса при превышении критического объема памяти Значение по-умолчанию – отключен

Флаг появился начиная с версии 8.3.15

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

Дамп формируется в соответствии с текущими настройками формирования дампов аварийного завершения

Выключенные процессы останавливать через __ секунд
начиная с 8.3.15 переименован на
Проблемные процессы останавливать через __ секунд
Значение по-умолчанию –

Интервал времени, по истечении которого проблемный рабочий процесс принудительно останавливается, независимо от наличия соединений. Работа всех соединений с этим процессом завершается аварийно. Значение свойства может быть изменено во время работы кластера. Нулевое значение означает, что принудительное завершение процесса не выполняется. Менеджер кластера при стойком превышении предельного объема виртуального адресного пространства всегда перезапускается без ожидания.

Уровень отказоустойчивости Значение по-умолчанию –

Уровень отказоустойчивости определяет максимальное количество рабочих серверов, входящих в состав кластера, одновременный выход из строя которых не приведет к аварийному завершению сеансов подключенных пользователей. Если в кластер серверов входит только один рабочий сервер, то максимальный уровень отказоустойчивости будет 0,т. к. выход из строя единственного рабочего сервера приведет к аварийному завершению всех подключенных пользователей. Если в кластер входит 4 рабочих сервера, то уровень отказоустойчивости может изменяться от 0 до 3. При этом 0 означает, что фатальным считается выход из строя любого рабочего сервера, а значение 3 означает, что кластер сохранит работоспособность даже в том случае, если выдут из строя 3 из 4 рабочих серверов.

Режим распределения нагрузки Настройка доступна только для лицензии уровня КОРП
Значение по-умолчанию – Приоритет по производительности. Параметр определяет, по какому критерию будет выбираться рабочий процесс при установке нового соединения. При установке нового соединения с сервером 1С:Предприятия, системе можно указать, каким образом выбирать рабочий процесс (свойство кластера серверов Режим распределения нагрузки):

  • Приоритет по производительности,
  • Приоритет по доступной памяти.

Значения “по умолчанию” параметров рабочего сервера 1С:Предприятие

Для версии 8.3.15

Значения параметров рабочего сервера

Значение по-умолчанию – 8

Другие значения доступны только для лицензии уровня КОРП

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

Если количество информационных баз превысит это количество R09; кластер серверов создаст на этом рабочем сервере дополнительный рабочий процесс.

Значение по-умолчанию – 128

Начиная с платформы версии 8.3.15 значение по умолчанию устанавливается 256 соединений на процесс.
Другие значения доступны как для лицензий уровня КОРП, так и ПРОФ

Количество соединений с информационными базами, которые может обслуживать один рабочий процесс данного сервера. Значение 0 означает, что ограничение не установлено.

Если количество соединений, обслуживаемых рабочим процессом, превысит это количество R09; кластер серверов создаст на этом рабочем сервере дополнительный рабочий процесс.

Значение по-умолчанию – 1541

Другие значения доступны как для лицензий уровня КОРП, так и ПРОФ.

Номер сетевого порта главного менеджера кластера, запущенного на данном рабочем сервере. Этот сетевой порт используется при формировании адреса кластера серверов для указания клиентскому приложению. Адрес выглядит следующим образом: : . Если свойство Компьютер имеет имя COMP1, а свойство Порт главного менеджера кластера равно 1541, то адрес кластера серверов будет выглядеть как COMP1:1541.

Значение данного параметра игнорируется в том случае, если не установлен флаг Центральный сервер.

* Настройку параметров рабочих процессов рекомендуется выполнять таким образом, чтобы она не приводила к запуску множества процессов rphost, т.к. значительное число процессов rphost приводит к неэффективному использованию памяти процессами кластера. Если нет технического обоснования, почему именно так лучше, рекомендуется оставить значения по умолчанию и без необходимости не уменьшать параметры “Число соединений на процесс” или “Число информационных баз на процесс” (доступно только для лицензий уровня КОРП).

** Также проверяйте отсутствие галочки “Внешнее управление сеансами” и строку Внешнее управление сеансами (должна быть пустая) во ВСЕХ БАЗАХ.

При количестве баз больше 50 можно пропустить.

Настройки публикации на веб-сервере

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

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

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

Источник

Adblock
detector

Параметр Значение
Максимальный объем памяти рабочих процессов Значение по-умолчанию – 0

Другие значения доступны только для лицензии уровня КОРП

Максимальный объем памяти (в байтах), доступный всем рабочим процессам кластера на данном рабочем сервере.

Может принимать значение от -1 до 9 223 372 036 854 775 807:

79; —1 R09; не ограничен максимальный объем памяти, доступный рабочим процессам кластера на данном рабочем сервере;

79; R09; значение определяется автоматически как 80% объема оперативной памяти сервера.
Каждый рабочий процесс кластера определяет объем памяти, занимаемой всеми рабочими процессами кластера на этом рабочем сервере (назовем это значение ПамятьПроцесса). Это значение обновляется один раз в две секунды. При начале вызова сервера фиксируется текущее значение ПамятьПроцесса на момент начала вызова (назовем это значение ПамятьПроцессаТекущая). В процессе выполнения вызова вычисляется объем памяти, израсходованной при выполнении этого вызова (назовем это значение ПамятьЗаВызов).

Если в результате выделения памяти в одном вызове сервера значение Максимальный объем памяти рабочих процессов превышено менее чем на значение Безопасный расход памяти за один вызов, то такой вызов не прерывается. Если в течение вызова значение ПамятьЗаВызов превысило значение Безопасный расход памяти за один вызов, и значение ПамятьПроцессаТекущая+ПамятьЗаВызов превысило значение Максимальный объем памяти рабочих процессов, то вызов прерывается исключением и завершается аварийно.

Безопасный расход памяти за один вызов Значение по-умолчанию – 0

Другие значения доступны только для лицензии уровня КОРП

Объем памяти в байтах, использование которого в процессе вызова сервера считается безопасным.

Может принимать значение от -1 до 9 223 372 036 854 775 807:

79; —1 R09; любой вызов сервера считается опасным, если за время вызова сервера достигнут максимальный объем памяти рабочего процесса;

79; R09; значение объема определяется автоматически, как 5% максимального объема памяти рабочих процессов на данном рабочем сервере.

Объем памяти рабочих процессов, до которого сервер считается производительным Значение по-умолчанию – 0

Другие значения доступны только для лицензии уровня КОРП

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

Количество ИБ на процесс *
Количество соединений на процесс *
Порт главного менеджера кластера

Кластер — это разновидность параллельной
или распределённой системы, которая:
1. состоит из нескольких связанных
между собой компьютеров;
2. используется как единый,
унифицированный компьютерный ресурс

Gregory F. Pfister, «In search of clusters».

Дано: есть бизнес-приложение (например, ERP-система), с которым работают одновременно тысячи (возможно, десятки тысяч) пользователей.

Требуется:

  1. Сделать приложение масштабируемым, чтобы при увеличении количества пользователей можно было за счёт наращивания аппаратных ресурсов обеспечить необходимую производительность приложения.
  2. Сделать приложение устойчивым к выходу из строя компонентов системы (как программных, так и аппаратных), потере связи между компонентами и другим возможным проблемам.
  3. Максимально эффективно задействовать системные ресурсы и обеспечить нужную производительность приложения.
  4. Сделать систему простой в развертывании и администрировании.

Чтобы решить эти задачи, мы в платформе 1С:Предприятие используем кластерную архитектуру.

К желаемому результату мы пришли не сразу.

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

image

Как писал автор эпиграфа к этой статье Грегори Пфистер в своей книге «In search of clusters», кластер был придуман не каким-либо конкретным производителем железа или софта, а клиентами, которым не хватало для работы мощностей одного компьютера или требовалось резервирование. Случилось это, по мнению Пфистера, ещё в 60-х годах прошлого века.
Традиционно различают следующие основные виды кластеров:

  1. Отказоустойчивые кластеры (High-availability clusters, HA, кластеры высокой доступности)
  2. Кластеры с балансировкой нагрузки (Load balancing clusters, LBC)
  3. Вычислительные кластеры (High performance computing clusters, HPC)
  4. Системы распределенных вычислений (grid) иногда относят к отдельному типу кластеров, который может состоять из территориально разнесенных серверов с отличающимися операционными системами и аппаратной конфигурацией. В случае grid-вычислений взаимодействия между узлами происходят значительно реже, чем в вычислительных кластерах. В grid-системах могут быть объединены HPC-кластеры, обычные рабочие станции и другие устройства.

Для решения наших задач (устойчивость к выходу из строя компонентов системы и эффективное использование ресурсов) нам требовалось объединить функциональность отказоустойчивого кластера и кластера с балансировкой нагрузки. Пришли мы к этому решению не сразу, а приближались к нему эволюционно, шаг за шагом.

Для тех, кто не в курсе, коротко расскажу, как устроены бизнес-приложения 1С. Это приложения, написанные на предметно-ориентированном языке, «заточенном» под автоматизацию учётных бизнес-задач. Для выполнения приложений, написанных на этом языке, на компьютере должен быть установлен рантайм платформы 1С:Предприятия.

1С:Предприятие 8.0

Первая версия сервера приложений 1С (еще не кластер) появилась в версии платформы 8.0. До этого 1С работала в клиент-серверном варианте, данные хранились в файловой СУБД или MS SQL, а бизнес-логика работала исключительно на клиенте. В версии же 8.0 был сделан переход на трехзвенную архитектуру «клиент – сервер приложений – СУБД».

Сервер 1С в платформе 8.0 представлял собой СОМ+ сервер, умеющий исполнять прикладной код на языке 1С. Использование СОМ+ обеспечивало нам готовый транспорт, позволяющий клиентским приложениям общаться с сервером по сети. Очень многое в архитектуре и клиент-серверного взаимодействия, и прикладных объектов, доступных разработчику 1С, проектировалось с учетом использования СОМ+. В то время в архитектуру не было заложено отказоустойчивости, и падение сервера вызывало отключение всех клиентов. При падении серверного приложения СОМ+ поднимал его при обращении к нему первого клиента, и клиенты начинали свою работу с начала – с коннекта к серверу. В то время всех клиентов обслуживал один процесс.
image

1С:Предприятие 8.1

В следующей версии мы захотели:

  • Обеспечить нашим клиентам отказоустойчивость, чтобы аварии и ошибки у одних пользователей не приводили авариям и ошибкам у других пользователей.
  • Избавиться от технологии СОМ+. СОМ+ работала только на Windows, а в то время уже начала становиться актуальной возможность работы под Linux.

При этом мы не хотели разрабатывать новую версию платформы с нуля – это было бы слишком ресурсозатратно. Мы хотели по максимуму использовать наши наработки, а также сохранить совместимость с прикладными приложениями, разработанными для версии 8.0.

Так в версии 8.1 появился первый кластер. Мы реализовали свой протокол удаленного вызова процедур (поверх ТСР), который по внешнему виду выглядел для конечного потребителя-клиента практически как СОМ+ (т.е. нам практически не пришлось переписывать код, отвечающий за клиент-серверные вызовы). При этом сервер, реализованный нами на С++, мы сделали платформенно-независимым, способным работать и на Windows, и на Linux.

На смену монолитному серверу версии 8.0 пришло 3 вида процессов – рабочий процесс, обслуживающий клиентов, и 2 служебных процесса, поддерживающих работу кластера:

  • rphost – рабочий процесс, обслуживающий клиентов и исполняющий прикладной код. В составе кластера может быть больше одного рабочего процесса, разные рабочие процессы могут исполняться на разных физических серверах – за счёт этого достигается масштабируемость.
  • ragent – процесс агента сервера, запускающий все другие виды процессов, а также ведущий список кластеров, расположенных на данном сервере.
  • rmngr – менеджер кластера, управляющий функционированием всего кластера (но при этом на нем не работает прикладной код).

Под катом – схема работы этих трёх процессов в составе кластера.

image

Клиент на протяжении сессии работал с одним рабочим процессом, падение рабочего процесса означало для всех клиентов, которых этот процесс обслуживал, аварийное завершение сессии. Остальные клиенты продолжали работу.
image

1С:Предприятие 8.2

В версии 8.2 мы захотели, чтобы приложения 1С могли запускаться не только в нативном (исполняемом) клиенте, а ещё и в браузере (без модификации кода приложения). В связи с этим, в частности, встала задача отвязать текущее состояние приложения от текущего соединения с рабочим процессом rphost, сделать его stateless. Как следствие возникло понятие сеанса и сеансовых данных, которые нужно было хранить вне рабочего процесса (потому что stateless). Был разработан сервис сеансовых данных, хранящий и кэширующий сеансовую информацию. Появились и другие сервисы — сервис управляемых транзакционных блокировок, сервис полнотекстового поиска и т.д.

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

Отказоустойчивость

Поскольку процесс работы стал stateless и все необходимые для работы данные хранились вне текущего соединения «клиент – рабочий процесс», в случае падения рабочего процесса клиент при следующем обращении к серверу переключался на другой, «живой» рабочий процесс. В большинстве случаев такое переключение происходило незаметно для клиента.

Механизм работает так. Если клиентский вызов к рабочему процессу по какой-то причине не смог исполниться до конца, то клиентская часть способна, получив ошибку вызова, этот вызов повторить, переустановив соединение с тем же рабочим процессом или с другим. Но повторять вызов можно не всегда; повтор вызова означает, что мы отправили вызов на сервер, а результата не получили. Мы стараемся повторить вызов, при этом при выполнении повторного вызова мы оцениваем, каков результат на сервере был у предшествующего вызова (информация об этом сохраняется на сервере в данных сеанса), потому что если вызов успел там «наследить» (закрыть транзакцию, сохранить сеансовые данные и т.п.) – то просто так повторять его нельзя, это приведет к рассогласованию данных. Если повторять вызов нельзя, клиент получит сообщение о неисправимой ошибке, и клиентское приложение придется перезапустить. Если же вызов «наследить» не успел (а это наиболее частая ситуация, т.к. многие вызовы не меняют данных, например, отчеты, отображение данных на форме и т.п., а те, которые меняют данные – пока транзакция не зафиксирована или пока изменение сеансовых данных не отправлено в менеджер – следов вызов не оставил) — его можно повторить без риска рассогласования данных. Если рабочий процесс упал или произошел обрыв сетевого соединения – такой вызов повторяется, и эта «катастрофа» для клиентского приложения происходит полностью незаметно.

Балансировка нагрузки

Задача балансировки нагрузки в нашем случае звучит так: в систему заходит новый клиент (или уже работающий клиент совершает очередной вызов). Нам надо выбрать, на какой сервер и в какой рабочий процесс направить вызов клиента, чтобы обеспечить клиенту максимальное быстродействие.

Это стандартная задача для кластера с балансировкой нагрузки. Есть несколько типовых алгоритмов её решения, например:

  • Round-Robin (циклический) – серверам присваиваются порядковые номера, первый запрос отправляется на первый сервер, второй запрос – на второй и т. д. до достижения последнего сервера. Следующий запрос направляется на первый сервер и всё начинается с начала. Алгоритм прост в реализации, не требует связи между серверами и неплохо подходит для «легковесных» запросов. Но при балансировке по этому алгоритму не учитывается производительность серверов (которая может быть разной) и текущая загруженность серверов.
  • Weighted Round Robin – усовершенствованный Round-Robin: каждому серверу присваивается весовой коэффициент в соответствии с его производительностью, и сервера с бо́льшим весом обрабатывают больше запросов.
  • Least Connections: новый запрос передается на сервер, обрабатывающий в данный момент наименьшее количество запросов.
  • Least Response Time: сервер выбирается на основе времени его ответа: новый запрос отдаётся серверу, ответившему быстрее других серверов.

Для нашего кластера мы выбрали алгоритм, близкий по сути к Least Response Time. У нас есть механизм, собирающий статистику производительности рабочих процессов на всех серверах кластера. Он делает эталонный вызов каждого процесса сервера в кластере; эталонный вызов задействует некоторое подмножество функций дисковой подсистемы, памяти, процессора, и оценивает, насколько быстро выполняется такой вызов. Результат этих измерений, усредненный за последние 10 минут, является критерием — какой сервер в кластере является наиболее производительным и предпочтительным для отправки к нему клиентских соединений в данный период времени. Запросы клиентов распределяются таким образом, чтобы получше нагрузить наиболее производительный сервер – грузят того, кто везет.

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

Запрос от существующего клиента в большинстве случаев адресуется на тот сервер и в тот рабочий процесс, в который адресовался его предыдущий запрос. С работающим клиентом связан обширный набор данных на сервере, передавать его между процессами (а тем более между серверами) – довольно накладно (хотя мы умеем делать и это).

Запрос от существующего клиента передается в другой рабочий процесс в двух случаях:

  1. Процесса больше нет: рабочий процесс, с которым ранее взаимодействовал клиент, более недоступен (упал процесс, стал недоступен сервер и т.п.).
  2. Есть более производительный сервер: если в кластере есть сервер, отличающийся по производительности в два и более раза по сравнению с сервером, где запушен текущий рабочий процесс, то платформа считает, что даже ценой миграции клиентского контекста нам выгоднее выполнять запросы на более производительном сервере. Переноситься клиенты с одного сервера на другой будут постепенно, по одному, с периодической оценкой результата – что в плане производительности стало с серверами после переноса каждого из клиентских процессов. Цель этой процедуры – выравнивание производительности серверов в кластере (т.е. равномерная загрузка серверов).

Резервирование кластеров

Мы решили повысить отказоустойчивость кластера, прибегнув к схеме Active / passive. Появилась возможность конфигурировать два кластера – рабочий и резервный. В случае недоступности основного кластера (сетевые неполадки или, например, плановое техобслуживание) клиентские вызовы перенаправлялись на резервный кластер.

Однако эта конструкция была довольно сложна в настройке. Администратору приходилось вручную собирать две группы серверов в кластеры и конфигурировать их. Иногда администраторы допускали ошибки, устанавливая противоречащие друг другу настройки, т.к. не было централизованного механизма проверки настроек. Но, тем не менее, этот подход повышал отказоустойчивость системы.
image

1С:Предприятие 8.3

В версии 8.3 мы существенно переписали код серверной части, отвечающий за отказоустойчивость. Мы решили отказаться от схемы Active / passive кластеров ввиду сложности её конфигурирования. В системе остался только один отказоустойчивый кластер, состоящий из любого количества серверов – это ближе к схеме на Active / active, в которой запросы на отказавший узел распределяются между оставшимися рабочими узлами. За счет этого кластер стал проще в настройке. Ряд операций, повышающих отказоустойчивость и улучшающих балансировку нагрузки, стали автоматизированными. Из важных нововведений:

  • Новая настройка кластера «Уровень отказоустойчивости»: число, указывающее, сколько серверов может выйти из строя без последствий в виде аварийного завершения сеансов подключенных пользователей. Исходя из этой настройки кластер будет тратить определённый объём ресурсов на синхронизацию данных между рабочими серверами, чтобы иметь всю необходимую для продолжения работы клиентов информацию на «живых» серверах в случае выхода из строя одного или нескольких серверов.
  • Количество рабочих процессов не задается вручную, как раньше, а автоматически рассчитывается исходя из описаний требований задач по отказоустойчивости и надежности.
  • Появился ряд настроек, связанных с максимальными объемами памяти, которые разрешается потреблять рабочим процессам, а также настройки, определяющие что делать, если эти объемы превышены:

image

image

Главная идея этих наработок – упростить работу администратора, позволяя ему настраивать кластер в привычных ему терминах, на уровне оперирования серверами, не опускаясь ниже, а также минимизировать уровень «ручного управления» работой кластера, дав кластеру механизмы для решения большинства рабочих задач и возможных проблем «на автопилоте».

image

Три звена отказоустойчивости

Как известно, даже если компоненты системы по отдельности надёжны, проблемы могут возникнуть там, где компоненты системы вызывают друг друга. Мы хотели свести количество мест, критичных для работоспособности системы, к минимуму. Важным дополнительным соображением была минимизация переделок прикладных механизмов в платформе и исключение изменений в прикладных решениях. В версии 8.3 появилось 3 звена обеспечения отказоустойчивости «на стыках»:

image

  1. Связь между клиентом, работающим по HTTP(S), и веб-сервером. В случае веб-клиента этот механизм стандартно реализуется веб-технологиями. В случае тонкого клиента, работающего по HTTP с веб-сервером, или мобильного клиента (мобильный клиент всегда работает по HTTP) мы используем библиотеку libcurl с открытым исходным кодом.
  2. Отслеживание разрывов соединений, механизм балансировки нагрузки и механизм повторов вызовов позволяют как можно раньше узнать о возникшей проблеме и предпринять действия по её устранению.
  3. Связь между ТСР-клиентом и рабочим процессом. Клиентом ТСР может выступать либо клиент 1С, либо расширение веб-сервера при работе клиента через НТТР. При выполнении каждого НТТР-вызова происходит выбор наиболее подходящего соединения с рабочим процессом и отправка этого вызова. Наиболее подходящее соединение выбирается исходя из того, в какой рабочий процесс отправлялся предыдущий вызов данного клиента. Если следующий вызов клиента можно отправить в тот же рабочий процесс, куда ушел предыдущий вызов – мы так и поступаем. Только если по какой-то причине в данный рабочий процесс вызов отправить нельзя (потому, что рабочий процесс стал недоступен, либо мы знаем, что есть другой рабочий процесс с существенно лучшей производительностью) – мы отправляем новый клиентский вызов в более подходящий рабочий процесс.
  4. Связь между рабочими процессами сервисами кластера, реализованными в процессах rmngr. Сервисов кластера около 20 (в зависимости от версии платформы) — сервис сеансовых данных, сервис транзакционных блокировок и т.д. На этом уровне существенную роль играют механизм распределения сервисов по серверам и репликация данных сервисов кластера. Балансировка нагрузки на уровне 1С:Предприятия позволяет получать приблизительно одинаковую лучшую производительность от всех рабочих серверов.

В заключение

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

Бывают ситуации, когда мы не можем повторить вызов, или падение сервера застает платформу в очень неудачный момент времени, например, в середине транзакции и не очень понятно, что с ними делать. Мы стараемся обеспечить статистически хорошую выживаемость клиентов при падении серверов в кластере. Как правило, средние потери клиентов за отказ сервера – единицы процентов. При этом все «потерянные» клиенты могут продолжить работу в кластере после перезапуска клиентского приложения.

Надежность кластера серверов 1С в версии 8.3 существенно повысилась. Уже давно не редкость внедрения продуктов 1С, где количество одновременно работающих пользователей достигает нескольких тысяч. Есть и внедрения, где одновременно работают и 5 000, и 10 000 пользователей — например, внедрение в «Билайне», где приложение «1С: Управление Торговлей» обслуживает все салоны продаж «Билайн» в России, или внедрение в грузоперевозчике «Деловые Линии», где приложение, самостоятельно созданное разработчиками ИТ-отдела «Деловых Линий» на платформе 1С:Предприятие, обслуживает полный цикл грузоперевозок. Наши внутренние нагрузочные тесты кластера эмулируют одновременную работу до 20 000 пользователей.

В заключение хочется кратко перечислить что ещё полезного есть в нашем кластере (список неполный):

  • Настройки безопасности, ограничивающие прикладному решению потенциально опасные для функционирования кластера операции. Например, можно ограничить доступ к файловой системе сервера или запретить прикладному решению запускать приложения, установленные на сервере.
  • Требования назначения функциональности – механизм, позволяющий администратору указать, какие сервисы кластера, прикладные решения (или даже отдельные функции прикладных решений – отчёты, фоновые и регламентные задания и т.д.) должны работать на каждом из серверов. Например, если заранее известно, что с конкретным прикладным решением (например, бухгалтерией) будет работать существенно меньше пользователей, чем с ERP, возможно, имеет смысл настроить более мощный сервер на работу исключительно с ERP.
  • Управление потреблением ресурсов – механизм, отслеживающий потребление кластером ресурсов (память, процессорное время, вызовы СУБД и т.д.). Он позволяет, в частности, выставлять пользователям квоты ресурсов, которые они не могут превысить, и прерывать операции, выполнение которых влияет на производительность сервера в целом.

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

Мы тщательно анализируем возможности отказоустойчивости в разных системах, вплоть до холодного резервного копирования на европейских серверах (дублирование на уровне ЦОД).

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

Устанавливаем 1С:Предприятие 8 на двух серверах с запуском службы “Агент сервера 1С:Предприятие 8.3 (x86-64)”.

Установка сервера 1С:Предприятие

Рисунок 1 — Установка сервера 1С:Предприятие

После установки, переходим в “Администрирование серверов 1С Предприятия x86-64”.

Заходим в параметры кластера и вводим общее имя кластера, а также указываем “уровень отказоустойчивости” в нашем случае ставим 1 уровень.

Параметры кластера

Рисунок 2 — Параметры кластера

На втором сервере удаляем “Локальный кластер”, сделанный по умолчанию.
Подключаемся к новому созданному кластеру с именем “Cluster1C”.

Создаем “рабочий сервер”, указываем что этот рабочий сервер является “центральным”.

Параметры рабочего сервера

Рисунок 3 — Параметры рабочего сервера

Заходим в Рабочие серверы => SQL => Требования назначения функциональности, создаем новое требования для клиентского соединение с ИБ, тип требования: назначить.

Повторяем тоже самое на рабочем сервере SQL2.

Управление кластером заключается в том, что администратор определяет состав компьютеров (рабочих серверов), на которых размещается кластер. Кроме этого (при необходимости), он может определить требования к ним: какие сервисы и соединения с информационными базами должны работать на каждом из рабочих серверов.

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

После этого мы можем наблюдать как происходит распределение нагрузки на кластере 1С.

Интересует отказоустойчивое решение 1С? Мы предлагаем готовый кластер 1С в аренду.

В данной статье познакомимся с сервером администрирования кластера серверов, а конкретно с утилитами rac.exe и ras.exe, а также программы deployka с помощью которых становится возможным администрирование кластера серверов 1С:Предприятие из командной строки.

По традиции, всем кому лень читать, предлагаю посмотреть вебинар на указанную тему

Ну а остальным добро пожаловать под кат:

0. Оглавление

  1. Общие сведения
  2. Установка компонент сервера администрирования
  3. Запуск сервера администрирования
  4. Запуск сервера администрирования в качестве службы Windows
  5. Администрирование кластера серверов с помощью утилиты rac.exe
  6. Программные обертки для работы с сервером администрирования
  7. Установка и настройка с программы deployka

1. Общие сведения

Управлять кластером серверов 1С:Предприятие версии 8.3 возможно как с помощью консоли администрирования серверов 1С, так и из командной строки. Для этих целей служит Сервер администрирования кластера серверов, который состоит из двух утилит: непосредственно самого сервера — программы rac.exe и  утилиты командной строки rac.exe, которая обращаясь к запущенному прежде серверу ras позволяет выполнять различные операции с кластером серверов 1С:Предприятия.

Подробно про данный механизм можно прочитать в поставляемой вместе с платформой книге «Руководство администратора. Клиент-серверный вариант» (или, соответственно, на сайте ИТС).

А общая схема работы данной связки выглядит следующим образом:

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

И сервер администрирования и утилита командной строки могут работать в любой поддерживаемой платформой 1С:Предприятия ОС. Но в данной статье мы ограничимся только ОС семейства Windows.

2. Установка компонент сервера администрирования

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

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

Подробно про установку сервера 1С:Предприятия я писал здесь.

Для установки сервера администрирования на компьютере, где ранее не был установлен сервер 1С:Предприятия, необходимо запустить дистрибутив установки сервера 1С и в составе компонент выбрать пункт «Сервер 1С:Предприятия 8».

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

После установки необходимо убедиться в наличии всех необходимых компонент описанным выше способом.

3. Запуск сервера администрирования

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

ras help

Из справки видно, что сервер администрирования может работать как в режиме приложения, так и как служба Windows (параметр service ). Также с мы можем задать сетевой порт, на котором будет работать сервер администрирования (параметр port, по умолчанию используется порт 1545), а для режима администрирования кластера используется режим claster. Вызвать справку к данному режиму можно командой:

rac help cluster

После чего увидим, что у данного режима в качестве аргумента указывается адрес агента кластера серверов 1С:Предприятия. По умолчанию это localhost:1540.

Таким образом, если сервер администрирования запускается на той же машине, где запущен и агент сервера 1С:Предприятия, достаточно выполнить команду

rac cluster 

Ну а если необходимо подключиться к агенту сервера, запущенном, например, на компьютере с сетевым именем Server1C, причем агент работает на нестандартном порту 2540, то команда будет следующей:

rac cluster server1c:2540

4. Запуск сервера администрирования в качестве службы Windows

Конечно же, чтобы не запускать сервер администрирования каждый раз руками, удобно запустить его единожды в качестве службы Windows. Но, к сожалению, разработчики платформы не реализовали возможность автоматической регистрации соответствующей службы в системе, как, например, это сделано для агента сервера 1С. Для добавления службы предлагается воспользоваться системной утилитой sc. Давайте рассмотрим этот процесс чуть более детально.

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

Пусть это будет локальный пользователь с именем USR1CV8_RAS и паролем Pass123

Далее, необходимо создать и выполнить bat-файл, который будет регистрировать соответствующую службу. Содержания файла следующее:

Файл register-ras.bat:

@echo off
rem %1 - полный номер версии 1С:Предприятия
set SrvUserName=.USR1CV8_RAS
set SrvUserPwd="Pass123"
set CtrlPort=1540
set AgentName=localhost
set RASPort=1545
set SrvcName="1C:Enterprise 8.3 Remote Server"
set BinPath=""C:Program Files1cv8%1binras.exe" cluster --service --port=%RASPort% %AgentName%:%CtrlPort%"
set Desctiption="1C:Enterprise 8.3 Remote Server"
sc stop %SrvcName%
sc delete %SrvcName%
sc create %SrvcName% binPath= %BinPath% start= auto obj= %SrvUserName% password= %SrvUserPwd% displayname= %Desctiption%

В файле указываем:

  • имя пользователя и пароль из под которого будет запускаться служба — переменные SrvUserName и SrvUserPwd
  • адрес и порт агента сервера, который мы собираемся администрировать — переменные AgentName и CtrlPort
  • А также имя службы и сетевой порт на котором будет работать сервер администрирования — переменные RASPort и  SrvcName. Имеет смысл менять эти параметры только если вы хотите запустить параллельно несколько серверов администрирования, например для обслуживания разных серверов 1С.

В качестве единственного параметра bat-файла выступает текущая версия платформы 1С:Предприятия. Таким образом, для создания службы запускаем командную строку с правами администратора и запускаем созданный ранее файл register-ras.bat, не забыв указать нужную версию платформы.

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

На этом установка сервера администрирования в качестве службы завершена.

5. Администрирование кластера серверов с помощью утилиты rac.exe

Итак, сервер администрирования мы установили. Взаимодействием с сервером осуществляется с помощью специальной консольной утилиты rac.exe. Выполним команду

rac help

чтобы получить справку данной программы.

Как видно из справки, утилита имеет один общий аргумент, задающий адрес сервера администрирования (по умолчанию localhost:1545) и множество режимов работы: для администрирования агента кластера серверов, самого кластера, менеджера кластера, рабочих процессов и т. д. Справку по каждому режиму можно вызвать соответствующей командой.

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

Получение списка информации о кластерах:

Получение списка информационных баз на заданном кластере серверов:

Получение списка соединений с указанной информационной базой:

Утилита администрирования позволяет выполнить весь объем работ, необходимый для администрирования кластера серверов, за исключением аутентификация ОС для администраторов кластера серверов, рабочего сервера и информационной базы.

6. Программные обертки для работы с сервером администрирования

Как видно из примеров, работать из командной строки с утилитой rac то еще удовольствие. Но данный механизм и не создавался для ручного управления. Например, на сайте ИТС есть Java-архивов, который позволяет взаимодействовать с сервером администрирования из программы на языке Java, без помощи консольной утилиты администрирования. Скачать данный пакет можно здесь.

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

Например, среди прочего, работать с сервером администрирования может написанная на языке OneScript программа deployka.

О скиптовом движке OneScript я уже рассказывал здесь.

О программе deployka можно подробнее узнать здесь.

Ну а максимально полный обзор всех имеющихся библиотек и приложений написанных на OneScript приведен в этой статье.

7. Установка и настройка с программой deployka

Алгоритм установки OneScript и deployka довольно подробно разобран в статьях по указанным в предыдущем пункте ссылкам. Ну а если коротко, он состоит из следующих пунктов:

1. Скачиваем дистрибутив OneScript с официального сайта.

2. Устанавливаем, следуя инструкциям мастера.

3. Перелогиниваемся в системе, чтобы применились новые переменные среды.

4. Запускаем командную строку с правами администратора, проверяем, что предыдущие пункты выполнены корректно командной

oscript -help

5. Устанавливаем программу deployka с помощью пакетного менеджера opm, выполнив команду

opm install deployka

6. Проверяем, что все работает, вызвав справку «деплойки» командой

deployka help

7. Вот в общем то и все. Все режимы работы программы видны на экране. Далее читаем справку на сайте или в консоли, вызывав подсказку для каждого режима соответствующей командой:

Вот так, например, можно завершить все сеансы в указанной информационной базе с последующей установкой блокировки начала сеансов.

deployka session kill -db Accounting_Demo -rac "C:Program Files1cv88.3.11.2867binrac.exe" -db-user "АбрамовГС (директор)"

8. Теперь можно использовать «деплойку» в своих скриптах. Например скрипт обновления информационной базы из хранилища, с отключением пользователей и обновлением базы данных может выглядеть так:

@echo on

rem Устанавливаем значения переменных
set ServerName="1CAPP:2541"
set RacPath="C:Program Files1cv88.3.11.2954binrac.exe"
set uccode="123"
 
set BaseName="ERP_Test"
set UserName="Admin"
set UserPass="Pass123"
set ConStr="/1CAPP:2541ERP_Test"
 
set RepoPath="tcp://1CAPP/ERP_DEV"
set RepoUserName="test"
set RepoUserPass="123"

rem Завершаем работу пользователей
call deployka session kill -db %BaseName% -db-user %UserName% -db-pwd %UserPass% -rac %RacPath% -lockuccode %uccode%

rem Обновляем конфигурацию базы из хранилища
call deployka loadrepo %ConStr% %RepoPath% -db-user %UserName% -db-pwd %UserPass% -storage-user %RepoUserName% -storage-pwd %RepoUserPass% -uccode %uccode%

rem Обновляем конфигурацию базы данных
call deployka dbupdate %ConStr% -db-user %UserName% -db-pwd %UserPass% -uccode %uccode%

rem Снимаем блокировку сеансов
call deployka session unlock -db %BaseName% -db-user %UserName% -db-pwd %UserPass% -rac %RacPath% -lockuccode %uccode%

Всем спасибо, кто дочитал до конца. Пишите, если у вас остались вопросы.

Понравилась статья? Поделить с друзьями:
  • В качестве параметра указано недопустимое имя компонента windows код ошибки 0x800f080c
  • В качестве имени файла в ms windows недопустимо использовать последовательность символов
  • В какую файловую систему форматировать жесткий диск для windows 10
  • В какую файловую систему лучше форматировать флешку для установки windows
  • В какую папку установить драйвера на windows 10