Вывод рабочего сервера из кластера 1С 8.3 без простоя: консоль и rac
Содержание
Удалить сервер из кластера 1С можно двумя путями: в консоли администрирования серверов (ветка Рабочие серверы → правый клик по серверу → Удалить) или командой rac server remove --cluster=<UUID кластера> --server=<UUID сервера>. Перед этим сервер нужно разгрузить: перевести с него сеансы и убедиться, что на нём не живёт главный менеджер кластера.
Сама команда занимает секунду. Время уходит на подготовку и на то, чтобы после удаления в реестре не остался «призрак» — запись о машине, которой уже нет в сети. Ниже порядок действий для платформы 8.3 на Windows и Linux.
Подготовка к удалению сервера: что проверить заранее
Удаляют рабочий сервер обычно в трёх случаях: машину выводят из эксплуатации, её переименовали или перенесли в другую сеть, либо сервер добавили по ошибке. В любом случае сначала оцените его роль в кластере.
Что проверить:
- 🧭 Центральный ли это сервер. В свойствах рабочего сервера стоит флажок «Центральный сервер». Если центральных серверов в кластере несколько, один можно убрать. Если он единственный — удалять нельзя, сначала назначьте центральным другой сервер.
- 🏛️ Где главный менеджер кластера. Его держит сервер, на котором кластер создавали. Такой сервер из кластера не удаляют: проще перенести кластер или пересоздать рабочий сервер на новой машине и только потом выводить старую.
- 👥 Есть ли активные сеансы и рабочие процессы. Откройте на сервере ветку
Рабочие процессыи посмотрите число соединений. - 🔢 Версия платформы. Консоль,
rasиracдолжны быть той же версии, что и агент сервера. Разные сборки 8.3 между собой часто не договариваются.
Резервная копия настроек кластера
Конфигурация кластера хранится в каталоге srvinfo. На Windows по умолчанию это C:\Program Files\1cv8\srvinfo, на Linux — /home/usr1cv8/.1cv8/1C/1cv8 (путь зависит от того, как ставили сервер). Внутри лежат:
| Файл | Что в нём |
|---|---|
1cv8wsrv.lst | список кластеров, которые обслуживает центральный сервер |
reg_1541\1CV8Clst.lst | реестр кластера: информационные базы, рабочие серверы, менеджеры, требования назначения |
Скопируйте весь каталог srvinfo на центральном сервере до любых изменений. Если что-то пойдёт не так, вы вернёте реестр за пару минут, а не будете заново регистрировать базы.
Параметры сервера на случай возврата
Откройте свойства удаляемого сервера и выпишите: диапазон портов рабочих процессов, лимиты памяти, количество баз и соединений на процесс, флажок «Центральный сервер», а также все требования назначения функциональности. При удалении эти настройки пропадают вместе с записью. Если машину придётся вернуть, вы восстановите их за пять минут, а не будете подбирать заново.
Разгрузка сервера без обрыва пользователей
Удалить сервер с работающими людьми технически можно, но их сеансы оборвутся. Чтобы этого избежать, сначала уведите с него нагрузку:
- В консоли раскройте рабочий сервер и откройте
Требования назначения функциональности. - Создайте требование: объект требования — «Любой объект требования», тип — «Не назначать».
- Примените требования к кластеру (команда применения есть в контекстном меню кластера).
- Дождитесь, пока новые сеансы уйдут на другие серверы, а старые закроются сами. Обычно хватает конца рабочего дня.
Тип требования «Не назначать» не убивает текущие соединения. Он только запрещает кластеру отправлять на этот сервер новую работу. Поэтому разгрузку удобно запускать днём, а удаление делать вечером.
Подключение утилиты rac к кластеру и вход под администратором
rac — консольный клиент. Сам он с агентом сервера 1С не общается: он подключается к серверу администрирования ras, а тот уже к агенту на порту 1540. Порт ras по умолчанию — 1545.
Где лежат утилиты:
- Windows:
C:\Program Files\1cv8\8.3.xx.xxxx\bin\rac.exeиras.exe; - Linux:
/opt/1cv8/x86_64/8.3.xx.xxxx/racиras.
Запуск ras
Если ras ещё не установлен службой, для разовой работы его можно запустить из командной строки на центральном сервере:
cd "C:\Program Files\1cv8\8.3.xx.xxxx\bin"
ras cluster --port=1545 localhost:1540
Окно не закрывайте, пока работаете. Для постоянного администрирования ras лучше зарегистрировать службой, тогда он поднимается вместе с машиной.
Проверка связи и список кластеров
Во втором окне выполните:
rac localhost:1545 cluster list
В ответ придёт блок по каждому кластеру. Нужна строка cluster : ... — это UUID кластера. Сохраните его в переменную, чтобы не копировать каждый раз:
set CL=1e3f9a2c-....
Аутентификация
Если в кластере заведены администраторы, без логина rac ответит отказом. Учётные данные передаются в каждой команде:
| Чьи права | Параметры | Когда нужны |
|---|---|---|
| Администратор кластера | --cluster-user= и --cluster-pwd= | список серверов, удаление рабочего сервера, работа с сеансами |
| Администратор центрального сервера | --agent-user= и --agent-pwd= | создание и удаление самого кластера, управление администраторами агента |
Для удаления рабочего сервера достаточно прав администратора кластера. Если администраторов нет вовсе, параметры можно не указывать — но на боевом сервере так оставлять не стоит.
Пароль в командной строке остаётся в истории оболочки. На Linux начинайте команду с пробела (при стандартной настройке bash она не попадёт в историю) или очищайте историю после работы.
Как найти UUID сервера, который нужно убрать из кластера
Удаление в rac идёт по идентификатору, а не по имени. Получите список рабочих серверов:
rac localhost:1545 server list --cluster=%CL% --cluster-user=admin --cluster-pwd=***
Каждый сервер описан блоком. Смотрите на поля:
server— UUID, он и нужен для удаления;agent-host— имя машины, на которой работает агент;name— представление сервера, как его видно в консоли;port-range— диапазон портов рабочих процессов;using— роль:mainозначает центральный сервер.
Если блоков много, отфильтруйте вывод по имени машины. На Windows:
rac localhost:1545 server list --cluster=%CL% | findstr /i "server agent-host name"
На Linux то же через grep -E "^(server|agent-host|name)".
Проверка, что сервер пуст
Перед удалением посмотрите рабочие процессы именно этого сервера:
rac localhost:1545 process list --cluster=%CL% --server=<UUID сервера>
Пустой ответ — процессов нет, можно удалять. Если процессы есть, сравните число соединений с ожиданием: после разгрузки оно должно стремиться к нулю.
Удаление сервера из кластера 1С: консоль и командная строка
Через консоль администрирования
- Откройте
Администрирование серверов 1С Предприятия. - Раскройте
Центральные серверы 1С:Предприятия→ имя центрального сервера →Кластеры→ нужный кластер. - Откройте ветку
Рабочие серверы. - Щёлкните правой кнопкой по удаляемому серверу и выберите
Удалить. - Подтвердите действие. Если консоль спросит логин администратора кластера — введите его.
После удаления обновите ветку (F5). Сервер должен пропасть из списка, а его рабочие процессы — из ветки Рабочие процессы кластера.
Через rac
Одна команда:
rac localhost:1545 server remove --cluster=%CL% --server=<UUID сервера> --cluster-user=admin --cluster-pwd=***
Успешное удаление ничего не выводит. Проверьте результат повторным server list — блока с этим UUID быть не должно.
Если подкоманды или параметры отличаются в вашей сборке, их точный список выдаёт rac help server. Справку стоит открыть один раз перед работой: она соответствует именно установленной версии.
Что сделать на выведенной машине
Кластер про сервер забыл, но на самой машине агент ещё работает и может попытаться снова зарегистрироваться. Если машину выводят из эксплуатации, остановите и снимите службу агента.
Windows, из каталога bin той же версии:
ragent -rmsrvc
Linux: найдите имя службы (оно зависит от версии платформы) и отключите её:
systemctl list-units --all | grep -i 1cv8
sudo systemctl stop <имя службы>
sudo systemctl disable <имя службы>
Остановка агента обрывает все сеансы на этой машине. Делайте это только после того, как сервер удалён из кластера и на нём нет соединений.
Последний шаг — сетевые следы. Если имя выведенной машины прописано в hosts клиентов или серверов, уберите строку. Иначе через полгода кто-то включит под этим именем другой компьютер и получит странные ошибки соединения.
Фантомные серверы в реестре: откуда берутся и как их вычистить
«Фантом» — это рабочий сервер, который числится в кластере, но физически не существует или отвечает под другим именем. Признаки: в консоли висит сервер, процессы на нём не стартуют, а в журнале кластера повторяются ошибки соединения с этой машиной.
Типичные причины:
- 🔁 машину переименовали после регистрации в кластере;
- 🌐 сменился IP-адрес, а имя разрешается в старый;
- 🗑️ машину удалили, не выведя из кластера;
- 📦 каталог
srvinfoскопировали с другого сервера при переносе.
Порядок очистки
- Попробуйте обычное удаление — консолью или
rac server remove. Для удаления связь с самой машиной не нужна: запись правится в реестре центрального сервера. В большинстве ситуаций этого достаточно. - Если удаление падает с ошибкой, проверьте, не числится ли фантом центральным сервером или хозяином менеджера. Тогда сначала снимите с него эту роль в свойствах рабочего сервера.
- Если сервер остался в списке после перезапуска агента — значит, запись восстанавливается из реестра другого центрального сервера. Удалите её, когда все центральные серверы кластера запущены и видят друг друга.
Ручная правка реестра — крайняя мера
Файл 1CV8Clst.lst — текстовый, но с жёсткой скобочной структурой. Править его вручную можно только при остановленном агенте и только имея копию.
Остановка агента центрального сервера отключает всех пользователей кластера. Планируйте такую работу на нерабочее время и предупредите людей заранее.
Если после ручной правки агент не стартует, верните сохранённую копию srvinfo целиком. Точечно чинить скобки в файле на несколько сотен строк — дорого и рискованно.
Ошибки при удалении сервера из кластера
Ещё две ситуации, которые путают с ошибками:
- Консоль показывает старый список. Она кэширует дерево. Закройте и снова откройте ветку кластера или перезапустите консоль.
- Базы перестали открываться после удаления. Значит, на удалённом сервере были требования назначения, которые привязывали конкретные базы только к нему. Проверьте требования у оставшихся серверов и примените их заново.
Частые вопросы
Нужно ли перезапускать службу агента на центральном сервере после удаления?
Удаляются ли информационные базы вместе с сервером?
Освобождается ли лицензия сервера после удаления?
Можно ли вернуть удалённый сервер обратно?
Рабочие серверы через команду создания или rac server insert. Параметры — диапазон портов, лимиты памяти, требования назначения — придётся задать заново, поэтому выпишите их до удаления.