При настройке отказоустойчивого кластера 1С:Предприятие 8.3 системные администраторы часто сталкиваются с ситуацией, когда первый центральный сервер работает корректно, но при попытке переключения на второй сервер или при подключении новых сессий в момент недоступности первого узла возникает ошибка «этот хост неизвестен». На первый взгляд проблема кажется связанной исключительно с сетевыми настройками DNS или файлом hosts, однако на практике причины могут крыться в неочевидных деталях — от лишнего пробела в строке подключения до механизмов работы кворума кластера.
В рамках данной статьи мы подробно разберем, как правильно сконфигурировать взаимодействие узлов в кластере, проанализируем типичные ошибки в синтаксисе и выясним, какие системные настройки необходимы для бесперебойной работы системы.
Рассмотрим самую распространенную и при этом самую незаметную причину отказа подключения ко второму серверу. При указании списка серверов в строке подключения базы (в окне запуска 1С) используется перечисление имен хостов через запятую. Выясним причину, по которой даже при правильных именах серверов соединение может не устанавливаться.
Многие администраторы по привычке ставят пробел после знака препинания. В случае с 1С строка подключения вида:
Srvr="Server1, Server2";Ref="Trade";
может привести к ошибке. Программа может интерпретировать имя второго сервера вместе с ведущим пробелом, что делает хост «невидимым» для сетевых протоколов. Правильный вариант написания не должен содержать пробелов между элементами списка:
Srvr="Server1,Server2";Ref="Trade";
Разберем по шагам: если в вашей информационной базе прописаны оба сервера, убедитесь, что разделителем служит только запятая. Это касается как консоли администрирования кластеров, так и параметров в окне запуска клиента.
Проанализируем ситуацию, когда синтаксис верен, но ошибка сохраняется. Важно понимать алгоритм работы 1С: клиент сначала обращается к одному из серверов, указанных в строке подключения, для получения топологии кластера. Центральный сервер возвращает список рабочих серверов. Здесь кроется важный нюанс: сервер возвращает те имена, которые прописаны в консоли администрирования в разделе «Рабочие серверы».
Если в консоли сервер добавлен под коротким именем Server-02, а DNS-сервер в вашей сети настроен на разрешение только полных имен (FQDN), например Server-02.domain.local, то клиентская машина не сможет найти хост. Рассмотрим рекомендации по настройке имен:
hosts — это временная мера для диагностики. Если после внесения записей в этот файл связь появилась, значит проблема однозначно в DNS или суффиксах домена. Однако для промышленной эксплуатации необходимо добиваться корректной работы через DNS-сервер.Посмотрим на ситуацию с точки зрения отказоустойчивости. При использовании всего двух серверов в кластере (начиная с версии платформы 8.3.5) возникает проблема принятия решения о работоспособности системы. Если один сервер «падает», второй должен убедиться, что проблема не в его собственном сетевом интерфейсе.
Разберем концепцию «разделения сознания» (Split Brain). Чтобы избежать этой ситуации, в кластере должен соблюдаться кворум. В системе из двух серверов при потере связи каждый из них может посчитать себя изолированным и прекратить обслуживание пользователей.
Для стабильной работы рекомендуется добавить в кластер третий сервер. Это может быть маломощная виртуальная машина. Особенности настройки арбитра:
Проанализируем техническую сторону взаимодействия между менеджерами кластера. Для обеспечения полноценной отказоустойчивости необходимо, чтобы оба сервера имели статус «Центральный сервер» в консоли администрирования. При этом критически важно обеспечить доступность данных реестра.
Реестр кластера (каталог srvinfo) содержит информацию о базах, пользователях и текущих сессиях. Если второй сервер не имеет актуальной копии реестра или не может синхронизироваться с первым узлом, он не сможет корректно принять новых пользователей. Убедитесь, что процессы rmngr на обоих узлах имеют права на чтение/запись в соответствующие директории.
Также проверим настройки брандмауэра. Для работы кластера должны быть открыты не только стандартные порты, но и весь диапазон портов рабочих процессов:
Выясним причину, по которой пользователи могут получать ошибку даже при успешном сетевом соединении со вторым сервером. Часто это связано с отсутствием лицензий на резервном узле.
При использовании программных лицензий 1С (пин-кодов) необходимо помнить, что лицензия «привязывается» к характеристикам конкретного сервера. Если вы активировали лицензию на первом сервере, при падении этого сервера второй сервер не сможет её использовать. Рассмотрим варианты решения:
В современных операционных системах Windows Server часто по умолчанию приоритетным является протокол IPv6. Если в DNS за сервером закреплено оба адреса (IPv4 и IPv6), клиент 1С может пытаться подключиться по IPv6, в то время как служба 1С:Предприятие слушает только IPv4. Это приводит к ошибке «хост неизвестен» или тайм-ауту соединения.
Рекомендуется выполнить одно из следующих действий:
-tcp.Для того чтобы ваш отказоустойчивый кластер работал «как часы», необходимо выполнить комплексную проверку. Разберем итоговый чек-лист:
rmngr) и они видят друг друга по сети.Соблюдение этих правил позволит избежать проблем с «неизвестными хостами» и обеспечит действительно бесперебойную работу пользователей в системе 1С:Предприятие.