Параметры сервера 1С по умолчанию для возможности использования лицензий 1C уровня ПРОФ
C 10 сентября 2019 года некоторые пользователи лицензий 1С Предприятие 8, начали получать предупреждение с текстом:
«Операция не может быть выполнена с текущим составом лицензий. «Свойства кластера Допустимое отклонение количества ошибок сервера», «Режим распределения нагрузки или свойства рабочего сервера» «Максимальный объем памяти рабочих процессов», «Безопасный расход памяти за один вызов», «Объем памяти рабочих процессов, до которого сервер считается производительным», «Количество ИБ на процесс» содержат значения, отличные от значений по умолчанию. Использование этих функций возможно только для лицензий на платформу уровня КОРП. Обратитесь к администратору для решения вопросов приобретения и установки лицензий уровня КОРП.»
С 10 сентября 2019 года для продолжения работы с серверными лицензиями 1С уровня ПРОФ в таком случае необходимо купить лицензии 1С уровня КОРП или сделать обмен лицензий 1C ПРОФ на КОРП, или установить значения свойств сервера 1С и параметры свойств кластера сервера 1С Предприятие 8 как значения «по умолчанию».
Какие значения свойств сервера 1С Предприятие 8 используются по умолчанию?
Для возможности работы лицензий 1С уровня ПРОФ без использования функциональности КОРП нужно, как описано ниже, привести параметры рабочего сервера 1С Предприятие и параметры свойств кластера сервера 1С Предприятие 8 к значениям, используемым по умолчанию.
Какие значения свойств параметров рабочего сервера 1С:Предприятие 8 используются по умолчанию?
Для возможности работы лицензий 1С уровня ПРОФ без использования функциональности КОРП нужно, как на картинке ниже, привести параметры рабочего сервера 1С Предприятие к значениям, используемым по умолчанию.
Какие значения свойств параметров кластера 1С:Предприятие 8 используются по умолчанию?
Для возможности работы лицензий 1С уровня ПРОФ без использования функциональности КОРП нужно, как на картинке ниже, привести параметры свойств кластера сервера 1С Предприятие 8 к значениям, используемым по умолчанию.
Принудительно завершать проблемные процессы Значение по умолчанию: отключено.
Если механизм мониторинга кластера признал рабочий процесс проблемным, то данный флажок определяет возможность принудительного завершения таких процессов. На работу мониторинга данный флажок влияния не оказывает.
Записывать дамп процесса при превышении критического объема памяти Значение по умолчанию: отключено.
Определяет необходимость формирования дампа аварийного завершения рабочего процесса в случае, если кластер серверов выполняет принудительное завершение рабочего процесса. Эта ситуация может возникнуть в том случае, если в процессе мониторинга состояния кластера нарушается значение, установленное в параметре рабочего сервера «Критический объем памяти процессов». Дамп формируется в соответствии с текущими настройками формирования дампов аварийного завершения.
В чем отличия лицензии 1С КОРП от обычных лицензий 1С ПРОФ?
Какие лицензии 1С купить ПРОФ или КОРП?
Пример программ 1С, для которых планируется покупка лицензий
До 10 сеансов, доступна функциональность КОРП по управлению нагрузкой и производительностью
Более 500 сеансов и/или более 12 ядер, функциональность КОРП по управлению нагрузкой и производительностью
1С:Бухгалтерия 8 базовая версия и другие программы базовых версий
Нет возможности использовать какие-либо дополнительные лицензии. Базовые версии поддерживают только работу одного пользователя.
Клиентские и серверные лицензии ПРОФ с программной защитой или с USB ключом
Клиентские и серверные лицензии КОРП с программной защитой или с USB ключом
Параметры сервера 1С:Предприятие 8 «по умолчанию» для возможности использования лицензий уровня ПРОФ
Какие значения свойств кластера сервера и параметров рабочего сервера 1С:Предприятия, отличные от значений по умолчанию, необходимо вернуть к исходным для продолжения использования лицензий уровня ПРОФ после 09.09.2019 г.
Сервер «1С:Предприятия 8.3 КОРП» предоставляет пользователю расширенные возможности по сравнению с сервером уровня ПРОФ:
— фоновое обновление конфигурации базы данных;
— дополнительное управление распределением по рабочим серверам кластера в разрезе информационных баз, видов клиентских приложений и фоновых заданий:
— сервисов кластера;
— соединений с информационными базами;
— гибкое управление нагрузкой в кластере:
— безопасный расход памяти за один вызов;
— количество ИБ на процесс;
— объем памяти рабочих процессов, до которого сервер считается производительным;
— максимальный объем памяти рабочих процессов;
— стратегия балансировки (по памяти, по производительности);
— внешнее управление сеансами;
— механизм управления потреблением ресурсов;
— профили безопасности;
— возможность обновления тонкого клиента с сервера;
— возможность публикации списка баз и обновлений тонкого клиента через http;
— возможность использования «1С:Сервера взаимодействия».
Таким образом для лицензий 1С:Предприятие уровня ПРОФ являются недопустимыми значения свойств, отличных от значений по умолчанию:
Значения свойств сервера 1С:Предприятие 8 «по умолчанию»
| Параметр | Значение |
|---|---|
| Защищенное соединение | Значение по умолчанию ‑ выключено. Отвечает за уровень безопасности кластера. Выбирается из списка (возможные значения: выключено, только соединение, постоянно). |
| Интервал перезапуска __ секунд | Исключен из настроек начиная с версии 8.3.15 Устанавливает предельный объем виртуального адресного пространства, после постоянного превышения которого в течение определенного времени (см. следующий параметр) рабочий процесс или менеджер кластера будет автоматически перезапущен. Нулевое значение означает, что критический объем памяти не задан и автоматический перезапуск процессов не выполняется. Исключен из настроек начиная с версии 8.3.15 Определяет интервал времени постоянного превышения предельного объема виртуального адресного пространства, занимаемого рабочим процессом или менеджером кластера (см. предыдущий параметр), после которого выполняется автоматический перезапуск процесса. Нулевое значение означает, что автоматически перезапуск рабочих процессов не выполняется. Значения параметров рабочего сервера Максимальный объем памяти (в байтах), доступный всем рабочим процессам кластера на данном рабочем сервере. ● 0 ‑ значение определяется автоматически как 80% объема оперативной памяти сервера. Если в результате выделения памяти в одном вызове сервера значение Максимальный объем памяти рабочих процессов превышено менее чем на значение Безопасный расход памяти за один вызов, то такой вызов не прерывается. Если в течение вызова значение ПамятьЗаВызов превысило значение Безопасный расход памяти за один вызов, и значение ПамятьПроцессаТекущая+ПамятьЗаВызов превысило значение Максимальный объем памяти рабочих процессов, то вызов прерывается исключением и завершается аварийно. |
| Безопасный расход памяти за один вызов | Другие значения доступны только для лицензии уровня КОРП Объем памяти в байтах, использование которого в процессе вызова сервера считается безопасным. ● 0 ‑ значение объема определяется автоматически, как 5% максимального объема памяти рабочих процессов на данном рабочем сервере. |
| Объем памяти рабочих процессов, до которого сервер считается производительным | Другие значения доступны только для лицензии уровня КОРП Суммарный объем оперативной памяти, занятый рабочими процессами этого рабочего сервера, по достижению которого на этот рабочий сервер перестанут назначаться новые соединения с информационными базами. Значение 0 означает, что никакого ограничения не установлено. Другие значения доступны только для лицензии уровня КОРП Количество информационных баз, соединения с которыми могут обслуживаться одним рабочим процессом данного сервера. Значение 0 означает, что ограничение не установлено. Если количество информационных баз превысит это количество ‑ кластер серверов создаст на этом рабочем сервере дополнительный рабочий процесс. Начиная с платформы версии 8.3.15 значение по умолчанию устанавливается 256 соединений на процесс. Количество соединений с информационными базами, которые может обслуживать один рабочий процесс данного сервера. Значение 0 означает, что ограничение не установлено. Если количество соединений, обслуживаемых рабочим процессом, превысит это количество ‑ кластер серверов создаст на этом рабочем сервере дополнительный рабочий процесс. Значение данного параметра игнорируется в том случае, если не установлен флаг Центральный сервер. Настройки параметра доступны только для лицензии уровня КОРП Позволяет централизованно управлять количеством одновременно используемых лицензий для различных прикладных решений, без модификации самих прикладных решений. Доступно только для лицензии уровня КОРП Позволяет централизованно управлять количеством одновременно используемых лицензий для различных прикладных решений, без модификации самих прикладных решений. Настройки параметра доступны только для лицензии уровня КОРП Позволяет для каждой информационной базы в кластере административно (без вмешательства в код прикладного решения) управлять доступом к различным внешним ресурсам на сервере «1С:Предприятия»: файловой системе, COM-объектам, внешним компонентам, приложениям операционной системы, ресурсам Интернета, привилегированному режиму, методам, внешним отчетам и обработкам. Настройки параметра доступны только для лицензии уровня КОРП. Позволяет для каждой информационной базы в кластере назначить профиль безопасности для программного кода, исполняемого в безопасном режиме. Если данная статья была для Вас полезной, то Вы можете поддержать авторов нашего сайта, оставив свой отзыв. Если у Вас установлен Яндекс.Браузер, то в правом верхнем углу браузера нажмите на кнопку отзывов. Параметры сервера 1С по умолчанию, Как сбросить свойства кластера серверов 1С к значениям по умолчанию, Какое значение по умолчанию свойства рабочего сервера Количество ИБ на процесс, Как вернуть свойства рабочего сервера Максимальный объем памяти рабочих процессов к значению по умолчанию, Параметры кластера серверов 1С по умолчанию, Как вернуть свойства кластера Допустимое отклонение количества ошибок сервера к значениям по умолчаниям, Свойства сервера 1С по умолчанию, Какое значение по умолчанию свойства рабочего сервера Количество соединений на процесс, Как вернуть свойства кластера Режим распределения нагрузки к значениям по умолчаниям, Свойства кластера серверов 1С по умолчанию, Как сбросить свойства сервера 1С к значениям по умолчанию, Свойства кластера серверов 1С по дефолту, Как сбросить настройки кластера серверов 1С к значениям по умолчанию, Как вернуть свойства кластера серверов 1С к значениям по умолчанию, Как сбросить параметры кластера серверов 1С к значениям по умолчанию, Дефолтные параметры кластера серверов 1С, Как вернуть свойства рабочего сервера Объем памяти рабочих процессов к значению по умолчанию, Какое значение по умолчанию свойства рабочего сервера Объем памяти рабочих процессов до которого сервер считается производительным, Дефолтные параметры сервера 1С, Как вернуть параметры сервера 1С к значениям по умолчанию, Параметры сервера 1С по дефолту, Настройки сервера 1С по умолчанию, Как вернуть настройки сервера 1С к значениям по умолчанию, Какое значение по умолчанию свойства рабочего сервера Безопасный расход памяти за один вызов, Как сбросить настройки сервера 1С к значениям по умолчанию, Настройки кластера серверов 1С по умолчанию, Как вернуть свойства рабочего сервера Количество ИБ на процесс к значению по умолчанию, Настройки кластера серверов 1С по дефолту, Как сбросить параметры сервера 1С к значениям по умолчанию, Свойства кластера 1С Предприятия отличаются от значений по умолчанию, Как вернуть свойства рабочего сервера Безопасный расход памяти за один вызов к значению по умолчанию, Какое значение по умолчанию Свойства кластера Режим распределения нагрузки, Как вернуть параметры кластера серверов 1С к значениям по умолчанию, Параметры кластера серверов 1С по дефолту, Свойства рабочего сервера 1С Предприятия отличаются от значений по умолчанию, Какое значение по умолчанию Свойства кластера Допустимое отклонение количества ошибок сервера, Параметры кластера 1С Предприятия отличаются от значений по умолчанию, Как вернуть свойства сервера 1С к значениям по умолчанию, Настройки сервера 1С по дефолту, Параметры рабочего сервера 1С Предприятия отличаются от значений по умолчанию, Как вернуть настройки кластера серверов 1С к значениям по умолчанию, Настройки кластера 1С Предприятия отличаются от значений по умолчанию, Какое значение по умолчанию свойства рабочего сервера Максимальный объем памяти рабочих процессов, Настройки рабочего сервера 1С Предприятия отличаются от значений по умолчанию, Свойства сервера 1С по дефолту, Как вернуть свойства рабочего сервера Максимальный объем памяти рабочих процессов Безопасный расход памяти за один вызов Объем памяти рабочих процессов до которого сервер считается производительным Количество ИБ на процесс к значениям по умолчанию, Инструкция по настройке рабочих серверов с Технологической Платформой 1С:ПредприятиеНиже приводится инструкция по настройке рабочих серверов с Технологической Платформой 1С:Предприятие. Рекомендуется при настройке рабочего сервера пройти указанный ниже сheck-лист и продумать, нужна ли указанная ниже настройка в вашем конкретном случае. Если такая настройка нужна, то выполнить её. Важно на каждом пункте сознательно принимать решение о том, как именно вы хотите настроить рабочий сервер. 1. Определить, сколько информационных баз будут использоваться в кластере для работы пользователейСуществует несколько вариантов развертывания: Наибольшие требования с точки зрения доступности информационной системы будут в случае развертывания в продуктивной и подготовительной зонах. В этих случаях желательно все нерабочие информационные базы вынести в отдельный кластер на отдельные серверы. Возможно, возникнет желание сделать копию рабочей информационной базы и развернуть в том же кластере в продуктивной среде, например, для того, чтобы восстановить определенные данные за прошлые сутки. Стоит перебороть это желание и проследить, чтобы Для восстановления данных за предыдущие сутки не стоит использовать продукционный кластер, а получать необходимые данные с подготовительной зоны информационной системы. Рекомендуется в продуктивной зоне настраивать кластер с минимальным числом необходимых баз, чтобы снизить возможное влияние тестовых баз на работу пользователей. В тестовой зоне и зоне разработки ограничений по числу информационных баз в кластере условно нет. 2. Определить, сколько пользователей будет работать одновременноЧисло одновременно работающих пользователей информационной базы является одним из основных параметров, определяющих нагрузку на информационную систему. Этот параметр также необходим для корректного расчета конфигурации оборудования, который выполняется исходя из 3. Настроить профили пользователей ОС, от которых будут запускаться процессы кластераНеобходимо определиться, будут ли процессы кластера серверов работать от имени различных пользователей информационной системы. Это может быть необходимо для того, чтобы код, который выполняется в rphost точно не мог обратиться к каким-либо определенным данным на рабочем сервере или выполнить операцию с административными правами. Для того, чтобы создать профили пользователей ОС достаточно один раз войти от их имени в ОС Windows. 4. Настроить логирование и дампыДля этого необходимо настроить: Хорошей практикой будет настроить сбор 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.6. Убедиться, что установлены компоненты Microsoft Data Access ComponentsЭтот пункт нужен для настройки с СУБД MS SQL Server. В противном случае будете получать ошибку вида: «Компоненты OLE DB провайдера не найдены». Скачать MDAC можно с официальных ресурсов microsoft. 6. Необходимо настроить сетевой стек для обеспечения возможности обработки большого числа подключенийНастройки, которые необходимо выполнить (в дополнение к настройке 5.2. Настроить рабочий сервер в соответствии с инструкцией): 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. Настроить защиту от вирусов.В случае расположения рабочих серверов кластера в зоне, к которой доступ строго ограничен, не имеет смысл настраивать антивирусные решения на рабочих серверах. Настройка антивирусных решений на таких серверах будет оказывать существенное влияние на производительность при практическом отсутствии выигрыша с точки зрения защиты. При этом, стоит обеспечить защиту антивирусными решениями те пользовательские компьютеры, с которых выполняется доступ к рабочим серверам кластера и сетевым директориям. Про кластер серверов 1СКластер — это разновидность параллельной Дано: есть бизнес-приложение (например, ERP-система), с которым работают одновременно тысячи (возможно, десятки тысяч) пользователей. К желаемому результату мы пришли не сразу. В этой статье расскажем о том, какие бывают кластеры, как мы выбирали подходящий нам вид кластера и о том, как эволюционировал наш кластер от версии к версии, и какие подходы позволили нам в итоге создать систему, обслуживающую десятки тысяч одновременных пользователей.
Как писал автор эпиграфа к этой статье Грегори Пфистер в своей книге «In search of clusters», кластер был придуман не каким-либо конкретным производителем железа или софта, а клиентами, которым не хватало для работы мощностей одного компьютера или требовалось резервирование. Случилось это, по мнению Пфистера, ещё в 60-х годах прошлого века. Для тех, кто не в курсе, коротко расскажу, как устроены бизнес-приложения 1С. Это приложения, написанные на предметно-ориентированном языке, «заточенном» под автоматизацию учётных бизнес-задач. Для выполнения приложений, написанных на этом языке, на компьютере должен быть установлен рантайм платформы 1С:Предприятия. 1С:Предприятие 8.0Первая версия сервера приложений 1С (еще не кластер) появилась в версии платформы 8.0. До этого 1С работала в клиент-серверном варианте, данные хранились в файловой СУБД или MS SQL, а бизнес-логика работала исключительно на клиенте. В версии же 8.0 был сделан переход на трехзвенную архитектуру «клиент – сервер приложений – СУБД». Сервер 1С в платформе 8.0 представлял собой СОМ+ сервер, умеющий исполнять прикладной код на языке 1С. Использование СОМ+ обеспечивало нам готовый транспорт, позволяющий клиентским приложениям общаться с сервером по сети. Очень многое в архитектуре и клиент-серверного взаимодействия, и прикладных объектов, доступных разработчику 1С, проектировалось с учетом использования СОМ+. В то время в архитектуру не было заложено отказоустойчивости, и падение сервера вызывало отключение всех клиентов. При падении серверного приложения СОМ+ поднимал его при обращении к нему первого клиента, и клиенты начинали свою работу с начала – с коннекта к серверу. В то время всех клиентов обслуживал один процесс. 1С:Предприятие 8.1В следующей версии мы захотели: Так в версии 8.1 появился первый кластер. Мы реализовали свой протокол удаленного вызова процедур (поверх ТСР), который по внешнему виду выглядел для конечного потребителя-клиента практически как СОМ+ (т.е. нам практически не пришлось переписывать код, отвечающий за клиент-серверные вызовы). При этом сервер, реализованный нами на С++, мы сделали платформенно-независимым, способным работать и на Windows, и на Linux. На смену монолитному серверу версии 8.0 пришло 3 вида процессов – рабочий процесс, обслуживающий клиентов, и 2 служебных процесса, поддерживающих работу кластера:
Клиент на протяжении сессии работал с одним рабочим процессом, падение рабочего процесса означало для всех клиентов, которых этот процесс обслуживал, аварийное завершение сессии. Остальные клиенты продолжали работу. 1С:Предприятие 8.2В версии 8.2 мы захотели, чтобы приложения 1С могли запускаться не только в нативном (исполняемом) клиенте, а ещё и в браузере (без модификации кода приложения). В связи с этим, в частности, встала задача отвязать текущее состояние приложения от текущего соединения с рабочим процессом rphost, сделать его stateless. Как следствие возникло понятие сеанса и сеансовых данных, которые нужно было хранить вне рабочего процесса (потому что stateless). Был разработан сервис сеансовых данных, хранящий и кэширующий сеансовую информацию. Появились и другие сервисы — сервис управляемых транзакционных блокировок, сервис полнотекстового поиска и т.д. В этой версии также появились несколько важных нововведений – улучшенная отказоустойчивость, балансировка нагрузки и механизм резервирования кластеров. ОтказоустойчивостьПоскольку процесс работы стал stateless и все необходимые для работы данные хранились вне текущего соединения «клиент – рабочий процесс», в случае падения рабочего процесса клиент при следующем обращении к серверу переключался на другой, «живой» рабочий процесс. В большинстве случаев такое переключение происходило незаметно для клиента. Механизм работает так. Если клиентский вызов к рабочему процессу по какой-то причине не смог исполниться до конца, то клиентская часть способна, получив ошибку вызова, этот вызов повторить, переустановив соединение с тем же рабочим процессом или с другим. Но повторять вызов можно не всегда; повтор вызова означает, что мы отправили вызов на сервер, а результата не получили. Мы стараемся повторить вызов, при этом при выполнении повторного вызова мы оцениваем, каков результат на сервере был у предшествующего вызова (информация об этом сохраняется на сервере в данных сеанса), потому что если вызов успел там «наследить» (закрыть транзакцию, сохранить сеансовые данные и т.п.) – то просто так повторять его нельзя, это приведет к рассогласованию данных. Если повторять вызов нельзя, клиент получит сообщение о неисправимой ошибке, и клиентское приложение придется перезапустить. Если же вызов «наследить» не успел (а это наиболее частая ситуация, т.к. многие вызовы не меняют данных, например, отчеты, отображение данных на форме и т.п., а те, которые меняют данные – пока транзакция не зафиксирована или пока изменение сеансовых данных не отправлено в менеджер – следов вызов не оставил) — его можно повторить без риска рассогласования данных. Если рабочий процесс упал или произошел обрыв сетевого соединения – такой вызов повторяется, и эта «катастрофа» для клиентского приложения происходит полностью незаметно. Балансировка нагрузкиЗадача балансировки нагрузки в нашем случае звучит так: в систему заходит новый клиент (или уже работающий клиент совершает очередной вызов). Нам надо выбрать, на какой сервер и в какой рабочий процесс направить вызов клиента, чтобы обеспечить клиенту максимальное быстродействие. Это стандартная задача для кластера с балансировкой нагрузки. Есть несколько типовых алгоритмов её решения, например: Запрос от нового клиента адресуется на наиболее производительный на данный момент сервер. Запрос от существующего клиента в большинстве случаев адресуется на тот сервер и в тот рабочий процесс, в который адресовался его предыдущий запрос. С работающим клиентом связан обширный набор данных на сервере, передавать его между процессами (а тем более между серверами) – довольно накладно (хотя мы умеем делать и это). Запрос от существующего клиента передается в другой рабочий процесс в двух случаях: Резервирование кластеровМы решили повысить отказоустойчивость кластера, прибегнув к схеме Active / passive. Появилась возможность конфигурировать два кластера – рабочий и резервный. В случае недоступности основного кластера (сетевые неполадки или, например, плановое техобслуживание) клиентские вызовы перенаправлялись на резервный кластер. Однако эта конструкция была довольно сложна в настройке. Администратору приходилось вручную собирать две группы серверов в кластеры и конфигурировать их. Иногда администраторы допускали ошибки, устанавливая противоречащие друг другу настройки, т.к. не было централизованного механизма проверки настроек. Но, тем не менее, этот подход повышал отказоустойчивость системы. 1С:Предприятие 8.3В версии 8.3 мы существенно переписали код серверной части, отвечающий за отказоустойчивость. Мы решили отказаться от схемы Active / passive кластеров ввиду сложности её конфигурирования. В системе остался только один отказоустойчивый кластер, состоящий из любого количества серверов – это ближе к схеме на Active / active, в которой запросы на отказавший узел распределяются между оставшимися рабочими узлами. За счет этого кластер стал проще в настройке. Ряд операций, повышающих отказоустойчивость и улучшающих балансировку нагрузки, стали автоматизированными. Из важных нововведений: Главная идея этих наработок – упростить работу администратора, позволяя ему настраивать кластер в привычных ему терминах, на уровне оперирования серверами, не опускаясь ниже, а также минимизировать уровень «ручного управления» работой кластера, дав кластеру механизмы для решения большинства рабочих задач и возможных проблем «на автопилоте». Три звена отказоустойчивостиКак известно, даже если компоненты системы по отдельности надёжны, проблемы могут возникнуть там, где компоненты системы вызывают друг друга. Мы хотели свести количество мест, критичных для работоспособности системы, к минимуму. Важным дополнительным соображением была минимизация переделок прикладных механизмов в платформе и исключение изменений в прикладных решениях. В версии 8.3 появилось 3 звена обеспечения отказоустойчивости «на стыках»: В заключениеБлагодаря механизму отказоустойчивости приложения, созданные на платформе 1С:Предприятие, благополучно переживают разные виды отказов рабочих серверов в кластере, при этом бо́льшая часть клиентов продолжают работать без перезапуска. Бывают ситуации, когда мы не можем повторить вызов, или падение сервера застает платформу в очень неудачный момент времени, например, в середине транзакции и не очень понятно, что с ними делать. Мы стараемся обеспечить статистически хорошую выживаемость клиентов при падении серверов в кластере. Как правило, средние потери клиентов за отказ сервера – единицы процентов. При этом все «потерянные» клиенты могут продолжить работу в кластере после перезапуска клиентского приложения. Надежность кластера серверов 1С в версии 8.3 существенно повысилась. Уже давно не редкость внедрения продуктов 1С, где количество одновременно работающих пользователей достигает нескольких тысяч. Есть и внедрения, где одновременно работают и 5 000, и 10 000 пользователей — например, внедрение в «Билайне», где приложение «1С: Управление Торговлей» обслуживает все салоны продаж «Билайн» в России, или внедрение в грузоперевозчике «Деловые Линии», где приложение, самостоятельно созданное разработчиками ИТ-отдела «Деловых Линий» на платформе 1С:Предприятие, обслуживает полный цикл грузоперевозок. Наши внутренние нагрузочные тесты кластера эмулируют одновременную работу до 20 000 пользователей. В заключение хочется кратко перечислить что ещё полезного есть в нашем кластере (список неполный): |





















