Кейсы

IT-сопровождение 1С:ERP в строительной компании: как мы обеспечили стабильную работу 200 пользователей

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

С чем мы столкнулись

Крупная строительная компания — несколько тысяч сотрудников, около 200 пользователей 1С. Компания переходила с Управления торговлей на 1С:ERP с модулем управления проектами. Мы занимались внедрением (подробнее — в обзорной статье), и параллельно стало ясно: инфраструктура к ERP не готова.
Старый сервер работал на Hyper-V. Все базы и логи лежали на одном дисковом массиве — зеркале из двух обычных жёстких дисков. Для прежней нагрузки хватало, но ERP с двумя сотнями пользователей — совсем другая история.
Вдобавок в компании накопился клубок из лицензий. Несколько комплектов, оформленных в разное время на разные организации. Часть регистрационных данных утрачена. А потом компания прошла реструктуризацию — и все лицензии потребовалось перерегистрировать на новое юрлицо.
Мы взяли на себя всю инфраструктурную часть: от серверов и лицензий до регулярных обновлений и расследования аварий.

Переезд на новый сервер

Самый масштабный блок. По мере роста компании и перехода на ERP требования к инфраструктуре изменились — имеющееся оборудование перестало справляться с нагрузкой. Наша задача — сконфигурировать серверную инфраструктуру так, чтобы 200 пользователей работали без задержек и зависаний.

Диагностика: почему всё тормозит

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

Тест Гилева в клиент-серверном режиме показал около 5 условных единиц.
Результаты теста Гилева
Результаты теста Гилева
Уже по первым замерам мы предположили, что узкое место — дисковая подсистема: все виртуальные машины работали на одном массиве из двух обычных жёстких дисков (HDD). Чтобы исключить другие причины, мы провели серию тестов — проверили влияние процессора, памяти, конфигурации виртуальных машин. Каждый раз результаты подтверждали исходную гипотезу: проблема именно в дисках.

"Есть правило пяти секунд: если интерфейс не отвечает дольше — пользователь недоволен. А если запрос не успевает вернуться вовремя, система делает повторный — и сервер получает двойную нагрузку. Это каскад: один медленный диск в итоге парализует работу двухсот человек. Поэтому мы и искали узкое место — чтобы пользователи просто перестали замечать систему."


Андрей
ведущий инженер IT-инфраструктуры
Для справки: производительность 1С определяется не ценой оборудования, а его конфигурацией. Собранная нами машина за 300 тысяч рублей показывает в тесте Гилева результат выше, чем серверы в разы дороже — подробнее в отдельной статье. Мы предложили заказчику несколько вариантов решения — с учётом бюджета, сроков и доступности оборудования. Вместе выбрали оптимальный: модификацию дисковой подсистемы существующего сервера.

Миграция

Совместно с системным администратором заказчика мы перестроили инфраструктуру:
  • Установили Debian с гипервизором Proxmox VE вместо Windows с Hyper-V
  • Купили новые диски и разнесли нагрузку на отдельные дисковые подсистемы: SAS SSD под базы данных, отдельные разделы под логи и временные файлы
  • Установили и оптимизировали MS SQL Server 2019 по рекомендациям 1С
  • Перенесли все 12 рабочих баз: ERP, Бухгалтерию, ЗУП, Документооборот и другие
  • Настроили веб-публикацию для удалённых пользователей
  • Настроили автоматическое резервное копирование и VPN-доступ
Переезд провели в нерабочее время. После модификации дисковой подсистемы и миграции однопоточный тест Гилева вырос с 5 до 44 условных единиц. Но главное — пользователи перестали жаловаться на тормоза. Интерфейс стал отзывчивым, зависания прекратились.
Схема инфраструктуры — виртуальные машины на Proxmox, роли серверов
Схема инфраструктуры — виртуальные машины на Proxmox, роли серверов

Управление лицензиями

Лицензирование 1С — работа, которую не видно, пока всё не сломается. В нашем случае задача была особенно запутанной.
Компания прошла реструктуризацию юрлица — серверные и клиентские лицензии нужно было перерегистрировать. Процедура идёт через техподдержку 1С: заявления на фирменных бланках с печатью, переписка, ожидание.
Вдобавок часть лицензий исторически была оформлена на другие организации. По некоторым — не было регистрационных данных. Приходилось восстанавливать информацию через техподдержку, перебирать варианты данных для активации. Когда одну из лицензий случайно активировали с данными не того юрлица — разбирались отдельно.
Параллельно число пользователей росло. Мы активировали дополнительные комплекты — в итоге на сервере работает 200 рабочих мест.
Модуль управления проектами (PM) в ERP защищён отдельной системой лицензирования — СЛК. Мы настроили его так, чтобы ключи были доступны и на рабочем сервере клиента — для повседневной работы, и на нашем сервере — для разработки и тестирования.
Все данные привели в порядок: единый реестр лицензий, все пин-коды и регистрационные данные — в корпоративном менеджере паролей. Активация нового комплекта теперь — штатная операция, а не расследование. После активации последнего пин-кода, сразу запрашиваем резервный, чтобы не тратить на это время в случае ЧП.

Когда что-то ломается

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

Фатальная ошибка в базе данных

При тестировании и исправлении (стандартная процедура обслуживания 1С) база ERP падала с ошибкой SQL: система не находила служебную таблицу. Стандартные средства диагностики проблем не обнаруживали.
Мы потратили 2 дня на расследование. Поэтапно проверяли каждый вид метаданных, сравнивали структуру таблиц между рабочей и эталонной базами, перебирали гипотезы — от удаления расширений до перестроения индексов. В итоге выяснилось: в базе отсутствовали служебные таблицы для ряда справочников. После создания недостающих таблиц скриптом SQL — все проверки прошли без ошибок.
Попутно выяснилось, что база «раздулась». После пересчёта итогов свободное место выросло с 3% до 44%, а после реструктуризации таблиц размер данных сократился с 95 до 13 Гб — в семь раз.

Лицензии не доходят до пользователей

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

Регулярное обслуживание

IT-сопровождение — это не только аварии и миграции. Основная работа — поддерживать систему в рабочем состоянии изо дня в день.
Обновления платформы. За два года обновили платформу 1С с версии 8.3.23 до 8.3.27. Каждое обновление — это предварительный анализ совместимости, согласование времени с заказчиком и поэтапное развёртывание: сервер 1С, веб-сервер, офисные клиенты, удалённые пользователи. Перед каждым обновлением составляем план из двадцати с лишним пунктов.
Обновления конфигураций. ERP, Бухгалтерия, ЗУП, Документооборот — каждую конфигурацию обновляем с предварительным тестированием на копии базы. В отчётный период — только по запросу, чтобы не рисковать в разгар закрытия.
Резервное копирование. Все 12 баз архивируются автоматически по расписанию, копии хранятся на сетевом хранилище. Мониторим выполнение — когда бэкап одной из баз перестал создаваться из-за сбоя прав, обнаружили и починили в тот же день.
Тестовые и учебные базы. По запросу аналитика разворачиваем тестовые базы для проверки обновлений и обучения сотрудников. Отдельное юрлицо работает в собственных базах — их тоже обслуживаем.
План обслуживания. Разработали недельный график регламентных работ. Заказчик видит, какие операции проводятся и какие из них блокируют работу пользователей.
Документирование. Пароли, лицензии, структура сервера, настройки — всё зафиксировано. Подключение нового специалиста не требует сбора информации по крупицам.
План обслуживания — недельный календарь
План обслуживания — недельный календарь

Что получилось

Стабильная работа 200 пользователей. Мы нашли узкое место, предложили варианты и вместе с заказчиком выбрали оптимальное решение — без замены сервера, с минимальными вложениями. Пользователи работают без задержек.
Порядок в лицензиях. Все лицензии перерегистрированы, данные систематизированы. Активация нового комплекта — рутинная операция.
Документированные процессы. План обслуживания, структура сервера, порядок обновления — зафиксировано.
Оперативная реакция. От фатальной ошибки SQL до проблем с сетевыми лицензиями — решаем без длительной остановки работы.

Стоимость

За два года мы закрыли более 60 инфраструктурных задач. Стоимость подобного проекта — от 1,2 млн рублей.
Нужна стабильная инфраструктура для 1С:ERP? Напишите — разберёмся, с чего начать.