В процессе эксплуатации сервера 1С:Предприятие администраторы часто сталкиваются с критической нехваткой дискового пространства на системном разделе. Основная причина разрастания объема занимаемых данных кроется в механизме хранения информации о сеансах и блокировках. Файлы, расположенные в каталоге srvinfo, накапливаются с течением времени, особенно в высоконагруженных кластерах, где количество одновременных пользователей исчисляется сотнями.
Перенос этого каталога на другой физический носитель или логический том является стандартной процедурой оптимизации инфраструктуры. Однако, в отличие от простого копирования папок с документами, перемещение служебных данных сервера 1С требует соблюдения строгой последовательности действий. Нарушение порядка остановки служб или некорректное создание символьных ссылок может привести к невозможности запуска сервера и потере актуальных данных о работающих сеансах.
В данном руководстве мы детально разберем алгоритм безопасного перемещения директории srvinfo. Мы рассмотрим нюансы работы с правами доступа в среде Windows и Linux, а также затронем вопросы настройки символических ссылок, которые позволяют обмануть систему, заставив её думать, что файлы находятся на старом месте, хотя физически они хранятся на новом быстром диске.
Анализ текущего состояния и подготовка к миграции
Прежде чем приступать к активным действиям, необходимо провести аудит текущего расположения файлов и оценить объем занимаемого ими пространства. Стандартный путь к каталогу в операционной системе Windows обычно выглядит как C:\ProgramData\1C\1Cv8\srvinfo. В дистрибутивах Linux путь может отличаться, но чаще всего это /var/lib/1Cv8/srvinfo или /opt/1C/v8.3/x86_64/srvinfo.
Используйте встроенные средства ОС или сторонние утилиты для анализа размера папки. Если объем файлов превышает несколько гигабайт, процедура переноса может занять заметное время, особенно если целевой диск имеет низкую скорость записи. Убедитесь, что на новом диске достаточно свободного места с запасом минимум в 20% от текущего размера данных.
Критически важным этапом является создание полной резервной копии. Даже если вы планируете просто переместить файлы, риск повреждения данных при сбое питания или ошибке в команде копирования всегда существует. Скопируйте весь каталог srvinfo во временное хранилище перед началом работ.
- 📊 Проверьте свободное место на целевом диске с помощью утилиты
df -h(Linux) или проводника (Windows). - 💾 Создайте резервную копию папки
srvinfoна внешний носитель или в сетевое хранилище. - 🛑 Убедитесь, что у вас есть права администратора или root-доступ для выполнения системных операций.
- 📝 Зафиксируйте текущие права доступа к папке, чтобы восстановить их после переноса.
⚠️ Внимание: Никогда не пытайтесь перемещать файлы работающего сервера 1С. Это гарантированно приведет к повреждению файлов блокировок и может вызвать"зависание" клиентских сессий, которые корректно завершить работу.
Остановка служб сервера 1С:Предприятие
Для корректного переноса данных необходимо полностью остановить процесс записи на диск. Простого закрытия консольного окна или выхода из интерфейса недостаточно, так как фоновые службы продолжают удерживать файлы открытыми. В среде Windows управление осуществляется через оснастку services.msc.
Найдите службу с именем Агент сервера 1С:Предприятия (в англоязычных версиях 1C:Enterprise 8.3 Server Agent). Перед её остановкой рекомендуется также остановить службу Менеджер кластера серверов 1С:Предприятия, если она выделена в отдельный процесс в вашей конфигурации. Последовательность остановки важна: сначала клиенты и менеджеры, затем сам агент.
В Linux используется команда systemctl или скрипты инициализации. Выполните команду остановки сервиса и обязательно проверьте статус, чтобы убедиться, что процессы действительно завершены. Иногда процесс может зависнуть в состоянии"остановка", и тогда потребуется принудительное завершение через kill.
Проверьте список активных процессов, использующих файлы в директории srvinfo. В Linux это можно сделать утилитой lsof, передав ей путь к каталогу. Если вывод команды пуст, значит, файлы освобождены и готовы к перемещению.
systemctl stop svc1cv83
systemctl status svc1cv83
Убедитесь, что никакие пользовательские сессии не активны. Если на сервере работают фоновые задания или регламентные операции, они должны быть завершены или принудительно остановлены администратором через консоль управления кластером перед остановкой службы.
☑️ Подготовка к остановке служб
Процесс перемещения файлов на новый диск
После успешной остановки служб можно приступать к физическому перемещению данных. Не используйте функцию"Вырезать и Вставить" в графическом интерфейсе, так как при ошибке вы можете потерять данные. Надежнее сначала выполнить полное копирование, убедиться в целостности, и только затем удалить оригинал.
Создайте целевую директорию на новом диске. Желательно сохранить структуру путей или использовать понятное именование, например, D:\1CData\srvinfo или /mnt/data/1c/srvinfo. Важно, чтобы новая папка была отформатирована в файловой системе, поддерживающей необходимые права доступа (NTFS для Windows, ext4 или xfs для Linux).
Используйте надежные утилиты копирования. В Windows отличным выбором является robocopy, который сохраняет атрибуты файлов, права доступа и временные метки. В Linux используйте rsync с ключами сохранения прав. Это критично, так как сервер 1С чувствителен к владельцу файлов.
robocopy"C:\ProgramData\1C\1Cv8\srvinfo""D:\1CData\srvinfo" /E /COPYALL /R:3 /W:5
После завершения копирования проведите сверку контрольных сумм или просто сравните размер папок и количество файлов. Если данные совпадают, можно удалить исходную папку srvinfo со старого диска, освободив место. Однако, некоторые администраторы предпочитают переименовать старую папку (например, в srvinfo_old) и оставить её на пару дней для страховки.
- 📂 Создайте новую папку на целевом диске с соответствующими правами доступа.
- 🔄 Скопируйте содержимое старого каталога в новый, сохраняя атрибуты.
- ✅ Проверьте целостность скопированных данных (размер, количество файлов).
- 🗑️ Удалите или переименуйте исходную папку только после успешной проверки.
⚠️ Внимание: При копировании на диск с другой файловой системой (например, с NTFS на ReFS или ext3 на ext4) убедитесь, что поддерживаются длинные имена файлов и специальные символы, используемые 1С в именах файлов блокировок.
Используйте ключ /MIR в robocopy только если вы уверены, что целевая папка пуста, иначе она удалит лишние файлы в destinaton. Для первого переноса безопаснее использовать /E.
Создание символьной ссылки (Symbolic Link)
Это самый важный технический этап. Сервер 1С"запомнил" путь к каталогу srvinfo в своих конфигурационных файлах и реестре. Изменять эти настройки вручную сложно и опасно, так как при обновлении платформы они могут сброситься. Лучшее решение — создать символьную ссылку (junction point в Windows или symlink в Linux).
Символьная ссылка работает как"зеркало". Когда система или программа обращается к старому пути C:\ProgramData\1C\1Cv8\srvinfo, операционная система прозрачно перенаправляет этот запрос в новую папку на диске D:. Для сервера 1С ничего не меняется, он продолжает работать со своим привычным путем.
В Windows для создания такой ссылки используется утилита mklink, запускаемая из командной строки с правами администратора. Важно использовать ключ /J (Junction), так как он создает точку соединения каталогов, что более надежно для системных папок, чем обычная символическая ссылка.
mklink /J"C:\ProgramData\1C\1Cv8\srvinfo""D:\1CData\srvinfo"
В Linux команда выглядит иначе и требует указания абсолютных путей. Убедитесь, что пользователь, от имени которого работает сервер 1С (обычно usr1cv8), имеет права на чтение и запись в новую директорию.
ln -s /mnt/data/1c/srvinfo /var/lib/1Cv8/srvinfo
После создания ссылки проверьте её работоспособность. Перейдите по старому пути в проводнике или терминале. Вы должны видеть содержимое новой папки. В свойствах папки в Windows может быть указано, что это"Точка соединения".
| Операционная система | Команда создания | Тип ссылки | Требования к правам |
|---|---|---|---|
| Windows Server | mklink /J |
Junction Point | Администратор |
| Linux (Ubuntu/Debian) | ln -s |
Symbolic Link | Root / Sudo |
| Linux (CentOS/RHEL) | ln -s |
Symbolic Link | Root / Sudo |
| macOS | ln -s |
Symbolic Link | Root / Sudo |
Что делать, если ссылка не создается?
Если вы получаете ошибку"Отказано в доступе", проверьте, не занята ли папка другим процессом. Также убедитесь, что исходная папка (старый путь) действительно удалена или переименована, иначе mklink не сможет создать ссылку с таким именем.
Настройка прав доступа и владельца файлов
Простого копирования файлов часто недостаточно, особенно в Linux-среде. Сервер 1С запускается от имени специального пользователя (часто usr1cv8). Если вы скопировали файлы под root, то новый владелец папки — root, и сервис 1С просто не сможет записать туда ни байта информации, что приведет к ошибкам при старте.
В Windows права наследуются от родительской папки, но при переносе на другой диск наследование может сбиться. Откройте свойства новой папки srvinfo, перейдите на вкладку"Безопасность". Убедитесь, что группа пользователей Пользователи 1С:Предприятия (или конкретный пользователь службы) имеет права"Полный доступ" или как минимум"Изменение" и"Запись".
В Linux используйте команду chown для смены владельца и группы, а также chmod для установки битов прав доступа. Стандартные права для srvinfo обычно подразумевают полный доступ для владельца и группы, и отсутствие доступа для остальных.
chown -R usr1cv8:grp1cv8 /mnt/data/1c/srvinfo
chmod -R 770 /mnt/data/1c/srvinfo
Не забудьте проверить права и на саму родительскую директорию нового пути. Если у пользователя 1С нет права на выполнение (x) для родительских папок нового пути, он не сможет пройти внутрь каталога, даже если права на сам srvinfo выставлены верно.
- 🔐 Проверьте владельца файлов: он должен совпадать с пользователем службы 1С.
- 📝 Убедитесь, что права записываются рекурсивно на все вложенные файлы.
- 🚫 Запретите доступ к папке для посторонних пользователей в целях безопасности.
⚠️ Внимание: В кластерных конфигурах 1С права доступа должны быть синхронизированы на всех узлах кластера, если каталог srvinfo вынесен на общую сетевую ресурс (NAS/SAN). Локальные права могут конфликтовать с сетевыми политиками.
Правильно выставленные права доступа (ACL) — это 90% успеха. Ошибка в правах приведет к тому, что сервер запустится, но не сможет регистрировать сеансы, и пользователи не смогут подключиться.
Запуск служб и проверка работоспособности
Финальный этап — возврат системы в рабочее состояние. Запустите службу Агент сервера 1С:Предприятия. Внимательно следите за логами запуска. В Windows это журнал событий (eventvwr.msc), в Linux — файлы логов в каталоге /var/log/1c или вывод команды journalctl.
Если служба запустилась без ошибок, попробуйте подключиться к базе данных через тонкий клиент. Создайте новый сеанс, выполните какое-либо действие, которое вызовет запись в журнал регистрации или обновление блокировок. Это подтвердит, что сервер корректно пишет данные в новый каталог.
Проверьте появление новых файлов в целевой директории на новом диске. Если файлы появляются и их время модификации актуально — миграция прошла успешно. Также мониторьте свободное место на старом диске: оно должно оставаться неизменным (или расти очень медленно за счет других процессов), а на новом диске — увеличиваться.
В случае возникновения ошибок вида"Недостаточно прав" или"Путь не найден", вернитесь к шагам проверки символьной ссылки и прав доступа. Часто проблема кроется в том, что ссылка была создана с относительным путем, который стал невалидным после перезагрузки, поэтому всегда используйте абсолютные пути.
Как откатить изменения в случае неудачи?
Если сервер не запускается, остановите службу, удалите символьную ссылку командой rmdir (Windows) или unlink (Linux), и восстановите оригинальную папку из резервной копии, переименовав её обратно в srvinfo.
Можно ли перенести srvinfo на сетевой диск (NAS)?
Технически это возможно, но крайне не рекомендуется для высоконагруженных систем. Файловая работа с блокировками 1С требует низкой задержки (low latency). Сетевые протоколы (SMB/NFS) добавляют задержки, что может привести к существенному замедлению работы сервера и частым разрывам соединений. Используйте локальные SSD или быстрые массивы RAID.
Что делать, если после переноса пропали данные о сеансах?
Данные о текущих сеансах хранятся в оперативной памяти и дублируются в файлах srvinfo. При перезапуске сервера (который необходим для переноса) все активные сеансы сбрасываются. Это нормальное поведение. Если не видятся данные о прошлых завершенных сеансах в журнале регистрации, проверьте права на чтение файлов логов.
Нужно ли менять путь к srvinfo в настройках кластера 1С?
Нет, не нужно. Механизм символьных ссылок (junction/symlink) полностью прозрачен для приложения. Сервер 1С продолжает обращаться к стандартному пути, а операционная система перенаправляет запросы. Изменение настроек кластера через консоль управления не требуется и может привести к ошибкам конфигурации.
Влияет ли перенос на скорость работы базы данных?
Напрямую — нет, так как srvinfo хранит служебную информацию о сеансах, а не данные таблиц базы (IB). Однако, если старый диск был сильно фрагментирован или перегружен, а новый — быстрый SSD, то операции регистрации сеансов и снятия блокировок могут проходить немного быстрее, что улучшит отзывчивость системы при большом числе пользователей.
Как часто нужно чистить каталог srvinfo?
В современных версиях платформы 1С:Предприятие (начиная с 8.3.10 и выше) механизм очистки файлов srvinfo автоматизирован. Сервер сам удаляет устаревшие файлы блокировок. Ручная чистка требуется редко, только в случаях некорректного завершения работы сервера (сбой питания), когда остаются"висящие" файлы блокировок.